긴 레드팀 작전은 수백 개의 발견, 크리덴셜, 호스트, 서비스 및 탐지 아티팩트를 생성합니다. 이들을 평면 JSON으로 저장하면 레드팀 출력을 유용하게 만드는 관계를 잃습니다 — 어떤 크리덴셜이 어떤 호스트를 열었을까? 어떤 탐지가 어떤 기법을 다루나? Decepticon은 대신 Neo4j 그래프에 저장합니다.Documentation Index
Fetch the complete documentation index at: https://docs.decepticon.red/llms.txt
Use this file to discover all available pages before exploring further.
왜 그래프인가
공격 경로는 본질적으로 그래프입니다. 피벗은 관계입니다; 크리덴셜은 계정과 호스트 사이의 에지입니다; 방어 브리프는 취약점을 탐지에 연결합니다. 이를 그래프로 모델링하면:- 오케스트레이터는 *“이 크리덴셜에서 어떤 호스트에 도달할 수 있나?”*를 대화 기록을 다시 읽지 않고도 한 번의 Cypher 쿼리로 쿼리할 수 있습니다.
- 방어자의 산출물은 PDF가 아닌 구조화된 그래프입니다 — 기존 탐지 커버리지에 쉽게 오버레이됩니다.
- 교차 작전 쿼리가 가능합니다: “이 CVE는 이 고객에 대한 이전 작전에서 나타났나?”
노드 타입
| 노드 | 표현 |
|---|---|
Host | 발견된 호스트 또는 자산 (IP, 호스트명, OS) |
Service | 호스트에서 실행 중인 네트워크 서비스 (포트, 프로토콜, 배너, 버전) |
Account | 발견된 신원 (사용자, 서비스, 머신 계정) |
Credential | 캡처된 비밀 (암호, 해시, 토큰, 키) |
Vulnerability | 확인된 약점 (CVE, 오설정) |
Finding | 에이전트가 생성한 검증된 관찰 |
DefenseAction | Defender가 생성한 탐지 규칙, 완화 또는 패치 |
에지 타입
| 에지 | 의미 |
|---|---|
RUNS_ON | 서비스가 호스트에서 실행 중 |
OWNS | 계정이 크리덴셜 소유 |
AUTHENTICATES_TO | 크리덴셜이 호스트 또는 서비스에 인증 |
EXPLOITS | 발견이 취약점 익스플로잇 |
DETECTS | DefenseAction이 발견의 기법 탐지 |
MITIGATES | DefenseAction이 취약점 완화 |
RESPONDS_TO | DefenseAction이 발견에 응답 |
LATERAL_TO | 호스트가 호스트로 피벗 (크리덴셜 또는 기법 귀속 포함) |
에이전트가 사용하는 도구
그래프는 전용 도구(decepticon/tools/research/neo4j_store.py)를 통해 에이전트에 노출됩니다:
| 도구 | 목적 |
|---|---|
kg_add_node | 타입 속성을 가진 노드 삽입 |
kg_add_edge | 귀속을 가진 에지 삽입 |
kg_query | Cypher 쿼리 실행 및 결과 반환 |
kg_neighbors | 노드의 즉시 이웃 나열 |
운영자 접근
그래프는 운영자에게도 노출됩니다:- 브라우저: 온보딩 마법사의 크리덴셜로
http://localhost:7474의 Neo4j 브라우저. - CLI:
decepticon kg-health는 진단을 실행하고 고아 노드 또는 누락된 관계를 표시합니다. - 웹 대시보드: Next.js 대시보드의 공격 그래프 캔버스는 라이브 작전 그래프를 렌더링합니다.
산출물로서의 그래프
작전 최종 보고에서 그래프는 산출물의 일부가 됩니다. 블루팀이 받는 것:- 모든 노드와 에지의 JSON 내보내기.
- 그래프에서 파생된 ATT&CK Navigator 레이어.
- “블루 스팟” 오버레이 — 작전이 발견했지만 고객의 기존 탐지가 커버하지 않는 취약점.
- “레드 스팟” 오버레이 — Decepticon의 행동에 대해 발화한 탐지, SOC가 작동함을 증명.
프라이버시 및 OPSEC
그래프는 작전 범위입니다. 작전 중에 캡처된 고객 데이터 (크리덴셜 문자열, 서비스 배너, 민감한 경로)는 Neo4j에서 미사용 암호화되고 산출물에 명시적으로 유지되지 않으면 작전이 종료될 때 삭제됩니다.오펜시브 백신 파이프라인
Detector와 Patcher 에이전트가 DefenseAction 노드를 어떻게 생성하는지.
