왜 그래프인가
공격 경로는 본질적으로 그래프입니다. 피벗은 관계입니다; 크리덴셜은 계정과 호스트 사이의 에지입니다; 방어 브리프는 취약점을 탐지에 연결합니다. 이를 그래프로 모델링하면:- 오케스트레이터는 *“이 크리덴셜에서 어떤 호스트에 도달할 수 있나?”*를 대화 기록을 다시 읽지 않고도 한 번의 Cypher 쿼리로 쿼리할 수 있습니다.
- 방어자의 산출물은 PDF가 아닌 구조화된 그래프입니다 — 기존 탐지 커버리지에 쉽게 오버레이됩니다.
- 교차 작전 쿼리가 가능합니다: “이 CVE는 이 고객에 대한 이전 작전에서 나타났나?”
노드 타입
| 노드 | 표현 |
|---|---|
Host | 발견된 호스트 또는 자산 (IP, 호스트명, OS) |
Service | 호스트에서 실행 중인 네트워크 서비스 (포트, 프로토콜, 배너, 버전) |
Account | 발견된 신원 (사용자, 서비스, 머신 계정) |
Credential | 캡처된 비밀 (암호, 해시, 토큰, 키) |
Vulnerability | 확인된 약점 (CVE, 오설정) |
Finding | 에이전트가 생성한 검증된 관찰 |
DefenseAction | Vulnresearch 파이프라인(Detector, Patcher)이 생성한 탐지 규칙, 완화 또는 패치. 스키마는 계획된 Defender 컴포넌트가 출시되면 여기에 기록할 수 있도록 공간을 예약해 둡니다. |
에지 타입
| 에지 | 의미 |
|---|---|
RUNS_ON | 서비스가 호스트에서 실행 중 |
OWNS | 계정이 크리덴셜 소유 |
AUTHENTICATES_TO | 크리덴셜이 호스트 또는 서비스에 인증 |
EXPLOITS | 발견이 취약점 익스플로잇 |
DETECTS | DefenseAction이 발견의 기법 탐지 |
MITIGATES | DefenseAction이 취약점 완화 |
RESPONDS_TO | DefenseAction이 발견에 응답 |
LATERAL_TO | 호스트가 호스트로 피벗 (크리덴셜 또는 기법 귀속 포함) |
에이전트가 사용하는 도구
그래프는KGMiddleware를 통해 에이전트에 노출되며, 미들웨어는 부착되는 역할마다 두 개의 도구를 빌드해 공유 KGStore (packages/decepticon/decepticon/middleware/kg_internal/)로 디스패치합니다:
| 도구 | 목적 |
|---|---|
kg_record(observations) | 노드와 에지의 원자적 배치 쓰기. 미들웨어가 인게이지먼트 라벨을 검증하고, 스키마 제약을 적용하며, 호출을 단일 트랜잭션으로 감싸므로 부분 쓰기가 그래프를 손상된 상태로 남기지 않습니다. |
kg_ingest(scanner_kind, path) | 스캐너 어댑터 레지스트리로의 디스패처 — nmap_xml, sarif, bloodhound_zip, slither_json, 그리고 모든 플러그인 등록 스캐너. 파일을 읽고 파싱한 뒤 kg_record와 동일한 원자적 쓰기 경로로 노드/에지 관측을 발행합니다. |
kg_record / kg_ingest를 거칩니다. 이것으로 인게이지먼트 스코프, 스키마 검증, 마이그레이션 런너 계약이 중앙화되어 버그가 있는 전문가가 그래프를 손상시킬 수 없습니다.
미들웨어 이전의 독립형 @tool 함수(kg_add_node, kg_add_edge, kg_query, kg_neighbors)는 전환 호출자용으로 decepticon.tools.research.tools에서 여전히 임포트 가능하며 DeprecationWarning을 발생시킵니다. 새 코드는 KGMiddleware를 부착하고 미들웨어가 빌드한 표면을 사용해야 합니다.
운영자 접근
그래프는 운영자에게도 노출됩니다:- 브라우저: 온보딩 마법사의 크리덴셜로
http://localhost:7474의 Neo4j 브라우저. - CLI:
decepticon kg-health는 진단을 실행하고 고아 노드 또는 누락된 관계를 표시합니다. - 웹 대시보드: Next.js 대시보드의 공격 그래프 캔버스는 라이브 작전 그래프를 렌더링합니다.
산출물로서의 그래프
작전 최종 보고에서 그래프는 산출물의 일부가 됩니다. 블루팀이 받는 것:- 모든 노드와 에지의 JSON 내보내기.
- 그래프에서 파생된 ATT&CK Navigator 레이어.
- “블루 스팟” 오버레이 — 작전이 발견했지만 고객의 기존 탐지가 커버하지 않는 취약점.
- “레드 스팟” 오버레이 — Decepticon의 행동에 대해 발화한 탐지, SOC가 작동함을 증명.
프라이버시 및 OPSEC
그래프는 작전 범위입니다. 작전 중에 캡처된 고객 데이터 (크리덴셜 문자열, 서비스 배너, 민감한 경로)는 Neo4j에서 미사용 암호화되고 산출물에 명시적으로 유지되지 않으면 작전이 종료될 때 삭제됩니다.오펜시브 백신 파이프라인
Detector와 Patcher 에이전트가 DefenseAction 노드를 어떻게 생성하는지.
