ARGUS 설치 기록 — LLM Wiki LCL
작성일: 2026-06-17
대상:domains/ai-it/Argus Wiki Integration Phase 0 + Phase 1
관련 커밋:9719f58b(PRD 추가) →bbb1d17b(Phase 1 scaffold 설치)
1. Argus가 무엇인가
jasonxtn/Argus는 Python 기반 정보수집·보안점검(OSINT/Recon) 툴킷이다.
DNS 조회, WHOIS, SSL 만료 알림, HTTP 헤더 분석, robots.txt, sitemap, SPF/DKIM/DMARC 검증 같은 passive 체크부터 포트스캔·디렉토리 파인더 같은 active scan까지 다수의 모듈을 제공한다.
공식 README는 교육적·윤리적 사용과 명시적 허가가 있는 대상만 스캔할 것을 고지한다.
2. 설치 전 상황 (Before)
항목
상태
AI_IT 도메인
존재하지 않음
보안 점검 결과 저장 구조
없음 — 터미널 출력으로 끝
allowlist / 실행 정책
없음 — 어떤 대상에도 실행 가능
passive / active 모듈 구분
없음
결과 민감도 정책
없음 — public 인덱스 노출 위험
Ouroboros 감사 기록
Argus 실행 이력 없음
NAS public 배포 제어
Argus 결과 포함 여부 불명확
3. 설치 과정
3-1. PRD 작성 (Phase 0 정책 확정)
커밋 9719f58b — 2026-06-17 13:49
Show Me The PRD 플러그인으로 인터뷰 기반 요구사항을 추출한 뒤 4종 문서를 작성했다.
90_project_docs/10_prd/argus-wiki-integration/
├── 01_PRD.md # 제품 요구사항 (허가 경계, 핵심 기능, 성공 기준)
├── 02_DATA_MODEL.md # 데이터 모델 (AssetAllowlist, ArgusRunPlan, OuroborosLedgerEntry)
├── 03_PHASES.md # Phase 0~4 분리 계획
├── 04_PROJECT_SPEC.md # AI 행동 규칙 (금지사항·구현 순서)
└── README.md # 문서 네비게이션
핵심 결정: Argus는 local-contract-law·case-law·general-law 검색과 무관하다.AI_IT 도메인의 security-recon collection으로만 격리 운영한다.
3-2. Phase 1 Scaffold 설치
커밋 bbb1d17b — 2026-06-17 14:21
Codex CLI가 PRD를 읽고 Phase 1을 구현했다. 생성된 파일은 다음과 같다.
정책·스키마 파일
domains/ai-it/90_schema/
├── argus-allowlist.yml # 허가된 자산 등록부 (현재 2개: system.cmdspace.work, 127.0.0.1)
└── argus-module-policy.yml # 모듈별 위험도 및 허용 여부 정의 (12개 모듈)
allowlist 등록 자산
asset_id
target
active scan
AIT-ASSET-001
system.cmdspace.work
불가
AIT-ASSET-002
127.0.0.1
불가
모듈 정책 (passive-only profile 허용 8개)
모듈
카테고리
위험도
기본 허용
DNS Records
network-passive
low
O
Domain Info / RDAP / WHOIS
network-passive
low
O
SSL Expiry Alert
web-passive
low
O
HTTP Headers
web-passive
low
O
Robots.txt Analyzer
web-passive
low
O
Sitemap Parsing
web-passive
low
O
Security.txt Check
web-passive
low
O
SPF / DKIM / DMARC Validator
email-passive
low
O
Open Ports Scan
network-active
medium
X (명시 승인 필요)
Directory Finder
web-active
medium
X (명시 승인 필요)
WAF Bypass Test
blocked-active
high
X (기본 차단)
Subdomain Takeover
blocked-active
high
X (기본 차단)
실행 엔진
domains/ai-it/
├── argus_run_plan.sh # wrapper (venv 자동 선택)
└── 91_scripts/
└── argus_run_plan.py # run plan 생성기 (337 lines)
argus_run_plan.py가 하는 일:
target이 allowlist에 있는지 확인 → 없으면 즉시
blocked반환profile에 따른 허용 모듈 목록 구성
active 모듈 요청 시 차단
run plan JSON/MD 생성 →
50_reports/argus/run-plans/저장--write-ledger옵션 시 Ouroboros ledger에도 기록
Phase 1 핵심 불변식: would_run: false, argus_installed_or_executed: false
실행 계획만 만들고 Argus 바이너리는 절대 호출하지 않는다.
결정 문서 및 워크플로우
domains/ai-it/20_wiki/
├── decisions/argus-phase1-no-run-policy.md # 4대 정책(allowlist-only, passive-only, private-by-default, no-run)
└── workflows/argus-run-plan-workflow.md # 실행 흐름 설명 + 예시 명령
domains/_registry.yml 갱신
ai-it 도메인이 멀티도메인 registry에 추가됐다.
검색앱과 라우터가 이 파일을 단일 진실로 사용하므로 AI_IT 도메인 검색이 활성화된다.
3-3. 첫 run plan 실행 (dry-run)
설치 직후 검증 명령:
./domains/ai-it/argus_run_plan.sh \
--target system.cmdspace.work \
--profile passive-only \
--dry-run \
--write-ledger
결과 (ARGUS-RUN-20260617-141653):
result:
passwould_run:
Falseargus_installed_or_executed:
Falseplanned modules: 8개 (전부 passive-only)
ledger:
domains/ai-it/50_reports/ouroboros/ledger/에 기록됨
미등록 target 차단 테스트도 통과했다.
4. 설치 전·후 비교 (After)
항목
설치 전
설치 후
AI_IT 도메인
없음
domains/ai-it/ 생성, registry 등록
보안 점검 저장 구조
없음
source / wiki / report / ledger 4계층
allowlist
없음
argus-allowlist.yml — 2개 자산 등록
모듈 정책
없음
argus-module-policy.yml — 12개 모듈 분류
Argus 실행
무제한(통제 없음)
Phase 1은 실행 자체 금지, run plan만 생성
결과 민감도
미정
기본 private — public 인덱스 승격 금지
NAS 공개 배포
불명확
Argus 결과 완전 제외
감사 추적
없음
Ouroboros ledger에 실행 이력 자동 기록
active scan
통제 없음
명시 승인 없이 기본 차단
5. 무엇이 달라졌는가
거버넌스 우선 구조
Argus를 바로 설치·실행한 것이 아니라 "어디에, 어떤 조건으로, 어떤 범위만" 먼저 정의했다.
Phase 1의 핵심 가치는 Argus 실행이 아닌 실행 통제 체계 구축이다.
도메인 격리
Argus 결과는 AI_IT 도메인 private 검색에서만 조회된다.local-contract-law, case-law, general-law, journal 도메인 인덱스에는 영향이 없다.
실행 흔적의 누적 가능성
이전에는 Argus 실행 결과가 터미널에만 남았다.
이제는 run plan과 ledger가 50_reports/ 하위에 JSON/MD로 누적된다.
6. 다음 단계 (Phase 2 시작 조건)
첫 allowlist target 사용자 확정 (
system.cmdspace.work권장)Argus 설치 방식 결정 (isolated venv 권장 vs. container)
Phase 2 시작 승인
Phase 2가 시작되면 실제 Argus 바이너리를 isolated venv에 설치하고,
passive-only 모듈 8개를 내 소유 자산 1개에 한해 pilot 실행한다.
7. 따라서 설치하고자 하는 사람을 위한 유의사항
반드시 지킬 것
allowlist 먼저 작성 —
argus-allowlist.yml에 내 소유 자산만 등록한다. 등록되지 않은 target은 실행 자체가 차단된다.거버넌스 → 설치 순서 — 정책 파일(
allowlist,module-policy) 없이 Argus를 먼저 설치하면 안 된다. 이 scaffold가 없으면 실행 통제가 불가능하다.Phase 1에서는 Argus 바이너리를 설치하지 않는다 —
would_run: false가 Phase 1의 정상 상태다. 실행 결과가 나왔다면 뭔가 잘못된 것이다.active scan은 기본 차단 —
open-ports,directory-finder,waf-bypass,subdomain-takeover계열은requires_explicit_approval: true다. 별도 승인 없이 profile에 포함하지 않는다.결과 sensitivity는 기본 private — Argus 결과는 취약점 정보가 될 수 있다. public 인덱스, NAS public 검색, 외부 공유에 절대 포함하지 않는다.
API key 필요 모듈은 Phase 1 제외 — Shodan, VirusTotal, Censys 계열은 no-API-key 원칙과 충돌한다. Phase 2 이후 별도 결정이 필요하다.
다른 도메인 인덱스 건드리지 않기 —
local-contract-law,case-law,general-law,journal도메인의 FTS/MongoDB/qmd 인덱스에 Argus 결과를 절대 합류시키지 않는다.
설치 검증 체크리스트
# 1. 등록 자산 통과 확인
./domains/ai-it/argus_run_plan.sh --target <내자산> --profile passive-only --dry-run
# 기대: result=pass, would_run=False
# 2. 미등록 자산 차단 확인
./domains/ai-it/argus_run_plan.sh --target example.com --profile passive-only --dry-run
# 기대: result=blocked
# 3. active 모듈 요청 차단 확인
./domains/ai-it/argus_run_plan.sh --target <내자산> --profile passive-only --modules open-ports --dry-run
# 기대: result=blocked
8. 관련 파일 맵
domains/ai-it/
├── argus_run_plan.sh # 실행 진입점
├── 90_schema/
│ ├── argus-allowlist.yml # 허가된 자산 등록부
│ └── argus-module-policy.yml # 모듈 정책 (passive/active/blocked)
├── 91_scripts/
│ └── argus_run_plan.py # run plan 생성기
├── 20_wiki/
│ ├── decisions/argus-phase1-no-run-policy.md
│ └── workflows/argus-run-plan-workflow.md
└── 50_reports/
├── argus/run-plans/ # run plan 기록
└── ouroboros/ledger/ # 감사 ledger
90_project_docs/10_prd/argus-wiki-integration/ # PRD 4종