1. Project Overview & Quickstart (PurpleAILAB/LICENSE)
LICENSE
Open-source repository PurpleAILAB/LICENSE
Repository Details
- Repository: PurpleAILAB/LICENSE
- Primary Language: Code
Note: High-volume repository documentation is actively indexed and synchronized by YakaAI.
2. Official Technical Reference & Guides (PurpleAILAB/docs)
File: README.md
[Empty file]
File: DESIGN.md
Decepticon Documentation Brand System
Status: implementation source of truth
Brand source: /home/catow/GIT/bitter-security/DESIGN.md
1. Brand relationship
- Bitter Security is the company brand; Decepticon is its offensive security platform.
- The site title is
Decepticon by Bitter Securityso product context remains clear while the previous company identity is no longer public-facing. - GitHub repository links use the renamed
BitterSecurityorganization.
2. Identity assets
- Header, light mode:
/logos/bitter-security-lockup-on-light.svg. - Header, dark mode:
/logos/bitter-security-lockup-on-dark.svg. - Browser icon:
/logos/bitter-security-favicon.svg, using the all-path Coupled Field symbol on Carbon. - Header lockups and the browser icon use the all-path masters from the Bitter Security logo system. They must not be replaced with the legacy raster logo or with bitmap-scaled Bitter Security artwork.
- The logo keeps its native
138:64aspect ratio and renders at48pxhigh in the Mintlify navigation so the descriptor remains legible without exceeding the header.
3. Color tokens
| Token | Value | Documentation role |
|---|---|---|
| Oxide | #B82C3D |
Primary emphasis in light mode |
| Oxide bright | #F06A76 |
Accessible emphasis in dark mode |
| Oxide ink | #8B1828 |
Buttons and hover states |
| Chalk | #F1F0EA |
Light-mode background |
| Carbon | #08090A |
Dark-mode background |
Oxide is the only accent. Purple, security blue, neon effects, and gradients are not part of this documentation identity.
4. Typography and spacing
- Geist is the documentation family for headings, navigation, and body text.
- Mintlify owns the reading scale and content measure; the rebrand does not override article typography or structural spacing.
- Korean section headings use a
20px / 28pxmobile token so compact topic-predicate phrases remain intact at 375px. - Spacing follows the Bitter Security 4px base scale. The only custom navigation size is the
48pxlogo height.
5. Primitives and states
BrandLockup: theme-specific light and dark SVG sources; default, light-mode, dark-mode, mobile, and high-density states.BrandLink: the navbar link tohttps://bittersecurity.com; default, hover, keyboard-focus, and mobile-menu states remain Mintlify-native.BrandAccent: Mintlify controls, active navigation, links, and focus states driven only by the three Oxide configuration tokens.
6. Responsive and accessibility constraints
- The header lockup must remain sharp and unclipped at 375px, 768px, and 1280px widths.
- The lockup's authored title/description and Mintlify's generated logo alternative text must identify Bitter Security.
- Both color modes must preserve readable navigation, visible focus states, and the original documentation hierarchy.
- Korean navigation and article text must not clip or create single-character orphan lines at the tested breakpoints.
- Korean prose keeps words intact rather than using emergency mid-word wrapping.
7. Accepted design debt
None.
File: docs.json
{
"$schema": "https://mintlify.com/docs.json",
"theme": "almond",
"name": "Decepticon by Bitter Security",
"description": "Decepticon, the autonomous offensive security platform by Bitter Security",
"logo": {
"light": "/logos/bitter-security-lockup-on-light.svg",
"dark": "/logos/bitter-security-lockup-on-dark.svg"
},
"favicon": "/logos/bitter-security-favicon.svg",
"colors": {
"primary": "#B82C3D",
"light": "#F06A76",
"dark": "#8B1828"
},
"fonts": {
"family": "Geist"
},
"background": {
"color": {
"light": "#F1F0EA",
"dark": "#08090A"
}
},
"icons": {
"library": "lucide"
},
"navigation": {
"languages": [
{
"language": "en",
"groups": [
{
"group": "Introduction",
"pages": [
"en/introduction/overview",
"en/introduction/history-and-evolution",
"en/introduction/pentesting-vs-redteaming"
]
},
{
"group": "Getting Started",
"pages": [
"en/getting-started/quick-start",
"en/getting-started/configuration",
"en/getting-started/library-usage"
]
},
{
"group": "Vision & Philosophy",
"pages": [
"en/vision/autonomous-hacking",
"en/vision/core-philosophy",
"en/vision/why-open-source",
"en/vision/target-architecture"
]
},
{
"group": "Concepts",
"pages": [
"en/concepts/red-team-lifecycle",
"en/concepts/threat-emulation",
"en/concepts/mitre-attack",
"en/concepts/roles-and-cells",
"en/concepts/tradecraft"
]
},
{
"group": "Features",
"pages": [
"en/features/engagement-planning",
"en/features/opplan-system",
"en/features/autonomous-execution",
"en/features/dynamic-infrastructure",
"en/features/c2-integration",
"en/features/skill-system",
"en/features/multi-model-routing",
"en/features/offensive-vaccine-pipeline",
"en/features/knowledge-graph",
"en/features/benchmark-evaluation"
]
},
{
"group": "Architecture",
"pages": [
"en/architecture/infrastructure",
"en/architecture/agents",
"en/architecture/middleware-stack"
]
},
{
"group": "CLI Reference",
"pages": [
"en/cli-reference"
]
},
{
"group": "Contributing",
"pages": [
"en/contributing/developer-setup",
"en/contributing/contributing-guide"
]
}
]
},
{
"language": "ko",
"groups": [
{
"group": "์๊ฐ",
"pages": [
"ko/introduction/overview",
"ko/introduction/history-and-evolution",
"ko/introduction/pentesting-vs-redteaming"
]
},
{
"group": "์์ํ๊ธฐ",
"pages": [
"ko/getting-started/quick-start",
"ko/getting-started/configuration",
"ko/getting-started/library-usage"
]
},
{
"group": "๋น์ & ์ฒ ํ",
"pages": [
"ko/vision/autonomous-hacking",
"ko/vision/core-philosophy",
"ko/vision/why-open-source",
"ko/vision/target-architecture"
]
},
{
"group": "ํต์ฌ ๊ฐ๋
",
"pages": [
"ko/concepts/red-team-lifecycle",
"ko/concepts/threat-emulation",
"ko/concepts/mitre-attack",
"ko/concepts/roles-and-cells",
"ko/concepts/tradecraft"
]
},
{
"group": "๊ธฐ๋ฅ",
"pages": [
"ko/features/engagement-planning",
"ko/features/opplan-system",
"ko/features/autonomous-execution",
"ko/features/dynamic-infrastructure",
"ko/features/c2-integration",
"ko/features/skill-system",
"ko/features/multi-model-routing",
"ko/features/offensive-vaccine-pipeline",
"ko/features/knowledge-graph",
"ko/features/benchmark-evaluation"
]
},
{
"group": "์ํคํ
์ฒ",
"pages": [
"ko/architecture/infrastructure",
"ko/architecture/agents",
"ko/architecture/middleware-stack"
]
},
{
"group": "CLI ๋ ํผ๋ฐ์ค",
"pages": [
"ko/cli-reference"
]
},
{
"group": "๊ธฐ์ฌํ๊ธฐ",
"pages": [
"ko/contributing/developer-setup",
"ko/contributing/contributing-guide"
]
}
]
}
]
},
"navbar": {
"links": [
{
"label": "Bitter Security",
"href": "https://bittersecurity.com"
},
{
"label": "GitHub",
"href": "https://github.com/BitterSecurity/Decepticon"
}
],
"primary": {
"type": "button",
"label": "Get Started",
"href": "/en/getting-started/quick-start"
}
},
"footer": {
"socials": {
"github": "https://github.com/BitterSecurity/Decepticon",
"discord": "https://discord.gg/TZUYsZgrRG",
"x": "https://x.com/v1b3xor"
}
}
}
File: en/cli-reference.mdx
title: "CLI Reference"
Overview
Decepticon is CLI-first. Security work belongs in the terminal โ no browser tabs, no dashboards required, no context switching. The interface is a real-time streaming CLI built with Ink that shows you what the agent sees, as it happens.
The CLI is delivered as a single Go-based launcher (decepticon) that orchestrates the underlying Docker stack and opens the React/Ink interactive UI.
Top-Level Commands
`decepticon`
Start all services and open the interactive CLI.
decepticonStarts the full stack โ agent API server, LiteLLM proxy, Kali sandbox, PostgreSQL, Neo4j, optional Sliver C2 โ and opens the streaming CLI. This is the primary entry point for creating and running engagements.
`decepticon onboard`
Run the interactive setup wizard.
decepticon onboard
decepticon onboard --reset # Reconfigure from scratchConfigures:
- LLM provider and API key (Anthropic, OpenAI, Google, MiniMax, Anthropic OAuth via Claude subscription)
- Authentication priority order
- Model profile (
eco,max,test) - LangSmith tracing toggle and key
The wizard writes .env and persists provider order. Use --reset to throw away existing configuration.
`decepticon demo`
Run the guided demonstration.
decepticon demoLaunches Metasploitable 2 as a target, loads a pre-built engagement (RoE, ConOps, OPPLAN), and executes the full kill chain autonomously โ port scan, vsftpd exploitation, Sliver C2 implant deployment, credential harvesting, internal reconnaissance.
The demo is the fastest way to see Decepticon in action. No additional configuration needed beyond your API key.
`decepticon status`
Show service status.
decepticon statusLists each Docker service in the stack with its current state โ running, stopped, restarting โ and exposed ports. Useful for verifying that the stack came up cleanly before launching the CLI.
`decepticon logs [service]`
Tail service logs.
decepticon logs # Tail all services
decepticon logs langgraph # Tail just the LangGraph platform
decepticon logs litellm # Tail the LLM proxy
decepticon logs sandbox # Tail the Kali sandbox
decepticon logs postgres # Tail the database
decepticon logs neo4j # Tail the knowledge graph
decepticon logs web # Tail the Next.js dashboardStreams logs in docker compose logs -f style. The most common debugging entry point โ if Decepticon is misbehaving, this is where to look first.
`decepticon kg-health`
Diagnose the knowledge graph.
decepticon kg-healthRuns Neo4j connectivity and schema checks. Reports orphaned nodes, missing relationships, and any constraint violations. Useful after a long engagement before exporting the deliverable.
`decepticon stop`
Stop all services.
decepticon stopGracefully stops all Docker containers โ agent API, LiteLLM proxy, sandbox, C2 server, database, knowledge graph, and web dashboard.
`decepticon update`
Check for and apply updates.
decepticon updateChecks GHCR for newer pre-built images and updates the local installation. The launcher itself is updated separately via the install script.
`decepticon remove`
Uninstall Decepticon.
decepticon removeTears down all containers, removes images, and deletes the engagement workspace. Use with care โ engagement data is purged unless explicitly exported first.
`decepticon --version`
Show the launcher version.
decepticon --versionC2 Profiles
Enable C2 frameworks via Docker Compose profiles. The default install enables c2-sliver.
# Start with Sliver C2 (default)
COMPOSE_PROFILES=c2-sliver decepticon
# Start with Sliver C2 plus the demo target stack
COMPOSE_PROFILES=c2-sliver,demo decepticonCLI Keybindings
The interactive CLI exposes the following key shortcuts:
| Key | Action |
|---|---|
Ctrl+O |
Toggle Prompt โ Transcript view |
Ctrl+G |
Cycle the graph sidebar (Overview / Nodes / Flows) |
Ctrl+B |
Toggle the sidebar visibility |
Ctrl+C |
Cancel the current action / exit if at top level |
Esc |
Exit transcript view |
Slash Commands
Inside the CLI prompt, you can invoke:
| Command | Action |
|---|---|
/help |
Show inline help |
/clear |
Clear the current conversation |
/resume [msg] |
Resume the last engagement; optional message appended |
/quit |
Quit the CLI (services keep running; use decepticon stop to halt them) |
Developer Commands
For contributors working on Decepticon itself:
make dev # Build + start with hot-reload (docker compose watch)
make cli # Open interactive CLI (separate terminal)
make start # Start in background (production-like, no hot-reload)
make stop # Stop all services
make test # Run pytest inside the container
make lint # Lint + typecheck locally (requires: uv sync --dev)
make help # Show all available Makefile targetsFile: en/architecture/agents.mdx
title: "Agents"
Agent Architecture
Decepticon operates through sixteen specialist agents, each with its own tools, skills, and clean context window. Agents are spawned fresh per objective โ no accumulated noise, no degraded reasoning across long engagements.
The agents are not a flat list. They are organized by the engagement phase they serve, and routed by the Decepticon orchestrator through the OPPLAN.
Orchestration Layer
Reconnaissance Phase
Vulnerability Research Pipeline
Sub-agents of the Vulnresearch orchestrator. State flows between stages via the knowledge graph; each stage runs with fresh context.
Exploitation & Post-Exploitation
Domain Specialists
Analysis & Reporting
Clean Context Per Objective
Every agent spawns with a fresh context window for every objective:
Objective 1 (Recon) โ New Recon agent instance โ Findings saved to disk + graph
Objective 2 (Exploit) โ New Exploit agent instance โ Reads obj-1 findings explicitly
Objective 3 (Post-Exp) โ New Post-Exploit instance โ Reads obj-1+2 findings explicitly- No accumulated noise โ Context doesn't degrade across a 100-objective engagement.
- Targeted context โ Each agent receives only the findings relevant to its objective.
- Persistent state โ Findings live on disk and in Neo4j, not in agent memory.
Agent Middleware Stack
Each agent runs with a stack of middleware that provides cross-cutting concerns. The exact stack depends on the agent's role.
| Agent Role | Middleware Stack |
|---|---|
| Decepticon (Orchestrator) | EngagementContext โ Skills โ Filesystem โ SubAgent โ OPPLAN โ ModelFallback โ Summarization โ PromptCaching โ PatchToolCalls |
| Vulnresearch (Orchestrator) | Skills โ Filesystem โ SubAgent โ OPPLAN โ ModelFallback โ Summarization โ PromptCaching โ PatchToolCalls |
| Soundwave (Planner) | EngagementContext โ Skills โ Filesystem โ ModelFallback โ Summarization โ PromptCaching โ PatchToolCalls |
| Specialist (Recon, Exploit, ...) | Skills โ Filesystem โ ModelFallback โ Summarization โ PromptCaching โ PatchToolCalls |
What Each Layer Does
- EngagementContext โ Injects engagement metadata (slug, target, RoE summary) into the system prompt so guardrails are evaluated continuously.
- Skills โ Progressive-disclosure skill loading filtered by ATT&CK overlap with the active threat profile. Frontmatter loads at startup (~100 tokens/skill); full body is fetched on-demand via
read_file. - Filesystem โ
FilesystemMiddlewareNoExecuteโ providesread_file,write_file,edit_file,ls,glob,grepagainst the engagement workspace. Execute is intentionally disabled; specialists use the dedicatedbashtool instead. - SubAgent โ
task()tool for orchestrators (Decepticon, Vulnresearch) to dispatch work to specialists. - OPPLAN โ Five CRUD tools (
add_objective,get_objective,list_objectives,update_objective,objective_expand) and dynamic state injection of objectives into every LLM call. - OpsControl โ Auto-injects workload-lifecycle state transitions (
starting โ running โ exited) into the agent's next turn, so the orchestrator never polls after callingops_start(...). See Dynamic Infrastructure. - SandboxNotifications โ When a
bashcommand launched withrun_in_background=truefinishes, the captured output is auto-fetched and injected on the next inference turn. The agent doesn't have to remember to callbash_output(). - ModelFallback โ Provider failover when a model is rate-limited or down. Walks the fallback chain built from the user's credentials inventory.
- Summarization โ Conversation-window compression for long-running specialists.
- PromptCaching โ
AnthropicPromptCachingMiddlewareโ places prompt-cache boundary markers; silently no-ops on non-Anthropic providers. - PatchToolCalls โ Sanitizes and normalizes tool-call shapes for cross-provider compatibility (Anthropic, OpenAI, Google, MiniMax, โฆ).
AgentโTool Interaction
Agents interact with offensive tools through persistent tmux sessions inside the Kali sandbox:
Agent โ Docker Socket โ Kali Sandbox โ tmux session โ Tool (sliver-client, msfconsole, evil-winrm, ...)
โ
Prompt Detection
โ
Follow-up CommandsWhen a tool presents an interactive prompt (sliver >, msf6 >, PS C:\>), the agent:
- Detects the prompt pattern.
- Interprets the tool's output.
- Sends the appropriate follow-up command.
- Handles control signals (
C-c,C-z) when needed.
Output is tiered:
- Inline (โค15K) โ Returned directly to the agent.
- Offload (15Kโ100K) โ Written to
/workspace/.scratch/and referenced by path. - Watchdog (>5M) โ The session is killed and the agent is asked to refine.
This is how real operators work. Decepticon's specialists do the same.
File: en/architecture/infrastructure.mdx
[Binary file]
File: en/architecture/middleware-stack.mdx
title: "Middleware Stack"
Every Decepticon agent inherits a middleware stack that handles concerns common to all agents โ RoE enforcement, skill loading, prompt caching, model fallback, conversation summarization. This page documents what each layer does and why it exists.
Why Middleware
A monolithic agent prompt that tries to handle everything ends up doing nothing well. Decepticon factors cross-cutting concerns into composable middleware:
- The agent prompt focuses on its specialty.
- Behaviors common to all agents (RoE checks, skill loading) live in one place.
- Cross-provider compatibility (Anthropic, OpenAI, Google, MiniMax) is handled below the prompt, not inside it.
The Layers
Skills
DecepticonSkillsMiddleware (subclass of LangChain's SkillsMiddleware).
- Loads only skill frontmatter at startup (~100 tokens per skill).
- Filters skills by ATT&CK overlap with the active threat profile.
- Loads full skill body on-demand when the agent invokes
read_file(). - Enforces the SKILL-FIRST RULE: agents must load the relevant skill before acting on a matching trigger.
Filesystem
FilesystemMiddlewareNoExecute โ sandboxed file access scoped to the engagement workspace. Provides read_file, write_file, edit_file, ls, glob, and grep against /workspace/{engagement_id}/. Execute is intentionally disabled; specialists use the dedicated bash tool for command execution.
SubAgent
Exposes the task() tool to the orchestrator. Lets Decepticon dispatch work to specialist agents (Recon, Exploit, Analyst, ...) without inlining their prompts. SubAgent outputs are wrapped in StreamingRunnable so they stream through the CLI and HTTP API.
OPPLAN
The structural backbone of orchestration:
- Exposes five CRUD tools โ
add_objective,get_objective,list_objectives,update_objective,objective_expand. - Injects current OPPLAN state (pending, in-progress, complete) into every LLM call.
- Resolves dependencies โ refuses to dispatch objectives whose prerequisites are not complete.
- Supports the Pentesting Task Tree (PTT) via
objective_expand.
EngagementContext
The RoE/ConOps guard rail. On every iteration, the middleware injects:
- The active Rules of Engagement.
- The Concept of Operations.
- The current threat profile.
The agent's reasoning is therefore continuously evaluated against scope and adversary identity, not just at the start of the session.
ModelFallback
Provider failover. Each model profile defines a fallback chain โ for example: claude-opus-4-7 โ gpt-5.5 โ gemini-2.5-pro โ MiniMax-M2.5. When a provider rate-limits or errors, the next provider in the chain is invoked transparently.
Summarization
Conversation-window compression. When a specialist agent's context approaches the model's window, prior turns are summarized into a structured digest. Findings, tool outputs, and decisions are preserved; verbatim chat history is collapsed.
PromptCaching
Anthropic's prompt-cache boundary markers. The middleware places the CACHE_BOUNDARY marker between static prompt sections (system prompt, skill catalog) and dynamic sections (live OPPLAN state, current iteration). This lets repeated calls hit the cache, dropping per-call cost dramatically on long engagements.
PatchToolCalls
The cross-provider compatibility shim. Different providers represent tool calls differently โ the middleware normalizes them before they hit the agent prompt and re-shapes them on the way out, so a single agent definition runs against any supported provider.
OpsControlNotifications
Subscribes to the opscontrol daemon's workload-state events (ADR-0006). When a workload transitions (starting โ running โ exited), the middleware injects a <system-reminder> HumanMessage carrying the new state onto the orchestrator's next inference. The orchestrator never polls after ops_start("c2-sliver") โ completion comes to it. Mounted on the Decepticon orchestrator only.
SandboxNotifications
The bash-side counterpart. When a bash command launched with run_in_background=True finishes, the middleware fetches the captured output diff from the sandbox and injects it as a <system-reminder> on the agent's next turn. The specialist never has to remember to call bash_output(). Same shape as OpsControlNotifications; mounted on every agent that holds the bash tool.
KG (KGMiddleware)
Owns the engagement-scoped Neo4j KGStore and exposes the two agent-facing graph tools โ kg_record(observations) for atomic batch writes and kg_ingest(scanner_kind, path) for scanner-adapter dispatch. Enforces the engagement-label validator on every call, so two parallel engagements never bleed into each other's graph state.
Skillogy
A thin REST client of the standalone Skillogy service. Exposes find_skill, load_skill, and traverse against the Neo4j-backed skill graph (port 9100). Carries an allowed_path_prefixes parameter set by the agent factory; the service enforces the hard ACL (ADR-0008) so a specialist can't be talked into browsing another role's skills via prompt injection.
HITL
Wraps LangGraph's native interrupt() pattern so the agent can pause for operator approval on consequential actions โ production-targeting commands, exfiltration of sensitive data classes, anything flagged by the RoE as high blast radius. The operator sees the proposed action, can approve/redirect/abort, and the agent resumes from the same node.
Stack Composition by Role
The exact order of middleware matters โ outer layers wrap inner ones. The orchestrator and planner inject EngagementContext first so RoE/ConOps guardrails apply to every subsequent layer; specialists inherit those guardrails through the OPPLAN slice they receive.
โโ Decepticon Orchestrator โโโโโโโโโโโโโโโโโโโ
โ EngagementContext โ
โ โโ Skills โ
โ โโ Filesystem โ
โ โโ SubAgent โ
โ โโ OPPLAN โ
โ โโ ModelFallback โ
โ โโ Summarization โ
โ โโ PromptCache โ
โ โโ Patch โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโ Vulnresearch Orchestrator โโโโโโโโโโโโโโโโโ
โ Skills โ
โ โโ Filesystem โ
โ โโ SubAgent โ
โ โโ OPPLAN โ
โ โโ ModelFallback โ
โ โโ Summarization โ
โ โโ PromptCache โ
โ โโ Patch โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโ Soundwave Planner โโโโโโโโโโโโโโโโโโโโโโโโโ
โ EngagementContext โ
โ โโ Skills โ
โ โโ Filesystem โ
โ โโ ModelFallback โ
โ โโ Summarization โ
โ โโ PromptCache โ
โ โโ Patch โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโ Specialist (Recon, Exploit, ...) โโโโโโโโโโ
โ Skills โ
โ โโ Filesystem โ
โ โโ ModelFallback โ
โ โโ Summarization โ
โ โโ PromptCache โ
โ โโ Patch โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโSpecialists also bind the bash tool for sandbox command execution; Soundwave does not.
Streaming Through the Stack
Sub-agent outputs do not collect-and-return โ they stream. StreamingRunnable wraps every sub-agent so its tokens arrive at:
- The Python CLI's
UIRenderer(Ink terminal UI). - The LangGraph HTTP custom-event channel (web dashboard).
This is how the operator sees Recon enumerate ports in real time, not after the fact.
File: en/concepts/mitre-attack.mdx
title: "MITRE ATT&CK"
MITRE's Adversarial Tactics, Techniques, and Common Knowledge (ATT&CK) is a curated knowledge base of cyber-adversary behavior, organized by the phases of an adversary's lifecycle and the platforms they target. Decepticon uses ATT&CK as the connective tissue between threat profiles, OPPLAN objectives, skills, and findings.
The TTP Hierarchy
ATT&CK is built on a three-level hierarchy. Decepticon adopts this vocabulary consistently โ agents, skills, and findings all reference the same identifiers.
Where ATT&CK Surfaces in Decepticon
ATT&CK is not just metadata โ it is the type system Decepticon agents reason in.
| Surface | ATT&CK Use |
|---|---|
| Threat Profile | The profile lists in-scope techniques; Decepticon refuses out-of-profile actions. |
| OPPLAN Objectives | Every objective carries a mitre_attack field with one or more T-IDs. |
| Skills | Skill frontmatter includes mitre_attack: T1590, T1591, ... โ used for filtering and trigger matching. |
| ConOps | The "adversary of record" section enumerates the techniques the threat is known to use. |
| Findings | Each finding produced by Decepticon is tagged with the technique used and the resulting evidence. |
| Defense Brief (planned) | A future defense component will map each offensive action to the corresponding detection or mitigation technique. Today, operators assemble the brief manually from Vulnresearch pipeline outputs (Detector rules, Patcher patches). |
Skill Frontmatter Example
A Decepticon skill carries ATT&CK metadata that the orchestrator uses to load only the right skills for the active engagement:
---
name: passive-recon
description: "Use when gathering intelligence WITHOUT touching the target"
allowed-tools: Bash Read Write
metadata:
subdomain: reconnaissance
tags: passive, dns, subdomain-enum, whois, ct-logs
mitre_attack: T1590, T1591, T1592
---When a threat profile lists T1590 as an in-scope technique, this skill becomes available. When the operator switches to a profile that does not include it, the skill is excluded from the agent's working set.
ATT&CK Matrix Coverage
Decepticon's skill library covers the canonical attack lifecycle:
| Tactic | Decepticon Coverage |
|---|---|
| Reconnaissance | Passive recon (OSINT, CT logs, DNS), active recon (port scan, service enum) |
| Resource Development | Implant generation via Sliver C2 |
| Initial Access | Web exploitation, AD initial access, phishing-payload generation |
| Execution | Bash, PowerShell, scripting via interactive sandbox |
| Persistence | Service hijacking, scheduled tasks, WMI (via Post-Exploit) |
| Privilege Escalation | Local privesc, domain privesc (AD Operator) |
| Defense Evasion | OPSEC skill set, AMSI/ETW awareness, log evasion |
| Credential Access | Kerberoasting, LSASS dumping, cloud key extraction |
| Discovery | Internal recon, AD enumeration, cloud metadata abuse |
| Lateral Movement | Pass-the-hash, RDP, SSH pivoting, cloud session theft |
| Collection | Sensitive-data discovery, screenshot capture |
| Command and Control | Sliver mTLS / HTTPS / DNS channels, tiered callbacks |
| Exfiltration | DNS tunneling, web upload, C2 channel exfil |
| Impact | Modeled but constrained by RoE โ proof-of-impact only |
ATT&CK Navigator Export
Decepticon emits an ATT&CK Navigator-compatible JSON layer per engagement, listing exactly which techniques were used and which produced findings. This file becomes part of the engagement deliverable โ the blue team can overlay it on their own detection coverage to find gaps.
File: en/concepts/red-team-lifecycle.mdx
title: "Red Team Engagement Lifecycle"
A red team engagement is not a vulnerability scan with extra steps. It is a structured campaign against a real-world threat profile, executed in three phases, governed by formal documents (RoE, ConOps, OPPLAN), and adjudicated against the eight canonical engagement goals.
The Three Phases
C2 Tiering
During Stay In, command-and-control is structured into tiers. Each tier balances responsiveness against detection risk.
| Tier | Callback Cadence | OPSEC Profile | Use Case |
|---|---|---|---|
INTERACTIVE |
Seconds | High exposure | Live operator control during a hot objective |
SHORT_HAUL |
1โ24 hours | Moderate | Reliable operational access for ongoing objectives |
LONG_HAUL |
24+ hours | Low exposure | Persistent fallback channel that survives defender hunting |
Decepticon's OPPLAN objectives are tagged with the appropriate C2Tier so the agent knows which channel to use for each action.
The Eight Engagement Goals
A red team engagement is judged against canonical goals โ what was the team trying to achieve, and did the blue team detect it? Decepticon adopts the same eight categories used across the industry:
How Decepticon Maps to the Lifecycle
Decepticon's agent topology is built around this lifecycle, not around tools.
| Phase | Primary Agents | Skills Surface |
|---|---|---|
| Plan (pre-engagement) | Soundwave | RoE, ConOps, Deconfliction, OPPLAN, Threat Profile |
| Get In | Recon, Scanner, Exploit, Exploiter | Passive/active recon, web exploitation, AD initial access |
| Stay In | Post-Exploit, AD Operator, Cloud Hunter | Persistence, C2 sessions, defense evasion, OPSEC |
| Act | Post-Exploit, Analyst | Lateral movement, credential access, finding capture, Vulnresearch pipeline outputs (the planned Defender component will eventually generate the defense brief from these) |
The orchestrator (Decepticon agent) sequences objectives across phases and spawns specialist agents with fresh context windows so reasoning never degrades.
Engagement Documents
Every Decepticon engagement produces โ and is bound by โ four documents:
File: en/concepts/roles-and-cells.mdx
title: "Roles & Cells"
A red team engagement is not just "attackers versus defenders." It is a structured exercise with named roles, each with distinct responsibilities. Decepticon does not replace any of these roles โ it operates as a force multiplier inside the Red Cell, with explicit handshakes to the others.
The Four Cells
Why the Cells Matter for an Autonomous Agent
The cells are not bureaucracy โ they are the boundaries that keep an offensive engagement from turning into an incident. An autonomous agent without these handshakes is reckless. Decepticon is built to fit inside the cell structure, not around it.
| Cell | Decepticon Touchpoint |
|---|---|
| Red Cell | Decepticon agents are Red Cell members. They produce findings, evidence, and an attack graph attributable to the engagement. |
| Blue Cell | Decepticon does not interact with the Blue Cell during execution. The blue team sees only the artifacts โ alerts, telemetry, lateral movement โ that the agent generates. |
| White Cell | The operator running Decepticon acts as White Cell liaison: pausing the agent on deconfliction calls, certifying RoE compliance, declaring outcomes. The CLI exposes pause/resume primitives for exactly this. |
| Trusted Agent | Whoever holds the OPPLAN approval authority is the Trusted Agent for the engagement. Decepticon refuses to start an engagement without an explicitly approved RoE and OPPLAN. |
Deconfliction
Deconfliction is the process that separates red team activity from real-world activity. It is what allows a SOC to ignore the red team's beacon when a real incident lights up next to it โ and, more importantly, what stops them from ignoring a real incident because they thought it was the red team.
Decepticon supports deconfliction in three ways:
Operator-as-White-Cell
In small engagements, the human running Decepticon often plays multiple cells โ operator (Red), referee (White), and authority holder (Trusted Agent). Decepticon's CLI is built around this reality:
- The OPPLAN approval gate forces the operator to act as Trusted Agent before execution starts.
- The streaming transcript gives operator visibility identical to a White Cell observer.
- The pause/resume controls let the operator perform deconfliction handshakes mid-engagement.
For larger engagements, the operator can split these duties โ running Decepticon under one identity (Red Cell) and providing deconfliction logs to a separate White Cell process.
File: en/concepts/threat-emulation.mdx
title: "Threat Emulation"
A red team engagement that does not emulate a real threat is just a structured pentest with extra paperwork. The discipline of threat emulation โ mimicking the TTPs of a specific adversary โ is what makes red teaming meaningful.
"The Threat Gets a Vote"
The principle, codified by redteam.guide and inherited from military doctrine, is simple: engagements must be grounded in what real threats actually do, not just what defenders plan for.
A blue team that prepares for the threat they wish they had โ instead of the threat that actually exists โ has prepared for nothing. Decepticon enforces this principle by requiring an explicit threat profile before generating an OPPLAN.
The Threat Profile
Decepticon adopts the seven-field threat profile structure used across the industry. Each engagement begins by selecting or authoring a profile:
| Field | Purpose | Example (AUTOBANK) |
|---|---|---|
| Description | Threat level, methods, motivation | "Financially motivated APT inspired by Carbanak" |
| Goal & Intent | What the threat actor is trying to achieve | "Access SWIFT infrastructure for fraudulent transfers" |
| Key IOCs | Indicators of compromise associated with the actor | Specific C2 domains, malware families, certificate patterns |
| C2 Overview | Channels, tiers, callback patterns | DNS, HTTPS, SMB; long-haul fallback to cloud-fronted CDN |
| TTPs | Tactics, techniques, procedures (mapped to MITRE ATT&CK) | T1566.001 phishing, T1059.001 PowerShell, T1003.001 LSASS |
| Exploitation | Initial access methods | Spear-phishing with macro-enabled documents |
| Persistence | How continued presence is maintained | Scheduled tasks, WMI subscriptions, service hijacking |
The threat profile is not a wishlist โ it is a constraint. Decepticon will not use techniques that are out of profile, because the value of emulation is precisely that it teaches the blue team to recognize that adversary.
How Decepticon Consumes a Threat Profile
When you start an engagement, the Soundwave planning agent interviews the operator and produces:
Threat Profile vs. Pentest Scope
A pentest scope says "these IPs, these apps, these dates." A threat profile says "this adversary, with these capabilities, motivated by these goals." The two are not interchangeable.
| Pentest Scope | Threat Profile |
|---|---|
| "Test web app X" | "Emulate AUTOBANK's path to SWIFT" |
| Bounded by asset list | Bounded by TTP catalog |
| Success = vulnerabilities found | Success = blue team measured |
| Tools picked by tester | Tools picked by adversary |
Authoring a Custom Profile
Custom profiles live alongside the default ones in the Soundwave skills directory. A minimal profile is YAML frontmatter plus prose:
---
name: cybersnake
description: "Espionage actor targeting energy sector โ slow, patient, DNS-heavy C2"
goal_intent: "ICS reconnaissance and dwell"
c2_channels: [dns, https]
c2_tier: long_haul
mitre_attack:
- T1078.004 # Cloud Accounts
- T1090.003 # Multi-hop Proxy
- T1071.004 # DNS C2
exploitation: "Compromised contractor VPN credentials"
persistence: "Service hijacking on jump hosts"
---
CYBERSNAKE prefers patience over noise. It will dwell for weeks
inside a network before any data movement, and routes all C2 through
DNS over a multi-hop proxy chain.When this profile is selected, every Decepticon agent inherits its constraints โ including the orchestrator's refusal to schedule fast-callback C2 or noisy initial-access vectors.
File: en/concepts/tradecraft.mdx
title: "Tradecraft & OPSEC"
Tradecraft is the techniques and procedures of espionage โ used in red teaming interchangeably with TTPs. OPSEC (Operational Security) is the discipline of identifying critical information and controlling whether your actions can be observed by the adversary (in our case, the blue team).
Decepticon does not treat tradecraft as a postscript. The DO and DON'T principles below are codified into agent middleware, skill defaults, and the bash tool's prompt detection โ so the agent operates the way a competent human red teamer would, by default.
DO
DON'T
How Tradecraft Is Codified
These principles are not aspirational โ they are middleware.
| Principle | Enforcement Mechanism |
|---|---|
| Log everything | All tool calls persisted via the bash tool's tier-1 capture, then to PostgreSQL |
| RoE compliance | EngagementContextMiddleware injects RoE/ConOps into every LLM call and rejects out-of-scope actions |
| OPSEC defaults | Skill frontmatter metadata.opsec_level informs the orchestrator of risk tier per action |
| C2 tier discipline | OPPLAN objectives carry c2_tier (INTERACTIVE, SHORT_HAUL, LONG_HAUL); orchestrator enforces use |
| Built-ins first | The shared/opsec skill is loaded by default and steers agents toward LOLBins and OS utilities |
| Deconfliction | CLI pause primitive halts new objective scheduling without tearing down sessions |
Tradecraft and the Threat Profile
Tradecraft is not generic โ it is profile-specific. AUTOBANK's tradecraft is loud-and-fast (financially motivated, smash-and-grab); CYBERSNAKE's is slow-and-patient (espionage). Decepticon enforces the active profile's tradecraft, not an abstract ideal.
When the orchestrator schedules an objective, it asks: "Would the threat actor in our profile do this, this way, at this cadence?" If the answer is no, the objective is reframed or rejected.
File: en/contributing/contributing-guide.mdx
title: "Contributing Guide"
We Welcome Contributions
Whether you're a security researcher, an AI engineer, or someone who cares about making defense better โ there's a place for you here.
Ways to Contribute
Contribution Workflow
```text
feat(agents): add Cloud Hunter skill for AWS metadata abuse
fix(opplan): resolve dependency cycle in objective_expand
docs(features): document the offensive vaccine pipeline
```Skill Contributions
Adding new skills to the library is one of the most valuable contributions. Each skill should include:
- Frontmatter โ Name, description, MITRE ATT&CK technique IDs, kill chain phase, required tools
- Content โ Step-by-step technique execution, command examples, expected output
- Detection Notes โ How defenders can detect this technique (feeds the defensive evolution vision)
- Prerequisites โ What access or conditions are needed
Code Style
- Follow the existing patterns in the codebase
- Run
make lintbefore submitting - Include tests for new functionality
- Document non-obvious design decisions in comments
Community
License
Decepticon is licensed under Apache-2.0. By contributing, you agree that your contributions will be licensed under the same terms.
File: en/contributing/developer-setup.mdx
title: "Developer Setup"
Prerequisites
Clone & Start
git clone https://github.com/BitterSecurity/Decepticon.git
cd DecepticonStart the development environment with hot-reload:
# Terminal 1 โ Start services with file watching
make dev
# Terminal 2 โ Open the interactive CLI
make cli Development runs in the same Docker containers as production. Source changes are automatically synced into containers via docker compose watch โ no manual rebuilds needed.
Make Targets
| Command | Description |
|---|---|
make dev |
Build images + start with hot-reload (docker compose watch) |
make cli |
Open the interactive CLI (run in a separate terminal) |
make start |
Start in background, production-like (no hot-reload) |
make stop |
Stop all services |
make test |
Run pytest inside the container |
make lint |
Run linter + type checker locally (requires uv sync --dev) |
make help |
Show all available Makefile targets |
Project Structure
Decepticon/
โโโ decepticon/ # Core Python package (LangGraph agents)
โ โโโ agents/ # 16 specialist agent definitions + system prompts
โ โโโ core/ # Schemas (RoE, ConOps, OPPLAN), engagement lifecycle, config
โ โโโ llm/ # Model profiles, provider routing, LLM factory
โ โโโ middleware/ # OPPLAN, Skills, EngagementContext, Filesystem, SubAgent middleware
โ โโโ sandbox_kernel/ # Sandbox-side daemon, jobs, tmux session manager
โ โโโ sandbox_server/ # Sandbox-side HTTP server (FastAPI)
โ โโโ tools/ # bash, research (Neo4j/CVE), reversing, ad, cloud, web, contracts
โ โโโ backends/ # Docker / HTTP sandbox backends
โโโ skills/ # Skill library (18 categories: per-agent + shared + benchmark)
โโโ clients/
โ โโโ cli/ # React 19 + Ink terminal UI (TypeScript)
โ โโโ web/ # Next.js 16 web dashboard (TypeScript, Prisma)
โ โโโ launcher/ # Go CLI launcher (Cobra + Charmbracelet Huh v2)
โ โโโ shared/ # Shared TypeScript packages
โโโ containers/ # Dockerfiles (sandbox, cli, web, langgraph, litellm, c2-sliver)
โโโ config/ # LiteLLM proxy config (litellm.yaml)
โโโ benchmark/ # CTF evaluation framework (xbow validation-benchmarks)
โโโ scripts/ # Install and launcher scripts
โโโ tests/ # pytest suite
โโโ docker-compose.yml # Infrastructure definition
โโโ langgraph.json # 19 graph entry points (decepticon orchestrator + soundwave planner + 17 specialists)
โโโ Makefile # Development workflow commandsHot Reload
make dev uses docker compose watch to monitor source files. When you edit code:
- Changes are synced into the running containers automatically
- Affected services restart with the new code
- No manual
docker compose buildor restart needed
This provides the fastest development loop while maintaining the exact same Docker environment as production.
Running Tests
# Run full test suite inside container
make test
# Local linting (requires uv)
uv sync --dev
make lintFile: en/features/autonomous-execution.mdx
title: "Autonomous Execution"
Kill Chain Orchestration
Once the OPPLAN is generated, Decepticon's orchestrator takes over. It iterates through objectives autonomously, executing a full kill chain โ reconnaissance, exploitation, privilege escalation, lateral movement, and persistence.
This isn't a linear script. The orchestrator adapts in real time based on what each agent discovers.
Execution Loop
Fresh Context Per Objective
This is a critical design decision. Each agent spawns with a clean context window per objective โ preventing context degradation across a long engagement.
Why this matters:
- No accumulated noise โ Agent reasoning doesn't degrade as the engagement progresses
- Clean state โ Each objective gets full attention without irrelevant context from prior phases
- Persistent findings โ Results are saved to disk, not agent memory. The orchestrator injects only relevant prior findings into each new agent's context
Interactive Shell Sessions
Real offensive security tools are interactive โ sliver-client, msfconsole, evil-winrm, sqlmap, impacket-psexec. They don't just take a command and exit. They drop you into a prompt and expect a conversation.
Most AI agents can't handle this. They fire one-shot commands via subprocess.run() and call it a day.
Decepticon runs every command inside persistent tmux sessions with automatic prompt detection:
- When a tool presents an interactive prompt (
sliver >,msf6 >,PS C:\>), the agent detects it and sends follow-up commands - Parallel named sessions โ multiple tool sessions running concurrently
- Control signals โ
C-c,C-zsupport for managing interactive processes - Stall detection โ recognizes when a command hangs and takes corrective action
The agent actually operates the tools โ the same way a human operator would.
Background Commands & Auto-Notification
Some commands take minutes โ nmap -p- -A, a full Burp scan, a long-running fuzzer. Blocking on the prompt for ten minutes while the LLM waits is a waste of compute and turns. The agent kicks them off in the background instead and gets on with other work:
bash(
command="nmap -p- -A target.lan -oN scan.txt",
run_in_background=True,
session="scan-1",
)
โ { "status": "started", "session": "scan-1" }While the scan runs, the agent moves on โ recon other surfaces, plan the next objective, query the knowledge graph. When the scan finishes, SandboxNotificationMiddleware automatically captures the output and injects it on the next inference turn:
Turn N: bash(..., run_in_background=True) โ returns "started"
Turn N+1: do other work
Turn N+2: on entry, agent sees:
<system-reminder>
Background command in session scan-1 finished (exit 0).
Output (2.4K):
Nmap scan report for target.lan ...
</system-reminder>No bash_output() polling. No idle "is it done yet?" turns. The agent doesn't have to remember the command exists โ completion comes to it. This is the same pattern that powers Dynamic Infrastructure workload-state notifications.
Output tiering
Long-running commands often produce a lot. The sandbox tiers output so the agent's context window stays usable:
| Volume | What happens |
|---|---|
| โค 15 KB | Inlined directly in the notification / tool result. |
| 15 KB โ 100 KB | Written to /workspace/.scratch/ with a path + summary inlined. The agent reads the file when needed. |
| > 5 MB | The runaway session is killed, the agent is told to refine the command (narrower scope, output filter). |
Combined with ANSI stripping and repetitive-line compression, this keeps token spend predictable even on day-long engagements.
RoE Enforcement
At every iteration, the orchestrator validates that the next action falls within the Rules of Engagement. If an objective would violate scope, timing, or technique boundaries defined in the RoE, it is automatically blocked.
File: en/features/benchmark-evaluation.mdx
title: "Benchmark & Evaluation"
Claims about an autonomous red team agent are cheap. Decepticon ships with a benchmark harness that runs against public, reproducible challenges โ so the claims are measurable.
What's Benchmarked
Decepticon's benchmark suite integrates with the xbow validation-benchmarks โ a public set of CTF-style challenges across difficulty levels and tag-based categories (web, crypto, AD, cloud, etc.).
Each benchmark run measures whether Decepticon can:
- Generate a valid OPPLAN for the challenge from a minimal prompt.
- Execute the kill chain end-to-end without operator intervention.
- Recover the FLAG (proof of solve) within the time budget.
The Harness
The benchmark harness lives under benchmark/ in the source repository. It is a separate Python package with a Typer CLI:
python -m benchmark.runner run \
--level 1 \
--tags web,sqli \
--range-start 1 --range-end 10 \
--batch-size 3 \
--timeout 1800 \
--parallel| Flag | Purpose |
|---|---|
--level |
Challenge difficulty tier (1โ3) |
--tags |
Filter by ATT&CK-aligned tag |
--range-start / --range-end |
Subset selection from the suite |
--batch-size |
Number of challenges per scoring batch |
--timeout |
Per-challenge wall-clock budget (seconds) |
--parallel |
Run challenges concurrently |
Lifecycle Per Challenge
For every challenge, the harness performs the same four-step lifecycle:
Scoring
Scoring is binary per challenge โ flag captured or not. The aggregate report breaks down results by:
- Level (1 / 2 / 3) โ pass rate per difficulty tier
- Tag (web, ad, cloud, ...) โ pass rate per category
- Wall-clock โ median and p95 time-to-flag
Reports
The reporter produces two artifacts per run:
report.jsonโ machine-readable result for CIreport.mdโ human-readable summary with per-challenge transcripts and timing
These are versioned alongside the source so regressions surface in code review.
Why Binary Scoring
A red team agent that "almost solved it" is functionally identical to one that did not. Binary scoring keeps the metric honest โ the only thing that counts is whether the engagement objective was achieved.
For nuance โ how the agent solved it, what tradecraft it used, what false starts it made โ the per-challenge transcript is the artifact to read.
Continuous Evaluation
The benchmark harness is wired into CI. Every change to the agent system, skill library, or model routing triggers a partial benchmark run. Major releases trigger the full suite. This is how Decepticon catches regressions before they ship โ a model swap that improves a few tasks but breaks others is exactly the kind of failure binary scoring surfaces immediately.
File: en/features/c2-integration.mdx
title: "C2 Integration"
Overview
Decepticon integrates Sliver C2 as its command-and-control framework, enabling real adversary-grade post-exploitation: implant deployment, session management, credential harvesting, and lateral movement through C2 channels.
C2 is not bolted on as an afterthought โ it's a core component of the operational network architecture.
Enabling C2
Sliver C2 is activated via Docker Compose profiles:
COMPOSE_PROFILES=c2-sliver decepticonThis adds the Sliver team server to the operational network (sandbox-net) alongside the Kali sandbox and any target infrastructure.
Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ sandbox-net (operational) โ
โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โ โ Kali โ โ Sliver โ โ Target โ โ
โ โ Sandbox โโโโ Team Svr โโโโ Infrastructureโ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โ โ โ
โ sliver-client โ
โ (pre-installed) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโThe C2 team server runs entirely on the operational network โ completely isolated from the management infrastructure. No C2 traffic crosses network boundaries.
Capabilities
Implant Generation & Deployment
The agent generates Sliver implants tailored to the target environment and deploys them through the established access:
- Platforms โ Windows, Linux, macOS
- Formats โ Shellcode, executables, shared libraries
- Evasion โ Obfuscation, custom builds
C2 Channels
Multiple communication channels supported:
| Channel | Use Case | Stealth Level |
|---|---|---|
| mTLS | Default โ encrypted, reliable | Medium |
| HTTPS | Blends with normal web traffic | High |
| DNS | Tunnels through DNS queries | Very High |
Post-Exploitation via C2 Sessions
Once an implant establishes a session, the post-exploit agent operates through it:
- Credential harvesting โ Dump credentials, tokens, and keys from compromised hosts
- Lateral movement โ Pivot to internal systems through established C2 sessions
- Internal reconnaissance โ Map networks, enumerate services, and discover new targets from inside the perimeter
- Persistence โ Establish long-term access mechanisms
Profile-Based Configuration
C2 frameworks are swappable via Docker Compose profiles. Only Sliver is implemented and shipping today โ the profile system is designed so additional frameworks (Havoc, Mythic, etc.) can be plugged in later, but those are not yet available:
# Sliver C2 โ the only supported framework today (default)
COMPOSE_PROFILES=c2-sliver
# Planned for future releases (not yet available):
# COMPOSE_PROFILES=c2-havoc
# COMPOSE_PROFILES=c2-mythicFile: en/features/dynamic-infrastructure.mdx
title: "Dynamic Infrastructure"
The Problem with Always-On Stacks
A serious red-team engagement can need any of the following โ Sliver C2, BloodHound CE for Active Directory, Ghidra for reversing, mobile emulation, IoT firmware tooling, ICS protocol simulators. Booting every one of them on every decepticon start would:
- Burn minutes of cold-start time on every launch.
- Consume gigabytes of RAM the operator never asked for.
- Make
decepticon stoptake five minutes to drain.
Default-on, kitchen-sink stacks are how red-team tooling traditionally ships, and it's why operators end up writing custom wrapper scripts that shut things down they didn't want running.
The Decepticon Model (ADR-0006)
The agent decides when a workload is needed and asks for it on the fly. The orchestrator carries three tools:
| Tool | What it does |
|---|---|
ops_start("c2-sliver") |
Spin up the workload's containers on sandbox-net. Returns immediately with state: "starting". |
ops_stop("c2-sliver") |
Graceful shutdown when the workload is no longer needed. |
ops_status() |
Snapshot of every workload's current state โ used for polling fallbacks. |
Specialist sub-agents do not carry these tools โ only the orchestrator does. That keeps the lifecycle decision in one place, prevents specialists from racing each other to bring up the same workload, and avoids accidentally killing a container another specialist is mid-flight on.
How a workload spawn flows
1. Orchestrator: "Objective 3 needs Active Directory exploitation. ops_start('ad')."
2. Agent tool โ Unix socket โ opscontrol daemon
3. opscontrol โ docker compose --profile ad up -d
4. Containers โ state: starting
5. Health check โ state: running
6. Middleware โ injects "<system-reminder>workload ad is running</system-reminder>"
on the agent's next turn โ no polling.
7. Orchestrator: dispatches `ad_operator` sub-agent against the now-ready stack.
8. Engagement finishes โ ops_stop("ad") โ drain โ released RAM.The opscontrol Daemon
opscontrol is a small per-user daemon installed alongside the launcher. It owns the host's Docker socket and runs Compose on behalf of the agent.
Lifecycle management
Three install modes, picked in order:
- systemd user unit (Linux) โ
decepticon opscontrol installwrites a unit at~/.config/systemd/user/decepticon-opscontrol.service. The init system supervises crash-recovery and survives reboot. - launchd LaunchAgent (macOS) โ Same shape, written to
~/Library/LaunchAgents/. - Launcher-spawn fallback โ On hosts without a recognized init system (Windows native, WSL2 without systemd), the launcher forks a detached daemon process and writes a PID file. Less robust than service-managed, but functional.
Security boundary
- Daemon runs as the operator's UID, not root โ it has only the Docker permissions the user already has via
dockergroup membership. - Agent talks to daemon over a Unix domain socket at
$DECEPTICON_HOME/run/ops.sock. Never TCP. Never network-reachable. - A strict allowlist caps what the agent can spawn:
ad, c2-sliver, c2-havoc, reversing, cloud, mobile, phishing,
forensics, ics, iot, supply-chain, wirelessAnything outside the list is rejected at the daemon. The agent cannot, for example, ops_start("postgres") to escalate against the management plane.
Auto-Notification, Not Polling
The naive design would have the agent poll: call ops_start("ad"), then loop on ops_status("ad") until ready, burning tokens and turns on no-ops.
Decepticon ships an OpsControlNotificationMiddleware that subscribes to daemon state events and injects state transitions directly into the agent's next turn as a <system-reminder> HumanMessage. The agent's logical flow is:
Turn N: call ops_start("c2-sliver") โ returns "starting"
Turn N+1: do other work (recon, planning)
Turn N+2: on entry, sees "<system-reminder>workload c2-sliver is now running</system-reminder>"
and dispatches the post-exploit specialistNo polling, no idle waiting, no burned tokens. The same pattern wraps background bash via SandboxNotificationMiddleware โ see Autonomous Execution.
Operator Overrides
For operators who prefer "everything up at launch" โ typically CI regression runs that want the full matrix online before the agent starts โ set COMPOSE_PROFILES explicitly:
# .env
COMPOSE_PROFILES=cli,c2-sliver,ad,reversingThe opscontrol path is bypassed for the listed profiles; everything else still spawns on demand.
For day-to-day use, leave COMPOSE_PROFILES empty and let the agent drive the stack.
What ships in OSS
The opscontrol daemon, the three ops_* tools, the allowlist, the auto-notification middleware, and the systemd/launchd supervisor variants all ship in the OSS release. Workload profile definitions (c2-sliver, ad, reversing, โฆ) live in docker-compose.yml next to the default stack, so adding a workload is a Compose-file change plus an allowlist entry โ no agent code changes required.
File: en/features/engagement-planning.mdx
title: "Engagement Planning"
Overview
Every professional Red Team engagement starts with documentation โ not exploitation. Decepticon enforces this through the Soundwave agent, which interviews the operator and generates a complete engagement package before any offensive action begins.
No engagement runs without proper documentation. This is what separates a professional Red Team platform from a script kiddie's toy.
The Soundwave Agent
Soundwave is Decepticon's engagement planning specialist. Through an interactive interview, it produces:
How It Works
OPPLAN Structure
The OPPLAN is the core document that drives autonomous execution. Each objective contains:
Objective: Compromise external-facing web application
Phase: Initial Access
MITRE ATT&CK: T1190 (Exploit Public-Facing Application)
Acceptance Criteria: Achieve remote code execution on web server
Dependencies: Recon objective completed
Status: PENDINGObjectives are tracked through status transitions: PENDING โ IN_PROGRESS โ PASSED / BLOCKED. The orchestrator manages dependencies and adapts the attack path based on results.
File: en/features/knowledge-graph.mdx
title: "Knowledge Graph"
A long red team engagement produces hundreds of findings, credentials, hosts, services, and detection artifacts. Storing them as flat JSON loses the relationships that make red team output useful โ which credential opened which host? which detection covers which technique? Decepticon stores them in a Neo4j graph instead.
Why a Graph
Attack paths are graphs by nature. A pivot is a relationship; a credential is an edge between an account and a host; a defense brief connects a vulnerability to a detection. Modeling this as a graph means:
- The orchestrator can query "which hosts can I reach from this credential?" in one Cypher query, not by re-reading conversation history.
- The defender's deliverable is a structured graph, not a PDF โ easy to overlay on existing detection coverage.
- Cross-engagement queries become possible: "did this CVE show up in any prior engagement against this customer?"
Node Types
| Node | Represents |
|---|---|
Host |
A discovered host or asset (IP, hostname, OS) |
Service |
A network service running on a host (port, protocol, banner, version) |
Account |
A discovered identity (user, service, machine account) |
Credential |
A captured secret (password, hash, token, key) |
Vulnerability |
A confirmed weakness (CVE, misconfiguration) |
Finding |
A verified observation produced by an agent |
DefenseAction |
A detection rule, mitigation, or patch produced by the Vulnresearch pipeline (Detector, Patcher). The schema reserves room for the planned Defender component to write here once it ships. |
Edge Types
| Edge | Meaning |
|---|---|
RUNS_ON |
Service runs on Host |
OWNS |
Account owns Credential |
AUTHENTICATES_TO |
Credential authenticates to Host or Service |
EXPLOITS |
Finding exploits Vulnerability |
DETECTS |
DefenseAction detects Finding's technique |
MITIGATES |
DefenseAction mitigates Vulnerability |
RESPONDS_TO |
DefenseAction responds to Finding |
LATERAL_TO |
Host pivots to Host (with credential or technique attribution) |
Tools the Agents Use
The graph is exposed to agents through KGMiddleware, which builds two tools per attaching role and dispatches them through a shared KGStore (packages/decepticon/decepticon/middleware/kg_internal/):
| Tool | Purpose |
|---|---|
kg_record(observations) |
Atomic batch write of nodes and edges. The middleware validates the engagement label, applies schema constraints, and wraps the call in a single transaction so partial writes never leave the graph in a torn state. |
kg_ingest(scanner_kind, path) |
Dispatcher into the scanner adapter registry โ nmap_xml, sarif, bloodhound_zip, slither_json, and any plugin-registered scanner. Reads the file, parses, and emits node/edge observations into the same atomic write path as kg_record. |
Agents never write raw Cypher in their prompts. Read paths go through the middleware's typed summary projections (and through Skillogy for ATT&CK lookups); write paths go through kg_record / kg_ingest. This keeps the engagement scope, schema validation, and migration-runner contract centralized so a buggy specialist can't corrupt the graph.
The pre-middleware standalone @tool functions (kg_add_node, kg_add_edge, kg_query, kg_neighbors) are still importable from decepticon.tools.research.tools for transitional callers and emit a DeprecationWarning. New code should attach KGMiddleware and use the middleware-built surface.
Operator Access
The graph is also exposed to the operator:
- Browser: Neo4j browser at
http://localhost:7474with credentials from the onboarding wizard. - CLI:
decepticon kg-healthruns diagnostics and surfaces orphan nodes or missing relationships. - Web Dashboard: The attack graph canvas in the Next.js dashboard renders the live engagement graph.
The Graph as Deliverable
At engagement out-brief, the graph becomes part of the deliverable. The blue team gets:
- A JSON export of all nodes and edges.
- An ATT&CK Navigator layer derived from the graph.
- A "blue spots" overlay โ vulnerabilities the engagement found that the customer's existing detections do not cover.
- A "red spots" overlay โ detections that fired against Decepticon's actions, proving the SOC works.
Privacy and OPSEC
The graph is engagement-scoped. Customer data captured during the engagement (credential strings, service banners, sensitive paths) is encrypted at rest in Neo4j and purged when the engagement is closed unless explicitly retained for the deliverable.
File: en/features/multi-model-routing.mdx
title: "Multi-Model Routing"
Overview
Not every agent task requires the most powerful model. Decepticon uses LiteLLM as a proxy layer to route different agent roles to different model tiers โ balancing cost, speed, and capability.
Model Profiles
Three built-in profiles optimize for different use cases:
| Profile | Orchestrator | Exploit | Recon | Use Case |
|---|---|---|---|---|
| eco | Opus 4.7 | Sonnet 4.6 | Haiku 4.5 | Production โ best cost/performance ratio (default) |
| max | Opus 4.7 | Opus 4.7 | Sonnet 4.6 | High-value targets โ maximum capability |
| test | Haiku 4.5 | Haiku 4.5 | Haiku 4.5 | Development/CI โ fast iteration |
The full per-tier model matrix across providers is:
| Tier | Anthropic API | Anthropic OAuth | OpenAI | MiniMax | |
|---|---|---|---|---|---|
| HIGH | claude-opus-4-7 | auth/claude-opus-4-7 | gpt-5.5 | gemini-2.5-pro | MiniMax-M2.5 |
| MID | claude-sonnet-4-6 | auth/claude-sonnet-4-6 | gpt-5.4 | gemini-2.5-flash | MiniMax-M2.5-lightning |
| LOW | claude-haiku-4-5 | auth/claude-haiku-4-5 | gpt-5-nano | gemini-2.5-flash-lite | โ |
The eco profile is recommended for most engagements. The orchestrator needs deep reasoning (Opus), but reconnaissance tasks work well with faster, cheaper models.
Role-Based Routing
Each agent role has different cognitive demands:
Automatic Fallback
Each tier has a fallback chain across providers. If the primary provider hits a rate limit or experiences an outage, Decepticon seamlessly switches to the next provider in the chain:
HIGH: Opus 4.7 โ GPT-5.5 โ Gemini 2.5 Pro โ MiniMax-M2.5
MID: Sonnet 4.6 โ GPT-5.4 โ Gemini 2.5 Flash โ MiniMax-M2.5-lightning
LOW: Haiku 4.5 โ GPT-5-nano โ Gemini 2.5 Flash-LiteProvider order is configurable via the DECEPTICON_AUTH_PRIORITY environment variable (e.g., anthropic_oauth,anthropic_api,openai_api,google_api,minimax_api). The switch is transparent โ no manual intervention, no interrupted operations.
Provider Support
Any LiteLLM-compatible backend works:
- Anthropic โ Claude Opus 4.7, Sonnet 4.6, Haiku 4.5 (API key or Claude OAuth subscription)
- OpenAI โ GPT-5.5, GPT-5.4, GPT-5-nano
- Google โ Gemini 2.5 Pro / Flash / Flash-Lite
- MiniMax โ MiniMax-M2.5 and M2.5-lightning
- Self-hosted โ vLLM, Ollama, or any OpenAI-compatible endpoint
Configure via decepticon onboard or environment variables. See Configuration for details.
File: en/features/offensive-vaccine-pipeline.mdx
title: "Offensive Vaccine Pipeline"
The Offensive Vaccine is the loop that gives Decepticon its name and its purpose: every offensive action becomes a defensive artifact. This page documents the five-stage Vulnresearch pipeline that ships today, and the planned defense-side components that will eventually close the loop.
The Loop
attack โ detection rule โ verification โ exploit PoC โ patch
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
regression coverageEach stage is owned by a specialist agent. Together they implement what the security industry calls "purple teaming," fully automated.
The Five Stages
The Vulnresearch Orchestrator
The five agents do not run as a fixed pipeline โ they are orchestrated by a sixth agent, Vulnresearch, that decides the order based on findings. If the Scanner produces a high-confidence candidate, Vulnresearch may skip directly to Verifier. If the Verifier rejects a candidate, the loop terminates without burning Patcher or Exploiter resources.
| Agent | Inputs | Outputs |
|---|---|---|
| Scanner | Target scope | Candidate findings list |
| Detector | Candidate finding | Detection rule (Sigma / YARA / heuristic) |
| Verifier | Candidate + detection rule | Verified-yes or verified-no, with two methods of evidence |
| Patcher | Verified candidate | Patch (code or config) + patch_verify proof the fix closes the bug |
| Exploiter | Patched candidate | Reproducible PoC against the patch โ fails if the patch held, succeeds if the patch is incomplete (loop iterates) |
The Planned Defense Component
The planned defense-closing component is not part of the five-stage pipeline โ it is intended to be a parallel agent that consumes the artifacts and produces the Defense Brief: the document handed to the blue team at engagement out-brief.
The Defense Brief is planned to contain:
- The technique used (MITRE ATT&CK ID)
- The detection rule produced by the Detector
- The PoC produced by the Exploiter
- The recommended patch from the Patcher
- The verification status (did the patch break the PoC?)
- The mapping to the blue team's existing detection coverage (gaps)
This is the artifact that will eventually transform an offensive engagement into a defensive uplift. Until that component lands, operators assemble the brief manually from the workspace outputs.
Why Two-Method Verification Matters
A single verification method can be fooled โ a network scan might match a banner without the vulnerable code being reachable; a PoC might succeed against a honeypot. The Verifier requires two independent methods, e.g.:
- Static evidence (version banner) + dynamic evidence (PoC payload response)
- Network-side detection (IDS firing) + host-side detection (process artifact)
- Source-code analysis + runtime instrumentation
Decepticon refuses to escalate a finding to the Patcher / Exploiter stages without the two-method gate. This dramatically reduces wasted compute and false alarms in the engagement record.
Knowledge Graph Integration
Every artifact produced by the pipeline lands in the Neo4j attack graph:
- Findings become
Vulnerabilitynodes - Detection rules become
DefenseActionnodes withDETECTSedges - Patches become
DefenseActionnodes withMITIGATESedges - Verifications become provenance edges
The graph is queryable mid-engagement and exportable as the engagement deliverable.
File: en/features/opplan-system.mdx
title: "OPPLAN System"
The OPPLAN (Operations Plan) is the bridge between human intent and autonomous execution. It is the single source of truth that the orchestrator schedules, that specialist agents consume, and that the operator approves. Without an OPPLAN, Decepticon will not run.
What an OPPLAN Is
An OPPLAN is a structured list of objectives โ each tagged with kill chain phase, MITRE ATT&CK IDs, OPSEC level, C2 tier, dependencies, and acceptance criteria. The Soundwave agent generates it from the operator interview; the Decepticon orchestrator executes it; the operator can edit it at any time.
- id: obj-001
phase: RECON
title: "Identify exposed services on target subnet"
mitre_attack: [T1595, T1592]
opsec_level: low
c2_tier: null # not applicable in recon
dependencies: []
acceptance:
- "List of open ports and services per host"
- "Service banners captured"
status: pending
- id: obj-002
phase: INITIAL_ACCESS
title: "Exploit vsftpd 2.3.4 on 10.0.2.4"
mitre_attack: [T1190]
opsec_level: medium
c2_tier: short_haul
dependencies: [obj-001]
acceptance:
- "Foothold shell on target"
- "Implant deployed via Sliver"
status: pendingOPPLAN Middleware
The orchestrator does not store the OPPLAN in conversation context โ it lives in dedicated middleware (OPPLANMiddleware) that exposes structured tools and injects current state into every LLM call.
CRUD Tools
The orchestrator and Soundwave manipulate the OPPLAN through five dedicated tools:
| Tool | Purpose |
|---|---|
add_objective |
Append a new objective with full schema |
get_objective |
Retrieve a single objective by ID |
list_objectives |
List all objectives, optionally filtered by phase or status |
update_objective |
Mutate an objective's status, evidence, or fields |
objective_expand |
Split an objective into sub-objectives (PTT โ Pentesting Task Tree) |
This is the same structural pattern that Claude Code uses for its V2 task system โ task state is a typed object, not a thread of messages.
Dynamic State Injection
On every LLM call, the middleware injects the current OPPLAN state โ which objectives are pending, in-progress, or complete โ directly into the system prompt block. The orchestrator never has to re-derive plan state from chat history. This is what makes Decepticon's reasoning robust across long engagements.
Dependency Resolution
Objectives can declare dependencies. The orchestrator schedules only objectives whose dependencies are complete. This gives the operator a deterministic execution order without hand-coding a workflow:
obj-001 (Recon)
โโ obj-002 (Exploit, depends on obj-001)
โโ obj-003 (Post-Exploit, depends on obj-002)
โโ obj-004 (Persistence, depends on obj-002)When obj-002 completes, both obj-003 and obj-004 become eligible โ and the orchestrator can spawn specialist agents for them in parallel.
Pentesting Task Tree (PTT)
For complex objectives, the orchestrator can expand a single objective into a tree of sub-objectives via objective_expand. This is how Decepticon handles "fuzzy" goals like "compromise the Active Directory forest" โ it decomposes them dynamically, in-flight, into concrete sub-objectives the AD Operator agent can execute.
obj-005: Compromise AD forest (parent)
โโ obj-005.1: Enumerate domain via BloodHound
โโ obj-005.2: Identify Kerberoastable accounts
โโ obj-005.3: Extract TGT hashes
โโ obj-005.4: Crack hashes offlineEach child inherits the parent's RoE constraints and ATT&CK tag-set.
Approval Gate
The OPPLAN is the approval contract. After Soundwave generates it, the operator reviews and approves it through the CLI. Only an approved OPPLAN can be executed. This is the Trusted Agent handshake encoded in software.
OPPLAN and Fresh Context
Each objective is executed by a fresh agent instance with a clean context window. The orchestrator passes the relevant prior findings explicitly โ not the entire conversation history. This means a 200-objective engagement does not cause context degradation.
File: en/features/skill-system.mdx
title: "Skill System"
Overview
Decepticon agents don't operate from hardcoded playbooks. They draw from a skill system โ a curated library of offensive techniques organized by kill chain phase and tagged with MITRE ATT&CK identifiers.
Progressive Disclosure
Skills use a progressive loading architecture to keep agent context windows clean:
- Initial load โ Only skill frontmatter (name, description, ATT&CK tags, phase) is loaded
- On-demand โ When an agent selects a skill, the full content is loaded via
read_file() - Clean context โ Agents only carry the detail they need for their current objective
This prevents context bloat. An agent working on initial access doesn't need the full content of lateral movement techniques โ just their existence and metadata.
Skill Categories
Skills are organized by agent role, not by a single kill-chain dimension. This lets the orchestrator load only the skills relevant to the specialist it is dispatching, while still covering the full attack lifecycle. The library currently ships these categories:
| Category | Owning Agent(s) | Coverage |
|---|---|---|
soundwave/ |
Soundwave | RoE / ConOps / OPPLAN templates, threat profiles, deconfliction |
decepticon/ |
Decepticon (orchestrator) | OPPLAN dispatch patterns, sub-agent routing |
recon/ |
Recon | Passive recon, active recon, web recon, cloud recon |
osint/ |
OSINT Operator | Open-source intelligence โ leaked credentials, breach data, public footprint |
exploit/ |
Exploit | Web exploitation, Active Directory initial access |
post-exploit/ |
Post-Exploit | Privilege escalation, lateral movement, persistence |
ad/ |
AD Operator | BloodHound, Kerberoasting, ticket forging, ACL abuse |
cloud/ |
Cloud Hunter | IAM analysis, metadata abuse, cloud-key extraction |
contracts/ |
Contract Auditor | Solidity static analysis, Foundry PoC harness |
reverser/ |
Reverser | Binary triage, packer detection, ROP gadgets, Ghidra/radare2 |
phisher/ |
Phisher | Pretext-aware payload generation, landing pages, harvester scaffolds |
mobile/ |
Mobile Operator | iOS / Android app triage, MASTG checks, emulator-driven dynamic analysis |
wireless/ |
Wireless Operator | 802.11 / Bluetooth / SDR recon and exploitation |
iot/ |
IoT Operator | Embedded device firmware extraction, JTAG/UART, protocol reversing |
ics/ |
ICS Operator | SCADA / DCS / PLC engagement workflows on isolated test ranges |
supply-chain/ |
Supply-Chain Operator | Build-system, dependency, signing-key, and CI/CD compromise patterns |
dfir/ |
Forensicator | Volatile data capture, timeline reconstruction, IOC pivoting |
analyst/ |
Analyst | Cross-correlation, knowledge-graph queries, narrative drafting |
shared/ |
All agents | OPSEC, defense evasion, finding protocol, adversary emulation, references, stealth infra |
The vulnresearch plugin's stage agents (scanner, detector, verifier, patcher, exploiter) draw their skill catalog from a separate plugins/ tree when the bundle is loaded.
The progressive-disclosure loader filters this catalog by ATT&CK overlap with the active threat profile โ out-of-profile skills are kept off the agent's working set entirely.
Skillogy: Graph-Backed Skill Resolver
The catalog above is the source of truth on disk. The catalog the agent actually queries lives in a separate Neo4j-backed graph owned by a standalone Skillogy service. Why a graph and not just read_file() against a directory tree?
- Skills reference each other โ
kerberoastingbuilds onad-reconand chains intoticket-forging. A graph lets the agent jump along those edges. - Filtering by ATT&CK ID, tag, subdomain, or tactic ID needs index lookups that walking the filesystem can't answer cheaply.
- Multiple agents read concurrently; the graph centralizes consistency and avoids races on file caches.
Skillogy runs as a sibling container (port 9100 inside the management network) with three agent-facing tools, all of them thin REST clients exposed through SkillogyMiddleware:
| Tool | What it does |
|---|---|
find_skill(query?, subdomain?, mitre_id?, tag?, tactic_id?, limit=20) |
AND-combined relationship-aware discovery. Returns matching :Skill nodes with their frontmatter โ body deferred. |
load_skill(name_or_path) |
Fetch the full body + frontmatter of one :Skill node. Same progressive-disclosure principle as before, just over REST. |
traverse(from_path, edge_types?, depth=2) |
Explicit graph BFS from a seed skill โ follow BUILDS_ON, CHAINS_TO, MITRE_RELATED edges to find adjacent techniques. |
Hard ACL (ADR-0008)
Skillogy isn't a flat catalog. Each agent role only sees the slice the orchestrator wants it to see โ the ad_operator should not be browsing contracts/ skills, the contract_auditor should not be reading ad/. ADR-0008 wires this as a hard ACL rather than a soft convention: every Skillogy call carries an allowed_path_prefixes parameter (e.g. ["skills/standard/ad/", "skills/shared/"]) and the service rejects anything outside those prefixes at the query layer. Cross-role reads only succeed when the requested skill lives under skills/shared/.
The ACL is set by the agent factory (not the model), so a specialist can't be talked into widening it via prompt injection.
How the file catalog and the graph stay in sync
The on-disk skill files remain the source of truth. The Skillogy service ingests them at container start (or via an explicit rebuild call) and projects them into Neo4j as :Skill nodes connected by typed edges derived from frontmatter. To add a skill: drop a SKILL.md into the right category directory, rebuild the graph, and it shows up to every agent whose ACL allows that prefix.
MITRE ATT&CK Integration
ATT&CK mapping is woven into every layer of Decepticon โ not added after the fact:
Skill Frontmatter Example
Each skill is a directory containing a SKILL.md (frontmatter + body) and optional references/, scripts/, and assets/ subdirectories.
---
name: passive-recon
description: "Use when gathering intelligence WITHOUT touching the target"
allowed-tools: Bash Read Write
metadata:
subdomain: reconnaissance
tags: passive, dns, subdomain-enum, whois, ct-logs
mitre_attack: T1590, T1591, T1592
---The agent sees this metadata when browsing available skills. Only when it selects the skill does the full body โ commands, detection notes, references โ get loaded into context. Decepticon enforces a SKILL-FIRST RULE: agents must load the relevant skill before acting on a matching trigger keyword.
File: en/getting-started/configuration.mdx
title: "Configuration"
API Key Setup
Decepticon requires an LLM API key to power its agents. Run the interactive setup wizard:
decepticon onboard # Primary setup flow
decepticon onboard --reset # Reconfigure from scratchSupported Providers
Decepticon uses LiteLLM as its model proxy, supporting any compatible backend:
| Provider | Models | Notes |
|---|---|---|
| Anthropic API | Claude Opus, Sonnet, Haiku | Recommended for best performance |
| Anthropic OAuth | Same models, via Claude subscription | Use Claude Code OAuth credentials |
| OpenAI | GPT-5.5, GPT-5.4, GPT-5-nano | Full support with automatic fallback |
| Gemini 2.5 Pro / Flash / Flash-Lite | Via LiteLLM proxy | |
| MiniMax | MiniMax-M2.5, MiniMax-M2.5-lightning | Alternative high/mid tier |
| Custom | Any LiteLLM backend | Self-hosted or alternative providers |
Environment Variables
You can also configure via environment variables:
# Primary provider
export ANTHROPIC_API_KEY="sk-ant-..."
# Or OpenAI
export OPENAI_API_KEY="sk-..."
# Or set via LiteLLM config for custom backendsModel Profiles
Decepticon routes different agent roles to different model tiers for optimal cost/performance balance:
| Profile | Orchestrator | Exploit | Recon | Use Case |
|---|---|---|---|---|
| eco | Opus 4.7 | Sonnet 4.6 | Haiku 4.5 | Production โ best cost/performance ratio (default) |
| max | Opus 4.7 | Opus 4.7 | Sonnet 4.6 | High-value targets โ maximum capability |
| test | Haiku 4.5 | Haiku 4.5 | Haiku 4.5 | Development/CI โ fast iteration |
Each profile includes automatic fallback chains. If the primary provider is unavailable or rate-limited, Decepticon seamlessly switches to the next provider in the chain (e.g., Opus 4.7 โ GPT-5.5 โ Gemini 2.5 Pro โ MiniMax-M2.5).
Select your profile during decepticon onboard or set it at any time via the DECEPTICON_MODEL_PROFILE environment variable. The eco profile is the default and recommended for most operations.
C2 Configuration
Sliver C2 integration is profile-based via Docker Compose. The COMPOSE_PROFILES environment variable is read from your .env (or shell) before the launcher starts the stack โ it is not a flag to the decepticon command itself. Sliver is enabled by default.
# .env (default)
COMPOSE_PROFILES=c2-sliver
# Or override per-run via shell
COMPOSE_PROFILES=c2-sliver decepticonWhen enabled, the Sliver team server starts on the operational network with:
- Auto-generated operator configuration
- Pre-installed
sliver-clientin the sandbox - mTLS, HTTPS, and DNS C2 channel support
Docker Resources
Decepticon runs entirely in Docker containers. Recommended resource allocation:
| Component | CPU | Memory | Notes |
|---|---|---|---|
| LangGraph Platform | 1 core | 1 GB | Management network โ agent orchestration |
| LiteLLM Proxy | 0.5 core | 512 MB | Management network |
| PostgreSQL | 0.5 core | 512 MB | Management network โ engagement state |
| Neo4j | 1 core | 1 GB | Bridges both networks โ knowledge graph |
| Web Dashboard | 0.5 core | 512 MB | Management network โ Next.js |
| Kali Sandbox | 2 cores | 4 GB | Operational network โ runs offensive tools |
| Sliver C2 | 1 core | 1 GB | Operational network (default profile) |
File: en/getting-started/library-usage.mdx
title: "Library & SDK Usage"
Install from PyPI
Decepticon is published as a Python package. Install the core SDK:
pip install decepticon # core SDK
pip install "decepticon[neo4j]" # + the knowledge-graph attack-chain toolsThe two tiers
| Tier | What | How it ships |
|---|---|---|
| SDK (this package) | decepticon/ โ agent factories, middleware, tools, backends, the llm factory, and skills (bundled as package data) |
PyPI wheel โ pip install decepticon |
| Runtime services | LiteLLM proxy, Kali sandbox, PostgreSQL, Neo4j | GHCR Docker images + docker compose |
The SDK connects to the services via environment variables:
DECEPTICON_LLM__PROXY_URLโ the LiteLLM proxy (defaulthttp://localhost:4000)SAAS_SANDBOX_URLโ the sandbox HTTP daemon (e.g.http://localhost:9999)
For a turnkey local stack, use the Quick Start installer. The pip package is for embedding the agents into your own service.
Use a pre-built agent
from decepticon.agents.standard.recon import create_recon_agent
agent = create_recon_agent() # default OSS configurationEach of the 16 agent factories accepts langchain-style keyword overrides โ tools=, middleware=, system_prompt=, llm=, and more.
Extend with a plugin bundle
Ship proprietary tools, middleware, prompts, or sub-agents without forking โ register a PluginBundle under the decepticon.bundles entry point:
from decepticon.plugin_loader import PluginBundle
MY_BUNDLE = PluginBundle(
bundle="mybundle",
replaced_tools={"ask_user_question": my_ask_tool},
prompts={"recon": {"prepend": "<MY_HEADER>..."}},
)# your package's pyproject.toml
[project.entry-points."decepticon.bundles"]
mybundle = "my_pkg.bundles:MY_BUNDLE"Activate it with DECEPTICON_PLUGINS=standard,mybundle. This is exactly how a downstream product layers proprietary capability on top of the open core โ it depends on decepticon, it does not fork it.
Versioning
Pin a compatible range in your pyproject.toml:
dependencies = ["decepticon>=1.1,<2"]The full override surface โ factory kwargs, declarative PluginBundle plugins, build_middleware(slots=...) for custom orchestrators, and the safety gate โ is documented in docs/library-usage.md.
File: en/getting-started/quick-start.mdx
title: "Quick Start"
Prerequisites
You need two things:
- Docker (with Docker Compose v2)
- An API key (Anthropic, OpenAI, or any LiteLLM-compatible provider)
That's it. Everything else runs inside containers.
Installation
curl -fsSL https://decepticon.red/install | bashThis pulls the Decepticon images, sets up the isolated network architecture, and installs the decepticon CLI.
Configuration
Configure your API key:
decepticon configThis opens an interactive configuration wizard where you can set:
- LLM Provider โ Anthropic, OpenAI, or other LiteLLM backends
- API Key โ Your provider API key
- Model Profile โ
eco,max, ortest(see Multi-Model Routing)
Launch
Start Decepticon:
decepticonThis starts all services (agent API, LiteLLM proxy, sandbox, database) and opens the interactive CLI. You'll see the real-time streaming interface where you can create engagements and execute operations.
Try the Demo
Want to see Decepticon in action before setting up your own engagement? Run the guided demo:
decepticon demoThe demo launches Metasploitable 2 as a target, loads a pre-built engagement, and runs the full kill chain automatically:
No additional configuration needed beyond your API key.
Next Steps
File: en/introduction/history-and-evolution.mdx
title: "History & Evolution"
The development of Decepticon did not start overnight. It is the culmination of years of research into applying artificial intelligence to offensive security. Understanding our past approaches provides context for why Decepticon is currently designed as an autonomous Autonomous Hacking Agent powered by Large Language Models (LLMs).
Here is a look back at the evolutionary milestones of Decepticon.
2021: Purple Team AI
In the early stages, the concept originated as a Purple Team AI. The fundamental idea was to create a continuous, automated feedback loop between offense and defense.
- Red AI vs. Blue AI: We envisioned two opposing AI models. The Red AI would launch attacks, and the Blue AI would analyze the attack vectors and issue patches.
- The Philosophy: Security is not static. By pitting two AIs against each other, the overarching system (the Purple Team) inherently becomes stronger over time.
2022: Reinforcement Learning (RL) Environment
To move beyond abstract concepts, we attempted to ground the interaction within a concrete network simulation using Reinforcement Learning (RL).
- The Virtual Network: We built environments containing simulated servers and networks.
- Agent-Based Learning: The Red Team AI would issue "Attack Requests", and the environment would return the "next_state" or a "reward" based on the attack's success.
- The Challenge: While RL is powerful for games with defined rules (like Chess or Go), real-world network environments and "vibes" are infinitely complex. Designing accurate reward functions for every possible cyberattack vector proved to be a massive bottleneck.
2023: Generative Adversarial Networks (GANs)
Recognizing the difficulty of defining rigid RL environments, we explored the use of Generative Adversarial Networks (GANs) to simulate attack data.
- Generator vs. Discriminator: In this architecture, the Generator (acting offensively) tried to create "fake data" (attack payloads) that looked like normal network traffic. The Discriminator (acting defensively) tried to distinguish between real, benign traffic and the malicious fakes.
- The Limitation: GANs were excellent at generating payloads that bypassed signature-based WAFs (Web Application Firewalls). However, they lacked contextual understanding. They couldn't perform multi-stage attacks, read a server's response, or pivot through a network dynamically.
Present: The Autonomous Hacking Agent
Through these iterative failures and successes, we realized that true offensive capability requires more than mathematical optimization or payload generation. It requires reasoning.
Today, Decepticon leverages advanced LLMs to act as an autonomous agent. Instead of relying on rigid environments or statistical distributions, it reads the "vibe" of the targetโunderstanding human context, adapting to complex defenses, and executing multi-stage Red Team operations.
File: en/introduction/overview.mdx
title: "Overview"
Welcome to the Decepticon documentation.
What is Decepticon?
Decepticon is not a traditional vulnerability scanner or a standard pentesting tool. It is an autonomous Autonomous Hacking Agent built strictly for Red Team Testing.
While generic tools rely on static checklists to find outdated software, real-world attackers simulate unpredictable, context-aware attacks. Decepticon embraces this attacker mindset, acting autonomously to discover deep, logical, and context-based vulnerabilities (the "vibe" of the target).
The Motivation: An Offensive Vaccine
Why are we building a relentless, AI-powered hacking agent?
The ultimate goal of Decepticon is not to attack, but to build an impenetrable defense.
In today's cybersecurity landscape, malicious threat actors are already leveraging AI to scale and automate their attacks. A project initiated 7 months ago has already proven that AI-driven offensive capabilities are not a future hypothesisโthey are a reality right now.
To counter an AI, you need an AI. We cannot defend against infinite, machine-speed attacks using traditional human-speed defenses.
Decepticon exists to provide infinite offensive feedback. By deploying this Autonomous Hacking Agent against our own systems, we subject ourselves to continuous, relentless attack scenarios. It acts as an Offensive Vaccine:
- Inoculation: By absorbing infinite AI attacks in a controlled environment, we expose blind spots and logical flaws.
- Evolution: We force our defensive infrastructure to evolve into a vastly more robust state before real, malicious actors can strike.
File: en/introduction/pentesting-vs-redteaming.mdx
title: "Pentesting vs Red Teaming"
To fully grasp Decepticon's identity as an Autonomous Hacking Agent, it is essential to understand the fundamental differences between Vulnerability Assessment, Penetration Testing, and Red Team Engagement. Decepticon explicitly targets the methodology of the last โ and adds a fourth, machine-speed mode on top.
The Three Disciplines
The security testing landscape forms an inverted pyramid: vulnerability assessments at the wide base (broad, shallow), penetration tests in the middle (targeted, deeper), and red team engagements at the apex (scenario-driven, full-organization).
Side-by-Side Comparison
The following framing is adapted from the canonical comparison published by redteam.guide โ extended with a fourth column for the autonomous-agent mode Decepticon enables.
| Aspect | Vulnerability Assessment | Penetration Test | Red Team Engagement | Autonomous Red Team (Decepticon) |
|---|---|---|---|---|
| Goal | Identify technical flaws | Exploit flaws to prove attack paths | Train and measure blue team effectiveness | Continuously rehearse the blue team against an AI adversary |
| Scope | Wide, shallow | Targeted systems | Full organization | Full organization, programmatically expandable |
| Focus | Technology | Technology | People, processes, and technology | People, processes, technology โ driven by an OPPLAN |
| Duration | Days | 1โ2 weeks | 2โ6 weeks | Hours to continuous (machine-speed loops) |
| Threat Model | CVE-based | Attack surface | Adversary emulation | Adversary emulation, dynamic per engagement |
| Risk Measurement | Attack-surface reduction | Technical exploit impact | Security operations assessment | Operations assessment + regression coverage over time |
| Output | Vulnerability list | Exploit evidence and attack paths | Security operations assessment | OPPLAN-tagged findings, attack graph, remediation patches |
The fourth column is not a replacement for human red teams โ it is the same discipline, scaled. Humans set the Rules of Engagement, define objectives, and adjudicate findings; Decepticon executes the kill chain inside that envelope.
The Limitation of Traditional Pentesting
Traditional penetration testing focuses on evaluating security in silos โ web, mobile, or external networks individually.
- Siloed Evaluation: Pentesting might find SQL injection in a single web app, but it doesn't test if defenders can detect an attacker using that web app as a proxy to pivot into the internal network.
- The Soccer Analogy: Pentesting is like practicing shooting, passing, and dribbling individually. These are essential skills, but practicing them in isolation for four years won't prepare a team for the World Cup if they never play an 11-vs-11 match.
- The Real Limitation: Pentests fail to test how the organization's overall security controls, blue team, and processes work together organically during a real, multi-stage attack.
Red Team Testing: The "Real Match"
Red Teaming is the actual 11-vs-11 practice match โ a comprehensive adversarial simulation designed to test an organization's holistic defense capabilities over an extended period (typically 4โ8 weeks).
Core Attributes of Red Teaming
- Holistic & Multi-Domain โ Real attackers don't attack just the web app and stop. They chain cloud, mobile, internal networks, and even physical or social engineering vectors. Red Teaming mirrors this.
- Stealth & Persistence โ The primary goal is to remain undetected by the blue team. Red teamers operate quietly, evading SIEMs and EDRs, and maintain access (persistence) over long periods.
- Realistic Objectives โ Instead of listing CVEs, the goal is practical: Can we access the SWIFT infrastructure? Can we exfiltrate dummy customer data without the blue team noticing?
- Threat Gets a Vote โ Engagements are grounded in what real threats actually do, not just what defenders plan for. The threat profile drives the TTPs.
- Assumed Breach โ If initial access (e.g., phishing) is blocked, red teamers shift to an "assumed breach" scenario: a beacon is planted internally to evaluate post-breach response, lateral-movement detection, and internal recon.
The Engagement Lifecycle: Get In, Stay In, Act
A red team engagement follows three phases โ a model used widely across the industry and codified in the redteam.guide methodology:
Why Decepticon Is an Autonomous Hacking Agent
Decepticon automates the Red Teaming mindset, not the pentest checklist. It does not blast a network with automated scanners โ that would alert the blue team instantly.
Instead, it reads the context of the environment. It maintains stealth, performs internal reconnaissance, executes lateral movement, and simulates assumed-breach scenarios autonomously. The kill chain is driven by an OPPLAN โ a structured operations plan the agent generates from the operator's RoE and ConOps before a single packet leaves the wire.
By taking on the role of a relentless, AI-driven red team, Decepticon provides infinite offensive feedback. It is the Offensive Vaccine โ training defense systems against the organic, stealthy realities of modern cyber threats rather than handing them a checklist of outdated software.
File: en/vision/autonomous-hacking.mdx
title: "Autonomous Hacking"
What is Autonomous Hacking?
Let's be honest. The "AI + hacking" space is exhausting.
Every other week, someone drops a demo: "Look, GPT can run nmap!" Cool. Then what? It either ends up as a party trick that no one actually uses in production โ or worse, it crosses a line nobody should cross.
"Yet another AI pentesting tool... cool demo. But when does it actually do something a real attacker would?"
Fair question. Here's our answer.
Autonomous Hacking is the next evolution in offensive security. It's not about making hacking/pentesting easier or more accessible. It's about making real Red Team operations executable at machine speed โ with the rigor, documentation, and legal framework that separates professionals from script kiddies.
Traditional red teaming demands hundreds of hours of manual work, such as scanning, enumerating, pivoting, documenting, etc. Most of it is repetitive and all of it is exhausting. Meanwhile, the attack surface grows faster than any human team can cover.
Autonomous Hacking changes the equation. AI agents handle the grind: running scans, analyzing output, chaining techniques, and adapting in real time. The human sets the mission, defines the rules, and focuses on what machines still can't do โ intuition, judgment, and creative thinking.
"Delegate the repetitive. Focus on the decisive."
From Vibe Hacking to Autonomous Hacking
When Decepticon was first conceived, we used the term Vibe Hacking โ the idea that an AI agent could read the "vibe" of a target environment: understanding context, adapting strategies on the fly, and executing complex attack chains without rigid playbooks.
That core capability hasn't changed. What changed is the framing.
"Vibe Hacking" captured the how โ contextual, adaptive, reasoning-based attacks. But it didn't capture the why โ and the "why" is what matters most.
Autonomous Hacking encompasses the full picture:
- The How โ AI agents that reason about targets, adapt to defenses, and chain multi-stage attacks autonomously
- The Why โ Providing infinite offensive feedback to build impenetrable defense systems
- The Framework โ Operating within professional Red Team methodology: RoE, OPPLAN, ConOps, formal authorization
The term "autonomous" also communicates what makes this different from every other AI security tool: the agent doesn't just run a script. It thinks, adapts, and persists โ like a real adversary.
"But wait โ aren't you guys just the same?"
Great question. Short answer: No.
Here's the thing most people miss about offensive security. There's a massive difference between hacking and Red Team Testing.
Red Team Testing is a regulated, authorized, and professionally disciplined. Before a single packet leaves the wire, there are documents. Agreements. Rules.
- RoE (Rules of Engagement) โ Defines what you can and can't touch. Scope, timing, boundaries. Violate this and you're not a red teamer, you're a criminal.
- ConOps (Concept of Operations) โ Threat actor profile, attack methodology, the "who are we pretending to be" document.
- Deconfliction Plan โ Separates red team activity from real threats. Source IPs, user-agents, time windows, and a shared code for real-time deconfliction calls with the SOC.
- OPPLAN (Operations Plan) โ The full mission plan. Objectives, kill chain phases, acceptance criteria. Every action maps to a purpose.
Decepticon supports all of this.
Every engagement starts with proper documentation. Every objective is tracked. Every action operates within defined boundaries.
The agent doesn't just hack. It operates under a formal operations plan, respects the Rules of Engagement, and produces auditable findings. This isn't an entertaining Proof of Concept. It's a professional Red Team platform that happens to be autonomous.
Why Decepticon?
Penetration testing finds vulnerabilities. Red teaming solves the most difficult problem: can your organization survive a real attack?
Most security tools stop at the scan report. Decepticon rather thinks in kill chains โ reconnaissance, exploitation, privilege escalation, lateral movement, persistence โ executing multi-stage operations the way a real adversary would, not the way a scanner does.
Four principles guide everything we build:
The Bigger Picture: Offense Serves Defense
Here's what many "offensive AI" projects get wrong: they treat the attack as the destination.
Decepticon is not the destination. It's Step 1.
There are already plenty of offensive AI agents out there. The world doesn't need another "look, AI can hack things" demo. What the world actually needs is a system that turns offensive capabilities into defensive evolution:
Think of it as an Offensive Vaccine. Just as a biological vaccine exposes the body to weakened pathogens to build immunity, Decepticon exposes your infrastructure to relentless AI-driven attacks to build resilience.
The true value isn't in the attack. It's in the defense system that emerges from surviving it.
File: en/vision/core-philosophy.mdx
title: "Core Philosophy"
Decepticon is not built on a whim. Every architectural decision stems from a set of core beliefs forged through years of research, failures, and hard-earned insights. This page outlines the philosophical pillars that define what Decepticon isโand what it deliberately is not.
Reasoning Over Signatures
Traditional security tools operate on a signature-based paradigm: databases of known vulnerabilities (CVEs), known malicious payloads, and known attack patterns. If an attack doesn't match a signature, it slips through undetected.
Decepticon rejects the signature-first approach. Instead of pattern-matching against a static database, it reasons about the target:
- Contextual Understanding: It reads server responses, understands application flow, and identifies where human assumptions create exploitable gaps.
- Dynamic Strategy: Instead of running the same scan playbook every time, it adapts its approach based on the unique "vibe" of each target environment.
- Chain-of-Thought Attacks: It constructs multi-step attack chains, where each step informs the nextโjust like a real human attacker would.
Hybrid Intelligence
Decepticon is not about replacing proven security tools with AI. It's about combining them intelligently.
The cybersecurity field has decades of battle-tested techniques: fuzzing, static analysis, network scanning, payload mutation. These tools are powerful within their domains. But they lack the ability to reason, adapt, and connect the dots across multiple attack surfaces.
Decepticon's approach is to let each do what it does best:
- Fuzzers generate thousands of malformed inputs faster than any LLM could.
- Scanners enumerate services and known vulnerabilities with mechanical precision.
- The Agent decides when to deploy these tools, interprets their results, chains them into meaningful attack sequences, and pivots when the situation changes.
This is Hybrid Intelligence: the precision of automation guided by the reasoning of an AI agent.
The Offensive Vaccine
As discussed in the Overview, Decepticon's ultimate goal is not to attackโit is to immunize.
Just as a biological vaccine exposes the body to weakened pathogens to build immunity, Decepticon exposes your infrastructure to relentless AI-driven attacks to build resilience.
But here's what makes this different from "just another scanner":
- Infinite Feedback Loop: The agent generates an endless stream of diverse, context-aware attack scenariosโnever repeating the same playbook.
- Realistic Threat Simulation: To be an effective vaccine, attacks must mirror real-world threat actors. A tool that loudly port-scans and checks for default credentials is not a vaccine; it's a placebo.
- Measurable Evolution: Every cycle of attack and defense produces measurable data, allowing the Blue Team to quantify their improvement over time.
Human in the Loop
Autonomous does not mean unsupervised. Decepticon places the human operator as the ultimate authorityโthe true decision-maker and intelligence behind the operation.
The agent operates autonomously, executing its strategies and adapting in real-time. But the human is always present:
- Real-Time Monitoring: Like modern AI agent services, operators can watch the agent's actions as they happenโseeing what it's doing, why it's doing it, and what it plans to do next.
- Intervention at Any Time: The operator can pause, redirect, or override the agent's decisions at any moment. The agent is the tool; the human is the strategist.
- Feedback-Driven Learning: Human feedback shapes the agent's behavior. The operator isn't just watchingโthey're actively refining the operation.
Stealth as Foundation
Most automated security tools are inherently noisy. They blast thousands of requests, trigger every SIEM rule, and announce their presence to anyone watching.
This completely defeats the purpose of Red Team Testing. The whole point is to test whether the Blue Team can detect a sophisticated adversary. If your testing tool sets off every alarm the moment it starts, you're not testing detectionโyou're testing alert fatigue.
Decepticon treats stealth as a foundational design requirement:
- C2-Based Operations: The agent operates through Command & Control infrastructureโjust like a real threat actorโmaintaining encrypted, covert communication channels.
- Sandbox Execution: Commands are executed within sandboxed environments, mimicking the operational security practices of actual adversaries.
- Low-and-Slow: Activity is throttled and timed to blend with normal traffic patterns, not to overwhelm defenses with volume.
The value is not just finding vulnerabilities. It's answering the critical questions: Can the Blue Team detect us? How fast do they respond? What do they miss?
File: en/vision/target-architecture.mdx
title: "Target Architecture"
This page used to describe a future refactoring. The refactoring is done. What follows is the architectural target as it stands today, plus the horizons we're still climbing toward.
What We Solved
The original monolithic agent design ran into three structural ceilings:
- Context window saturation โ one agent juggling recon, exploitation, and post-exploit ran out of context before completing a serious engagement.
- No specialization โ a generalist made shallow decisions on every phase.
- Session-bound memory โ knowledge died at the end of every run; nothing carried over.
Decepticon's current architecture closes each of those gaps explicitly.
Multi-Agent Hybrid Architecture (Shipped)
A single orchestrator (decepticon) plans the engagement and dispatches fresh-context specialist sub-agents through SubAgent middleware. Each specialist receives only the slice of state it needs and writes findings back to the knowledge graph and disk before exiting.
Hybrid Tool Integration
Each specialist orchestrates proven security tools alongside LLM reasoning:
- The agent decides which tool to deploy, when, and how to interpret the results.
- The tools execute โ nmap, BloodHound, Slither, Sliver, sqlmap, ghidra โ proven techniques that handle structured work with mechanical precision.
- The agent adapts based on tool output, reasons about next steps, and chains actions into coherent attack sequences.
This is not "AI replaces everything." It's AI as the strategist, tools as the specialists.
Stealth-First Execution Architecture (Shipped)
Decepticon is a Red Team agent โ stealth is the architecture itself. The whole point of Red Team Testing goes beyond finding vulnerabilities: can the Blue Team detect the intrusion? How quickly do they respond? What do they miss, and why? If the testing tool loudly announces itself, those questions become unanswerable.
The shipped execution path mirrors a real adversary:
- Sandbox execution โ All bash flows through a persistent tmux-backed Kali sandbox on an isolated
sandbox-netDocker network. The orchestrator reaches the sandbox over the Docker socket โ never the network. No management traffic ever crosses into operations. - Dynamic infrastructure โ Heavyweight workloads (Sliver C2, BloodHound, future Havoc / Mythic) are not booted by default. The agent calls
ops_start("c2-sliver")and a per-user opscontrol daemon brings the workload up on demand via Compose profiles. See Dynamic Infrastructure. - C2-based communication โ When operations require it, the agent issues commands through Sliver C2 beacons exactly as a human operator would, maintaining the encrypted covert channels real threat actors use.
graph LR
subgraph Decepticon ["Decepticon (mgmt)"]
A[Specialist agent - LLM] --> O[Orchestrator]
O --> OPS[opscontrol daemon]
end
subgraph Execution ["Operations (sandbox-net)"]
OPS -.->|spawn on demand| C[Sliver C2 Server]
O --> S[Kali Sandbox - tmux/bash]
C --> B[Beacon on Target]
end
subgraph Monitoring
H[Human Operator] -.->|Monitor & Intervene| O
endKnowledge Graph as Shared Memory (Shipped)
Across-session memory is solved by a Neo4j-backed knowledge graph, owned by KGMiddleware. Specialists call explicit kg_record / kg_ingest tools; the middleware enforces engagement-scope isolation so two parallel engagements never bleed into each other.
- Findings persist between specialist invocations โ Stage 4 of vulnresearch reads candidates Stage 1 emitted without ever sharing context.
- Multi-hop reasoning โ Analyst queries the graph to construct exploit chains that span multiple agents' work.
- Engagement scoping โ Every node is tagged with
engagement. Tenants are isolated by composite(key, engagement)uniqueness at the schema level.
Human in the Loop (Shipped)
The operator is the ultimate decision-maker. The HITL middleware wires LangGraph's native interrupt pattern so the agent can pause for approval on consequential actions:
Real-time visibility โ Operators see every tool call, its reasoning, and what the agent plans next, streamed over SSE.
Intervention at any moment โ Pause to assess, redirect strategy, override specific decisions, or provide feedback that shapes subsequent behavior.
Approval gates โ Actions touching production or with high blast radius prompt before executing.
The human isn't steering every turn โ they're the commander watching the battlefield, ready to intervene when their judgment and experience are needed most.
What's Next
The shipped architecture is solid. Open horizons:
This roadmap is not linear โ horizons overlap and inform each other. The architecture is an iterative process, much like the offensive operations Decepticon itself performs.
File: en/vision/why-open-source.mdx
title: "Why Open Source?"
Open-sourcing a hacking agent is not a casual decision. This page explains why Decepticon's open-source model is fundamentally different from "just publishing code on GitHub"โand why collective intelligence is the only way to win the cybersecurity arms race.
Beyond Traditional Open Source
Most open-source security tools follow a familiar pattern: the code is public, developers can clone it, run it locally, maybe submit a bug fix. It's a tool you download and use.
Decepticon aspires to something fundamentally different.
Collective Intelligence
In Decepticon's world, "contribution" means far more than pull requests:
- Code Contributions: Reviews, feature PRs, bug fixesโthe traditional open-source workflow. Absolutely welcome.
- Knowledge Archiving: Red Team techniques, attack methodologies, defense bypass strategiesโdocumented and shared for the community.
- Real-World Experience: War stories from actual engagements. What worked, what didn't, what surprised you.
- Simple Ideas: Even a rough sketch of an attack concept or a "what if we tried..." suggestion has value. Not every contribution needs to be polished code.
- Feedback Loops: Using Decepticon against your own infrastructure and sharing what you learnedโboth offensively and defensively.
The security industry has a wealth of practical knowledge locked inside individual teams and closed-door engagements. Decepticon's community aims to surface that knowledge and make it collectively actionable.
Blue Team vs. Red Team: A Living Community
This is not just a Red Team project. The ultimate purpose of Decepticon is to strengthen defense.
We envision a community where both sides of the security equation participate actively:
- ๐ด Red Teamers share attack patterns, evasion techniques, and creative exploitation chains.
- ๐ต Blue Teamers share detection strategies, incident response playbooks, and lessons from real encounters.
- ๐ฃ Together, the community creates a feedback loop that mirrors what Decepticon itself does: infinite, iterative improvement.
In the security industry, practical, real-world discussions are invaluable. The gap between academic research and what actually happens during an engagement is enormous. A community that bridges this gap benefits everyoneโexcept the actual threat actors.
The Bigger Picture
Here's the truth that most "offensive AI" projects miss:
There are already many offensive AI agents. The world doesn't need another "look, AI can hack things!" demo.
What the world needs is a system that turns offensive capabilities into defensive evolution. Decepticon is the first step in building that system.
Decepticon is not the destination. It's the engine that powers the journey toward impenetrable defense.
A Note on Responsibility
With the power of an autonomous offensive agent comes the responsibility to ensure it is used ethically.
Red Team Testing in the real world requires agreementโa formal consensus between all parties before any operation begins. The scope, targets, timing, and boundaries must be clearly defined and mutually agreed upon. This is not optional; it is the foundation of ethical offensive security.
Just as real Red Team engagements begin with a formal agreement, every Decepticon operation should begin with clear intent, defined scope, and proper authorization.
File: ko/cli-reference.mdx
[Binary file]
File: ko/architecture/agents.mdx
title: "์์ด์ ํธ"
์์ด์ ํธ ์ํคํ ์ฒ
Decepticon์ 16๊ฐ์ ์ ๋ฌธ ์์ด์ ํธ๋ฅผ ํตํด ์๋ํ๋ฉฐ, ๊ฐ๊ฐ ์์ฒด ๋๊ตฌ, ์คํฌ, ํด๋ฆฐ ์ปจํ ์คํธ ์๋์ฐ๋ฅผ ๊ฐ์ง๋๋ค. ์์ด์ ํธ๋ ๋ชฉํ๋ง๋ค ์๋ก ์คํฐ๋ฉ๋๋ค. โ ์ถ์ ๋ ๋ ธ์ด์ฆ๊ฐ ์๊ณ , ์ฅ๊ธฐ ์ธ๊ฒ์ด์ง๋จผํธ ์ ์ฒด์์ ์ถ๋ก ์ด ์ ํ๋์ง ์์ต๋๋ค.
์์ด์ ํธ๋ ๋จ์ํ ๋ชฉ๋ก์ด ์๋๋๋ค. ๊ทธ๋ค์ ์๋น์คํ๋ ์ธ๊ฒ์ด์ง๋จผํธ ๋จ๊ณ๋ณ๋ก ๊ตฌ์ฑ๋๋ฉฐ, Decepticon ์กฐ์จ์์ ์ํด OPPLAN์ ํตํด ๋ผ์ฐํ ๋ฉ๋๋ค.
์กฐ์จ ๊ณ์ธต
์ ์ฐฐ ๋จ๊ณ
์ทจ์ฝ์ ์ฐ๊ตฌ ํ์ดํ๋ผ์ธ
Vulnresearch ์กฐ์จ์์ ์๋ธ ์์ด์ ํธ๋ค. ๋จ๊ณ ๊ฐ ์ํ๋ ์ง์ ๊ทธ๋ํ๋ฅผ ํตํด ํ๋ฅด๋ฉฐ, ๊ฐ ๋จ๊ณ๋ ์ ์ปจํ ์คํธ๋ก ์คํ๋ฉ๋๋ค.
์ต์คํ๋ก์ & ํฌ์คํธ ์ต์คํ๋ก์
๋๋ฉ์ธ ์คํ์ ๋ฆฌ์คํธ
๋ถ์ & ๋ฆฌํฌํ
๋ชฉํ๋ณ ํด๋ฆฐ ์ปจํ ์คํธ
๋ชจ๋ ์์ด์ ํธ๋ ๋ชจ๋ ๋ชฉํ์ ๋ํด ์๋ก์ด ์ปจํ ์คํธ ์๋์ฐ๋ก ์คํฐ๋ฉ๋๋ค:
๋ชฉํ 1 (์ ์ฐฐ) โ ์ Recon ์์ด์ ํธ ์ธ์คํด์ค โ ๋ฐ๊ฒฌ์ฌํญ ๋์คํฌ + ๊ทธ๋ํ์ ์ ์ฅ
๋ชฉํ 2 (์ต์คํ๋ก์) โ ์ Exploit ์์ด์ ํธ ์ธ์คํด์ค โ ๋ชฉํ 1 ๋ฐ๊ฒฌ์ฌํญ ๋ช
์์ ์ผ๋ก ์ฝ์
๋ชฉํ 3 (ํฌ์คํธ ์ต์ค) โ ์ Post-Exploit ์ธ์คํด์ค โ ๋ชฉํ 1+2 ๋ฐ๊ฒฌ์ฌํญ ๋ช
์์ ์ผ๋ก ์ฝ์- ์ถ์ ๋ ๋ ธ์ด์ฆ ์์ โ 100๊ฐ ๋ชฉํ ์ธ๊ฒ์ด์ง๋จผํธ์์ ์ปจํ ์คํธ๊ฐ ์ ํ๋์ง ์์ต๋๋ค.
- ๋์ํ๋ ์ปจํ ์คํธ โ ๊ฐ ์์ด์ ํธ๋ ์์ ์ ๋ชฉํ์ ๊ด๋ จ๋ ๋ฐ๊ฒฌ์ฌํญ๋ง ์์ ํฉ๋๋ค.
- ์์์ ์ํ โ ๋ฐ๊ฒฌ์ฌํญ์ ์์ด์ ํธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋๋ผ ๋์คํฌ์ Neo4j์ ์ ์ฅ๋ฉ๋๋ค.
์์ด์ ํธ ๋ฏธ๋ค์จ์ด ์คํ
๊ฐ ์์ด์ ํธ๋ ๊ต์ฐจ ์ ๋จ ๊ด์ฌ์ฌ๋ฅผ ์ ๊ณตํ๋ ๋ฏธ๋ค์จ์ด ์คํ์ผ๋ก ์คํ๋ฉ๋๋ค. ์ ํํ ์คํ์ ์์ด์ ํธ์ ์ญํ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
| ์์ด์ ํธ ์ญํ | ๋ฏธ๋ค์จ์ด ์คํ |
|---|---|
| Decepticon (์กฐ์จ์) | EngagementContext โ Skills โ Filesystem โ SubAgent โ OPPLAN โ ModelFallback โ Summarization โ PromptCaching โ PatchToolCalls |
| Vulnresearch (์กฐ์จ์) | Skills โ Filesystem โ SubAgent โ OPPLAN โ ModelFallback โ Summarization โ PromptCaching โ PatchToolCalls |
| Soundwave (๊ณํ์) | EngagementContext โ Skills โ Filesystem โ ModelFallback โ Summarization โ PromptCaching โ PatchToolCalls |
| ์ ๋ฌธ๊ฐ (Recon, Exploit, ...) | Skills โ Filesystem โ ModelFallback โ Summarization โ PromptCaching โ PatchToolCalls |
๊ฐ ๊ณ์ธต์ด ํ๋ ์ผ
- EngagementContext โ ์ธ๊ฒ์ด์ง๋จผํธ ๋ฉํ๋ฐ์ดํฐ(slug, ํ๊ฒ, RoE ์์ฝ)๋ฅผ ์์คํ ํ๋กฌํํธ์ ์ฃผ์ ํ์ฌ ๊ฐ๋๋ ์ผ์ด ์ง์์ ์ผ๋ก ํ๊ฐ๋ฉ๋๋ค.
- Skills โ ํ์ฑ ์ํ ํ๋กํ๊ณผ ATT&CK ์ค๋ณต์ผ๋ก ํํฐ๋ง๋ ์ ์ง์ ๊ณต๊ฐ ์คํฌ ๋ก๋ฉ. ์์ ์ ํ๋ก ํธ๋งคํฐ(์คํฌ๋น ~100 ํ ํฐ)๋ง ๋ก๋ํ๊ณ , ์ ์ฒด ๋ณธ๋ฌธ์
read_file๋ก ํ์์ ๊ฐ์ ธ์ต๋๋ค. - Filesystem โ
FilesystemMiddlewareNoExecuteโ ์ธ๊ฒ์ด์ง๋จผํธ ์ํฌ์คํ์ด์ค๋ก ๋ฒ์๊ฐ ์ง์ ๋read_file,write_file,edit_file,ls,glob,grep. ์คํ์ ์๋์ ์ผ๋ก ๋นํ์ฑํ โ ์ ๋ฌธ๊ฐ๋ ์ ์ฉbash๋๊ตฌ๋ก ๋ช ๋ น์ ์คํํฉ๋๋ค. - SubAgent โ ์กฐ์จ์(Decepticon, Vulnresearch)๊ฐ ์ ๋ฌธ๊ฐ์๊ฒ ์ผ์ ๋์คํจ์นํ๊ธฐ ์ํ
task()๋๊ตฌ. - OPPLAN โ 5๊ฐ์ CRUD ๋๊ตฌ(
add_objective,get_objective,list_objectives,update_objective,objective_expand)์ ๋ชจ๋ LLM ํธ์ถ์ ๋ชฉํ์ ๋์ ์ํ ์ฃผ์ . - OpsControl โ ์ํฌ๋ก๋ ๋ผ์ดํ์ฌ์ดํด ์ํ ์ ์ด(
starting โ running โ exited)๋ฅผ ์์ด์ ํธ์ ๋ค์ ํด์ ์๋ ์ฃผ์ .ops_start(...)ํธ์ถ ํ ํด๋งํ์ง ์์ต๋๋ค. ๋์ ์ธํ๋ผ ์ฐธ์กฐ. - SandboxNotifications โ
run_in_background=True๋ก ์คํํbash๋ช ๋ น์ด ์ข ๋ฃ๋๋ฉด ์บก์ฒ๋ ์ถ๋ ฅ์ ๋ค์ ์ถ๋ก ํด์ ์๋ ์ฃผ์ . ์์ด์ ํธ๊ฐbash_output()๋ฅผ ๋ช ์์ ์ผ๋ก ํธ์ถํ ํ์๊ฐ ์์ต๋๋ค. - ModelFallback โ ์ ๊ณต์ ์ฅ์ ์กฐ์น. ์ฌ์ฉ์์ ์๊ฒฉ์ฆ๋ช ์ธ๋ฒคํ ๋ฆฌ์์ ๋น๋๋ ํด๋ฐฑ ์ฒด์ธ์ ๋ฐ๋ผ ์๋ ์ ํ์ด๋ ์ฅ์ ์ ๋ค์ ์ ๊ณต์๋ก ์ ํ.
- Summarization โ ์ ๋ฌธ๊ฐ ์์ด์ ํธ์ ์ปจํ ์คํธ๊ฐ ๋ชจ๋ธ ์๋์ฐ์ ์ ๊ทผํ ๋ ๋ํ ์๋์ฐ ์์ถ.
- PromptCaching โ
AnthropicPromptCachingMiddlewareโ ํ๋กฌํํธ ์บ์ ๊ฒฝ๊ณ ๋ง์ปค ๋ฐฐ์น; ๋น Anthropic ์ ๊ณต์์์๋ ์๋ no-op. - PatchToolCalls โ ๊ต์ฐจ ์ ๊ณต์(Anthropic, OpenAI, Google, MiniMax ๋ฑ) ํธํ์ฑ์ ์ํด ๋๊ตฌ ํธ์ถ ๋ชจ์์ ์ ๊ทํยท์ฌ์์ฑ.
์์ด์ ํธ-๋๊ตฌ ์ํธ์์ฉ
์์ด์ ํธ๋ Kali ์๋๋ฐ์ค ๋ด์ ์์์ tmux ์ธ์ ์ ํตํด ์คํ์๋ธ ๋๊ตฌ์ ์ํธ์์ฉํฉ๋๋ค:
์์ด์ ํธ โ Docker ์์ผ โ Kali ์๋๋ฐ์ค โ tmux ์ธ์
โ ๋๊ตฌ (sliver-client, msfconsole, evil-winrm, ...)
โ
ํ๋กฌํํธ ํ์ง
โ
ํ์ ๋ช
๋ น๋๊ตฌ๊ฐ ๋ํํ ํ๋กฌํํธ(sliver >, msf6 >, PS C:\>)๋ฅผ ์ ์ํ ๋, ์์ด์ ํธ๋:
- ํ๋กฌํํธ ํจํด์ ํ์งํฉ๋๋ค.
- ๋๊ตฌ์ ์ถ๋ ฅ์ ํด์ํฉ๋๋ค.
- ์ ์ ํ ํ์ ๋ช ๋ น์ ์ ์กํฉ๋๋ค.
- ํ์์ ์ ์ด ์ ํธ(
C-c,C-z)๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
์ถ๋ ฅ์ ๊ณ์ธตํ๋ฉ๋๋ค:
- ์ธ๋ผ์ธ(โค15K) โ ์์ด์ ํธ์ ์ง์ ๋ฐํ๋จ.
- ์คํ๋ก๋(15Kโ100K) โ
/workspace/.scratch/์ ์์ฑ๋๊ณ ๊ฒฝ๋ก๋ก ์ฐธ์กฐ๋จ. - ๊ฐ์๊ฒฌ(>5M) โ ์ธ์ ์ด ์ข ๋ฃ๋๊ณ ์์ด์ ํธ๋ ๊ฐ์ ์ ์์ฒญ๋ฐ์ต๋๋ค.
์ด๊ฒ์ด ์ค์ ์ด์์๋ค์ด ์์ ํ๋ ๋ฐฉ์์ ๋๋ค. Decepticon์ ์ ๋ฌธ๊ฐ๋ค๋ ๋์ผํ๊ฒ ์ํํฉ๋๋ค.
File: ko/architecture/infrastructure.mdx
[Binary file]
File: ko/architecture/middleware-stack.mdx
title: "๋ฏธ๋ค์จ์ด ์คํ"
๋ชจ๋ Decepticon ์์ด์ ํธ๋ ๋ชจ๋ ์์ด์ ํธ์ ๊ณตํต์ธ ๊ด์ฌ์ฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฏธ๋ค์จ์ด ์คํ์ ์์๋ฐ์ต๋๋ค. โ RoE ๊ฐ์ , ์คํฌ ๋ก๋ฉ, ํ๋กฌํํธ ์บ์ฑ, ๋ชจ๋ธ ์ฅ์ ์กฐ์น, ๋ํ ์์ฝ. ์ด ํ์ด์ง๋ ๊ฐ ๊ณ์ธต์ด ๋ฌด์์ ํ๋ฉฐ ์ ์กด์ฌํ๋์ง ์ค๋ช ํฉ๋๋ค.
๋ฏธ๋ค์จ์ด๊ฐ ํ์ํ ์ด์
๋ชจ๋๋ฆฌ์ ์์ด์ ํธ ํ๋กฌํํธ๊ฐ ๋ชจ๋ ๊ฒ์ ์ฒ๋ฆฌํ๋ ค๊ณ ํ๋ฉด, ์๋ฌด๊ฒ๋ ์ ํ์ง ๋ชปํฉ๋๋ค. Decepticon์ ๊ต์ฐจ ์ ๋จ ๊ด์ฌ์ฌ๋ฅผ ๊ตฌ์ฑ ๊ฐ๋ฅํ ๋ฏธ๋ค์จ์ด๋ก ์ธ์๋ถํดํฉ๋๋ค:
- ์์ด์ ํธ ํ๋กฌํํธ๋ ๊ทธ ์ ๋ฌธ์ฑ์ ์ง์คํฉ๋๋ค.
- ๋ชจ๋ ์์ด์ ํธ์ ๊ณตํต์ธ ํ๋(RoE ํ์ธ, ์คํฌ ๋ก๋ฉ)์ ํ ๊ณณ์ ์กด์ฌํฉ๋๋ค.
- ๊ต์ฐจ ์ ๊ณต์ ํธํ์ฑ(Anthropic, OpenAI, Google, MiniMax)์ ํ๋กฌํํธ ๋ด๊ฐ ์๋๋ผ ์๋์์ ์ฒ๋ฆฌ๋ฉ๋๋ค.
๊ณ์ธต๋ค
์คํฌ
DecepticonSkillsMiddleware (LangChain์ SkillsMiddleware์ ์๋ธํด๋์ค).
- ์์ ์ ์คํฌ ํ๋ก ํธ๋งคํฐ๋ง ๋ก๋ํฉ๋๋ค(์คํฌ๋น ์ฝ 100๊ฐ ํ ํฐ).
- ํ์ฑ ์ํ ํ๋กํ๊ณผ์ ATT&CK ์ค๋ณต์ผ๋ก ์คํฌ์ ํํฐ๋งํฉ๋๋ค.
- ์์ด์ ํธ๊ฐ
read_file()์ ํธ์ถํ ๋ ํ์์ ์ ์ฒด ์คํฌ ๋ณธ๋ฌธ์ ๋ก๋ํฉ๋๋ค. - ์คํฌ ์ฐ์ ๊ท์น ๊ฐ์ : ์์ด์ ํธ๋ ์ผ์นํ๋ ํธ๋ฆฌ๊ฑฐ์ ์๋ํ๊ธฐ ์ ์ ๊ด๋ จ ์คํฌ์ ๋ก๋ํด์ผ ํฉ๋๋ค.
ํ์ผ์์คํ
FilesystemMiddlewareNoExecute โ ์ธ๊ฒ์ด์ง๋จผํธ ์ํฌ์คํ์ด์ค๋ก ๋ฒ์๊ฐ ์ง์ ๋ ์๋๋ฐ์ค ํ์ผ ์ ๊ทผ. read_file, write_file, edit_file, ls, glob, grep๋ฅผ /workspace/{engagement_id}/์ ๋ํด ์ ๊ณตํฉ๋๋ค. ์คํ์ ์๋์ ์ผ๋ก ๋นํ์ฑํ โ ์ ๋ฌธ๊ฐ๋ ๋ช
๋ น ์คํ์ ์ํด ์ ์ฉ bash ๋๊ตฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
SubAgent
์กฐ์จ์์๊ฒ task() ๋๊ตฌ๋ฅผ ๋
ธ์ถํฉ๋๋ค. Decepticon์ด ์ ๋ฌธ๊ฐ ์์ด์ ํธ(Recon, Exploit, Analyst, ...)์ ์ผ์ ๋์คํจ์นํ๊ฒ ํ๋ฉฐ, ๊ทธ๋ค์ ํ๋กฌํํธ๋ฅผ ์ธ๋ผ์ธํ์ง ์์ต๋๋ค. SubAgent ์ถ๋ ฅ์ StreamingRunnable๋ก ๊ฐ์ธ์ ธ CLI์ HTTP API๋ฅผ ํตํด ์คํธ๋ฆผ๋ฉ๋๋ค.
OPPLAN
์กฐ์จ ๊ตฌ์กฐ์ ์ฒ์ถ:
- 5๊ฐ์ CRUD ๋๊ตฌ ๋
ธ์ถ โ
add_objective,get_objective,list_objectives,update_objective,objective_expand. - ๋ชจ๋ LLM ํธ์ถ๋ก ํ์ฌ OPPLAN ์ํ(๋ณด๋ฅ ์ค, ์งํ ์ค, ์๋ฃ)๋ฅผ ์ฃผ์ ํฉ๋๋ค.
- ์์กด์ฑ ํด๊ฒฐ โ ์ ์ ์กฐ๊ฑด์ด ์๋ฃ๋์ง ์์ ๋ชฉํ์ ๋์คํจ์น๋ฅผ ๊ฑฐ๋ถํฉ๋๋ค.
objective_expand๋ฅผ ํตํด ๋ชจ์ํดํน ์์ ํธ๋ฆฌ(PTT)๋ฅผ ์ง์ํฉ๋๋ค.
EngagementContext
RoE/ConOps ๊ฐ๋๋ ์ผ. ๋ชจ๋ ๋ฐ๋ณต์์ ๋ฏธ๋ค์จ์ด๋:
- ํ์ฑ ๊ต์ ๊ท์น.
- ์ด์ ๊ฐ๋ .
- ํ์ฌ ์ํ ํ๋กํ.
์์ด์ ํธ์ ์ถ๋ก ์ ์ธ์ ์์์ด ์๋๋ผ ์ฐ์์ ์ผ๋ก ๋ฒ์ ๋ฐ ์ ๋์ ์ ์ฒด์ฑ์ ๋ํด ํ๊ฐ๋ฉ๋๋ค.
ModelFallback
์ ๊ณต์ ์ฅ์ ์กฐ์น. ๊ฐ ๋ชจ๋ธ ํ๋กํ์ ์ฅ์ ์กฐ์น ์ฒด์ธ์ ์ ์ํฉ๋๋ค. โ ์๋ฅผ ๋ค์ด: claude-opus-4-7 โ gpt-5.5 โ gemini-2.5-pro โ MiniMax-M2.5. ์ ๊ณต์๊ฐ ์๋ ์ ํ ๋๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋ฉด, ์ฒด์ธ์ ๋ค์ ์ ๊ณต์๊ฐ ํฌ๋ช
ํ๊ฒ ํธ์ถ๋ฉ๋๋ค.
์์ฝ
๋ํ ์๋์ฐ ์์ถ. ์ ๋ฌธ๊ฐ ์์ด์ ํธ์ ์ปจํ ์คํธ๊ฐ ๋ชจ๋ธ ์๋์ฐ์ ์ ๊ทผํ ๋, ์ด์ ํด๋ค์ด ๊ตฌ์กฐํ๋ ๋ค์ด์ ์คํธ๋ก ์์ฝ๋ฉ๋๋ค. ๋ฐ๊ฒฌ์ฌํญ, ๋๊ตฌ ์ถ๋ ฅ, ๊ฒฐ์ ์ ๋ณด์กด๋ฉ๋๋ค. ์ถ์ด์ ์ฑํ ๊ธฐ๋ก์ ์ถ์๋ฉ๋๋ค.
PromptCaching
Anthropic์ ํ๋กฌํํธ ์บ์ ๊ฒฝ๊ณ ๋ง์ปค. ๋ฏธ๋ค์จ์ด๋ ์ ์ ํ๋กฌํํธ ์น์
(์์คํ
ํ๋กฌํํธ, ์คํฌ ์นดํ๋ก๊ทธ)๊ณผ ๋์ ์น์
(ํ์ฑ OPPLAN ์ํ, ํ์ฌ ๋ฐ๋ณต) ์ฌ์ด์ CACHE_BOUNDARY ๋ง์ปค๋ฅผ ๋ฐฐ์นํฉ๋๋ค. ์ด๋ ๋ฐ๋ณต๋๋ ํธ์ถ์ด ์บ์์ ๋๋ฌํ๊ฒ ํ์ฌ ์ฅ๊ธฐ ์ธ๊ฒ์ด์ง๋จผํธ์์ ํธ์ถ๋น ๋น์ฉ์ ๊ทน์ ์ผ๋ก ๋จ์ด๋จ๋ฆฝ๋๋ค.
PatchToolCalls
๊ต์ฐจ ์ ๊ณต์ ํธํ์ฑ ์์. ์๋ก ๋ค๋ฅธ ์ ๊ณต์๋ค์ ๋๊ตฌ ํธ์ถ์ ๋ค๋ฅด๊ฒ ํํํฉ๋๋ค. โ ๋ฏธ๋ค์จ์ด๋ ์์ด์ ํธ ํ๋กฌํํธ์ ๋๋ฌํ๊ธฐ ์ ์ ์ ๊ทํํ๊ณ , ๋๊ฐ๋ ๊ธธ์ ๋ค์ ๋ชจ์์ ๋ณ๊ฒฝํ์ฌ ๋จ์ผ ์์ด์ ํธ ์ ์๊ฐ ์ง์๋๋ ๋ชจ๋ ์ ๊ณต์์ ๋ํด ์คํ๋ฉ๋๋ค.
OpsControlNotifications
opscontrol ๋ฐ๋ชฌ์ ์ํฌ๋ก๋ ์ํ ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋
ํฉ๋๋ค (ADR-0006). ์ํฌ๋ก๋๊ฐ ์ ์ด๋ ๋(starting โ running โ exited) ๋ฏธ๋ค์จ์ด๊ฐ ์ ์ํ๋ฅผ ๋ด์ <system-reminder> HumanMessage๋ฅผ ์ค์ผ์คํธ๋ ์ดํฐ์ ๋ค์ ์ถ๋ก ์ ์ฃผ์
ํฉ๋๋ค. ops_start("c2-sliver") ํธ์ถ ํ ์ค์ผ์คํธ๋ ์ดํฐ๋ ํด๋งํ์ง ์์ต๋๋ค โ ์๋ฃ๊ฐ ์๋์ผ๋ก ๋๋ฌํฉ๋๋ค. Decepticon ์ค์ผ์คํธ๋ ์ดํฐ์๋ง ์ฅ์ฐฉ๋ฉ๋๋ค.
SandboxNotifications
bash ์ธก ๋์๋ฌผ. run_in_background=True๋ก ์คํ๋ bash ๋ช
๋ น์ด ์ข
๋ฃ๋๋ฉด ๋ฏธ๋ค์จ์ด๊ฐ ์๋๋ฐ์ค๋ก๋ถํฐ ์บก์ฒ๋ ์ถ๋ ฅ diff๋ฅผ ๊ฐ์ ธ์ ์์ด์ ํธ์ ๋ค์ ํด์ <system-reminder>๋ก ์ฃผ์
ํฉ๋๋ค. ์ ๋ฌธ๊ฐ๊ฐ bash_output() ํธ์ถ์ ๊ธฐ์ตํ ํ์๊ฐ ์์ต๋๋ค. OpsControlNotifications์ ๋์ผํ ํํ์ด๋ฉฐ, bash ๋๊ตฌ๋ฅผ ๊ฐ์ง ๋ชจ๋ ์์ด์ ํธ์ ์ฅ์ฐฉ๋ฉ๋๋ค.
KG (KGMiddleware)
์ธ๊ฒ์ด์ง๋จผํธ ๋ฒ์์ Neo4j KGStore๋ฅผ ์์ ํ๊ณ ๋ ๊ฐ์ง ์์ด์ ํธ-facing ๊ทธ๋ํ ๋๊ตฌ โ kg_record(observations) (์์์ ๋ฐฐ์น ์ฐ๊ธฐ)์ kg_ingest(scanner_kind, path) (์ค์บ๋ ์ด๋ํฐ ๋์คํจ์ฒ) โ ๋ฅผ ๋
ธ์ถํฉ๋๋ค. ๋ชจ๋ ํธ์ถ์ ์ธ๊ฒ์ด์ง๋จผํธ ๋ผ๋ฒจ ๊ฒ์ฆ๊ธฐ๋ฅผ ๊ฐ์ ํ์ฌ ๋ ๊ฐ์ ๋ณ๋ ฌ ์ธ๊ฒ์ด์ง๋จผํธ๊ฐ ์๋ก์ ๊ทธ๋ํ ์ํ๋ฅผ ์นจ๋ฒํ์ง ์๊ฒ ํฉ๋๋ค.
Skillogy
๋
๋ฆฝ ์คํํ Skillogy ์๋น์ค์ ์์ REST ํด๋ผ์ด์ธํธ. Neo4j ๊ธฐ๋ฐ ์คํฌ ๊ทธ๋ํ(ํฌํธ 9100)์ ๋ํด find_skill, load_skill, traverse๋ฅผ ๋
ธ์ถํฉ๋๋ค. ์์ด์ ํธ ํฉํ ๋ฆฌ๊ฐ ์ค์ ํ๋ allowed_path_prefixes ํ๋ผ๋ฏธํฐ๋ฅผ ํจ๊ป ์ ๋ฌํ๋ฉฐ, ์๋น์ค๊ฐ ๊ฐ์ ACL(ADR-0008)์ ์ ์ฉํด ์ ๋ฌธ๊ฐ๊ฐ ํ๋กฌํํธ ์ธ์ ์
์ผ๋ก ๋ค๋ฅธ ์ญํ ์ ์คํฌ์ ์ด๋ํ๋๋ก ์ค๋๋ ์ ์์ต๋๋ค.
HITL
LangGraph์ ๋ค์ดํฐ๋ธ interrupt() ํจํด์ ๊ฐ์ธ ์์ด์ ํธ๊ฐ ์ค์ํ ํ๋์์ ์ด์์ ์น์ธ์ ์ํด ์ผ์ ์ ์งํ ์ ์๊ฒ ํฉ๋๋ค โ ํ๋ก๋์
๋์ ๋ช
๋ น, ๋ฏผ๊ฐ ๋ฐ์ดํฐ ํด๋์ค ์ ์ถ, RoE๊ฐ ํญ๋ฐ ๋ฐ๊ฒฝ์ด ํฐ ๊ฒ์ผ๋ก ํ์ํ ๋ชจ๋ ๊ฒ. ์ด์์๋ ์ ์๋ ํ๋์ ๋ณด๊ณ ์น์ธ/๋ฆฌ๋ค์ด๋ ํธ/์ค๋จํ ์ ์์ผ๋ฉฐ, ์์ด์ ํธ๋ ๋์ผํ ๋
ธ๋์์ ์ฌ๊ฐํฉ๋๋ค.
์ญํ ๋ณ ์คํ ๊ตฌ์ฑ
๋ฏธ๋ค์จ์ด์ ์ ํํ ์์๋ ์ค์ํฉ๋๋ค. โ ์ธ๋ถ ๊ณ์ธต์ด ๋ด๋ถ๋ฅผ ๊ฐ์๋๋ค. ์กฐ์จ์์ ๊ณํ์๋ EngagementContext๋ฅผ ๋จผ์ ์ฃผ์
ํ์ฌ RoE/ConOps ๊ฐ๋๋ ์ผ์ด ์ดํ ๋ชจ๋ ๊ณ์ธต์ ์ ์ฉ๋๋๋ก ํฉ๋๋ค. ์ ๋ฌธ๊ฐ๋ ๋ฐ์ OPPLAN ์ฌ๋ผ์ด์ค๋ฅผ ํตํด ๋์ผํ ๊ฐ๋๋ ์ผ์ ์์๋ฐ์ต๋๋ค.
โโ Decepticon ์กฐ์จ์ โโโโโโโโโโโโโโโโโโโ
โ EngagementContext โ
โ โโ Skills โ
โ โโ Filesystem โ
โ โโ SubAgent โ
โ โโ OPPLAN โ
โ โโ ModelFallback โ
โ โโ Summarization
โ โโ PromptCache
โ โโ Patch
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโ Vulnresearch ์กฐ์จ์ โโโโโโโโโโโโโโโโโ
โ Skills โ
โ โโ Filesystem โ
โ โโ SubAgent โ
โ โโ OPPLAN โ
โ โโ ModelFallback โ
โ โโ Summarization โ
โ โโ PromptCache
โ โโ Patch โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโ Soundwave ๊ณํ์ โโโโโโโโโโโโโโโโโโโโโ
โ EngagementContext โ
โ โโ Skills โ
โ โโ Filesystem โ
โ โโ ModelFallback โ
โ โโ Summarization โ
โ โโ PromptCache โ
โ โโ Patch โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโ ์ ๋ฌธ๊ฐ (Recon, Exploit, ...) โโโโโโโ
โ Skills โ
โ โโ Filesystem โ
โ โโ ModelFallback โ
โ โโ Summarization โ
โ โโ PromptCache โ
โ โโ Patch โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ์ ๋ฌธ๊ฐ๋ ๋ํ ์๋๋ฐ์ค ๋ช
๋ น ์คํ์ ์ํด bash ๋๊ตฌ๋ฅผ ๋ฐ์ธ๋ฉํฉ๋๋ค. Soundwave๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
์คํ์ ํตํ ์คํธ๋ฆฌ๋ฐ
์๋ธ ์์ด์ ํธ ์ถ๋ ฅ์ ์์ง ํ ๋ฐํ์ด ์๋๋ผ ์คํธ๋ฆผํฉ๋๋ค. StreamingRunnable์ด ๋ชจ๋ ์๋ธ ์์ด์ ํธ๋ฅผ ๊ฐ์ธ๋ฏ๋ก ํ ํฐ์ด ๋ค์์ ๋๋ฌํฉ๋๋ค:
- Python CLI์
UIRenderer(Ink ํฐ๋ฏธ๋ UI). - LangGraph HTTP ์ปค์คํ ์ด๋ฒคํธ ์ฑ๋(์น ๋์๋ณด๋).
์ด๊ฒ์ด ์ด์์๊ฐ Recon์ด ํฌํธ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ด๊ฑฐํ๋ ๊ฒ์ ๋ณด๋ ๋ฐฉ์์ ๋๋ค, ์ฌ์ค ์ดํ๊ฐ ์๋๋ผ.
File: ko/concepts/mitre-attack.mdx
[Binary file]
File: ko/concepts/red-team-lifecycle.mdx
title: "๋ ๋ํ ์ธ๊ฒ์ด์ง๋จผํธ ๋ผ์ดํ์ฌ์ดํด"
๋ ๋ํ ์ธ๊ฒ์ด์ง๋จผํธ๋ ์ทจ์ฝ์ ์ค์บ์ ๋ช ๊ฐ์ง ๋จ๊ณ๋ฅผ ๋ํ ๊ฒ์ด ์๋๋๋ค. ์ด๋ ์ค์ ์ํ ํ๋กํ์ผ์ ๋ํ ์ฒด๊ณ์ ์ธ ์บ ํ์ธ์ผ๋ก, ์ธ ๊ฐ์ง ๋จ๊ณ๋ก ์คํ๋๋ฉฐ, ๊ณต์ ๋ฌธ์(RoE, ConOps, OPPLAN)์ ์ํด ๊ด๋ฆฌ๋๊ณ , 8๊ฐ์ง ์ ๊ท ์ธ๊ฒ์ด์ง๋จผํธ ๋ชฉํ์ ๋ฐ๋ผ ํ๊ฐ๋ฉ๋๋ค.
์ธ ๊ฐ์ง ๋จ๊ณ
C2 ๊ณ์ธตํ
Stay In ๋จ๊ณ์์ ๋ช ๋ น ๋ฐ ์ ์ด๋ ๊ณ์ธต์ผ๋ก ๊ตฌ์กฐํ๋ฉ๋๋ค. ๊ฐ ๊ณ์ธต์ ์๋ต์ฑ๊ณผ ํ์ง ์ํ ์ฌ์ด์์ ๊ท ํ์ ๋ง์ถฅ๋๋ค.
| ๊ณ์ธต | ์ฝ๋ฐฑ ์ฃผ๊ธฐ | OPSEC ํ๋กํ์ผ | ์ฌ์ฉ ์ฌ๋ก |
|---|---|---|---|
INTERACTIVE |
์ด | ๋์ ๋ ธ์ถ | ํซ ๋ชฉํ ์ค ์ด์์ ์ค์๊ฐ ์ ์ด |
SHORT_HAUL |
1~24์๊ฐ | ๋ณดํต | ์งํ ์ค์ธ ๋ชฉํ๋ฅผ ์ํ ์ ๋ขฐ์ฑ ๋์ ์ด์ ์ ๊ทผ |
LONG_HAUL |
24์๊ฐ ์ด์ | ๋ฎ์ ๋ ธ์ถ | ๋ฐฉ์ด์ ์ฌ๋ฅ์ ๊ฒฌ๋๋ ์ง์์ ํด๋ฐฑ ์ฑ๋ |
Decepticon์ OPPLAN ๋ชฉํ๋ ์์ด์ ํธ๊ฐ ๊ฐ ์์
์ ์ด๋ค ์ฑ๋์ ์ฌ์ฉํ ์ง ์ ์ ์๋๋ก ์ ์ ํ C2Tier๋ก ํ๊ทธ๋ฉ๋๋ค.
8๊ฐ์ง ์ธ๊ฒ์ด์ง๋จผํธ ๋ชฉํ
๋ ๋ํ ์ธ๊ฒ์ด์ง๋จผํธ๋ ์ ๊ท ๋ชฉํ์ ๋ฐ๋ผ ํ๊ฐ๋ฉ๋๋ค โ ํ์ด ๋ฌด์์ ๋ฌ์ฑํ๋ ค๊ณ ํ๋๊ฐ? ๊ทธ๋ฆฌ๊ณ ๋ธ๋ฃจํ์ด ์ด๋ฅผ ํ์งํ๋๊ฐ? Decepticon์ ์ ๊ณ ์ ๋ฐ์์ ์ฌ์ฉ๋๋ ๋์ผํ 8๊ฐ์ง ๋ฒ์ฃผ๋ฅผ ์ฑํํฉ๋๋ค:
Decepticon์ด ๋ผ์ดํ์ฌ์ดํด์ ๋งคํ๋๋ ๋ฐฉ์
Decepticon์ ์์ด์ ํธ ํ ํด๋ก์ง๋ ๋๊ตฌ๋ฅผ ์ค์ฌ์ผ๋ก๊ฐ ์๋๋ผ ์ด ๋ผ์ดํ์ฌ์ดํด์ ์ค์ฌ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค.
| ๋จ๊ณ | ์ฃผ์ ์์ด์ ํธ | ์คํฌ ์ํ์ด์ค |
|---|---|---|
| ๊ณํ (์ฌ์ ์ธ๊ฒ์ด์ง๋จผํธ) | Soundwave | RoE, ConOps, Deconfliction, OPPLAN, Threat Profile |
| Get In | Recon, Scanner, Exploit, Exploiter | ์๋/๋ฅ๋ ์ ์ฐฐ, ์น ์ต์คํ๋ก์, AD ์ด๊ธฐ ์ ๊ทผ |
| Stay In | Post-Exploit, AD Operator, Cloud Hunter | ์ง์์ฑ, C2 ์ธ์ , ๋ฐฉ์ด ํํผ, OPSEC |
| Act | Post-Exploit, Analyst | ์ธก๋ฉด ์ด๋, ํฌ๋ฆฌ๋ด์ ์ ๊ทผ, ๋ฐ๊ฒฌ ์บก์ฒ, Vulnresearch ํ์ดํ๋ผ์ธ ์ถ๋ ฅ (๊ณํ๋ Defender ์ปดํฌ๋ํธ๊ฐ ํฅํ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐฉ์ด ๋ธ๋ฆฌํ์ ์์ฑํ ์์ ) |
์ค์ผ์คํธ๋ ์ดํฐ(Decepticon ์์ด์ ํธ)๋ ๋จ๊ณ ์ ๋ฐ์ ๋ชฉํ๋ฅผ ์ํ์ฑํ๊ณ ์ ๋ฌธ ์์ด์ ํธ๋ฅผ ์๋ก์ด ์ปจํ ์คํธ ์๋์ฐ๋ก ์์ฑํ๋ฏ๋ก ์ถ๋ก ์ ์ ๋ ์ฑ๋ฅ ์ ํ๋์ง ์์ต๋๋ค.
์ธ๊ฒ์ด์ง๋จผํธ ๋ฌธ์
๋ชจ๋ Decepticon ์ธ๊ฒ์ด์ง๋จผํธ๋ 4๊ฐ์ง ๋ฌธ์๋ฅผ ์์ฑํ๋ฉฐ ์ด์ ๊ตฌ์๋ฉ๋๋ค:
File: ko/concepts/roles-and-cells.mdx
title: "์ญํ & ์ "
๋ ๋ํ ์ธ๊ฒ์ด์ง๋จผํธ๋ ๋จ์ํ "๊ณต๊ฒฉ์ vs ๋ฐฉ์ด์"๊ฐ ์๋๋๋ค. ์ด๋ ๋ช ๋ช ๋ ์ญํ ์ ๊ฐ์ง ๊ตฌ์กฐํ๋ ์ฐ์ต์ผ๋ก, ๊ฐ๊ฐ ๊ณ ์ ํ ์ฑ ์์ด ์์ต๋๋ค. Decepticon์ ์ด๋ฌํ ์ญํ ์ ๋์ฒดํ์ง ์์ต๋๋ค โ Red Cell ๋ด์์ ํฌ์ค ๋ฉํฐํ๋ผ์ด์ด๋ก ์๋ํ๋ฉฐ ๋ค๋ฅธ ์ญํ ๊ณผ ๋ช ์์ ํธ๋์ ฐ์ดํฌ๋ฅผ ๊ฐ์ง๋๋ค.
4๊ฐ์ง ์
์ ์ด ์์จ ์์ด์ ํธ์ ์ค์ํ ์ด์
์ ์ ๊ด๋ฃ์ฃผ์๊ฐ ์๋๋๋ค โ ๊ณต๊ฒฉ์ ์ธ๊ฒ์ด์ง๋จผํธ๊ฐ ์ฌ๊ฑด์ผ๋ก ๋ณํ์ง ์๋๋ก ํ๋ ๊ฒฝ๊ณ์ ๋๋ค. ์ด๋ฌํ ํธ๋์ ฐ์ดํฌ๊ฐ ์๋ ์์จ ์์ด์ ํธ๋ ๋ฌด๋ชจํฉ๋๋ค. Decepticon์ ์ ๊ตฌ์กฐ๋ฅผ ์ฐํํ์ง ์๊ณ ๊ทธ ์์ ๋ง๋๋ก ๊ตฌ์ถ๋์์ต๋๋ค.
| ์ | Decepticon ํฐ์นํฌ์ธํธ |
|---|---|
| Red Cell | Decepticon ์์ด์ ํธ๋ Red Cell ๋ฉค๋ฒ์ ๋๋ค. ์ธ๊ฒ์ด์ง๋จผํธ๋ก ๊ท์ ๊ฐ๋ฅํ ๋ฐ๊ฒฌ, ์ฆ๊ฑฐ, ๊ณต๊ฒฉ ๊ทธ๋ํ๋ฅผ ์์ฐํฉ๋๋ค. |
| Blue Cell | Decepticon์ ์คํ ์ค Blue Cell๊ณผ ์ํธ์์ฉํ์ง ์์ต๋๋ค. ๋ธ๋ฃจํ์ ์์ด์ ํธ๊ฐ ์์ฑํ๋ ์ํฐํฉํธ๋ง ๋ด ๋๋ค โ ์๋ฆผ, ํ ๋ ๋ฉํธ๋ฆฌ, ์ธก๋ฉด ์ด๋ |
| White Cell | Decepticon์ ์คํํ๋ ์ด์์๋ White Cell ์ฐ๋ฝ๋ด๋น์๋ก ์๋ํฉ๋๋ค: deconfliction ์ฝ์์ ์์ด์ ํธ๋ฅผ ์ผ์ ์ค์งํ๊ณ , RoE ์ค์๋ฅผ ์ธ์ฆํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ ์ธํฉ๋๋ค. CLI๋ ์ ํํ ์ด๋ฅผ ์ํด ์ผ์ ์ค์ง/์ฌ๊ฐ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ๋ ธ์ถํฉ๋๋ค. |
| Trusted Agent | OPPLAN ์น์ธ ๊ถํ์ ๋ณด์ ํ ์ฌ๋์ด ์ธ๊ฒ์ด์ง๋จผํธ์ Trusted Agent์ ๋๋ค. Decepticon์ ๋ช ์์ ์ผ๋ก ์น์ธ๋ RoE์ OPPLAN ์์ด๋ ์ธ๊ฒ์ด์ง๋จผํธ๋ฅผ ์์ํ๊ธฐ๋ฅผ ๊ฑฐ๋ถํฉ๋๋ค. |
Deconfliction
Deconfliction์ ๋ ๋ํ ํ๋์ ์ค์ ํ๋๊ณผ ๋ถ๋ฆฌํ๋ ํ๋ก์ธ์ค์ ๋๋ค. SOC๊ฐ ์ค์ ์ฌ๊ฑด ์์ ๋ ๋ํ์ ๋น์ฝ์ ๋ฌด์ํ ์ ์๊ฒ ํฉ๋๋ค โ ๊ทธ๋ฆฌ๊ณ ๋ ์ค์ํ๊ฒ๋, ์ค์ ์ฌ๊ฑด์ด ๋ ๋ํ์ด๋ผ๊ณ ์๊ฐํด์ ๋ฌด์ํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
Decepticon์ 3๊ฐ์ง ๋ฐฉ์์ผ๋ก deconfliction์ ์ง์ํฉ๋๋ค:
์ด์์-as-White-Cell
์๊ท๋ชจ ์ธ๊ฒ์ด์ง๋จผํธ์์ Decepticon์ ์คํํ๋ ์ธ๊ฐ์ ์ข ์ข ์ฌ๋ฌ ์ ์ ๋ด๋นํฉ๋๋ค โ ์ด์์(Red), ์ฌํ(White), ๊ถํ ๋ณด์ ์(Trusted Agent). Decepticon์ CLI๋ ์ด ํ์ค์ ์ค์ฌ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค:
- OPPLAN ์น์ธ ๊ฒ์ดํธ๋ ์คํ์ด ์์๋๊ธฐ ์ ์ ์ด์์๊ฐ Trusted Agent๋ก ํ๋ํ๋๋ก ๊ฐ์ ํฉ๋๋ค.
- ์คํธ๋ฆฌ๋ฐ ํธ๋์คํฌ๋ฆฝํธ๋ White Cell ๊ด์ฐฐ์์ ๋์ผํ ์ด์์ ๊ฐ์์ฑ์ ์ ๊ณตํฉ๋๋ค.
- ์ผ์ ์ค์ง/์ฌ๊ฐ ์ ์ด๋ ์ด์์๊ฐ ์ธ๊ฒ์ด์ง๋จผํธ ์ค deconfliction ํธ๋์ ฐ์ดํฌ๋ฅผ ์ํํ๋๋ก ํฉ๋๋ค.
๋ ํฐ ์ธ๊ฒ์ด์ง๋จผํธ์ ๊ฒฝ์ฐ, ์ด์์๋ ์ด ์๋ฌด๋ฅผ ๋ถํ ํ ์ ์์ต๋๋ค โ Decepticon์ ํ ๊ฐ์ง ์ ์์ผ๋ก ์คํ(Red Cell)ํ๊ณ ๋ณ๋์ White Cell ํ๋ก์ธ์ค์ deconfliction ๋ก๊ทธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
File: ko/concepts/threat-emulation.mdx
[Binary file]
File: ko/concepts/tradecraft.mdx
[Binary file]
File: ko/contributing/contributing-guide.mdx
title: "๊ธฐ์ฌ ๊ฐ์ด๋ (Contributingย Guide)"
๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค
๋ณด์ ์ฐ๊ตฌ์๋ , AI ์์ง๋์ด๋ , ๋ ๋์ ๋ฐฉ์ด ์ฒด๊ณ๋ฅผ ๋ง๋๋ ๊ฒ์ ๊ด์ฌ์ด ์๋ ๋ถ์ด๋ โ ์ฌ๋ฌ๋ถ์ ์๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ์์ต๋๋ค.
๊ธฐ์ฌ ๋ฐฉ๋ฒ
๊ธฐ์ฌ ์ํฌํ๋ก์ฐ
```text
feat(agents): add Cloud Hunter skill for AWS metadata abuse
fix(opplan): resolve dependency cycle in objective_expand
docs(features): document the offensive vaccine pipeline
```์คํฌ ๊ธฐ์ฌ
์คํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋ก์ด ์คํฌ์ ์ถ๊ฐํ๋ ๊ฒ์ ๊ฐ์ฅ ๊ฐ์น ์๋ ๊ธฐ์ฌ ์ค ํ๋์ ๋๋ค. ๊ฐ ์คํฌ์ ๋ค์์ ํฌํจํด์ผ ํฉ๋๋ค:
- ํ๋ก ํธ๋งคํฐ โ ์ด๋ฆ, ์ค๋ช , MITRE ATT&CK ๊ธฐ๋ฒ ID, ํ์ ๋๊ตฌ
- ๋ด์ฉ โ ๋จ๊ณ๋ณ ๊ธฐ๋ฒ ์คํ, ๋ช ๋ น์ด ์์, ์์ ์ถ๋ ฅ
- ํ์ง ๋ ธํธ โ ๋ฐฉ์ด์๊ฐ ์ด ๊ธฐ๋ฒ์ ํ์งํ ์ ์๋ ๋ฐฉ๋ฒ (๋ฐฉ์ด ์งํ ๋น์ ์ ๊ธฐ์ฌ)
- ์ฌ์ ์๊ตฌ์ฌํญ โ ํ์ํ ์ ๊ทผ ๊ถํ ๋๋ ์กฐ๊ฑด
์ฝ๋ ์คํ์ผ
- ์ฝ๋๋ฒ ์ด์ค์ ๊ธฐ์กด ํจํด์ ๋ฐ๋ฅด์ธ์
- ์ ์ถ ์
make lint๋ฅผ ์คํํ์ธ์ - ์๋ก์ด ๊ธฐ๋ฅ์ ๋ํ ํ ์คํธ๋ฅผ ํฌํจํ์ธ์
- ์๋ช ํ์ง ์์ ์ค๊ณ ๊ฒฐ์ ์ ์ฃผ์์ผ๋ก ๋ฌธ์ํํ์ธ์
์ปค๋ฎค๋ํฐ
๋ผ์ด์ ์ค
Decepticon์ Apache-2.0 ๋ผ์ด์ ์ค ํ์ ๋ฐฐํฌ๋ฉ๋๋ค. ๊ธฐ์ฌํจ์ผ๋ก์จ ์ฌ๋ฌ๋ถ์ ๊ธฐ์ฌ๊ฐ ๋์ผํ ์กฐ๊ฑด์ผ๋ก ๋ผ์ด์ ์ค๋จ์ ๋์ํฉ๋๋ค.
File: ko/contributing/developer-setup.mdx
[Binary file]
File: ko/features/autonomous-execution.mdx
title: "์์จ ์คํ (Autonomous Execution)"
ํฌ ์ฒด์ธ ์ค์ผ์คํธ๋ ์ด์
OPPLAN์ด ์์ฑ๋๋ฉด Decepticon์ ์ค์ผ์คํธ๋ ์ดํฐ๊ฐ ์ธ์ํฉ๋๋ค. ์ ์ฐฐ, ์ต์คํ๋ก์, ๊ถํ ์์น, ์ธก๋ฉด ์ด๋, ์ง์์ฑ์ ์ด๋ฅด๋ ์ ์ฒด ํฌ ์ฒด์ธ์ ์์จ์ ์ผ๋ก ๋ฐ๋ณต ์คํํฉ๋๋ค.
์ด๊ฒ์ ์ ํ์ ์ธ ์คํฌ๋ฆฝํธ๊ฐ ์๋๋๋ค. ์ค์ผ์คํธ๋ ์ดํฐ๋ ๊ฐ ์์ด์ ํธ๊ฐ ๋ฐ๊ฒฌํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ค์๊ฐ์ผ๋ก ์ ์ํฉ๋๋ค.
์คํ ๋ฃจํ
๋ชฉํ๋ณ ํด๋ฆฐ ์ปจํ ์คํธ
์ด๊ฒ์ ํต์ฌ์ ์ธ ์ค๊ณ ๊ฒฐ์ ์ ๋๋ค. ๊ฐ ์์ด์ ํธ๋ ๋ชฉํ๋ง๋ค ํด๋ฆฐ ์ปจํ ์คํธ ์๋์ฐ๋ก ์คํฐ๋ฉ๋๋ค โ ๊ธด ์ธ๊ฒ์ด์ง๋จผํธ์ ๊ฑธ์น ์ปจํ ์คํธ ์ดํ(Context Degradation)๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
์ด๊ฒ์ด ์ ์ค์ํ๊ฐ:
- ์ถ์ ๋ ๋ ธ์ด์ฆ ์์ โ ์ธ๊ฒ์ด์ง๋จผํธ๊ฐ ์งํ๋์ด๋ ์์ด์ ํธ์ ์ถ๋ก ํ์ง์ด ์ ํ๋์ง ์์ต๋๋ค
- ํด๋ฆฐ ์ํ โ ๊ฐ ๋ชฉํ๋ ์ด์ ๋จ๊ณ์ ๋ถํ์ํ ์ปจํ ์คํธ ์์ด ์จ์ ํ ์ฃผ์๋ฅผ ๋ฐ์ต๋๋ค
- ์์์ ๋ฐ๊ฒฌ ์ฌํญ โ ๊ฒฐ๊ณผ๋ ์์ด์ ํธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ๋์คํฌ์ ์ ์ฅ๋ฉ๋๋ค. ์ค์ผ์คํธ๋ ์ดํฐ๋ ๊ฐ ์ ์์ด์ ํธ์ ์ปจํ ์คํธ์ ๊ด๋ จ๋ ์ด์ ๋ฐ๊ฒฌ ์ฌํญ๋ง ์ฃผ์ ํฉ๋๋ค
๋ํํ ์ ธ ์ธ์
์ค์ ์คํ์๋ธ ๋ณด์ ๋๊ตฌ๋ค์ ๋ํํ์
๋๋ค โ sliver-client, msfconsole, evil-winrm, sqlmap, impacket-psexec. ์ด ๋๊ตฌ๋ค์ ๋จ์ํ ๋ช
๋ น์ ๋ฐ๊ณ ์ข
๋ฃํ์ง ์์ต๋๋ค. ํ๋กฌํํธ๋ฅผ ๋์ฐ๊ณ ๋ํ๋ฅผ ๊ธฐ๋ํฉ๋๋ค.
๋๋ถ๋ถ์ AI ์์ด์ ํธ๋ ์ด๋ฅผ ์ฒ๋ฆฌํ์ง ๋ชปํฉ๋๋ค. subprocess.run()์ผ๋ก ์์ท ๋ช
๋ น์ ์คํํ๊ณ ๋๋ด๋ฒ๋ฆฝ๋๋ค.
Decepticon์ ์๋ ํ๋กฌํํธ ๊ฐ์ง ๊ธฐ๋ฅ์ด ์๋ ์์์ tmux ์ธ์ ๋ด์์ ๋ชจ๋ ๋ช ๋ น์ ์คํํฉ๋๋ค:
- ๋๊ตฌ๊ฐ ๋ํํ ํ๋กฌํํธ(
sliver >,msf6 >,PS C:\>)๋ฅผ ํ์ํ๋ฉด, ์์ด์ ํธ๊ฐ ์ด๋ฅผ ๊ฐ์งํ๊ณ ํ์ ๋ช ๋ น์ ์ ์กํฉ๋๋ค - ๋ณ๋ ฌ ๋ค์๋ ์ธ์ โ ์ฌ๋ฌ ๋๊ตฌ ์ธ์ ์ด ๋์์ ์คํ๋ฉ๋๋ค
- ์ ์ด ์๊ทธ๋ โ ๋ํํ ํ๋ก์ธ์ค ๊ด๋ฆฌ๋ฅผ ์ํ
C-c,C-z์ง์ - ์ง์ฐ ๊ฐ์ง โ ๋ช ๋ น์ด ๋ฉ์ถ ๋๋ฅผ ์ธ์ํ๊ณ ๊ต์ ์กฐ์น๋ฅผ ์ทจํฉ๋๋ค
์์ด์ ํธ๊ฐ ์ค์ ๋ก ๋๊ตฌ๋ฅผ ์กฐ์ํฉ๋๋ค โ ์ธ๊ฐ ์คํผ๋ ์ดํฐ๊ฐ ํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก.
๋ฐฑ๊ทธ๋ผ์ด๋ ๋ช ๋ น & ์๋ ์๋ฆผ
์ผ๋ถ ๋ช
๋ น์ ์ ๋ถ์ด ๊ฑธ๋ฆฝ๋๋ค โ nmap -p- -A, ์ ์ฒด Burp ์ค์บ, ์ฅ์๊ฐ ๋์ํ๋ ํผ์ . LLM์ด 10๋ถ๊ฐ ํ๋กฌํํธ์์ ๋๊ธฐํ๋ ๊ฒ์ ์ปดํจํธ์ ํด์ ๋ญ๋น์
๋๋ค. ์์ด์ ํธ๋ ๋์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์์ํ๊ณ ๋ค๋ฅธ ์์
์ผ๋ก ๋์ด๊ฐ๋๋ค:
bash(
command="nmap -p- -A target.lan -oN scan.txt",
run_in_background=True,
session="scan-1",
)
โ { "status": "started", "session": "scan-1" }์ค์บ์ด ๋๋ ๋์ ์์ด์ ํธ๋ ๋ค๋ฅธ ํ๋ฉด์ ์ ์ฐฐํ๊ณ , ๋ค์ ๋ชฉํ๋ฅผ ๊ณํํ๊ณ , ์ง์ ๊ทธ๋ํ๋ฅผ ์ฟผ๋ฆฌํฉ๋๋ค. ์ค์บ์ด ๋๋๋ฉด SandboxNotificationMiddleware๊ฐ ์ถ๋ ฅ์ ์๋์ผ๋ก ์บก์ฒํด ๋ค์ ์ถ๋ก ํด์ ์ฃผ์
ํฉ๋๋ค:
ํด N: bash(..., run_in_background=True) โ "started" ๋ฐํ
ํด N+1: ๋ค๋ฅธ ์์
์ํ
ํด N+2: ์ง์
์ ๋ค์์ ๋ด
๋๋ค:
<system-reminder>
Background command in session scan-1 finished (exit 0).
Output (2.4K):
Nmap scan report for target.lan ...
</system-reminder>bash_output() ํด๋ง ์์. ์ ํด "๋๋ฌ๋?" ํด ์์. ์์ด์ ํธ๊ฐ ๋ช
๋ น์ ์กด์ฌ๋ฅผ ๊ธฐ์ตํ ํ์๋ ์์ต๋๋ค โ ์๋ฃ๊ฐ ์์ด์ ํธ๋ก ์ต๋๋ค. ์ด๊ฒ์ ๋์ ์ธํ๋ผ์ ์ํฌ๋ก๋ ์ํ ์๋ฆผ์ ๊ตฌ๋ํ๋ ๋์ผํ ํจํด์
๋๋ค.
์ถ๋ ฅ ๊ณ์ธตํ
์ฅ์๊ฐ ๋ช ๋ น์ ๋ง์ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค. ์๋๋ฐ์ค๋ ์์ด์ ํธ ์ปจํ ์คํธ ์๋์ฐ๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ๋ก ์ ์งํ๊ธฐ ์ํด ์ถ๋ ฅ์ ๊ณ์ธตํํฉ๋๋ค:
| ๋ถ๋ | ์ฒ๋ฆฌ |
|---|---|
| โค 15 KB | ์๋ฆผ/๋๊ตฌ ๊ฒฐ๊ณผ์ ์ธ๋ผ์ธ. |
| 15 KB โ 100 KB | /workspace/.scratch/์ ๊ธฐ๋ก๋๊ณ ๊ฒฝ๋ก + ์์ฝ๋ง ์ธ๋ผ์ธ. ์์ด์ ํธ๊ฐ ํ์ํ ๋ ํ์ผ์ ์ฝ์. |
| > 5 MB | ํญ์ฃผ ์ธ์ ์ ์ฃฝ์ด๊ณ ๋ช ๋ น์ ๋ค๋ฌ๋๋ก ์์ด์ ํธ์ ํต์ง(๋ฒ์ ์ถ์, ์ถ๋ ฅ ํํฐ). |
ANSI ์คํธ๋ฆฌํ ๋ฐ ๋ฐ๋ณต ๋ผ์ธ ์์ถ๊ณผ ๊ฒฐํฉ๋์ด, ์ฅ์๊ฐ ์ธ๊ฒ์ด์ง๋จผํธ์์๋ ํ ํฐ ์ง์ถ์ด ์์ธก ๊ฐ๋ฅํ๊ฒ ์ ์ง๋ฉ๋๋ค.
RoE ๊ฐ์
๋ชจ๋ ๋ฐ๋ณต์์ ์ค์ผ์คํธ๋ ์ดํฐ๋ ๋ค์ ํ๋์ด ๊ต์ ๊ท์น์ ๋ฒ์ ๋ด์ ์๋์ง ๊ฒ์ฆํฉ๋๋ค. ๋ชฉํ๊ฐ RoE์ ์ ์๋ ๋ฒ์, ์๊ฐ, ๋๋ ๊ธฐ๋ฒ ๊ฒฝ๊ณ๋ฅผ ์๋ฐํ ๊ฒฝ์ฐ, ์๋์ผ๋ก ์ฐจ๋จ๋ฉ๋๋ค.
File: ko/features/benchmark-evaluation.mdx
[Binary file]
File: ko/features/c2-integration.mdx
title: "C2 ํตํฉ (C2 Integration)"
๊ฐ์
Decepticon์ Sliver C2๋ฅผ ์ปค๋งจ๋ ์ค ์ปจํธ๋กค ํ๋ ์์ํฌ๋ก ํตํฉํ์ฌ, ์ค์ ์ ๋์ ์์ค์ ํฌ์คํธ ์ต์คํ๋ก์์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค: ์ํ๋ํธ ๋ฐฐํฌ, ์ธ์ ๊ด๋ฆฌ, ํฌ๋ฆฌ๋ด์ ์์ง, C2 ์ฑ๋์ ํตํ ์ธก๋ฉด ์ด๋.
C2๋ ์ฌํ์ ๋ง๋ถ์ฌ์ง ๊ฒ์ด ์๋๋๋ค โ ์์ ๋คํธ์ํฌ ์ํคํ ์ฒ์ ํต์ฌ ๊ตฌ์ฑ ์์์ ๋๋ค.
C2 ํ์ฑํ
Sliver C2๋ Docker Compose ํ๋กํ์ผ์ ํตํด ํ์ฑํ๋ฉ๋๋ค:
COMPOSE_PROFILES=c2-sliver decepticon์ด ๋ช
๋ น์ Kali ์๋๋ฐ์ค ๋ฐ ํ๊ฒ ์ธํ๋ผ์ ํจ๊ป ์์ ๋คํธ์ํฌ(sandbox-net)์ Sliver ํ ์๋ฒ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ํคํ ์ฒ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ sandbox-net (์์ ) โ
โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โ โ Kali โ โ Sliver โ โ ํ๊ฒ โ โ
โ โ ์๋๋ฐ์ค โโโโ ํ ์๋ฒ โโโโ ์ธํ๋ผ โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โ โ โ
โ sliver-client โ
โ (์ฌ์ ์ค์น๋จ) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโC2 ํ ์๋ฒ๋ ์ ์ ์ผ๋ก ์์ ๋คํธ์ํฌ์์ ์คํ๋ฉ๋๋ค โ ๊ด๋ฆฌ ์ธํ๋ผ์ ์์ ํ ๊ฒฉ๋ฆฌ๋์ด ์์ต๋๋ค. C2 ํธ๋ํฝ์ ๋คํธ์ํฌ ๊ฒฝ๊ณ๋ฅผ ๋์ง ์์ต๋๋ค.
๊ธฐ๋ฅ
์ํ๋ํธ ์์ฑ ๋ฐ ๋ฐฐํฌ
์์ด์ ํธ๊ฐ ํ๊ฒ ํ๊ฒฝ์ ๋ง์ถคํ๋ Sliver ์ํ๋ํธ๋ฅผ ์์ฑํ๊ณ ํ๋ณด๋ ์ ๊ทผ ๊ฒฝ๋ก๋ฅผ ํตํด ๋ฐฐํฌํฉ๋๋ค:
- ํ๋ซํผ โ Windows, Linux, macOS
- ํ์ โ ์ ธ์ฝ๋, ์คํํ์ผ, ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ํํผ โ ๋๋ ํ, ์ปค์คํ ๋น๋
C2 ์ฑ๋
๋ค์ํ ํต์ ์ฑ๋์ ์ง์ํฉ๋๋ค:
| ์ฑ๋ | ์ฉ๋ | ์๋ ์์ค |
|---|---|---|
| mTLS | ๊ธฐ๋ณธ๊ฐ โ ์ํธํ, ์์ ์ | ์ค๊ฐ |
| HTTPS | ์ผ๋ฐ ์น ํธ๋ํฝ์ ํผํฉ | ๋์ |
| DNS | DNS ์ฟผ๋ฆฌ๋ฅผ ํตํ ํฐ๋๋ง | ๋งค์ฐ ๋์ |
C2 ์ธ์ ์ ํตํ ํฌ์คํธ ์ต์คํ๋ก์
์ํ๋ํธ๊ฐ ์ธ์ ์ ์๋ฆฝํ๋ฉด, ํฌ์คํธ ์ต์คํ๋ก์ ์์ด์ ํธ๊ฐ ์ด๋ฅผ ํตํด ์๋ํฉ๋๋ค:
- ํฌ๋ฆฌ๋ด์ ์์ง โ ์นจํด๋ ํธ์คํธ์์ ํฌ๋ฆฌ๋ด์ , ํ ํฐ, ํค๋ฅผ ๋คํ
- ์ธก๋ฉด ์ด๋ โ ์๋ฆฝ๋ C2 ์ธ์ ์ ํตํด ๋ด๋ถ ์์คํ ์ผ๋ก ํผ๋ฒ
- ๋ด๋ถ ์ ์ฐฐ โ ๊ฒฝ๊ณ ๋ด๋ถ์์ ๋คํธ์ํฌ๋ฅผ ๋งคํํ๊ณ , ์๋น์ค๋ฅผ ์ด๊ฑฐํ๋ฉฐ, ์๋ก์ด ํ๊ฒ์ ๋ฐ๊ฒฌ
- ์ง์์ฑ โ ์ฅ๊ธฐ ์ ๊ทผ ๋ฉ์ปค๋์ฆ ์๋ฆฝ
ํ๋กํ์ผ ๊ธฐ๋ฐ ์ค์
C2 ํ๋ ์์ํฌ๋ Docker Compose ํ๋กํ์ผ์ ํตํด ๊ต์ฒด ๊ฐ๋ฅํฉ๋๋ค. ํ์ฌ Sliver๋ง ๊ตฌํ๋์์ผ๋ฉฐ ๋ฐฐํฌ๋๊ณ ์์ต๋๋ค โ ํ๋กํ์ผ ์์คํ ์ ์ถ๊ฐ ํ๋ ์์ํฌ(Havoc, Mythic ๋ฑ)๋ฅผ ๋์ค์ ํ๋ฌ๊ทธ์ธํ ์ ์๋๋ก ์ค๊ณ๋์์ง๋ง, ๊ทธ๋ค์ ์์ง ์ด์ฉ ๋ถ๊ฐ๋ฅํฉ๋๋ค:
# Sliver C2 โ ์ ์ผํ๊ฒ ์ง์๋๋ ํ๋ ์์ํฌ (๊ธฐ๋ณธ๊ฐ)
COMPOSE_PROFILES=c2-sliver
# ํฅํ ๋ฆด๋ฆฌ์ค๋ฅผ ์ํ ๊ณํ (์์ง ์ด์ฉ ๋ถ๊ฐ๋ฅ):
# COMPOSE_PROFILES=c2-havoc
# COMPOSE_PROFILES=c2-mythicFile: ko/features/dynamic-infrastructure.mdx
[Binary file]
File: ko/features/engagement-planning.mdx
title: "์ธ๊ฒ์ด์ง๋จผํธ ๊ณํ (Engagement Planning)"
๊ฐ์
๋ชจ๋ ์ ๋ฌธ์ ์ธ ๋ ๋ํ ์ธ๊ฒ์ด์ง๋จผํธ๋ ์ต์คํ๋ก์์ด ์๋ ๋ฌธ์ํ์์ ์์๋ฉ๋๋ค. Decepticon์ Soundwave ์์ด์ ํธ๋ฅผ ํตํด ์ด๋ฅผ ๊ฐ์ ํฉ๋๋ค. Soundwave๋ ์คํผ๋ ์ดํฐ๋ฅผ ์ธํฐ๋ทฐํ๊ณ , ์ด๋ ํ ๊ณต๊ฒฉ ํ์๊ฐ ์์๋๊ธฐ ์ ์ ์์ ํ ์ธ๊ฒ์ด์ง๋จผํธ ํจํค์ง๋ฅผ ์์ฑํฉ๋๋ค.
์ ์ ํ ๋ฌธ์ํ ์์ด๋ ์ด๋ค ์ธ๊ฒ์ด์ง๋จผํธ๋ ์คํ๋์ง ์์ต๋๋ค. ์ด๊ฒ์ด ์ ๋ฌธ์ ์ธ ๋ ๋ํ ํ๋ซํผ๊ณผ ์คํฌ๋ฆฝํธ ํค๋์ ์ฅ๋๊ฐ์ ๊ตฌ๋ถํ๋ ๊ธฐ์ค์ ๋๋ค.
Soundwave ์์ด์ ํธ
Soundwave๋ Decepticon์ ์ธ๊ฒ์ด์ง๋จผํธ ๊ณํ ์ ๋ฌธ๊ฐ์ ๋๋ค. ๋ํํ ์ธํฐ๋ทฐ๋ฅผ ํตํด ๋ค์์ ์์ฑํฉ๋๋ค:
์๋ ๋ฐฉ์
OPPLAN ๊ตฌ์กฐ
OPPLAN์ ์์จ ์คํ์ ๊ตฌ๋ํ๋ ํต์ฌ ๋ฌธ์์ ๋๋ค. ๊ฐ ๋ชฉํ๋ ๋ค์์ ํฌํจํฉ๋๋ค:
Objective: ์ธ๋ถ ๋
ธ์ถ ์น ์ ํ๋ฆฌ์ผ์ด์
์นจํด
Phase: Initial Access
MITRE ATT&CK: T1190 (Exploit Public-Facing Application)
Acceptance Criteria: ์น ์๋ฒ์์ ์๊ฒฉ ์ฝ๋ ์คํ ๋ฌ์ฑ
Dependencies: ์ ์ฐฐ ๋ชฉํ ์๋ฃ
Status: PENDING๋ชฉํ๋ ์ํ ์ ์ด๋ฅผ ํตํด ์ถ์ ๋ฉ๋๋ค: PENDING โ IN_PROGRESS โ PASSED / BLOCKED. ์ค์ผ์คํธ๋ ์ดํฐ๊ฐ ์์กด์ฑ์ ๊ด๋ฆฌํ๊ณ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๊ณต๊ฒฉ ๊ฒฝ๋ก๋ฅผ ์ ์์ํต๋๋ค.
File: ko/features/knowledge-graph.mdx
[Binary file]
File: ko/features/multi-model-routing.mdx
title: "๋ฉํฐ ๋ชจ๋ธ ๋ผ์ฐํ (Multi-Model Routing)"
๊ฐ์
๋ชจ๋ ์์ด์ ํธ ์์ ์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๋ชจ๋ธ์ด ํ์ํ ๊ฒ์ ์๋๋๋ค. Decepticon์ LiteLLM์ ํ๋ก์ ๋ ์ด์ด๋ก ์ฌ์ฉํ์ฌ, ์์ด์ ํธ ์ญํ ๋ณ๋ก ์๋ก ๋ค๋ฅธ ๋ชจ๋ธ ํฐ์ด์ ๋ผ์ฐํ ํฉ๋๋ค โ ๋น์ฉ, ์๋, ์ญ๋์ ๊ท ํ์ ์ต์ ํํฉ๋๋ค.
๋ชจ๋ธ ํ๋กํ์ผ
์ธ ๊ฐ์ง ๋ด์ฅ ํ๋กํ์ผ์ด ๊ฐ๊ธฐ ๋ค๋ฅธ ์ฉ๋์ ์ต์ ํ๋์ด ์์ต๋๋ค:
| ํ๋กํ์ผ | ์ค์ผ์คํธ๋ ์ดํฐ | ์ต์คํ๋ก์ | ์ ์ฐฐ | ์ฉ๋ |
|---|---|---|---|---|
| eco | Opus 4.7 | Sonnet 4.6 | Haiku 4.5 | ํ๋ก๋์ โ ์ต์์ ๋น์ฉ/์ฑ๋ฅ ๋น์จ (๊ธฐ๋ณธ๊ฐ) |
| max | Opus 4.7 | Opus 4.7 | Sonnet 4.6 | ๊ณ ๊ฐ์น ํ๊ฒ โ ์ต๋ ์ฑ๋ฅ |
| test | Haiku 4.5 | Haiku 4.5 | Haiku 4.5 | ๊ฐ๋ฐ/CI โ ๋น ๋ฅธ ๋ฐ๋ณต |
์ ๊ณต์๋ณ ์ ์ฒด ํฐ์ด๋น ๋ชจ๋ธ ๋งคํธ๋ฆญ์ค:
| ํฐ์ด | Anthropic API | Anthropic OAuth | OpenAI | MiniMax | |
|---|---|---|---|---|---|
| HIGH | claude-opus-4-7 | auth/claude-opus-4-7 | gpt-5.5 | gemini-2.5-pro | MiniMax-M2.5 |
| MID | claude-sonnet-4-6 | auth/claude-sonnet-4-6 | gpt-5.4 | gemini-2.5-flash | MiniMax-M2.5-lightning |
| LOW | claude-haiku-4-5 | auth/claude-haiku-4-5 | gpt-5-nano | gemini-2.5-flash-lite | โ |
๋๋ถ๋ถ์ ์ธ๊ฒ์ด์ง๋จผํธ์์๋ eco ํ๋กํ์ผ์ ๊ถ์ฅํฉ๋๋ค. ์ค์ผ์คํธ๋ ์ดํฐ๋ ๊น์ ์ถ๋ก ์ด ํ์ํ์ง๋ง(Opus), ์ ์ฐฐ ์์ ์ ๋ ๋น ๋ฅด๊ณ ์ ๋ ดํ ๋ชจ๋ธ๋ก๋ ์ถฉ๋ถํฉ๋๋ค.
์ญํ ๊ธฐ๋ฐ ๋ผ์ฐํ
๊ฐ ์์ด์ ํธ ์ญํ ์ ์๋ก ๋ค๋ฅธ ์ธ์ง์ ์๊ตฌ์ฌํญ์ ๊ฐ์ง๋๋ค:
์๋ ํด๋ฐฑ
๊ฐ ํฐ์ด๋ ์ ๊ณต์๋ณ ํด๋ฐฑ ์ฒด์ธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ธฐ๋ณธ ํ๋ก๋ฐ์ด๋๊ฐ ๋ ์ดํธ ๋ฆฌ๋ฐ์ ๊ฑธ๋ฆฌ๊ฑฐ๋ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด, Decepticon์ด ์ํํ๊ฒ ์ ํํฉ๋๋ค:
HIGH: Opus 4.7 โ GPT-5.5 โ Gemini 2.5 Pro โ MiniMax-M2.5
MID: Sonnet 4.6 โ GPT-5.4 โ Gemini 2.5 Flash โ MiniMax-M2.5-lightning
LOW: Haiku 4.5 โ GPT-5-nano โ Gemini 2.5 Flash-Lite์ ๊ณต์ ์์๋ DECEPTICON_AUTH_PRIORITY ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ๊ตฌ์ฑ ๊ฐ๋ฅํฉ๋๋ค (์: anthropic_oauth,anthropic_api,openai_api,google_api,minimax_api). ์ ํ์ ํฌ๋ช
ํฉ๋๋ค โ ์๋ ๊ฐ์
์์ด, ์์ ์ด ์ค๋จ๋์ง ์์ต๋๋ค.
ํ๋ก๋ฐ์ด๋ ์ง์
LiteLLM ํธํ ๋ชจ๋ ๋ฐฑ์๋๊ฐ ์๋ํฉ๋๋ค:
- Anthropic โ Claude Opus 4.7, Sonnet 4.6, Haiku 4.5 (API ํค ๋๋ Claude OAuth ๊ตฌ๋ )
- OpenAI โ GPT-5.5, GPT-5.4, GPT-5-nano
- Google โ Gemini 2.5 Pro / Flash / Flash-Lite
- MiniMax โ MiniMax-M2.5 ๋ฐ M2.5-lightning
- ์์ฒด ํธ์คํ โ vLLM, Ollama, ๋๋ OpenAI ํธํ ์๋ํฌ์ธํธ
decepticon onboard๋ ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ์ค์ ํ์ธ์. ์์ธํ ๋ด์ฉ์ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
File: ko/features/offensive-vaccine-pipeline.mdx
title: "์คํ์๋ธ ๋ฐฑ์ ํ์ดํ๋ผ์ธ"
์คํ์๋ธ ๋ฐฑ์ ์ Decepticon์ ์ด๋ฆ๊ณผ ๋ชฉ์ ์ ๋ถ์ฌํ๋ ๋ฃจํ์ ๋๋ค: ๋ชจ๋ ์คํ์๋ธ ํ๋์ด ๋ฐฉ์ด์ ์ฐ์ถ๋ฌผ์ด ๋ฉ๋๋ค. ์ด ํ์ด์ง๋ ์ค๋ ์ถ์๋ 5๋จ๊ณ Vulnresearch ํ์ดํ๋ผ์ธ๊ณผ, ํฅํ ๋ฃจํ๋ฅผ ์ข ๋ฃํ ๊ณํ๋ ๋ฐฉ์ด ์ธก ์ปดํฌ๋ํธ๋ฅผ ๋ฌธ์ํํฉ๋๋ค.
๋ฃจํ
๊ณต๊ฒฉ โ ํ์ง ๊ท์น โ ๊ฒ์ฆ โ ์ต์คํ๋ก์ PoC โ ํจ์น
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ํ๊ท ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง๊ฐ ๋จ๊ณ๋ ์ ๋ฌธ๊ฐ ์์ด์ ํธ๊ฐ ์์ ํฉ๋๋ค. ํจ๊ป ๋ณด์ ์ฐ์ ์ด "ํผํ ํ ํ๋"์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ์์ ํ ์๋ํํฉ๋๋ค.
5๋จ๊ณ
Vulnresearch ์ค์ผ์คํธ๋ ์ดํฐ
5๊ฐ์ ์์ด์ ํธ๋ ๊ณ ์ ํ์ดํ๋ผ์ธ์ผ๋ก ์คํ๋์ง ์์ต๋๋ค โ ๋ฐ๊ฒฌ ์ฌํญ์ ๊ธฐ๋ฐ์ผ๋ก ์์๋ฅผ ๊ฒฐ์ ํ๋ 6๋ฒ์งธ ์์ด์ ํธ Vulnresearch์ ์ํด ์ค์ผ์คํธ๋ ์ด์ ๋ฉ๋๋ค. Scanner๊ฐ ๋์ ์ ๋ขฐ๋์ ํ๋ณด๋ฅผ ์์ฑํ๋ฉด, Vulnresearch๋ Verifier๋ก ์ง์ ์คํตํ ์ ์์ต๋๋ค. Verifier๊ฐ ํ๋ณด๋ฅผ ๊ฑฐ๋ถํ๋ฉด, Patcher๋ Exploiter ๋ฆฌ์์ค๋ฅผ ๋ญ๋นํ์ง ์๊ณ ๋ฃจํ๋ ์ข ๋ฃ๋ฉ๋๋ค.
| ์์ด์ ํธ | ์ ๋ ฅ | ์ถ๋ ฅ |
|---|---|---|
| Scanner | ํ๊ฒ ๋ฒ์ | ํ๋ณด ๋ฐ๊ฒฌ ๋ชฉ๋ก |
| Detector | ํ๋ณด ๋ฐ๊ฒฌ | ํ์ง ๊ท์น (Sigma / YARA / ํด๋ฆฌ์คํฑ) |
| Verifier | ํ๋ณด + ํ์ง ๊ท์น | ๊ฒ์ฆ๋จ-์ ๋๋ ๊ฒ์ฆ๋จ-์๋์, 2๊ฐ์ง ์ฆ๊ฑฐ ๋ฐฉ๋ฒ ํฌํจ |
| Patcher | ๊ฒ์ฆ๋ ํ๋ณด | ํจ์น (์ฝ๋ ๋๋ ์ค์ ) + ํจ์น๊ฐ ๋ฒ๊ทธ๋ฅผ ๋ซ์์์ ์ฆ๋ช
ํ๋ patch_verify |
| Exploiter | ํจ์น๋ ํ๋ณด | ํจ์น์ ๋ํ ์ฌํ ๊ฐ๋ฅํ PoC โ ํจ์น๊ฐ ๊ฒฌ๊ณ ํ๋ฉด ์คํจ, ํจ์น๊ฐ ๋ถ์์ ํ๋ฉด ์ฑ๊ณต (๋ฃจํ ๋ฐ๋ณต) |
๊ณํ๋ ๋ฐฉ์ด ์ปดํฌ๋ํธ
๊ณํ๋ ๋ฐฉ์ด ์ข ๊ฒฐ ์ปดํฌ๋ํธ๋ 5๋จ๊ณ ํ์ดํ๋ผ์ธ์ ์ผ๋ถ๊ฐ ์๋๋๋ค โ ์ฐ์ถ๋ฌผ์ ์๋นํ๋ ๋ณ๋ ฌ ์์ด์ ํธ๋ก ์๋๋์ด ์์ผ๋ฉฐ ๋ฐฉ์ด ๋ธ๋ฆฌํ๋ฅผ ์์ฑํ๋๋ก ์ค๊ณ๋์ด ์์ต๋๋ค: ์์ ์ต์ข ๋ณด๊ณ ์์ ๋ธ๋ฃจํ์ ์ ๋ฌ๋๋ ๋ฌธ์.
๊ณํ๋ ๋ฐฉ์ด ๋ธ๋ฆฌํ์๋:
- ์ฌ์ฉ๋ ๊ธฐ๋ฒ (MITRE ATT&CK ID)
- Detector๊ฐ ์์ฑํ ํ์ง ๊ท์น
- Exploiter๊ฐ ์์ฑํ PoC
- Patcher์ ๊ถ์ฅ ํจ์น
- ๊ฒ์ฆ ์ํ (ํจ์น๊ฐ PoC๋ฅผ ๊นจ๋จ๋ ธ๋์?)
- ๋ธ๋ฃจํ์ ๊ธฐ์กด ํ์ง ์ปค๋ฒ๋ฆฌ์ง๋ก์ ๋งคํ (๊ฐญ)
์ด๊ฒ์ ๊ฒฐ๊ตญ ์คํ์๋ธ ์์ ์ ๋ฐฉ์ด์ ๊ฐ์ ์ผ๋ก ๋ณํํ ์ฐ์ถ๋ฌผ์ ๋๋ค. ์ด ์ปดํฌ๋ํธ๊ฐ ๋์ฐฉํ ๋๊น์ง๋ ์ด์์๊ฐ ์ํฌ์คํ์ด์ค ์ถ๋ ฅ์์ ๋ธ๋ฆฌํ๋ฅผ ์๋์ผ๋ก ์กฐ๋ฆฝํฉ๋๋ค.
2-๋ฉ์๋ ๊ฒ์ฆ์ด ์ค์ํ ์ด์
๋จ์ผ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์์ผ ์ ์์ต๋๋ค โ ๋คํธ์ํฌ ์ค์บ์ ์ทจ์ฝํ ์ฝ๋๊ฐ ๋๋ฌ ๊ฐ๋ฅํ์ง ์์๋ ๋ฐฐ๋์ ์ผ์นํ ์ ์์ต๋๋ค; PoC๋ ํ๋ํ์ ๋ํด ์ฑ๊ณตํ ์ ์์ต๋๋ค. Verifier๋ 2๊ฐ์ง ๋ ๋ฆฝ์ ์ธ ๋ฉ์๋๋ฅผ ์๊ตฌํฉ๋๋ค. ์:
- ์ ์ ์ฆ๊ฑฐ (๋ฒ์ ๋ฐฐ๋) + ๋์ ์ฆ๊ฑฐ (PoC ํ์ด๋ก๋ ์๋ต)
- ๋คํธ์ํฌ์ธก ํ์ง (IDS ๋ฐํ) + ํธ์คํธ์ธก ํ์ง (ํ๋ก์ธ์ค ์ํฐํฉํธ)
- ์์ค ์ฝ๋ ๋ถ์ + ๋ฐํ์ ๊ณ์ธก
Decepticon์ 2-๋ฉ์๋ ๊ฒ์ดํธ ์์ด ๋ฐ๊ฒฌ์ Patcher / Exploiter ๋จ๊ณ๋ก escalateํ์ง ์์ต๋๋ค. ์ด๋ ์์ ๊ธฐ๋ก์ ๋ญ๋น๋ ๊ณ์ฐ๊ณผ ๊ฑฐ์ง ๊ฒฝ๋ณด๋ฅผ ๋ํญ ๊ฐ์์ํต๋๋ค.
์ง์ ๊ทธ๋ํ ํตํฉ
ํ์ดํ๋ผ์ธ์ด ์์ฑํ ๋ชจ๋ ์ฐ์ถ๋ฌผ์ Neo4j ๊ณต๊ฒฉ ๊ทธ๋ํ์ ๋์ฐฉํฉ๋๋ค:
- ๋ฐ๊ฒฌ์
Vulnerability๋ ธ๋๊ฐ ๋ฉ๋๋ค - ํ์ง ๊ท์น์
DETECTS์์ง๋ฅผ ๊ฐ์งDefenseAction๋ ธ๋๊ฐ ๋ฉ๋๋ค - ํจ์น๋
MITIGATES์์ง๋ฅผ ๊ฐ์งDefenseAction๋ ธ๋๊ฐ ๋ฉ๋๋ค - ๊ฒ์ฆ์ ํ๋ก๋น๋์ค ์์ง๊ฐ ๋ฉ๋๋ค
๊ทธ๋ํ๋ ์์ ์ค์ ์ฟผ๋ฆฌ ๊ฐ๋ฅํ๊ณ ์์ ์ฐ์ถ๋ฌผ๋ก ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
File: ko/features/opplan-system.mdx
title: "OPPLAN ์์คํ "
OPPLAN(์์ ๊ณํ, Operations Plan)์ ์ธ๊ฐ์ ์๋์ ์์จ์ ์คํ์ ์ฐ๊ฒฐํ๋ ๋ค๋ฆฌ์ ๋๋ค. ์ค์ผ์คํธ๋ ์ดํฐ๊ฐ ์ค์ผ์ค๋งํ๋ ๋จ์ผ ์ ๋ณด ์์ค์ด๋ฉฐ, ์ ๋ฌธ๊ฐ ์์ด์ ํธ๊ฐ ์๋นํ๊ณ , ์ด์์๊ฐ ์น์ธํฉ๋๋ค. OPPLAN ์์ด๋ Decepticon์ด ์คํ๋์ง ์์ต๋๋ค.
OPPLAN์ด๋
OPPLAN์ ๊ตฌ์กฐํ๋ ๋ชฉํ ๋ชฉ๋ก์ ๋๋ค โ ๊ฐ๊ฐ ํฌ ์ฒด์ธ ๋จ๊ณ, MITRE ATT&CK ID, OPSEC ์์ค, C2 ํฐ์ด, ์์กด์ฑ ๋ฐ ์์ฉ ๊ธฐ์ค์ผ๋ก ํ๊ทธ๋ฉ๋๋ค. Soundwave ์์ด์ ํธ๊ฐ ์ด์์ ์ธํฐ๋ทฐ์์ ์์ฑํ๊ณ , Decepticon ์ค์ผ์คํธ๋ ์ดํฐ๊ฐ ์คํํ๋ฉฐ, ์ด์์๋ ์ธ์ ๋ ํธ์งํ ์ ์์ต๋๋ค.
- id: obj-001
phase: RECON
title: "ํ๊ฒ ์๋ธ๋ท์ ๋
ธ์ถ๋ ์๋น์ค ์๋ณ"
mitre_attack: [T1595, T1592]
opsec_level: low
c2_tier: null # ์ ์ฐฐ์์๋ ํด๋น ์์
dependencies: []
acceptance:
- "ํธ์คํธ๋น ๊ฐ๋ฐฉ ํฌํธ ๋ฐ ์๋น์ค ๋ชฉ๋ก"
- "์๋น์ค ๋ฐฐ๋ ์บก์ฒ๋จ"
status: pending
- id: obj-002
phase: INITIAL_ACCESS
title: "10.0.2.4์ vsftpd 2.3.4 ์ต์คํ๋ก์"
mitre_attack: [T1190]
opsec_level: medium
c2_tier: short_haul
dependencies: [obj-001]
acceptance:
- "ํ๊ฒ์ ์ด๊ธฐ ์ ๊ทผ ์
ธ"
- "Sliver๋ฅผ ํตํด ์ํ๋ํธ ๋ฐฐํฌ๋จ"
status: pendingOPPLAN ๋ฏธ๋ค์จ์ด
์ค์ผ์คํธ๋ ์ดํฐ๋ OPPLAN์ ๋ํ ์ปจํ
์คํธ์ ์ ์ฅํ์ง ์์ต๋๋ค โ ๊ตฌ์กฐํ๋ ๋๊ตฌ๋ฅผ ๋
ธ์ถํ๊ณ ๋ชจ๋ LLM ํธ์ถ์ ํ์ฌ ์ํ๋ฅผ ์ฃผ์
ํ๋ ์ ์ฉ ๋ฏธ๋ค์จ์ด(OPPLANMiddleware)์ ์์ต๋๋ค.
CRUD ๋๊ตฌ
์ค์ผ์คํธ๋ ์ดํฐ์ Soundwave๋ 5๊ฐ์ ์ ์ฉ ๋๊ตฌ๋ฅผ ํตํด OPPLAN์ ์กฐ์ํฉ๋๋ค:
| ๋๊ตฌ | ๋ชฉ์ |
|---|---|
add_objective |
์ ์ฒด ์คํค๋ง๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ชฉํ ์ถ๊ฐ |
get_objective |
ID๋ก ๋จ์ผ ๋ชฉํ ๊ฒ์ |
list_objectives |
๋ชจ๋ ๋ชฉํ๋ฅผ ๋์ดํ๋ฉฐ, ์ ํ์ ์ผ๋ก ๋จ๊ณ๋ ์ํ๋ก ํํฐ๋ง |
update_objective |
๋ชฉํ์ ์ํ, ์ฆ๊ฑฐ ๋๋ ํ๋ ๋ณ๊ฒฝ |
objective_expand |
๋ชฉํ๋ฅผ ํ์ ๋ชฉํ๋ก ๋ถํด (PTT โ Pentesting Task Tree) |
์ด๋ Claude Code์ V2 ์์ ์์คํ ์ด ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ตฌ์กฐ์ ํจํด์ ๋๋ค โ ์์ ์ํ๋ ๋ฉ์์ง ์ค๋ ๋๊ฐ ์๋ ํ์ ๊ฐ์ฒด์ ๋๋ค.
๋์ ์ํ ์ฃผ์
๋ชจ๋ LLM ํธ์ถ์์ ๋ฏธ๋ค์จ์ด๋ ํ์ฌ OPPLAN ์ํ โ ์ด๋ค ๋ชฉํ๊ฐ ๋๊ธฐ ์ค, ์งํ ์ค ๋๋ ์๋ฃ๋ ์ํ โ ๋ฅผ ์ง์ ์์คํ ํ๋กฌํํธ ๋ธ๋ก์ ์ฃผ์ ํฉ๋๋ค. ์ค์ผ์คํธ๋ ์ดํฐ๋ ์ฑํ ๊ธฐ๋ก์์ ๊ณํ ์ํ๋ฅผ ๋ค์ ์ ๋ํ ํ์๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ด Decepticon์ ์ถ๋ก ์ด ๊ธด ์์ ๊ธฐ๊ฐ์ ๊ฑธ์ณ ๊ฐ๋ ฅํ ์ด์ ์ ๋๋ค.
์์กด์ฑ ํด๊ฒฐ
๋ชฉํ๋ ์์กด์ฑ์ ์ ์ธํ ์ ์์ต๋๋ค. ์ค์ผ์คํธ๋ ์ดํฐ๋ ์์กด์ฑ์ด complete์ธ ๋ชฉํ๋ง ์ค์ผ์คํฉ๋๋ค. ์ด๋ ์ด์์์๊ฒ ์ํฌํ๋ก์ฐ๋ฅผ ์์ผ๋ก ์ฝ๋ฉํ์ง ์๊ณ ๋ ๊ฒฐ์ ๋ก ์ ์คํ ์์๋ฅผ ์ ๊ณตํฉ๋๋ค:
obj-001 (์ ์ฐฐ)
โโ obj-002 (์ต์คํ๋ก์, obj-001์ ์์กด)
โโ obj-003 (ํฌ์คํธ-์ต์คํ๋ก์, obj-002์ ์์กด)
โโ obj-004 (์ง์์ฑ, obj-002์ ์์กด)obj-002๊ฐ ์๋ฃ๋๋ฉด, obj-003๊ณผ obj-004 ๋ชจ๋ ์ ๊ฒฉ์ด ๋๋ฉฐ โ ์ค์ผ์คํธ๋ ์ดํฐ๋ ์ด๋ค์ ์ํด ์ ๋ฌธ๊ฐ ์์ด์ ํธ๋ฅผ ๋ณ๋ ฌ๋ก ์คํฐํ ์ ์์ต๋๋ค.
Pentesting Task Tree (PTT)
๋ณต์กํ ๋ชฉํ์ ๊ฒฝ์ฐ, ์ค์ผ์คํธ๋ ์ดํฐ๋ objective_expand๋ฅผ ํตํด ๋จ์ผ ๋ชฉํ๋ฅผ ํ์ ๋ชฉํ์ ํธ๋ฆฌ๋ก ํ์ฅํ ์ ์์ต๋๋ค. ์ด๋ Decepticon์ด *"Active Directory ํฌ๋ฆฌ์คํธ ๊ณต๋ต"*๊ณผ ๊ฐ์ "๋ชจํธํ" ๋ชฉํ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์
๋๋ค โ AD ์คํผ๋ ์ดํฐ ์์ด์ ํธ๊ฐ ์คํํ ์ ์๋ ๊ตฌ์ฒด์ ์ธ ํ์ ๋ชฉํ๋ก ๋์ ์ผ๋ก, ๋นํ ์ค์ ๋ถํดํฉ๋๋ค.
obj-005: AD ํฌ๋ฆฌ์คํธ ๊ณต๋ต (๋ถ๋ชจ)
โโ obj-005.1: BloodHound์ ํตํด ๋๋ฉ์ธ ์ด๊ฑฐ
โโ obj-005.2: Kerberoastable ๊ณ์ ์๋ณ
โโ obj-005.3: TGT ํด์ ์ถ์ถ
โโ obj-005.4: ์คํ๋ผ์ธ ํด์ ํฌ๋ํน๊ฐ ์์์ ๋ถ๋ชจ์ RoE ์ ์ฝ๊ณผ ATT&CK ํ๊ทธ ์งํฉ์ ์์๋ฐ์ต๋๋ค.
์น์ธ ๊ฒ์ดํธ
OPPLAN์ ์น์ธ ๊ณ์ฝ์ ๋๋ค. Soundwave๊ฐ ์์ฑํ ํ, ์ด์์๋ CLI๋ฅผ ํตํด ๊ฒํ ํ๊ณ ์น์ธํฉ๋๋ค. ์น์ธ๋ OPPLAN๋ง ์คํ๋ ์ ์์ต๋๋ค. ์ด๋ ์ ๋ขฐํ ์ ์๋ ์์ด์ ํธ ํธ๋์ ฐ์ดํฌ๊ฐ ์ํํธ์จ์ด๋ก ์ธ์ฝ๋ฉ๋ ๊ฒ์ ๋๋ค.
OPPLAN๊ณผ ์ ์ ํ ์ปจํ ์คํธ
๊ฐ ๋ชฉํ๋ ์ ์ ํ ์์ด์ ํธ ์ธ์คํด์ค๋ก ์คํ๋๋ฉฐ ๊นจ๋ํ ์ปจํ ์คํธ ์๋์ฐ๋ฅผ ๊ฐ์ง๋๋ค. ์ค์ผ์คํธ๋ ์ดํฐ๋ ๊ด๋ จ๋ ์ด์ ๋ฐ๊ฒฌ์ ๋ช ์์ ์ผ๋ก ์ ๋ฌํฉ๋๋ค โ ์ ์ฒด ๋ํ ๊ธฐ๋ก์ด ์๋๋๋ค. ์ด๋ 200๊ฐ ๋ชฉํ ์์ ์ด ์ปจํ ์คํธ ์ดํ๋ฅผ ์ผ์ผํค์ง ์๋๋ค๋ ์๋ฏธ์ ๋๋ค.
File: ko/features/skill-system.mdx
[Binary file]
File: ko/getting-started/configuration.mdx
title: "์ค์ (Configuration)"
API ํค ์ค์
Decepticon์ ์์ด์ ํธ๋ฅผ ๊ตฌ๋ํ๋ ค๋ฉด LLM API ํค๊ฐ ํ์ํฉ๋๋ค. ๋ํํ ์ค์ ๋ง๋ฒ์ฌ๋ฅผ ์คํํ์ธ์:
decepticon onboard # ๊ธฐ๋ณธ ์ค์ ํ๋ฆ
decepticon onboard --reset # ์ฒ์๋ถํฐ ๋ค์ ์ค์ ์ง์ ํ๋ก๋ฐ์ด๋
Decepticon์ LiteLLM์ ๋ชจ๋ธ ํ๋ก์๋ก ์ฌ์ฉํ๋ฉฐ, ํธํ๋๋ ๋ชจ๋ ๋ฐฑ์๋๋ฅผ ์ง์ํฉ๋๋ค:
| ํ๋ก๋ฐ์ด๋ | ๋ชจ๋ธ | ๋น๊ณ |
|---|---|---|
| Anthropic API | Claude Opus, Sonnet, Haiku | ์ต์์ ์ฑ๋ฅ์ ์ํด ๊ถ์ฅ |
| Anthropic OAuth | ๋์ผ ๋ชจ๋ธ, Claude ๊ตฌ๋ ์ ํตํด | Claude Code OAuth ํฌ๋ฆฌ๋ด์ ์ฌ์ฉ |
| OpenAI | GPT-5.5, GPT-5.4, GPT-5-nano | ์๋ ํด๋ฐฑ๊ณผ ํจ๊ป ์์ ์ง์ |
| Gemini 2.5 Pro / Flash / Flash-Lite | LiteLLM ํ๋ก์๋ฅผ ํตํด ์ง์ | |
| MiniMax | MiniMax-M2.5, MiniMax-M2.5-lightning | ๋์ฒด ์์/์ค์ ํฐ์ด |
| ์ปค์คํ | ๋ชจ๋ LiteLLM ๋ฐฑ์๋ | ์์ฒด ํธ์คํ ๋๋ ๋์ ํ๋ก๋ฐ์ด๋ |
ํ๊ฒฝ ๋ณ์
ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด์๋ ์ค์ ํ ์ ์์ต๋๋ค:
# ๊ธฐ๋ณธ ํ๋ก๋ฐ์ด๋
export ANTHROPIC_API_KEY="sk-ant-..."
# ๋๋ OpenAI
export OPENAI_API_KEY="sk-..."
# ๋๋ ์ปค์คํ
๋ฐฑ์๋๋ฅผ ์ํ LiteLLM ์ค์ ๋ชจ๋ธ ํ๋กํ์ผ
Decepticon์ ์์ด์ ํธ ์ญํ ๋ณ๋ก ์๋ก ๋ค๋ฅธ ๋ชจ๋ธ ํฐ์ด์ ๋ผ์ฐํ ํ์ฌ ๋น์ฉ/์ฑ๋ฅ์ ์ต์ ๊ท ํ์ ๋ง์ถฅ๋๋ค:
| ํ๋กํ์ผ | ์ค์ผ์คํธ๋ ์ดํฐ | ์ต์คํ๋ก์ | ์ ์ฐฐ | ์ฉ๋ |
|---|---|---|---|---|
| eco | Opus 4.7 | Sonnet 4.6 | Haiku 4.5 | ํ๋ก๋์ โ ์ต์์ ๋น์ฉ/์ฑ๋ฅ ๋น์จ (๊ธฐ๋ณธ๊ฐ) |
| max | Opus 4.7 | Opus 4.7 | Sonnet 4.6 | ๊ณ ๊ฐ์น ํ๊ฒ โ ์ต๋ ์ฑ๋ฅ |
| test | Haiku 4.5 | Haiku 4.5 | Haiku 4.5 | ๊ฐ๋ฐ/CI โ ๋น ๋ฅธ ๋ฐ๋ณต |
๊ฐ ํ๋กํ์ผ์๋ ์๋ ํด๋ฐฑ ์ฒด์ธ์ด ํฌํจ๋์ด ์์ต๋๋ค. ๊ธฐ๋ณธ ํ๋ก๋ฐ์ด๋๊ฐ ์ฌ์ฉ ๋ถ๊ฐํ๊ฑฐ๋ ๋ ์ดํธ ๋ฆฌ๋ฐ์ ๊ฑธ๋ฆฌ๋ฉด, Decepticon์ด ๋ค์ ํ๋ก๋ฐ์ด๋๋ก ์ํํ๊ฒ ์ ํํฉ๋๋ค (์: Opus 4.7 โ GPT-5.5 โ Gemini 2.5 Pro โ MiniMax-M2.5).
decepticon onboard ์คํ ์ ํ๋กํ์ผ์ ์ ํํ๊ฑฐ๋ ์ธ์ ๋ DECEPTICON_MODEL_PROFILE ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. eco ํ๋กํ์ผ์ด ๊ธฐ๋ณธ๊ฐ์ด๋ฉฐ ๋๋ถ๋ถ์ ์์ ์์ ๊ถ์ฅ๋ฉ๋๋ค.
C2 ์ค์
Sliver C2 ํตํฉ์ Docker Compose ํ๋กํ์ผ ๋ฐฉ์์ผ๋ก ํ์ฑํ๋ฉ๋๋ค. COMPOSE_PROFILES ํ๊ฒฝ ๋ณ์๋ ๋ฐ์ฒ๊ฐ ์คํ์ ์์ํ๊ธฐ ์ ์ .env (๋๋ ์)์์ ์ฝํ๋ฉฐ, decepticon ๋ช
๋ น์ด์ ํ๋๊ทธ๊ฐ ์๋๋๋ค. Sliver๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋ฉ๋๋ค.
# .env (๊ธฐ๋ณธ๊ฐ)
COMPOSE_PROFILES=c2-sliver
# ๋๋ ์คํ ์ ์์ ํตํด ์ฌ์ ์
COMPOSE_PROFILES=c2-sliver decepticonํ์ฑํ ์, Sliver ํ ์๋ฒ๊ฐ ์์ ๋คํธ์ํฌ์์ ๋ค์๊ณผ ํจ๊ป ์์๋ฉ๋๋ค:
- ์๋ ์์ฑ๋ ์คํผ๋ ์ดํฐ ์ค์
- ์๋๋ฐ์ค์ ์ฌ์ ์ค์น๋
sliver-client - mTLS, HTTPS, DNS C2 ์ฑ๋ ์ง์
Docker ๋ฆฌ์์ค
Decepticon์ ์ ์ ์ผ๋ก Docker ์ปจํ ์ด๋์์ ์คํ๋ฉ๋๋ค. ๊ถ์ฅ ๋ฆฌ์์ค ํ ๋น:
| ์ปดํฌ๋ํธ | CPU | ๋ฉ๋ชจ๋ฆฌ | ๋น๊ณ |
|---|---|---|---|
| LangGraph Platform | 1 ์ฝ์ด | 1 GB | ๊ด๋ฆฌ ๋คํธ์ํฌ โ ์์ด์ ํธ ์กฐ์จ |
| LiteLLM Proxy | 0.5 ์ฝ์ด | 512 MB | ๊ด๋ฆฌ ๋คํธ์ํฌ |
| PostgreSQL | 0.5 ์ฝ์ด | 512 MB | ๊ด๋ฆฌ ๋คํธ์ํฌ โ ์ธ๊ฒ์ด์ง๋จผํธ ์ํ |
| Neo4j | 1 ์ฝ์ด | 1 GB | ์ ๋คํธ์ํฌ ์ฐ๊ฒฐ โ ์ง์ ๊ทธ๋ํ |
| Web Dashboard | 0.5 ์ฝ์ด | 512 MB | ๊ด๋ฆฌ ๋คํธ์ํฌ โ Next.js |
| Kali Sandbox | 2 ์ฝ์ด | 4 GB | ์์ ๋คํธ์ํฌ โ ์คํ์๋ธ ๋๊ตฌ ์คํ |
| Sliver C2 | 1 ์ฝ์ด | 1 GB | ์์ ๋คํธ์ํฌ (๊ธฐ๋ณธ ํ๋กํ์ผ) |
File: ko/getting-started/library-usage.mdx
title: "๋ผ์ด๋ธ๋ฌ๋ฆฌ ยท SDK ์ฌ์ฉ"
PyPI ์์ ์ค์น
Decepticon ์ Python ํจํค์ง๋ก ๋ฐฐํฌ๋ฉ๋๋ค. ์ฝ์ด SDK ๋ฅผ ์ค์นํ์ธ์:
pip install decepticon # ์ฝ์ด SDK
pip install "decepticon[neo4j]" # + ์ง์๊ทธ๋ํ ๊ณต๊ฒฉ์ฒด์ธ ๋๊ตฌ๋ ๊ฐ์ tier
| Tier | ๋ฌด์ | ๋ฐฐํฌ ๋ฐฉ์ |
|---|---|---|
| SDK (์ด ํจํค์ง) | decepticon/ โ ์์ด์ ํธ ํฉํ ๋ฆฌยท๋ฏธ๋ค์จ์ดยท๋๊ตฌยทbackendsยทllm ํฉํ ๋ฆฌยท์คํฌ(package data ๋ก ๋๋ด) |
PyPI wheel โ pip install decepticon |
| ๋ฐํ์ ์๋น์ค | LiteLLM ํ๋ก์, Kali sandbox, PostgreSQL, Neo4j | GHCR Docker ์ด๋ฏธ์ง + docker compose |
SDK ๋ ํ๊ฒฝ๋ณ์๋ก ์๋น์ค์ ์ฐ๊ฒฐ๋ฉ๋๋ค:
DECEPTICON_LLM__PROXY_URLโ LiteLLM ํ๋ก์ (๊ธฐ๋ณธhttp://localhost:4000)SAAS_SANDBOX_URLโ sandbox HTTP ๋ฐ๋ชฌ (์:http://localhost:9999)
ํดํค ๋ก์ปฌ ์คํ์ ๋น ๋ฅธ ์์ ์ค์น ์คํฌ๋ฆฝํธ๋ฅผ ์ฐ์ธ์. pip ํจํค์ง๋ ์์ด์ ํธ๋ฅผ ๋น์ ์ ์๋น์ค์ ์๋ฒ ๋ํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
๋ฏธ๋ฆฌ ๋น๋๋ ์์ด์ ํธ ์ฌ์ฉ
from decepticon.agents.standard.recon import create_recon_agent
agent = create_recon_agent() # ๊ธฐ๋ณธ OSS ๊ตฌ์ฑ16๊ฐ ์์ด์ ํธ ํฉํ ๋ฆฌ ๊ฐ๊ฐ์ langchain ์คํ์ผ ํค์๋ ์ค๋ฒ๋ผ์ด๋๋ฅผ ๋ฐ์ต๋๋ค โ tools=, middleware=, system_prompt=, llm= ๋ฑ.
ํ๋ฌ๊ทธ์ธ ๋ฒ๋ค๋ก ํ์ฅ
ํฌํฌ ์์ด ์์ฉ ๋๊ตฌยท๋ฏธ๋ค์จ์ดยทํ๋กฌํํธยท์๋ธ์์ด์ ํธ๋ฅผ ์น์ผ์ธ์ โ decepticon.bundles entry-point ์ PluginBundle ์ ๋ฑ๋กํฉ๋๋ค:
from decepticon.plugin_loader import PluginBundle
MY_BUNDLE = PluginBundle(
bundle="mybundle",
replaced_tools={"ask_user_question": my_ask_tool},
prompts={"recon": {"prepend": "<MY_HEADER>..."}},
)# ๋น์ ํจํค์ง์ pyproject.toml
[project.entry-points."decepticon.bundles"]
mybundle = "my_pkg.bundles:MY_BUNDLE"DECEPTICON_PLUGINS=standard,mybundle ๋ก ํ์ฑํ. ๋ค์ด์คํธ๋ฆผ ์ ํ์ด ์คํ ์ฝ์ด ์์ ์์ฉ ๊ธฐ๋ฅ์ ์น๋ ๋ฐฉ์์ด ์ ํํ ์ด๊ฒ์
๋๋ค โ decepticon ์ ์์กดํ ๋ฟ ํฌํฌํ์ง ์์ต๋๋ค.
๋ฒ์ ๊ด๋ฆฌ
pyproject.toml ์ ํธํ ๋ฒ์๋ฅผ ํ:
dependencies = ["decepticon>=1.1,<2"]์ ์ฒด ์ค๋ฒ๋ผ์ด๋ surface โ ํฉํ ๋ฆฌ kwargs, ์ ์ธ์ PluginBundle ํ๋ฌ๊ทธ์ธ, ์ปค์คํ
์ค์ผ์คํธ๋ ์ดํฐ์ฉ build_middleware(slots=...), ์์ ๊ฒ์ดํธ โ ๋ docs/library-usage.md ์ ๋ฌธ์ํ๋ผ ์์ต๋๋ค.
File: ko/getting-started/quick-start.mdx
title: "๋น ๋ฅธ ์์ (Quick Start)"
์ฌ์ ์๊ตฌ์ฌํญ
๋ ๊ฐ์ง๋ง ํ์ํฉ๋๋ค:
- Docker (Docker Compose v2 ํฌํจ)
- API ํค (Anthropic, OpenAI, ๋๋ LiteLLM ํธํ ํ๋ก๋ฐ์ด๋)
๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค. ๋๋จธ์ง๋ ๋ชจ๋ ์ปจํ ์ด๋ ์์์ ์คํ๋ฉ๋๋ค.
์ค์น
curl -fsSL https://decepticon.red/install | bashDecepticon ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ณ , ๊ฒฉ๋ฆฌ๋ ๋คํธ์ํฌ ์ํคํ
์ฒ๋ฅผ ๊ตฌ์ฑํ๋ฉฐ, decepticon CLI๋ฅผ ์ค์นํฉ๋๋ค.
์ค์
API ํค๋ฅผ ์ค์ ํฉ๋๋ค:
decepticon config๋ํํ ์ค์ ๋ง๋ฒ์ฌ์์ ๋ค์์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค:
- LLM ํ๋ก๋ฐ์ด๋ โ Anthropic, OpenAI, ๋๋ ๊ธฐํ LiteLLM ๋ฐฑ์๋
- API ํค โ ํ๋ก๋ฐ์ด๋ API ํค
- ๋ชจ๋ธ ํ๋กํ์ผ โ
eco,max, ๋๋test(๋ฉํฐ ๋ชจ๋ธ ๋ผ์ฐํ ์ฐธ์กฐ)
์คํ
Decepticon์ ์์ํฉ๋๋ค:
decepticon๋ชจ๋ ์๋น์ค(์์ด์ ํธ API, LiteLLM ํ๋ก์, ์๋๋ฐ์ค, ๋ฐ์ดํฐ๋ฒ ์ด์ค)๋ฅผ ์์ํ๊ณ ๋ํํ CLI๋ฅผ ์ฝ๋๋ค. ์์ด์ ํธ๊ฐ ๋ณด๋ ๊ฒ์ ์ค์๊ฐ์ผ๋ก ํ์ธํ ์ ์๋ ์คํธ๋ฆฌ๋ฐ ์ธํฐํ์ด์ค๊ฐ ํ์๋ฉ๋๋ค.
๋ฐ๋ชจ ์คํ
์ง์ ์ธ๊ฒ์ด์ง๋จผํธ๋ฅผ ์ค์ ํ๊ธฐ ์ ์ Decepticon์ ๋์์ ๋จผ์ ํ์ธํ๊ณ ์ถ์ผ์ ๊ฐ์? ๊ฐ์ด๋ ๋ฐ๋ชจ๋ฅผ ์คํํ์ธ์:
decepticon demo๋ฐ๋ชจ๋ Metasploitable 2๋ฅผ ํ๊ฒ์ผ๋ก ๋ฐฐํฌํ๊ณ , ์ฌ์ ๊ตฌ์ฑ๋ ์ธ๊ฒ์ด์ง๋จผํธ๋ฅผ ๋ก๋ํ ํ, ์ ์ฒด ํฌ ์ฒด์ธ์ ์๋์ผ๋ก ์คํํฉ๋๋ค:
API ํค ์ธ์ ์ถ๊ฐ ์ค์ ์ ํ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ
File: ko/introduction/history-and-evolution.mdx
title: "์ญ์ฌ์ ์งํ (History & Evolution)"
Decepticon์ ํ๋ฃจ์์นจ์ ๋ง๋ค์ด์ง ๊ฒ์ด ์๋๋๋ค. ์คํ์๋ธ ์ํ๋ฆฌํฐ(Offensive Security)์ ์ธ๊ณต์ง๋ฅ์ ๊ฒฐํฉํ๊ณ ์ ํ๋ ์๋ ๊ฐ์ ์ฐ๊ตฌ์ ์ํ์ฐฉ์ค์ ์ฐ๋ฌผ์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ณผ๊ฑฐ์ ์๋ํ๋ ์ ๊ทผ ๋ฐฉ์๋ค์ ์ดํดํ๋ฉด, ํ์ฌ Decepticon์ด ์ ๋ํ ์ธ์ด ๋ชจ๋ธ(LLM) ๊ธฐ๋ฐ์ ์์จํ **Autonomous Hacking Agent (์์จ ํดํน ์์ด์ ํธ)**๋ก ์ค๊ณ๋์๋์ง ๊ทธ ์ฒ ํ์ ๋ฐฐ๊ฒฝ์ ์ ์ ์์ต๋๋ค.
Decepticon์ด ๊ฑธ์ด์จ ์งํ์ ์ด์ ํ๋ฅผ ๋์ง์ด ๋ณด๊ฒ ์ต๋๋ค.
2021๋ : ํผํํ AI (Purple Team AI)
์ด๊ธฐ ๋จ๊ณ์์ ์ด ํ๋ก์ ํธ๋ **ํผํํ AI(Purple Team AI)**๋ผ๋ ์ปจ์ ์์ ์ถ๋ฐํ์ต๋๋ค. ๊ทผ๋ณธ์ ์ธ ์์ด๋์ด๋ ๊ณต๊ฒฉ๊ณผ ๋ฐฉ์ด ์ฌ์ด์ ์ง์์ ์ด๊ณ ์๋ํ๋ ํผ๋๋ฐฑ ๋ฃจํ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ด์์ต๋๋ค.
- Red AI vs. Blue AI: ์ฐ๋ฆฌ๋ ์๋ก ๋๋ฆฝํ๋ ๋ ๊ฐ์ AI ๋ชจ๋ธ์ ๊ตฌ์ํ์ต๋๋ค. Red AI๋ ๊ณต๊ฒฉ์ ์ํํ๊ณ , Blue AI๋ ๊ทธ ๊ณต๊ฒฉ ๋ฒกํฐ๋ฅผ ๋ถ์ํ์ฌ ํจ์น๋ฅผ ๋ฐํํฉ๋๋ค.
- ํต์ฌ ์ฒ ํ: ๋ณด์์ ์ ์ ์ธ ์ํ๊ฐ ์๋๋๋ค. ๋ AI๋ฅผ ์๋ก ๊ฒฝ์์ํด์ผ๋ก์จ, ์ด๋ฅผ ์์ฐ๋ฅด๋ ์ ์ฒด ์์คํ (ํผํํ)์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ํ์ฐ์ ์ผ๋ก ๋์ฑ ๊ฐ๋ ฅํด์ง๋ค๋ ์ฒ ํ์ด์์ต๋๋ค.
2022๋ : ๊ฐํํ์ต ํ๊ฒฝ (RL Environment)
์ถ์์ ์ธ ์ปจ์ ์ ๋์ด ์ค์ ๋คํธ์ํฌ ์๋ฎฌ๋ ์ด์ ํ๊ฒฝ์ ์ด๋ฅผ ์ ์ฉํ๊ธฐ ์ํด, ์ฐ๋ฆฌ๋ **๊ฐํํ์ต(Reinforcement Learning, RL)**์ ๋์ ํ์ต๋๋ค.
- ๊ฐ์ ๋คํธ์ํฌ (Virtual Network): ์๋ฎฌ๋ ์ด์ ๋ ์๋ฒ์ ๋คํธ์ํฌ๋ก ๊ตฌ์ฑ๋ ํ๊ฒฝ(Environment)์ ๊ตฌ์ถํ์ต๋๋ค.
- ์์ด์ ํธ ๊ธฐ๋ฐ ํ์ต (Agent-Based Learning): ๋ ๋ํ AI(์์ด์ ํธ)๊ฐ "๊ณต๊ฒฉ ์์ฒญ(Attack Request)"์ ๋ณด๋ด๋ฉด, ํ๊ฒฝ์ ๊ณต๊ฒฉ์ ์ฑ๊ณต ์ฌ๋ถ์ ๋ฐ๋ผ "์ด๊ธฐ ์ํ(next_state)" ํน์ "๋ณด์(Reward)"์ ๋ฐํํฉ๋๋ค.
- ํ๊ณ์ : ์ฒด์ค๋ ๋ฐ๋์ฒ๋ผ ๊ท์น์ด ๋ช ํํ ๊ฒ์์์ ๊ฐํํ์ต์ ๊ฐ๋ ฅํ์ง๋ง, ํ์ค ์ธ๊ณ์ ๋คํธ์ํฌ ํ๊ฒฝ๊ณผ ๋ฌธ๋งฅ("Vibe")์ ๋ฌดํํ ๋ณต์กํฉ๋๋ค. ํ์กดํ๋ ์๋ง์ ์ฌ์ด๋ฒ ๊ณต๊ฒฉ ๋ฒกํฐ ๊ฐ๊ฐ์ ๋ํด ์ ํํ ๋ณด์ ํจ์(Reward function)๋ฅผ ์ค๊ณํ๋ ๊ฒ์ ์์ฒญ๋ ๋ณ๋ชฉ(Bottleneck)์ด์์ต๋๋ค.
2023๋ : ์ ๋์ ์์ฑ ์ ๊ฒฝ๋ง (GANs)
๊ฐ๋ํ RL ํ๊ฒฝ ๊ตฌ์ถ์ ์ด๋ ค์์ ๊นจ๋ซ๊ณ , ์ฐ๋ฆฌ๋ ๊ณต๊ฒฉ ๋ฐ์ดํฐ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํด **์ ๋์ ์์ฑ ์ ๊ฒฝ๋ง(GANs, Generative Adversarial Networks)**์ ์ฌ์ฉ์ ์ฐ๊ตฌํ์ต๋๋ค.
- ์์ฑ์ vs ํ๋ณ์ (Generator vs. Discriminator): ์ด ์ํคํ ์ฒ์์๋ ์คํ์๋ธ ์ญํ ์ ๋งก์ ์์ฑ์(Generator)๊ฐ ์ ์์ ์ธ ๋คํธ์ํฌ ํธ๋ํฝ์ฒ๋ผ ๋ณด์ด๋ "๊ฐ์ง ๋ฐ์ดํฐ(๊ณต๊ฒฉ ํ์ด๋ก๋)"๋ฅผ ๋ง๋ค๋ ค๊ณ ์๋ํฉ๋๋ค. ๋ฐ๋๋ก ๋ฐฉ์ด ์ญํ ์ ๋งก์ ํ๋ณ์(Discriminator)๋ ์ค์ ์ ์ ํธ๋ํฝ๊ณผ ์ ์ฑ ๊ฐ์ง ํธ๋ํฝ์ ๊ตฌ๋ถํ๋ ค๊ณ ์๋ํฉ๋๋ค.
- ํ๊ณ์ : GAN์ ์๋ช ๊ธฐ๋ฐ(Signature-based)์ ์น ๋ฐฉํ๋ฒฝ(WAF)์ ์ฐํํ๋ ํ์ด๋ก๋๋ฅผ ์์ฑํ๋ ๋ฐ๋ ํ์ํ์ต๋๋ค. ํ์ง๋ง **๋ฌธ๋งฅ์ ๋ํ ์ดํด(Contextual understanding)**๊ฐ ๊ฒฐ์ฌ๋์ด ์์์ต๋๋ค. ์ฌ๋ฌ ๋จ๊ณ์ ๊ฑธ์น ๋ณต์กํ ๊ณต๊ฒฉ์ ์ํํ๊ฑฐ๋, ์๋ฒ์ ์๋ต์ ์ฝ๊ณ ๋ฐฉํฅ์ ํ์ด ๋์ ์ผ๋ก ๋ด๋ถ๋ง์ ํ์(Pivoting)ํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ์ต๋๋ค.
ํ์ฌ: Autonomous Hacking Agent (์์จ ํดํน ์์ด์ ํธ)
์ด๋ฌํ ์ผ๋ จ์ ๋ผ์ํ ์คํจ์ ์ฑ๊ณต์ ๊ฑฐ์น๋ฉฐ, ์ฐ๋ฆฌ๋ ์ง์ ํ ์คํ์๋ธ ์ญ๋์ ๋จ์ํ ์ํ์ ์ต์ ํ๋ ํ์ด๋ก๋ ์์ฑ์ ๋์ด์ ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ๊ทธ๊ฒ์ **์ถ๋ก (Reasoning)**์ ํ์๋ก ํฉ๋๋ค.
์ค๋๋ , Decepticon์ ๊ณ ๋ํ๋ ๋ํ ์ธ์ด ๋ชจ๋ธ(LLM)์ ํ์ฉํ์ฌ ์์จ์ ์ธ ์์ด์ ํธ๋ก ํ๋ํฉ๋๋ค. ๋ ์ด์ ๋ฑ๋ฑํ๊ฒ ๊ตณ์ด์ง ์๋ฎฌ๋ ์ด์ ํ๊ฒฝ์ด๋ ํต๊ณ์ ๋ถํฌ์ ์์กดํ์ง ์๊ณ , ํ๊ฒ์ "๋ฐ์ด๋ธ(Vibe)"๋ฅผ ์ง์ ์ฝ์ด๋ ๋๋ค. ์ธ๊ฐ์ด ๋ง๋ ์์คํ ์ ๋ฌธ๋งฅ์ ์ดํดํ๊ณ , ๋ณต์กํ ๋ฐฉ์ด๋ง์ ์ ์ํ๋ฉฐ, ์ค์๊ฐ์ผ๋ก ์ฌ๋ฌ ๋จ๊ณ์ ๋ ๋ํ ์คํผ๋ ์ด์ ์ ์ํํฉ๋๋ค.
File: ko/introduction/overview.mdx
[Binary file]
File: ko/introduction/pentesting-vs-redteaming.mdx
title: "๋ชจ์ํดํน vs ๋ ๋ํ ํ ์คํ "
**Autonomous Hacking Agent(์์จ ํดํน ์์ด์ ํธ)**๋ก์์ Decepticon์ ์ ์ฒด์ฑ์ ์จ์ ํ ์ดํดํ๊ธฐ ์ํด์๋, ์ทจ์ฝ์ ํ๊ฐ(Vulnerability Assessment), ๋ชจ์ํดํน(Penetration Testing), ๋ ๋ํ ํ ์คํ (Red Team Engagement)์ ๋ณธ์ง์ ์ธ ์ฐจ์ด๋ฅผ ๋ช ํํ ์๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. Decepticon์ ๋ง์ง๋ง ํ๋ฌธ์ ๋ฐฉ๋ฒ๋ก ์ ๋ช ํํ๊ฒ ์งํฅํ๋ฉฐ, ๊ทธ ์์ ๊ธฐ๊ณ ์๋์ ๋ค ๋ฒ์งธ ๋ชจ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ธ ๊ฐ์ง ํ๋ฌธ ๋ถ์ผ
๋ณด์ ํ ์คํ ํ๊ฒฝ์ ์ญํผ๋ผ๋ฏธ๋ ํํ๋ฅผ ์ด๋ฃน๋๋ค: ๋์ ๊ธฐ๋ฐ์ ์ทจ์ฝ์ ํ๊ฐ(๊ด๋ฒ์ํ๊ณ ์์), ์ค๊ฐ์ ๋ชจ์ํดํน(ํ์ ํ๋๊ณ ๊น์), ์ ์ ์ ๋ ๋ํ ํ ์คํ (์๋๋ฆฌ์ค ๊ธฐ๋ฐ, ์กฐ์ง ์ ์ฒด).
๋๋ํ ๋น๊ต
๋ค์ ํ์ redteam.guide์์ ๋ฐํํ ํ์ค ๋น๊ต์ ๊ธฐ๋ฐํ๊ณ ์์ผ๋ฉฐ, Decepticon์ด ๊ฐ๋ฅํ๊ฒ ํ๋ ์์จ ์์ด์ ํธ ๋ชจ๋๋ฅผ ์ํ ๋ค ๋ฒ์งธ ์ด๋ก ํ์ฅ๋์์ต๋๋ค.
| ์ธก๋ฉด | ์ทจ์ฝ์ ํ๊ฐ | ๋ชจ์ํดํน | ๋ ๋ํ ํ ์คํ | ์์จ ๋ ๋ํ (Decepticon) |
|---|---|---|---|---|
| ๋ชฉํ | ๊ธฐ์ ์ ๊ฒฐํจ ์๋ณ | ๊ฒฐํจ์ ์ ์ฉํ์ฌ ๊ณต๊ฒฉ ๊ฒฝ๋ก ์ฆ๋ช | ๋ธ๋ฃจํ ํจ๊ณผ์ฑ ํ๋ จ ๋ฐ ํ๊ฐ | AI ์ ๋์์ ๋ํด ๋ธ๋ฃจํ์ ์ง์์ ์ผ๋ก ํ๋ จ |
| ๋ฒ์ | ๋๊ณ ์์ | ํ์ ํ๋ ์์คํ | ์กฐ์ง ์ ์ฒด | ์กฐ์ง ์ ์ฒด, ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ํ์ฅ ๊ฐ๋ฅ |
| ์ด์ | ๊ธฐ์ | ๊ธฐ์ | ์ฌ๋, ํ๋ก์ธ์ค, ๊ธฐ์ | ์ฌ๋, ํ๋ก์ธ์ค, ๊ธฐ์ โ OPPLAN์ ์ํด ์ฃผ๋๋จ |
| ๊ธฐ๊ฐ | ์ผ ๋จ์ | 1~2์ฃผ | 2~6์ฃผ | ์๊ฐ์์ ์ง์์ (๊ธฐ๊ณ ์๋ ๋ฃจํ) |
| ์ํ ๋ชจ๋ธ | CVE ๊ธฐ๋ฐ | ๊ณต๊ฒฉ ํ๋ฉด | ์ ๋์ ๋ชจ๋ฐฉ | ์ ๋์ ๋ชจ๋ฐฉ, ์ธ๊ฒ์ด์ง๋จผํธ๋ณ ๋์ |
| ์ํ ์ธก์ | ๊ณต๊ฒฉ ํ๋ฉด ๊ฐ์ | ๊ธฐ์ ์ ์ ์ฉ ์ํฅ | ๋ณด์ ์ด์ ํ๊ฐ | ์ด์ ํ๊ฐ + ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ํ๊ท ์ปค๋ฒ๋ฆฌ์ง |
| ์ฐ์ถ๋ฌผ | ์ทจ์ฝ์ ๋ชฉ๋ก | ์ ์ฉ ์ฆ๊ฑฐ ๋ฐ ๊ณต๊ฒฉ ๊ฒฝ๋ก | ๋ณด์ ์ด์ ํ๊ฐ | OPPLAN ํ๊ทธ ์ง์ ๋ฐ๊ฒฌ์ฌํญ, ๊ณต๊ฒฉ ๊ทธ๋ํ, ๊ต์ ํจ์น |
๋ค ๋ฒ์งธ ์ด์ ์ธ๊ฐ ๋ ๋ํ์ ๋์ฒด๋ฌผ์ด ์๋๋๋ค. โ ๋์ผํ ํ๋ฌธ์ ๊ท๋ชจํํ ๊ฒ์ ๋๋ค. ์ธ๊ฐ์ด ๊ต์ ๊ท์น์ ์ค์ ํ๊ณ , ๋ชฉํ๋ฅผ ์ ์ํ๋ฉฐ, ๋ฐ๊ฒฌ์ฌํญ์ ํ์ ํฉ๋๋ค. Decepticon์ ๊ทธ ๊ฒฝ๊ณ ๋ด์์ ํฌ ์ฒด์ธ์ ์คํํฉ๋๋ค.
์ ํต์ ๋ชจ์ํดํน์ ํ๊ณ
์ ํต์ ์ธ ๋ชจ์ํดํน์ ์น, ๋ชจ๋ฐ์ผ, ๋๋ ์ธ๋ถ ๋คํธ์ํฌ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ํ๊ฐํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค.
- ์ฌ์ผ๋กํ๋ ํ๊ฐ: ๋ชจ์ํดํน์ ๋จ์ผ ์น ์ฑ์ SQL ์ธ์ ์ ์ ์ฐพ์ ์ ์์ง๋ง, ๊ณต๊ฒฉ์๊ฐ ๊ทธ ์น ์ฑ์ ํ๋ก์๋ก ์ฌ์ฉํ์ฌ ๋ด๋ถ ๋คํธ์ํฌ๋ก ํผ๋ฒํ๋ ๊ฒ์ ๋ฐฉ์ดํ์ด ํ์งํ ์ ์๋์ง๋ ํ ์คํธํ์ง ์์ต๋๋ค.
- ์ถ๊ตฌ ๋น์ : ๋ชจ์ํดํน์ ์ํ , ํจ์ค, ๋๋ฆฌ๋ธ์ ๊ฐ๋ณ์ ์ผ๋ก ์ฐ์ตํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์ด๋ฌํ ๊ธฐ์ ๋ค์ ํ์์ ์ด์ง๋ง, ์ค์ 11๋11 ๊ฒฝ๊ธฐ๋ฅผ ํ ๋ฒ๋ ํ์ง ์๊ณ 4๋ ์ ๊ฐ๋ณ ํ๋ จ๋ง ํด์๋ ์๋์ปต์์ ์ฐ์นํ ์ ์์ต๋๋ค.
- ์ค์ ํ๊ณ: ๋ชจ์ํดํน์ ์กฐ์ง์ ์ ๋ฐ์ ์ธ ๋ณด์ ํต์ , ๋ธ๋ฃจํ, ํ๋ก์ธ์ค๊ฐ ์ค์ ๋ค๋จ๊ณ ๊ณต๊ฒฉ ์ค์ ์ ๊ธฐ์ ์ผ๋ก ํจ๊ป ์๋ํ๋์ง ํ ์คํธํ์ง ๋ชปํฉ๋๋ค.
๋ ๋ํ ํ ์คํ : "์ค์ ๊ฒฝ๊ธฐ"
๋ ๋ํ ํ ์คํ ์ ์ค์ ์ 11๋11 ์ค์ ์ฐ์ต ๊ฒฝ๊ธฐ์ ๋๋ค. โ ์กฐ์ง์ ์ ์ฒด์ ์ธ ๋ฐฉ์ด ๋ฅ๋ ฅ์ ์ค๋ ๊ธฐ๊ฐ(์ผ๋ฐ์ ์ผ๋ก 4~8์ฃผ) ๋์ ํ ์คํธํ๋๋ก ์ค๊ณ๋ ํฌ๊ด์ ์ธ ์ ๋์ ์๋ฎฌ๋ ์ด์ ์ ๋๋ค.
๋ ๋ํ ํ ์คํ ์ ํต์ฌ ์์ฑ
- ์ ์ฒด์ ์ด๊ณ ๋ค์ค ๋๋ฉ์ธ โ ์ค์ ๊ณต๊ฒฉ์๋ค์ ์น ์ฑ๋ง ๊ณต๊ฒฉํ๊ณ ๋ฉ์ถ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ํด๋ผ์ฐ๋, ๋ชจ๋ฐ์ผ, ๋ด๋ถ ๋คํธ์ํฌ, ์ฌ์ง์ด ๋ฌผ๋ฆฌ์ ๋๋ ์ฌํ๊ณตํ์ ๋ฒกํฐ๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค. ๋ ๋ํ ํ ์คํ ์ด ์ด๋ฅผ ๋ฐ์ํฉ๋๋ค.
- ์๋๊ณผ ์ง์์ฑ โ ์ฃผ์ ๋ชฉํ๋ ๋ธ๋ฃจํ์ ํ์ง๋ฅผ ํผํ๋ ๊ฒ์ ๋๋ค. ๋ ๋ํ ์์๋ค์ ์กฐ์ฉํ ์๋ํ๋ฉฐ, SIEMs๊ณผ EDRs๋ฅผ ํํผํ๊ณ , ์ค๋ ๊ธฐ๊ฐ ๋์ ์ ๊ทผ์ ์ ์ง(์ง์์ฑ)ํฉ๋๋ค.
- ํ์ค์ ์ธ ๋ชฉํ โ CVE ๋์ด ๋์ , ๋ชฉํ๋ ์ค์ง์ ์ ๋๋ค: SWIFT ์ธํ๋ผ์ ์ ๊ทผํ ์ ์๋๊ฐ? ๋ธ๋ฃจํ์ด ์์์ฑ์ง ๋ชปํ๋ ๋์ ๋๋ฏธ ๊ณ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ถํ ์ ์๋๊ฐ?
- ์ํ์ด ํฌํ๋ฅผ ๋ฐ๋๋ค โ ์ธ๊ฒ์ด์ง๋จผํธ๋ ๋ฐฉ์ด์๋ค์ด ๊ณํํ ๊ฒ๋ฟ๋ง ์๋๋ผ ์ค์ ์ํ์ด ์ค์ ๋ก ์ํํ๋ ๊ฒ์ ๊ธฐ๋ฐํฉ๋๋ค. ์ํ ํ๋กํ์ด TTPs๋ฅผ ์ฃผ๋ํฉ๋๋ค.
- ๊ฐ์ ๋ ์นจํฌ โ ์ด๊ธฐ ์ ๊ทผ(์: ํผ์ฑ)์ด ์ฐจ๋จ๋๋ฉด, ๋ ๋ํ ์์๋ค์ "๊ฐ์ ๋ ์นจํฌ" ์๋๋ฆฌ์ค๋ก ์ ํํฉ๋๋ค: ๋น์ฝ์ด ๋ด๋ถ์ ์ผ๋ก ์ฌ์ด์ ธ ์นจํฌ ํ ๋์, ํก์ ์ด๋ ํ์ง, ๋ด๋ถ ์ ์ฐฐ์ ํ๊ฐํฉ๋๋ค.
์ธ๊ฒ์ด์ง๋จผํธ ๋ผ์ดํ์ฌ์ดํด: ์ง์ , ์๋ฅ, ํ๋
๋ ๋ํ ์ธ๊ฒ์ด์ง๋จผํธ๋ ์ธ ๊ฐ์ง ๋จ๊ณ๋ฅผ ๋ฐ๋ฆ ๋๋ค. โ redteam.guide ๋ฐฉ๋ฒ๋ก ์์ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉ๋๊ณ ์ฑ๋ฌธํ๋ ๋ชจ๋ธ:
Decepticon์ด ์์จ ํดํน ์์ด์ ํธ์ธ ์ด์
Decepticon์ ๋ชจ์ํดํน ์ฒดํฌ๋ฆฌ์คํธ๊ฐ ์๋๋ผ ๋ ๋ํ ํ ์คํ ๋ง์ธ๋์ ์ ์๋ํํฉ๋๋ค. ๋คํธ์ํฌ๋ฅผ ์๋ํ๋ ์ค์บ๋๋ก ํญ์ฃผ์ํค์ง ์์ต๋๋ค. โ ์ด๋ ๋ธ๋ฃจํ์ ์ฆ์ ๊ฒฝ๊ณ ํฉ๋๋ค.
๋์ , ํ๊ฒฝ์ ๋งฅ๋ฝ์ ์ฝ์ต๋๋ค. ์๋์ ์ ์งํ๊ณ , ๋ด๋ถ ์ ์ฐฐ์ ์ํํ๊ณ , ํก์ ์ด๋์ ์คํํ๊ณ , ๊ฐ์ ๋ ์นจํฌ ์๋๋ฆฌ์ค๋ฅผ ์์จ์ ์ผ๋ก ์๋ฎฌ๋ ์ด์ ํฉ๋๋ค. ํฌ ์ฒด์ธ์ OPPLAN โ ์ด์์์ RoE์ ConOps์์ ๋จ์ผ ํจํท์ด ๋๊ฐ๊ธฐ ์ ์ ์์ด์ ํธ๊ฐ ์์ฑํ๋ ๊ตฌ์กฐํ๋ ์์ ๊ณํ์ ์ํด ์ฃผ๋๋ฉ๋๋ค.
๋ฌด์ ํ๊ณ AI ๊ธฐ๋ฐ์ ๋ ๋ํ ์ญํ ์ ๋งก์์ผ๋ก์จ, Decepticon์ ๋ฌดํํ ๊ณต๊ฒฉ ํผ๋๋ฐฑ์ ์ ๊ณตํฉ๋๋ค. ์ด๊ฒ์ด ๊ณต๊ฒฉ ๋ฐฑ์ ์ ๋๋ค. โ ์ค๋๋ ์ํํธ์จ์ด์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๊ณตํ๊ธฐ๋ณด๋ค๋, ํ๋์ ์ฌ์ด๋ฒ ์ํ์ ์ ๊ธฐ์ ์ด๊ณ ์๋๋ ํ์ค์ ๋ํญํ์ฌ ๋ฐฉ์ด ์์คํ ์ ํ๋ จ์ํต๋๋ค.
File: ko/vision/autonomous-hacking.mdx
title: "Autonomous Hacking (์์จ ํดํน)"
Autonomous Hacking์ด๋ ๋ฌด์์ธ๊ฐ?
์์งํ๊ฒ ๋งํ๊ฒ ์ต๋๋ค. "AI + ํดํน" ๋ถ์ผ๋ ์ง์น๊ฒ ๋ง๋ญ๋๋ค.
๋งค์ฃผ ๋๊ตฐ๊ฐ ๋ฐ๋ชจ๋ฅผ ๋ด๋์ต๋๋ค: "๋ด, GPT๊ฐ nmap์ ๋๋ ค!" ๋ฉ์ง๊ตฐ์. ๊ทธ๋์? ๊ฒฐ๊ตญ ์ค์ ํ๋ก๋์ ์์๋ ์๋ฌด๋ ์ฐ์ง ์๋ ํํฐ ํธ๋ฆญ์ด ๋๊ฑฐ๋ โ ๋ ์ฌํ๋ฉด ๋๊ตฌ๋ ๋์ด์๋ ์ ๋ ์ ์ ๋๋ ๋๊ตฌ๊ฐ ๋ฉ๋๋ค.
"๋ ํ๋์ AI ๋ชจ์ํดํน ๋๊ตฌ... ๋ฉ์ง ๋ฐ๋ชจ๋ค. ๊ทผ๋ฐ ์ค์ ๊ณต๊ฒฉ์๊ฐ ํ ๋ฒํ ๊ฑธ ์ธ์ ํ๋ ๊ฑด๋ฐ?"
ํ๋นํ ์ง๋ฌธ์ ๋๋ค. ์ฐ๋ฆฌ์ ๋ต์ ๋๋ค.
**Autonomous Hacking (์์จ ํดํน)**์ ์คํ์๋ธ ์ํ๋ฆฌํฐ์ ๋ค์ ์งํ์ ๋๋ค. ํดํน/๋ชจ์ํดํน์ ๋ ์ฝ๊ฑฐ๋ ๋ ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๊ฒ์ด ์๋๋๋ค. ์ค์ ๋ ๋ํ ์์ ์ ๊ธฐ๊ณ ์๋๋ก ์คํ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๊ฒ์ ๋๋ค โ ์ ๋ฌธ๊ฐ์ ์คํฌ๋ฆฝํธ ํค๋๋ฅผ ๊ตฌ๋ถํ๋ ์๊ฒฉํจ, ๋ฌธ์ํ, ๋ฒ์ ํ๋ ์์ํฌ์ ํจ๊ป.
์ ํต์ ์ธ ๋ ๋ํ ํ ์คํ ์ ์ค์บ๋, ์ด๊ฑฐ, ํผ๋ฒ, ๋ฌธ์ํ ๋ฑ ์๋ฐฑ ์๊ฐ์ ์์์ ์ ์๊ตฌํฉ๋๋ค. ๋๋ถ๋ถ์ ๋ฐ๋ณต์ ์ด๊ณ , ์ ๋ถ ์ง์น๋ ์์ ์ ๋๋ค. ๊ทธ ์ฌ์ด์๋ ๊ณต๊ฒฉ ํ๋ฉด์ ์ด๋ค ์ธ๊ฐ ํ๋ณด๋ค ๋น ๋ฅด๊ฒ ํ์ฅ๋ฉ๋๋ค.
Autonomous Hacking์ ์ด ๋ฐฉ์ ์์ ๋ฐ๊ฟ๋๋ค. AI ์์ด์ ํธ๊ฐ ๋ฐ๋ณต ์์ ์ ์ฒ๋ฆฌํฉ๋๋ค: ์ค์บ ์คํ, ์ถ๋ ฅ ๋ถ์, ๊ธฐ๋ฒ ์ฒด์ด๋, ์ค์๊ฐ ์ ์. ์ธ๊ฐ์ ๋ฏธ์ ์ ์ค์ ํ๊ณ , ๊ท์น์ ์ ์ํ๋ฉฐ, ๊ธฐ๊ณ๊ฐ ์์ง ํ ์ ์๋ ๊ฒ์ ์ง์คํฉ๋๋ค โ ์ง๊ด, ํ๋จ, ๊ทธ๋ฆฌ๊ณ ์ฐฝ์์ ์ฌ๊ณ .
"๋ฐ๋ณต์ ์์ํ๋ผ. ๊ฒฐ์ ์ ์ง์คํ๋ผ."
๋ฐ์ด๋ธ ํดํน์์ Autonomous Hacking์ผ๋ก
Decepticon์ด ์ฒ์ ๊ตฌ์๋์์ ๋, ์ฐ๋ฆฌ๋ **๋ฐ์ด๋ธ ํดํน(Vibe Hacking)**์ด๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ์ต๋๋ค โ AI ์์ด์ ํธ๊ฐ ํ๊ฒ ํ๊ฒฝ์ "๋ฐ์ด๋ธ"๋ฅผ ์ฝ๋๋ค๋ ์์ด๋์ด: ๋ฌธ๋งฅ์ ์ดํดํ๊ณ , ์ฆ์์์ ์ ๋ต์ ์ ์์ํค๋ฉฐ, ๊ณ ์ ๋ ํ๋ ์ด๋ถ ์์ด ๋ณต์กํ ๊ณต๊ฒฉ ์ฒด์ธ์ ์ํํ๋ ๊ฒ.
๊ทธ ํต์ฌ ์ญ๋์ ๋ณํ์ง ์์์ต๋๋ค. ๋ณํ ๊ฒ์ ํ๋ ์ด๋ฐ์ ๋๋ค.
"๋ฐ์ด๋ธ ํดํน"์ *์ด๋ป๊ฒ(How)*๋ฅผ ํฌ์ฐฉํ์ต๋๋ค โ ๋ฌธ๋งฅ์ ์ด๊ณ , ์ ์์ ์ด๋ฉฐ, ์ถ๋ก ๊ธฐ๋ฐ์ ๊ณต๊ฒฉ. ํ์ง๋ง *์(Why)*๋ ํฌ์ฐฉํ์ง ๋ชปํ์ต๋๋ค โ ๊ทธ๋ฆฌ๊ณ "์"๊ฐ ๊ฐ์ฅ ์ค์ํฉ๋๋ค.
Autonomous Hacking์ ์ ์ฒด ๊ทธ๋ฆผ์ ํฌ๊ดํฉ๋๋ค:
- ์ด๋ป๊ฒ (The How) โ ํ๊ฒ์ ๋ํด ์ถ๋ก ํ๊ณ , ๋ฐฉ์ด์ ์ ์ํ๋ฉฐ, ๋ค๋จ๊ณ ๊ณต๊ฒฉ์ ์์จ์ ์ผ๋ก ์ฒด์ด๋ํ๋ AI ์์ด์ ํธ
- ์ (The Why) โ ๋ซ๋ฆฌ์ง ์๋ ๋ฐฉ์ด ์์คํ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๋ฌดํํ ์คํ์๋ธ ํผ๋๋ฐฑ ์ ๊ณต
- ํ๋ ์์ํฌ (The Framework) โ ์ ๋ฌธ์ ์ธ ๋ ๋ํ ๋ฐฉ๋ฒ๋ก ์์์ ์ด์: RoE, OPPLAN, ConOps, ๊ณต์ ์น์ธ
"์์จ(Autonomous)"์ด๋ผ๋ ๋จ์ด๋ ๋ค๋ฅธ ๋ชจ๋ AI ๋ณด์ ๋๊ตฌ์์ ์ฐจ๋ณ์ ๋ ์ ๋ฌํฉ๋๋ค: ์์ด์ ํธ๋ ๋จ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ง ์์ต๋๋ค. ์ค์ ์ ์ฒ๋ผ ์๊ฐํ๊ณ , ์ ์ํ๊ณ , ์ง์ํฉ๋๋ค.
"์ ๊น, ๋ํฌ๋ ๊ฒฐ๊ตญ ๋๊ฐ์ ๊ฑฐ ์๋?"
์ข์ ์ง๋ฌธ์ ๋๋ค. ์งง์ ๋ต: ์๋๋๋ค.
๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์คํ์๋ธ ์ํ๋ฆฌํฐ์์ ๋์น๋ ๊ฒ์ด ์์ต๋๋ค. ํดํน๊ณผ ๋ ๋ํ ํ ์คํ ์ฌ์ด์๋ ๊ฑฐ๋ํ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
๋ ๋ํ ํ ์คํ ์ ๊ท์ ๋๊ณ , ์น์ธ๋, ์ ๋ฌธ์ ์ธ ๊ท์จ์ด ์ ์ฉ๋๋ ๋ถ์ผ์ ๋๋ค. ๋จ ํ๋์ ํจํท์ด ์ ์ก๋๊ธฐ ์ ์, ๋ฌธ์๊ฐ ์์ต๋๋ค. ํฉ์๊ฐ ์์ต๋๋ค. ๊ท์น์ด ์์ต๋๋ค.
- RoE (๊ต์ ๊ท์น) โ ๋ฌด์์ ๊ฑด๋๋ฆด ์ ์๊ณ ์๋์ง๋ฅผ ์ ์ํฉ๋๋ค. ๋ฒ์, ์๊ฐ, ๊ฒฝ๊ณ. ์ด๊ฒ์ ์๋ฐํ๋ฉด ๋ ๋ํ์ด ์๋๋ผ ๋ฒ์ฃ์์ ๋๋ค.
- ConOps (์์ ๊ฐ๋ ) โ ์ํ ํ์์ ํ๋กํ์ผ, ๊ณต๊ฒฉ ๋ฐฉ๋ฒ๋ก , "์ฐ๋ฆฌ๊ฐ ๋๊ตฌ๋ฅผ ๋ชจ๋ฐฉํ๋๊ฐ"๋ฅผ ์ ์ํ๋ ๋ฌธ์.
- ๋์ปจํ๋ฆญ์ ํ๋ โ ๋ ๋ํ ํ๋๊ณผ ์ค์ ์ํ์ ๋ถ๋ฆฌํฉ๋๋ค. ์์ค IP, ์ ์ ์์ด์ ํธ, ์๊ฐ๋, SOC์์ ์ค์๊ฐ ๋์ปจํ๋ฆญ์ ์ฝ์ ์ํ ๊ณต์ ์ฝ๋.
- OPPLAN (์์ ๊ณํ) โ ์ ์ฒด ์๋ฌด ๊ณํ. ๋ชฉํ, ํฌ ์ฒด์ธ ๋จ๊ณ, ์๋ฝ ๊ธฐ์ค. ๋ชจ๋ ํ๋์ ๋ชฉ์ ์ ๋งคํ๋ฉ๋๋ค.
Decepticon์ ์ด ๋ชจ๋ ๊ฒ์ ์ง์ํฉ๋๋ค.
๋ชจ๋ ์ธ๊ฒ์ด์ง๋จผํธ๋ ์ ์ ํ ๋ฌธ์ํ๋ก ์์๋ฉ๋๋ค. ๋ชจ๋ ๋ชฉํ๊ฐ ์ถ์ ๋ฉ๋๋ค. ๋ชจ๋ ํ๋์ด ์ ์๋ ๊ฒฝ๊ณ ์์์ ์ด์๋ฉ๋๋ค.
์์ด์ ํธ๋ ๋จ์ํ ํดํนํ์ง ์์ต๋๋ค. ๊ณต์ ์์ ๊ณํ ์๋ ์ด์๋๊ณ , ๊ต์ ๊ท์น์ ์ค์ํ๋ฉฐ, ๊ฐ์ฌ ๊ฐ๋ฅํ ๊ฒฐ๊ณผ๋ฌผ์ ์์ฐํฉ๋๋ค. ์ด๊ฒ์ ์ฌ๋ฏธ์๋ PoC(Proof of Concept)๊ฐ ์๋๋๋ค. ์์จ์ ์ผ๋ก ์๋ํ๋ ์ ๋ฌธ ๋ ๋ํ ํ๋ซํผ์ ๋๋ค.
์ Decepticon์ธ๊ฐ?
๋ชจ์ํดํน์ ์ทจ์ฝ์ ์ ์ฐพ์ต๋๋ค. ๋ ๋ํ์ ๊ฐ์ฅ ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค: ๋น์ ์ ์กฐ์ง์ด ์ค์ ๊ณต๊ฒฉ์์ ์ด์๋จ์ ์ ์๋๊ฐ?
๋๋ถ๋ถ์ ๋ณด์ ๋๊ตฌ๋ ์ค์บ ๋ฆฌํฌํธ์์ ๋ฉ์ถฅ๋๋ค. Decepticon์ ์คํ๋ ค ํฌ ์ฒด์ธ์ผ๋ก ์ฌ๊ณ ํฉ๋๋ค โ ์ ์ฐฐ, ์ต์คํ๋ก์, ๊ถํ ์์น, ์ธก๋ฉด ์ด๋, ์ง์์ฑ โ ์ค์บ๋๊ฐ ์๋ ์ค์ ์ ์ด ํ๋ ๋ฐฉ์์ผ๋ก ๋ค๋จ๊ณ ์์ ์ ์ํํฉ๋๋ค.
๋ค ๊ฐ์ง ์์น์ด ์ฐ๋ฆฌ๊ฐ ๋ง๋๋ ๋ชจ๋ ๊ฒ์ ์ด๋๋๋ค:
ํฐ ๊ทธ๋ฆผ: ๊ณต๊ฒฉ์ด ๋ฐฉ์ด๋ฅผ ์ฌ๊ธด๋ค
๋ง์ "์คํ์๋ธ AI" ํ๋ก์ ํธ๊ฐ ์๋ชป ์ดํดํ๋ ๊ฒ์ด ์์ต๋๋ค: ๊ณต๊ฒฉ์ ๋ชฉ์ ์ง๋ก ์ทจ๊ธํ๋ค๋ ๊ฒ.
Decepticon์ ๋ชฉ์ ์ง๊ฐ ์๋๋๋ค. Step 1์ ๋๋ค.
์ด๋ฏธ ์๋ง์ ์คํ์๋ธ AI ์์ด์ ํธ๊ฐ ์กด์ฌํฉ๋๋ค. ์ธ์์ "๋ด, AI๊ฐ ํดํนํ ์ ์์ด" ๋ฐ๋ชจ๊ฐ ํ๋ ๋ ํ์ํ ๊ฒ์ด ์๋๋๋ค. ์ธ์์ด ์ง์ ์ผ๋ก ํ์๋ก ํ๋ ๊ฒ์ ์คํ์๋ธ ์ญ๋์ ๋ฐฉ์ด ์งํ๋ก ์ ํํ๋ ์์คํ ์ ๋๋ค:
์ด๊ฒ์ **์คํ์๋ธ ๋ฐฑ์ (Offensive Vaccine)**์ด๋ผ๊ณ ์๊ฐํ์ธ์. ์๋ฌผํ์ ๋ฐฑ์ ์ด ์ฝํ๋ ๋ณ์์ฒด์ ์ ์ฒด๋ฅผ ๋ ธ์ถ์์ผ ๋ฉด์ญ๋ ฅ์ ๊ตฌ์ถํ๋ฏ, Decepticon์ ๋์์๋ AI ๊ธฐ๋ฐ ๊ณต๊ฒฉ์ ์ธํ๋ผ๋ฅผ ๋ ธ์ถ์์ผ ํ๋ณต๋ ฅ์ ๊ตฌ์ถํฉ๋๋ค.
์ง์ ํ ๊ฐ์น๋ ๊ณต๊ฒฉ์ ์์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ๊ฒฌ๋๋ด๋ฉฐ ํ์ํ๋ ๋ฐฉ์ด ์์คํ ์ ์์ต๋๋ค.
File: ko/vision/core-philosophy.mdx
title: "ํต์ฌ ์ฒ ํ (Core Philosophy)"
Decepticon์ ์ฆํฅ์ ์ผ๋ก ๋ง๋ค์ด์ง ๊ฒ์ด ์๋๋๋ค. ๋ชจ๋ ์ํคํ ์ฒ ๊ฒฐ์ ์ ์๋ ๊ฐ์ ์ฐ๊ตฌ์ ์คํจ, ๊ทธ๋ฆฌ๊ณ ๊ฐ๋น์ผ ๊ตํ์ผ๋ก๋ถํฐ ๋จ์กฐ๋ ํต์ฌ ์ฒ ํ ์์ ์ธ์์ ธ ์์ต๋๋ค. ์ด ํ์ด์ง์์๋ Decepticon์ด ๋ฌด์์ธ์ง, ๊ทธ๋ฆฌ๊ณ ์๋์ ์ผ๋ก ๋ฌด์์ด ์๋์ง๋ฅผ ์ ์ํ๋ ์ฒ ํ์ ๊ธฐ๋ฅ๋ค์ ์๊ฐํฉ๋๋ค.
์๊ทธ๋์ฒ๊ฐ ์๋ ์ถ๋ก (Reasoning Over Signatures)
์ ํต์ ์ธ ๋ณด์ ๋๊ตฌ๋ค์ ์๊ทธ๋์ฒ ๊ธฐ๋ฐ(Signature-based) ํจ๋ฌ๋ค์์ผ๋ก ์๋ํฉ๋๋ค. ์๋ ค์ง ์ทจ์ฝ์ (CVE) ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์๋ ค์ง ์ ์ฑ ํ์ด๋ก๋, ์๋ ค์ง ๊ณต๊ฒฉ ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ๋์กฐํฉ๋๋ค. ๋ง์ฝ ๊ณต๊ฒฉ์ด ์๊ทธ๋์ฒ์ ๋งค์นญ๋์ง ์์ผ๋ฉด, ๊ทธ๋๋ก ํ์ง๋ฅผ ํผํด ํต๊ณผํฉ๋๋ค.
Decepticon์ ์๊ทธ๋์ฒ ์ฐ์ ์ ๊ทผ ๋ฐฉ์์ ๊ฑฐ๋ถํฉ๋๋ค. ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ํจํด ๋งค์นญ ๋์ , ํ๊ฒ์ ๋ํด **์ถ๋ก (Reasoning)**ํฉ๋๋ค:
- ๋ฌธ๋งฅ ์ดํด (Contextual Understanding): ์๋ฒ ์๋ต์ ์ฝ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ํ๋ฆ์ ํ์ ํ๋ฉฐ, ์ธ๊ฐ์ ์ฌ๊ณ ๋งน์ ์ด ๋ง๋๋ ๊ณต๊ฒฉ ๊ฐ๋ฅ ์ง์ ์ ์๋ณํฉ๋๋ค.
- ๋์ ์ ๋ต ์๋ฆฝ (Dynamic Strategy): ๋งค๋ฒ ๊ฐ์ ์ค์บ ํ๋ ์ด๋ถ์ ๋๋ฆฌ๋ ๊ฒ์ด ์๋๋ผ, ๊ฐ ํ๊ฒ ํ๊ฒฝ์ ๊ณ ์ ํ "๋ฐ์ด๋ธ"์ ๋ง๊ฒ ์ ๊ทผ ๋ฐฉ์์ ์ ์์ํต๋๋ค.
- ์ฌ๊ณ ์ฐ์ ๊ณต๊ฒฉ (Chain-of-Thought Attacks): ๊ฐ ๋จ๊ณ๊ฐ ๋ค์ ๋จ๊ณ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๋ค๋จ๊ณ ๊ณต๊ฒฉ ์ฒด์ธ์ ๊ตฌ์ฑํฉ๋๋คโ์ค์ ์ธ๊ฐ ๊ณต๊ฒฉ์๊ฐ ํ๋ ๊ฒ์ฒ๋ผ.
ํ์ด๋ธ๋ฆฌ๋ ์ง๋ฅ (Hybrid Intelligence)
Decepticon์ ๊ฒ์ฆ๋ ๋ณด์ ๋๊ตฌ๋ฅผ AI๋ก ๋์ฒดํ๋ ๊ฒ์ด ์๋๋๋ค. ์ด๋ค์ ์ง๋ฅ์ ์ผ๋ก ๊ฒฐํฉํ๋ ๊ฒ์ ๋๋ค.
์ฌ์ด๋ฒ ๋ณด์ ๋ถ์ผ์๋ ์์ญ ๋ ์ ๊ฑธ์ณ ๊ฒ์ฆ๋ ๊ธฐ๋ฒ๋ค์ด ์กด์ฌํฉ๋๋ค: ํผ์ง(Fuzzing), ์ ์ ๋ถ์, ๋คํธ์ํฌ ์ค์บ๋, ํ์ด๋ก๋ ๋ณ์ด ๋ฑ. ์ด ๋๊ตฌ๋ค์ ๊ฐ์์ ์์ญ์์ ๊ฐ๋ ฅํฉ๋๋ค. ํ์ง๋ง ์ถ๋ก ํ๊ณ , ์ ์ํ๊ณ , ์ฌ๋ฌ ๊ณต๊ฒฉ ํ๋ฉด์ ๊ฑธ์ณ ๋งฅ๋ฝ์ ์ฐ๊ฒฐํ๋ ๋ฅ๋ ฅ์ ์์ต๋๋ค.
Decepticon์ ์ ๊ทผ ๋ฐฉ์์ ๊ฐ๊ฐ์ด ๊ฐ์ฅ ์ ํ๋ ๊ฒ์ ํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค:
- ํผ์ ๋ ์ด๋ค LLM๋ณด๋ค ๋น ๋ฅด๊ฒ ์์ฒ ๊ฐ์ ๋ณํ๋ ์ ๋ ฅ์ ์์ฑํฉ๋๋ค.
- ์ค์บ๋๋ ๊ธฐ๊ณ์ ์ ๋ฐํจ์ผ๋ก ์๋น์ค๋ฅผ ์ด๊ฑฐํ๊ณ ์๋ ค์ง ์ทจ์ฝ์ ์ ์๋ณํฉ๋๋ค.
- ์์ด์ ํธ๋ ์ด ๋๊ตฌ๋ค์ ์ธ์ ๋ฐฐํฌํ ์ง ๊ฒฐ์ ํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ํด์ํ๋ฉฐ, ์ด๋ฅผ ์๋ฏธ ์๋ ๊ณต๊ฒฉ ์ํ์ค๋ก ์ฒด์ด๋ํ๊ณ , ์ํฉ์ด ๋ฐ๋๋ฉด ํผ๋ฒํฉ๋๋ค.
์ด๊ฒ์ด **ํ์ด๋ธ๋ฆฌ๋ ์ง๋ฅ(Hybrid Intelligence)**์ ๋๋ค: AI ์์ด์ ํธ์ ์ถ๋ก ์ด ์ด๋๋ ์๋ํ์ ์ ๋ฐํจ.
์คํ์๋ธ ๋ฐฑ์ (The Offensive Vaccine)
๊ฐ์์์ ๋ ผ์ํ ๋ฐ์ ๊ฐ์ด, Decepticon์ ๊ถ๊ทน์ ๋ชฉํ๋ ๊ณต๊ฒฉ์ด ์๋ ๋ฉด์ญ์ ๋๋ค.
์๋ฌผํ์ ๋ฐฑ์ ์ด ์ฝํ๋ ๋ณ์์ฒด์ ์ ์ฒด๋ฅผ ๋ ธ์ถ์์ผ ๋ฉด์ญ๋ ฅ์ ๊ตฌ์ถํ๋ฏ, Decepticon์ ๋์์๋ AI ๊ธฐ๋ฐ ๊ณต๊ฒฉ์ ์ธํ๋ผ๋ฅผ ๋ ธ์ถ์์ผ ํ๋ณต๋ ฅ์ ๊ตฌ์ถํฉ๋๋ค.
ํ์ง๋ง ์ด๊ฒ์ด "๋ ํ๋์ ์ค์บ๋"์ ๋ค๋ฅธ ์ด์ ๊ฐ ์์ต๋๋ค:
- ๋ฌดํ ํผ๋๋ฐฑ ๋ฃจํ: ์์ด์ ํธ๋ ๋์ผํ ํ๋ ์ด๋ถ์ ๋ฐ๋ณตํ์ง ์๋, ๋ค์ํ๊ณ ๋ฌธ๋งฅ์ ์ธ์ํ๋ ๊ณต๊ฒฉ ์๋๋ฆฌ์ค๋ฅผ ๋์์ด ์์ฑํฉ๋๋ค.
- ํ์ค์ ์ธ ์ํ ์๋ฎฌ๋ ์ด์ : ํจ๊ณผ์ ์ธ ๋ฐฑ์ ์ด ๋๋ ค๋ฉด, ๊ณต๊ฒฉ์ ์ค์ ์ํ ํ์์๋ฅผ ์ถฉ์คํ ๋ชจ๋ฐฉํด์ผ ํฉ๋๋ค. ์๋๋ฝ๊ฒ ํฌํธ ์ค์บํ๊ณ ๊ธฐ๋ณธ ํจ์ค์๋๋ฅผ ์ฒดํฌํ๋ ๋๊ตฌ๋ ๋ฐฑ์ ์ด ์๋๋ผ ์์ฝ(Placebo)์ ๋๋ค.
- ์ธก์ ๊ฐ๋ฅํ ์งํ: ๊ณต๊ฒฉ๊ณผ ๋ฐฉ์ด์ ๋ชจ๋ ์ฌ์ดํด์ ์ธก์ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ฅผ ์์ฐํ์ฌ, ๋ธ๋ฃจํ์ด ์๊ฐ์ ๋ฐ๋ฅธ ์์ ์ ์ฑ์ฅ์ ์ ๋์ ์ผ๋ก ํ์ ํ ์ ์๊ฒ ํฉ๋๋ค.
์ฌ๋์ด ์ค์ฌ์ ์๋ค (Human in the Loop)
์์จ์ ์ด๋ผ๋ ๊ฒ์ ๊ฐ๋ ๋์ง ์๋๋ค๋ ์๋ฏธ๊ฐ ์๋๋๋ค. Decepticon์ ์ธ๊ฐ ์คํผ๋ ์ดํฐ๋ฅผ ๊ถ๊ทน์ ๊ถ์์โ์์ ์ ์ง์ ํ ์์ฌ๊ฒฐ์ ์์ด์ ์ง์ฑ์ฒด๋ก ์์น์ํต๋๋ค.
์์ด์ ํธ๋ ์์จ์ ์ผ๋ก ์ ๋ต์ ์คํํ๊ณ ์ค์๊ฐ์ผ๋ก ์ ์ํฉ๋๋ค. ํ์ง๋ง ์ฌ๋์ ํญ์ ๊ทธ ์๋ฆฌ์ ์์ต๋๋ค:
- ์ค์๊ฐ ๋ชจ๋ํฐ๋ง: ํ๋์ AI ์์ด์ ํธ ์๋น์ค์ฒ๋ผ, ์คํผ๋ ์ดํฐ๋ ์์ด์ ํธ์ ํ๋์ ์ค์๊ฐ์ผ๋ก ๊ด์ฐฐํ ์ ์์ต๋๋คโ๋ฌด์์ ํ๊ณ ์๋์ง, ์ ํ๋์ง, ๋ค์์ ๋ฌด์์ ํ ๊ณํ์ธ์ง.
- ์ธ์ ๋ ๊ฐ์ ๊ฐ๋ฅ: ์คํผ๋ ์ดํฐ๋ ์์ ์ ์ด๋ค ์์ ์์๋ ์์ด์ ํธ์ ๊ฒฐ์ ์ ์ผ์์ ์ง, ๋ฐฉํฅ ์ ํ, ๋๋ ์ง์ ๊ฐ์ ํ ์ ์์ต๋๋ค. ์์ด์ ํธ๋ ๋๊ตฌ์ด๊ณ , ์ธ๊ฐ์ด ์ ๋ต๊ฐ์ ๋๋ค.
- ํผ๋๋ฐฑ ๊ธฐ๋ฐ ํ์ต: ์ธ๊ฐ์ ํผ๋๋ฐฑ์ด ์์ด์ ํธ์ ํ๋์ ํ์ฑํฉ๋๋ค. ์คํผ๋ ์ดํฐ๋ ๋จ์ํ ์ง์ผ๋ณด๋ ๊ฒ์ด ์๋๋ผ ์์ ์ ์ ๊ทน์ ์ผ๋ก ๋ค๋ฌ๊ณ ์๋ ๊ฒ์ ๋๋ค.
์๋์ด ๊ธฐ๋ฐ์ด๋ค (Stealth as Foundation)
๋๋ถ๋ถ์ ์๋ํ๋ ๋ณด์ ๋๊ตฌ๋ ๋ณธ์ง์ ์ผ๋ก ์๋๋ฝ์ต๋๋ค. ์์ฒ ๊ฐ์ ์์ฒญ์ ํผ๋ถ๊ณ , ๋ชจ๋ SIEM ๋ฃฐ์ ํธ๋ฆฌ๊ฑฐํ๋ฉฐ, ์์ ์ ์กด์ฌ๋ฅผ ๋ง์ฒํ์ ์๋ฆฝ๋๋ค.
์ด๊ฒ์ ๋ ๋ํ ํ ์คํ ์ ๋ชฉ์ ์ ์์ ํ ๋ฌด๋ ฅํํฉ๋๋ค. ํต์ฌ์ ์ ๊ตํ ์ ์ ๋ธ๋ฃจํ์ด ํ์งํ ์ ์๋์ง ํ ์คํธํ๋ ๊ฒ์ ๋๋ค. ํ ์คํ ๋๊ตฌ๊ฐ ์์ํ์๋ง์ ๋ชจ๋ ์๋์ ์ธ๋ฆฐ๋ค๋ฉด, ํ์ง ์ญ๋์ ํ ์คํธํ๋ ๊ฒ์ด ์๋๋ผ ์๋ ํผ๋ก๋๋ฅผ ํ ์คํธํ๋ ๊ฒ์ ๋๋ค.
Decepticon์ ์๋์ ๊ทผ๋ณธ์ ์ธ ์ค๊ณ ์๊ตฌ์ฌํญ์ผ๋ก ์ทจ๊ธํฉ๋๋ค:
- C2 ๊ธฐ๋ฐ ์ด์: ์์ด์ ํธ๋ ์ค์ ์ํ ํ์์์ฒ๋ผ C2(Command & Control) ์ธํ๋ผ๋ฅผ ํตํด ์ด์๋๋ฉฐ, ์ํธํ๋ ์๋ฐํ ํต์ ์ฑ๋์ ์ ์งํฉ๋๋ค.
- ์๋๋ฐ์ค ์คํ: ๋ช ๋ น์ด๋ ์๋๋ฐ์ค ํ๊ฒฝ์์ ์คํ๋๋ฉฐ, ์ค์ ๊ณต๊ฒฉ์๊ฐ ์ค์ฒํ๋ ์์ ๋ณด์(OPSEC) ํ๋ จ์ ๊ทธ๋๋ก ๋ฐ๋ฆ ๋๋ค.
- ์ ์-์ง์ (Low-and-Slow): ํ๋์ ์ ์ ํธ๋ํฝ ํจํด์ ๋ น์๋ค๋๋ก ์กฐ์ ๋๋ฉฐ, ๋ณผ๋ฅจ์ผ๋ก ๋ฐฉ์ด๋ฅผ ์๋ํ์ง ์์ต๋๋ค.
๋จ์ํ ์ทจ์ฝ์ ์ ์ฐพ๋ ๊ฒ์ด ๊ฐ์น๊ฐ ์๋๋๋ค. ํต์ฌ ์ง๋ฌธ์ ๋ตํ๋ ๊ฒ์ ๋๋ค: ๋ธ๋ฃจํ์ด ์ฐ๋ฆฌ๋ฅผ ํ์งํ ์ ์๋๊ฐ? ์ผ๋ง๋ ๋นจ๋ฆฌ ๋์ํ๋๊ฐ? ๋ฌด์์ ๋์น๋๊ฐ?
File: ko/vision/target-architecture.mdx
[Binary file]
File: ko/vision/why-open-source.mdx
[Binary file]