LICENSE Documentation

Official TypeScript developer resources and documentation for PurpleAILAB/LICENSE. Verified technical context for AI.

0 stars TypeScript TypeScript 1 file ยท ~64,239 tokens
RAW Doc

1. Project Overview & Quickstart (PurpleAILAB/LICENSE)

LICENSE

Open-source repository PurpleAILAB/LICENSE

Repository Details

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 Security so product context remains clear while the previous company identity is no longer public-facing.
  • GitHub repository links use the renamed BitterSecurity organization.

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:64 aspect ratio and renders at 48px high 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 / 28px mobile 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 48px logo 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 to https://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.

bash
decepticon

Starts 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.

bash
decepticon onboard
decepticon onboard --reset    # Reconfigure from scratch

Configures:

  • 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.

bash
decepticon demo

Launches 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.

bash
decepticon status

Lists 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.

bash
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 dashboard

Streams 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.

bash
decepticon kg-health

Runs 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.

bash
decepticon stop

Gracefully stops all Docker containers โ€” agent API, LiteLLM proxy, sandbox, C2 server, database, knowledge graph, and web dashboard.

`decepticon update`

Check for and apply updates.

bash
decepticon update

Checks 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.

bash
decepticon remove

Tears 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.

bash
decepticon --version

C2 Profiles

Enable C2 frameworks via Docker Compose profiles. The default install enables c2-sliver.

bash
# Start with Sliver C2 (default)
COMPOSE_PROFILES=c2-sliver decepticon

# Start with Sliver C2 plus the demo target stack
COMPOSE_PROFILES=c2-sliver,demo decepticon

CLI 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:

bash
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 targets
Full development environment setup guide for contributors.

File: 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

The central red-team coordinator. Owns the OPPLAN, sequences objectives, resolves dependencies, and dispatches specialists (`recon`, `exploit`, `postexploit`, `analyst`, `reverser`, `contract_auditor`, `cloud_hunter`, `ad_operator`) via SubAgent middleware. Runs on the most capable model tier. Vulnerability research orchestrator โ€” runs the five-stage pipeline (`scanner โ†’ detector โ†’ verifier โ†’ patcher โ†’ exploiter`) with state passed between stages exclusively through the knowledge graph. Engagement planner. Standalone graph (not a sub-agent of Decepticon). Interviews the operator and generates the complete engagement package โ€” RoE, ConOps, Deconfliction Plan, OPPLAN, and threat profile. No bash access; produces documents only.

Reconnaissance Phase

Active and passive recon โ€” port scanning, service enumeration, OSINT, subdomain discovery, certificate-transparency mining. Operates inside the Kali sandbox.

Vulnerability Research Pipeline

Sub-agents of the Vulnresearch orchestrator. State flows between stages via the knowledge graph; each stage runs with fresh context.

Stage 1 โ€” broad-spectrum scanner. Walks large codebases in parallel and emits CANDIDATE nodes with heuristic suspicion scores. Cheap, fast, no vulnerability reasoning. Stage 2 โ€” vulnerability detector. Reads source around each CANDIDATE and promotes real bugs to VULNERABILITY + HYPOTHESIS nodes, or rejects them as false positives. Read-only (no bash). Stage 3 โ€” two-method verification gate. Confirms candidate findings through at least two independent evidence channels before downstream work begins. Stage 4 โ€” reproducible PoC author. Produces working proof-of-concept exploits for verified vulnerabilities, with reliability notes. Stage 5 โ€” patch generator. Produces a code or configuration change that closes the vulnerability without breaking the application, plus a regression test.

Exploitation & Post-Exploitation

Initial access and exploitation tactics. Web/AD attacks (SQLi, SSTI, Kerberoasting, ADCS abuse, credential attacks). Privilege escalation, lateral movement, credential harvesting, persistence โ€” often via Sliver C2 sessions once initial access is established.

Domain Specialists

Active Directory specialist. Kerberoasting, AS-REP roasting, ADCS ESC1โ€“ESC15, DCSync, ticket forging, ACL abuse, GPO manipulation, BloodHound path analysis. Cloud infrastructure specialist. IAM privilege escalation, S3/Azure storage exposure, Kubernetes RBAC escapes, metadata-service abuse across AWS/Azure/GCP. Solidity / EVM smart-contract auditor. Reentrancy, oracle manipulation, flash-loan abuse, access-control flaws; Slither static analysis + Foundry PoC harness. Binary reverse-engineering specialist. ELF/PE/Mach-O triage, packer detection, string/symbol extraction, ROP gadget inventories, Ghidra/radare2 scripting.

Analysis & Reporting

Vulnerability research and reporting specialist. Cross-correlates findings, queries the knowledge graph, and drafts the engagement narrative โ€” source code review, static analysis (semgrep/bandit/gitleaks), dependency CVE sweeps, and multi-hop exploit chain construction.

Clean Context Per Objective

Every agent spawns with a fresh context window for every objective:

text
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 โ€” provides read_file, write_file, edit_file, ls, glob, grep against the engagement workspace. Execute is intentionally disabled; specialists use the dedicated bash tool 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 calling ops_start(...). See Dynamic Infrastructure.
  • SandboxNotifications โ€” When a bash command launched with run_in_background=true finishes, the captured output is auto-fetched and injected on the next inference turn. The agent doesn't have to remember to call bash_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:

text
Agent โ†’ Docker Socket โ†’ Kali Sandbox โ†’ tmux session โ†’ Tool (sliver-client, msfconsole, evil-winrm, ...)
                                              โ†“
                                       Prompt Detection
                                              โ†“
                                       Follow-up Commands

When a tool presents an interactive prompt (sliver >, msf6 >, PS C:\>), the agent:

  1. Detects the prompt pattern.
  2. Interprets the tool's output.
  3. Sends the appropriate follow-up command.
  4. 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.

The structured plan that the orchestrator dispatches to these agents. The isolated network architecture these agents operate within.

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.

text
โ”Œโ”€ 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:

  1. The Python CLI's UIRenderer (Ink terminal UI).
  2. The LangGraph HTTP custom-event channel (web dashboard).

This is how the operator sees Recon enumerate ports in real time, not after the fact.

The sixteen specialist agents that this middleware stack wraps. The structured plan that the OPPLAN middleware exposes and injects.

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.

The tactical *goals* a threat may pursue during an operation. Examples: Initial Access (TA0001), Execution (TA0002), Persistence (TA0003), Privilege Escalation (TA0004). The *actions* threats take to achieve their tactical goals. Examples: T1566 Phishing, T1059 Command and Scripting Interpreter, T1078 Valid Accounts. The *technical steps* required to perform a technique in a specific environment. Procedures are concrete commands, scripts, and tool invocations.

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:

yaml
---
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.

The TTP hierarchy is verbatim from MITRE: *Tactics* are goals, *Techniques* are actions, *Procedures* are concrete steps. Decepticon agents are trained to use these terms precisely โ€” never interchangeably. How the progressive-disclosure skill loader filters by ATT&CK technique overlap.

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

Establish initial access without tipping the blue team. The footprint is the cost โ€” the smaller, the better. Decepticon executes Get In through the **Recon** and **Exploit** agents, driven by the OPPLAN's `INITIAL_ACCESS` objectives. Persistence and command-and-control. The objective is survivability โ€” beacons that survive reboots, defender response, and EDR sweeps. Decepticon establishes Sliver C2 sessions and tiered callbacks here. Achieve the engagement goals โ€” privilege escalation, lateral movement, credential access, data discovery, exfiltration, operational impact. Decepticon's **Post-Exploit** agent runs Act objectives, OPPLAN-tagged with MITRE ATT&CK IDs.

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:

Evaluate physical and badge controls โ€” door access, tailgating, RFID cloning. Reach a named crown-jewel system (SWIFT, ERP, prod database, code-signing infra). Pivot across segments โ€” DMZ to corp, corp to OT, cloud to on-prem. Promote from low-privilege user to local admin, domain admin, or cloud-tenant root. Locate sensitive data โ€” secrets, source code, customer records, IP. Move data out without DLP catching it. The route matters as much as the bytes. Operate without triggering SIEM, EDR, NDR, or human analyst tickets. Demonstrate the consequence โ€” business disruption, integrity, availability.

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:

Scope, restrictions, communication plan, deconfliction. Authority to operate. Threat profile, methodology, success criteria, infrastructure plan. How the red team separates its activity from real-world incidents during the engagement. Objective list โ€” each with MITRE ATT&CK IDs, kill chain phase, dependencies, acceptance criteria. This three-phase framing is adapted from the [redteam.guide methodology](https://redteam.guide/docs/Concepts/red-teaming/) and the book *Red Team Development and Operations* by Joe Vest and James Tubberville. Decepticon's contribution is making each phase agent-executable.

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

The offensive component. Simulates strategic and tactical responses of the threat profile. Operates within the RoE. **Decepticon executes here.** All components defending the target โ€” SOC analysts, IR responders, internal staff, management. The audience whose effectiveness the engagement is measuring. The referee. Monitors RoE compliance, separates real incidents from exercise activity, and adjudicates outcomes. Trusted by both Red and Blue. A privileged insider with detailed knowledge of engagement activities. Prevents irreversible damage and authorizes high-risk steps.

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:

Every command Decepticon executes is tagged with an engagement ID. White Cell can query "what was Red doing at 03:14 UTC?" and get an authoritative answer in seconds. The CLI exposes a graceful pause that halts new objective scheduling without tearing down running C2 sessions, so deconfliction calls don't burn the engagement. All agent actions, tool invocations, and findings are persisted to PostgreSQL with timestamps. The log is the deconfliction record.

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.

The cell model is adapted from the [redteam.guide roles & relationships](https://redteam.guide/docs/Concepts/role-relationships/) page. Decepticon does not change the model โ€” it slots into it. How Soundwave produces the RoE and OPPLAN that the cells operate against.

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:

Soundwave selects or composes a profile from the seven-field template, then weaves it into the Concept of Operations as the engagement's "adversary of record." Each objective is tagged with MITRE ATT&CK IDs. The orchestrator refuses to schedule objectives whose TTPs fall outside the profile. Decepticon's progressive-disclosure skill system loads only skills whose `mitre_attack` tags overlap with the profile. Out-of-profile skills are kept off the agent's working set. The C2 tier and channel choices (Sliver mTLS, HTTPS, DNS) are picked to mirror the profile's actual tradecraft โ€” so the blue team's detections fire against the right shapes.

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:

yaml
---
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.

See how progressive-disclosure skills filter by ATT&CK overlap with the active threat profile.

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

Every command, every output, every finding โ€” to PostgreSQL, with engagement tag and timestamp. No silent actions. The SKILL-FIRST rule: agents must load the relevant skill before acting on a matching trigger. Skills carry tradecraft warnings inline. Each skill documents what artifacts the tool leaves โ€” registry keys, log entries, parent-process anomalies โ€” so OPSEC tradeoffs are explicit. Tier C2 by exposure. Long-haul callbacks for persistence, short-haul for active objectives, interactive only when needed. After every initial access or pivot, run lightweight enumeration before noisy actions. Know the host before you make noise on it. Prefer PowerShell, bash, and OS utilities to dropped binaries. Smaller artifact footprint, fewer EDR signals.

DON'T

Decepticon's skills only reference tools that have been validated in the sandbox. Novel binaries are an OPSEC failure waiting to happen. Sliver channels default to mTLS, HTTPS, or DNS. Plaintext C2 is forbidden by default in every Decepticon profile. Drop into `%TEMP%` or unwritable system directories with care โ€” these are the first paths defenders look at. Skills steer toward expected locations. The EngagementContext middleware refuses objectives that would exfiltrate regulated data. Proof-of-access is not proof-of-exfil. If the operator pauses the engagement, the agent halts new objective scheduling. Deconfliction overrides momentum. The EngagementContextMiddleware checks every iteration against the RoE. Out-of-scope actions are refused, not warned.

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.

The DO/DON'T taxonomy is adapted from [redteam.guide's tradecraft page](https://redteam.guide/docs/Planning/red-team-tradecraft/). Decepticon's contribution is enforcement โ€” moving the principles from a checklist to runtime middleware. How OPPLAN objectives carry the tradecraft constraints into agent execution.

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

Agent improvements, tool integrations, infrastructure enhancements, bug fixes, and test coverage. New offensive techniques for the skill library โ€” tagged with MITRE ATT&CK IDs and organized by kill chain phase. Improve these docs, write tutorials, add examples, or translate to new languages. Answer questions on Discord, share engagement patterns, report bugs, or discuss new features.

Contribution Workflow

Fork the [Decepticon repository](https://github.com/BitterSecurity/Decepticon) to your GitHub account. Branch from `main` with a descriptive name: ```bash git checkout -b feature/add-kerberoasting-skill ``` Make your changes using the [Developer Setup](/en/contributing/developer-setup). Run tests: ```bash make test make lint ``` Decepticon follows the [Conventional Commits](https://www.conventionalcommits.org/) format: `type(scope): subject`. Common types: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`. Write the body to explain the *why*, not just the *what*.
text
```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
```
Push your branch and open a PR against `main`. Describe what your change does and why.

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 lint before submitting
  • Include tests for new functionality
  • Document non-obvious design decisions in comments

Community

Ask questions, share techniques, connect with the team. Report bugs, request features, track roadmap. Longer-form conversations about architecture, strategy, and ideas.

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

  • Docker with Docker Compose v2
  • Git
  • (Optional) uv for local linting and type checking

Clone & Start

bash
git clone https://github.com/BitterSecurity/Decepticon.git
cd Decepticon

Start the development environment with hot-reload:

bash
# 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

text
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 commands

Hot Reload

make dev uses docker compose watch to monitor source files. When you edit code:

  1. Changes are synced into the running containers automatically
  2. Affected services restart with the new code
  3. No manual docker compose build or restart needed

This provides the fastest development loop while maintaining the exact same Docker environment as production.

Running Tests

bash
# Run full test suite inside container
make test

# Local linting (requires uv)
uv sync --dev
make lint
Learn the contribution workflow โ€” branching, commits, and pull requests.

File: 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

The orchestrator picks the next pending objective from the OPPLAN, resolving dependencies and prioritizing based on kill chain phase. A prompt is constructed with the objective details, RoE guard rails, available skills, and relevant findings from previously completed objectives. A **new agent instance** is spawned with a clean context window. No accumulated noise from prior objectives โ€” fresh reasoning every time. The agent executes the objective using available tools and skills within the Kali sandbox. All commands run inside persistent tmux sessions with interactive prompt detection. The orchestrator parses the agent's `PASSED` / `BLOCKED` signal, updates the objective status, and appends findings to disk. Move to the next objective. Findings from completed objectives inform subsequent agents, enabling multi-stage attack chains.

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-z support 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:

text
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:

text
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.

Learn about the progressive skill system that equips agents with ATT&CK-mapped capabilities.

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:

  1. Generate a valid OPPLAN for the challenge from a minimal prompt.
  2. Execute the kill chain end-to-end without operator intervention.
  3. 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:

bash
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:

Build the challenge's Docker environment and inject a unique FLAG. Hand the challenge prompt to the LangGraph platform; Decepticon's orchestrator generates an OPPLAN and executes it. Grep the agent's workspace for the `FLAG{...}` pattern. Match โ†’ pass; no match โ†’ fail. `docker compose down -v` to fully reset state for the next challenge.

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 CI
  • report.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.

Benchmark runs are also how new model profiles get validated before being made default.

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:

bash
COMPOSE_PROFILES=c2-sliver decepticon

This adds the Sliver team server to the operational network (sandbox-net) alongside the Kali sandbox and any target infrastructure.

Architecture

text
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 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:

bash
# 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-mythic
Learn about the isolated network architecture that keeps C2 traffic separated from management.

File: 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 stop take 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

text
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:

  1. systemd user unit (Linux) โ€” decepticon opscontrol install writes a unit at ~/.config/systemd/user/decepticon-opscontrol.service. The init system supervises crash-recovery and survives reboot.
  2. launchd LaunchAgent (macOS) โ€” Same shape, written to ~/Library/LaunchAgents/.
  3. 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 docker group 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:
text
ad, c2-sliver, c2-havoc, reversing, cloud, mobile, phishing,
forensics, ics, iot, supply-chain, wireless

Anything 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:

text
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 specialist

No 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:

bash
# .env
COMPOSE_PROFILES=cli,c2-sliver,ad,reversing

The 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.

The agent's other auto-notification surface โ€” background bash commands also push completion notices, not polling. Where these workloads sit in the two-network topology.

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:

Defines scope, timing, and boundaries. What you can and can't touch. Violate this and you're not a red teamer โ€” you're a criminal. Threat actor profile, attack methodology, the "who are we pretending to be" document. Defines initial access vectors and TTPs as MITRE ATT&CK IDs. 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. The full mission plan. Objectives, kill chain phases, acceptance criteria. Every action maps to a purpose.

How It Works

Soundwave conducts a structured interview: target scope, threat model, authorized techniques, timing constraints, and success criteria. Based on the interview, Soundwave generates the complete engagement package โ€” RoE, ConOps, Deconfliction Plan, and OPPLAN. Each OPPLAN objective is tagged with MITRE ATT&CK technique IDs, kill chain phase, and acceptance criteria. These feed directly into the autonomous execution loop. The Rules of Engagement are enforced at every iteration of the autonomous loop. The agent cannot operate outside the defined boundaries.

OPPLAN Structure

The OPPLAN is the core document that drives autonomous execution. Each objective contains:

text
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: PENDING

Objectives are tracked through status transitions: PENDING โ†’ IN_PROGRESS โ†’ PASSED / BLOCKED. The orchestrator manages dependencies and adapts the attack path based on results.

Learn how the orchestrator executes OPPLAN objectives through the autonomous kill chain.

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:7474 with credentials from the onboarding wizard.
  • CLI: decepticon kg-health runs 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:

  1. A JSON export of all nodes and edges.
  2. An ATT&CK Navigator layer derived from the graph.
  3. A "blue spots" overlay โ€” vulnerabilities the engagement found that the customer's existing detections do not cover.
  4. 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.

Querying the graph mid-engagement is one of the highest-leverage operator actions. A Cypher query like `MATCH (a:Account)-[:OWNS]->(c:Credential)-[:AUTHENTICATES_TO]->(h:Host) WHERE NOT (h)-[:RESPONDS_TO]-() RETURN h` finds every reachable host whose blue team has no detection. How DefenseAction nodes are produced by the Detector and Patcher agents.

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 Google 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:

Needs deep reasoning for objective sequencing, dependency resolution, and attack path adaptation. Routes to the most capable model. Requires strong technical reasoning for vulnerability exploitation and tool operation. Routes to mid-high tier. Handles structured tasks โ€” port scanning, service enumeration, output parsing. Works well with faster models. Complex post-exploitation through C2 sessions. Routes similarly to exploit tier.

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:

text
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

Provider 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 **five-stage Vulnresearch pipeline** described below ships today, driven by the `Vulnresearch` orchestrator and its five sub-agents. The **defense-closing half** of the loop (the "Defender" agent, automated mitigation backends, re-attack verification) is a **planned product direction** โ€” not an active implementation in the current codebase. The previous Defender graph and Docker defense backend have been removed and a future implementation will be rebuilt around OPPLAN middleware. See [`docs/offensive-vaccine.md`](https://github.com/BitterSecurity/Decepticon/blob/main/docs/offensive-vaccine.md) in the repo.

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

text
attack โ†’ detection rule โ†’ verification โ†’ exploit PoC โ†’ patch
   โ†‘                                                       โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                     regression coverage

Each stage is owned by a specialist agent. Together they implement what the security industry calls "purple teaming," fully automated.

The Five Stages

Automated vulnerability scanning across the target. Output: candidate findings (CVE matches, configuration issues, exposed surfaces). Generate a detection signal for the candidate vulnerability โ€” Sigma rule, YARA rule, IDS signature, or telemetry-derived heuristic. Defenders need to know *what* to look for before they can detect it. Two-method gate: confirm the vulnerability through at least two independent verification techniques. Eliminates false positives before exploit work begins. Generate a minimal patch โ€” code change, configuration change, compensating control โ€” that closes the vulnerability without breaking the application, then prove the fix holds via `patch_verify`. Patching *before* PoC is the offensive-vaccine inversion: the defender's diff is the artifact under test. Author a reproducible proof-of-concept that targets the patched candidate. If the PoC succeeds against the patched code, the patch is incomplete and the loop iterates; if the PoC fails, the patch is hardened evidence the fix held.

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

This component is not implemented in the current codebase โ€” the previous Defender graph and Docker defense backend were removed, and a future replacement will be rebuilt around OPPLAN middleware and a dedicated vaccine concept. Today the Vulnresearch pipeline's artifacts (detection rules, PoCs, patches) are persisted to the workspace and knowledge graph, and a human operator hands them to the blue team.

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 Vulnerability nodes
  • Detection rules become DefenseAction nodes with DETECTS edges
  • Patches become DefenseAction nodes with MITIGATES edges
  • Verifications become provenance edges

The graph is queryable mid-engagement and exportable as the engagement deliverable.

How findings, detections, and patches land in the Neo4j attack graph. Each pipeline stage has a dedicated skill set under `skills/scanner/`, `skills/detector/`, etc.

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.

yaml
- 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: pending

OPPLAN 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:

text
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.

text
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 offline

Each 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.

Engagement scope, goals, target, threat profile. Structured documents, written to the engagement workspace. The operator inspects each objective; the agent halts until approval is given. Decepticon agent reads the OPPLAN, sequences objectives, and spawns specialists. Add, remove, or update objectives via CLI commands. Changes are picked up on the next iteration.

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.

How Soundwave produces the initial OPPLAN draft. How the orchestrator schedules and dispatches OPPLAN objectives.

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:

  1. Initial load โ€” Only skill frontmatter (name, description, ATT&CK tags, phase) is loaded
  2. On-demand โ€” When an agent selects a skill, the full content is loaded via read_file()
  3. 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 โ€” kerberoasting builds on ad-recon and chains into ticket-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:

Each OPPLAN objective carries `mitre` technique IDs (e.g., `T1190`, `T1003.001`). ATT&CK techniques declared in skill frontmatter, displayed inline in the agent's skill catalog. ConOps defines `initial_access` and `ttps` as ATT&CK IDs, modeling specific adversary profiles.

Skill Frontmatter Example

Each skill is a directory containing a SKILL.md (frontmatter + body) and optional references/, scripts/, and assets/ subdirectories.

yaml
---
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.

Learn how different agent roles are routed to optimal model tiers.

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:

bash
decepticon onboard          # Primary setup flow
decepticon onboard --reset  # Reconfigure from scratch

Supported 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
Google 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:

bash
# Primary provider
export ANTHROPIC_API_KEY="sk-ant-..."

# Or OpenAI
export OPENAI_API_KEY="sk-..."

# Or set via LiteLLM config for custom backends

Model 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.

bash
# .env (default)
COMPOSE_PROFILES=c2-sliver

# Or override per-run via shell
COMPOSE_PROFILES=c2-sliver decepticon

When enabled, the Sliver team server starts on the operational network with:

  • Auto-generated operator configuration
  • Pre-installed sliver-client in the sandbox
  • mTLS, HTTPS, and DNS C2 channel support
Learn more about Sliver C2 integration and C2 channel configuration.

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)
The Kali sandbox requires the most resources as it runs the full offensive toolkit. Allocate at least 4 GB of memory for stable operation during complex engagements.

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:

bash
pip install decepticon              # core SDK
pip install "decepticon[neo4j]"     # + the knowledge-graph attack-chain tools
`decepticon` is a **client SDK**, not a standalone app. It ships the agent factories, middleware, tools, and skills โ€” but LLM calls and sandbox execution are routed to **runtime services** over HTTP. To actually run agents you also need those services (the Docker stack, or your own endpoints).

The 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 (default http://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

python
from decepticon.agents.standard.recon import create_recon_agent

agent = create_recon_agent()   # default OSS configuration

Each 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:

python
from decepticon.plugin_loader import PluginBundle

MY_BUNDLE = PluginBundle(
    bundle="mybundle",
    replaced_tools={"ask_user_question": my_ask_tool},
    prompts={"recon": {"prepend": "<MY_HEADER>..."}},
)
toml
# 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:

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

bash
curl -fsSL https://decepticon.red/install | bash

This pulls the Decepticon images, sets up the isolated network architecture, and installs the decepticon CLI.

Configuration

Configure your API key:

bash
decepticon config

This 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, or test (see Multi-Model Routing)

Launch

Start Decepticon:

bash
decepticon

This 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:

bash
decepticon demo

The demo launches Metasploitable 2 as a target, loads a pre-built engagement, and runs the full kill chain automatically:

Reconnaissance agent scans the target and identifies open services. Exploit agent identifies and exploits the vsftpd backdoor vulnerability. Deploys a Sliver C2 implant on the compromised target. Post-exploit agent harvests credentials via C2 session. Maps the internal network from the compromised host.

No additional configuration needed beyond your API key.

Next Steps

Deep dive into API keys, model profiles, and environment settings. Learn all available commands and options. Explore engagement planning, kill chain execution, and C2 integration. Understand the isolated network architecture and agent system.

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.

This documentation serves as a living record of the thoughts, vision, and architectural direction behind Decepticon prior to its major refactoring phase.

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).

Leverages LLMs to understand context, adapt strategies on the fly, and execute complex attack chains without human guidance. Operates with stealth and persistence to achieve specific objectives, testing the Blue Team's real detection capabilities. Learn more about why Decepticon's Autonomous Hacking strictly requires the Red Teaming methodology instead of traditional Pentesting.

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).

Identify technical flaws across a wide attack surface. Output: a list. Exploit those flaws to prove attack paths within a targeted scope. Train and measure the defenders by emulating a real adversary end-to-end.

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

  1. 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.
  2. 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.
  3. 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?
  4. 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.
  5. 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:

Initial access via the threat profile's preferred vectors โ€” phishing, exposed services, supply chain, social engineering. The objective is footprint, not noise. Establish persistence and command-and-control. Tier C2 channels (interactive / short-haul / long-haul). Maintain OPSEC. Survive defender response. Execute the engagement objectives โ€” privilege escalation, lateral movement, credential access, data discovery, exfiltration, operational impact โ€” while remaining on-mission and within the Rules of Engagement.

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.

Get In, Stay In, Act โ€” the three-phase lifecycle, mapped to Decepticon's agents. Tactics, Techniques, and Procedures โ€” the shared vocabulary between threats and Decepticon. How Decepticon turns a threat profile into an executable engagement. Red Cell, Blue Cell, White Cell, Trusted Agent โ€” and where Decepticon fits.

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:

  1. The How โ€” AI agents that reason about targets, adapt to defenses, and chain multi-stage attacks autonomously
  2. The Why โ€” Providing infinite offensive feedback to build impenetrable defense systems
  3. 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:

Decepticon emulates actual adversary behavior โ€” not just running CVE checks against a list of ports. It reads an operations plan, adapts to what it finds, and pursues objectives through whatever path opens up. The goal is to test your defenses the way they'll actually be tested. Real offensive security tools are interactive โ€” sliver-client, msfconsole, evil-winrm, sqlmap, impacket-psexec. While most AI agents fire one-shot commands via subprocess.run() and call it a day, Decepticon runs every command inside persistent tmux sessions with automatic prompt detection. The agent actually operates the tools. Every command runs inside a hardened Kali Linux sandbox on a dedicated operational network, fully isolated from the management infrastructure. No cross-network access. LangGraph reaches the sandbox exclusively via Docker socket โ€” not the network. Security work belongs in the terminal. Decepticon's interface is a real-time streaming CLI built with Ink. No browser tabs, no dashboards, no context switching. You see what the agent sees as it happens.

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:

Build a world-class hacking agent that executes realistic Red Team operations. **We are here.** Deploy the agent to generate continuous, diverse attack scenarios โ€” an endless stream of real-world threat simulation. Channel that feedback into Blue Team capabilities โ€” detection rules, response playbooks, hardening strategies. The defense evolves because the offense never stops.

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.

Learn how Decepticon's collective intelligence model turns this vision into a community-driven reality.

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.

The most dangerous vulnerabilities in production systems are almost never in a CVE database. They are **logical flaws**โ€”unique to the target's business logic, architecture, and the assumptions humans made when building it.

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.

Fuzzing, scanning, payload generationโ€”proven tools that excel at structured, repetitive tasks within defined parameters. LLM-powered reasoning that understands context, adapts strategy, and orchestrates multi-stage operations dynamically.

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":

  1. Infinite Feedback Loop: The agent generates an endless stream of diverse, context-aware attack scenariosโ€”never repeating the same playbook.
  2. 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.
  3. 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.
Think of it like a self-driving car: it handles the driving, but the human can take the wheel at any moment. The human doesn't need to steer every turn, but they are always in control.

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?

Discover how Decepticon's collective intelligence model goes beyond traditional open sourceโ€”and why it matters for the entire security ecosystem.

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.

Living document. The shipped architecture below is current at the time of writing. The "What's Next" section describes ongoing direction, not commitments.

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.

`decepticon` (main red-team coordinator), `vulnresearch` (5-stage vulnerability pipeline), `soundwave` (standalone engagement planner โ€” generates RoE, ConOps, OPPLAN). Recon, Exploit, Post-Exploit, AD Operator, Cloud Hunter, Contract Auditor, Reverser, Analyst, plus extended operators (phisher, mobile, wireless, IoT, ICS, forensicator, supply-chain, OSINT) for niche domains. Scanner โ†’ Detector โ†’ Verifier โ†’ Patcher โ†’ Exploiter. The Patcher writes a fix; the Exploiter then tries to break it. State passes between stages through the knowledge graph, not through context. The standard bundle ships in OSS; extra capabilities (vulnresearch, SaaS, third-party plugins) attach via entry points without forking the core.

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-net Docker 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.
mermaid
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
    end

Knowledge 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:

`blue_cell` (defense agent) is in OSS today. The next horizon is the full attack โ†’ defend โ†’ verify loop: red findings drive blue patches, blue patches re-run the red path, and the delta is published as a vaccine signature. Engagement-scoped graphs are the baseline. The next layer is anonymized cross-engagement signals โ€” "this RCE pattern has been seen in three other engagements" โ€” without violating tenant isolation. Standard + vulnresearch bundles ship today. SDK is published; the next step is a community plugin registry so third-party operators (DFIR teams, bug-bounty automators, mobile specialists) extend Decepticon without forking core. `DECEPTICON_STACK_NAME` already supports multiple stacks on one host. Federation across hosts (one orchestrator, sandboxes in many regions) is the next scaling axis for distributed engagements.

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.

Code is public. Fork it, use it locally, maybe file an issue. The project stays a **tool**. Code, knowledge, ideas, and real-world experience flow in all directions. The project becomes an **ecosystem**.

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.

Build a world-class Autonomous Hacking Agent that simulates realistic Red Team operations. **โ† We are here.** Deploy the agent to generate continuous, diverse attack scenarios against target infrastructureโ€”creating an endless stream of offensive feedback. Channel that feedback into Blue Team capabilities: detection rules, response playbooks, hardening strategies. The defense evolves because the offense never stops.

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.

Decepticon is a powerful tool that can be misused. We take this seriously. The project includes Rules of Engagement (RoE) enforcement that defines operational boundariesโ€”but more importantly, we rely on the community's commitment to ethical use and the principle that **offense exists to serve defense**.

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์„ ํ†ตํ•ด ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค.

์กฐ์œจ ๊ณ„์ธต

์ค‘์•™ ๋ ˆ๋“œํŒ€ ์กฐ์œจ์ž. OPPLAN์„ ์†Œ์œ ํ•˜๊ณ , ๋ชฉํ‘œ๋ฅผ ์‹œํ€€์‹ฑํ•˜๊ณ , ์˜์กด์„ฑ์„ ํ•ด๊ฒฐํ•˜๋ฉฐ, SubAgent ๋ฏธ๋“ค์›จ์–ด๋ฅผ ํ†ตํ•ด ์ „๋ฌธ๊ฐ€(`recon`, `exploit`, `postexploit`, `analyst`, `reverser`, `contract_auditor`, `cloud_hunter`, `ad_operator`)๋ฅผ ๋””์ŠคํŒจ์น˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋ชจ๋ธ ํ‹ฐ์–ด์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ทจ์•ฝ์  ์—ฐ๊ตฌ ์กฐ์œจ์ž โ€” 5๋‹จ๊ณ„ ํŒŒ์ดํ”„๋ผ์ธ(`scanner โ†’ detector โ†’ verifier โ†’ patcher โ†’ exploiter`)์„ ์‹คํ–‰ํ•˜๋ฉฐ, ๋‹จ๊ณ„ ๊ฐ„ ์ƒํƒœ๋Š” ์˜ค์ง ์ง€์‹ ๊ทธ๋ž˜ํ”„๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ๊ณ„ํš์ž. ๋…๋ฆฝ ๊ทธ๋ž˜ํ”„(Decepticon์˜ ์„œ๋ธŒ ์—์ด์ „ํŠธ๊ฐ€ ์•„๋‹˜). ์šด์˜์ž๋ฅผ ์ธํ„ฐ๋ทฐํ•˜๊ณ  ์™„์ „ํ•œ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ํŒจํ‚ค์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. โ€” RoE, ConOps, ๋””์ปจํ”Œ๋ฆญ์…˜ ํ”Œ๋žœ, OPPLAN, ์œ„ํ˜‘ ํ”„๋กœํ•„. bash ์ ‘๊ทผ์ด ์—†์œผ๋ฉฐ, ๋ฌธ์„œ๋งŒ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ •์ฐฐ ๋‹จ๊ณ„

๋Šฅ๋™ ๋ฐ ์ˆ˜๋™ ์ •์ฐฐ โ€” ํฌํŠธ ์Šค์บ”, ์„œ๋น„์Šค ์—ด๊ฑฐ, OSINT, ๋ถ€๋„๋ฉ”์ธ ๋ฐœ๊ฒฌ, ์ธ์ฆ์„œ-ํˆฌ๋ช…์„ฑ ์ฑ„๊ตด. Kali ์ƒŒ๋“œ๋ฐ•์Šค ๋‚ด์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ทจ์•ฝ์  ์—ฐ๊ตฌ ํŒŒ์ดํ”„๋ผ์ธ

Vulnresearch ์กฐ์œจ์ž์˜ ์„œ๋ธŒ ์—์ด์ „ํŠธ๋“ค. ๋‹จ๊ณ„ ๊ฐ„ ์ƒํƒœ๋Š” ์ง€์‹ ๊ทธ๋ž˜ํ”„๋ฅผ ํ†ตํ•ด ํ๋ฅด๋ฉฐ, ๊ฐ ๋‹จ๊ณ„๋Š” ์ƒˆ ์ปจํ…์ŠคํŠธ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

Stage 1 โ€” ๊ด‘๋ฒ”์œ„ ์Šค์บ๋„ˆ. ๋Œ€๊ทœ๋ชจ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ˆœํšŒํ•˜๋ฉฐ ํœด๋ฆฌ์Šคํ‹ฑ ์˜์‹ฌ๋„ ์ ์ˆ˜์™€ ํ•จ๊ป˜ CANDIDATE ๋…ธ๋“œ๋ฅผ ๋ฐฉ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ €๋ ดํ•˜๊ณ  ๋น ๋ฅด๋ฉฐ, ์ทจ์•ฝ์  ์ถ”๋ก ์€ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Stage 2 โ€” ์ทจ์•ฝ์  ํƒ์ง€๊ธฐ. ๊ฐ CANDIDATE ์ฃผ๋ณ€์˜ ์†Œ์Šค๋ฅผ ์ฝ๊ณ  ์‹ค์ œ ๋ฒ„๊ทธ๋ฅผ VULNERABILITY + HYPOTHESIS ๋…ธ๋“œ๋กœ ์Šน๊ฒฉํ•˜๊ฑฐ๋‚˜, false positive๋กœ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ์ฝ๊ธฐ ์ „์šฉ(bash ์—†์Œ). Stage 3 โ€” ์ด์ค‘ ๋ฐฉ๋ฒ• ๊ฒ€์ฆ ๊ฒŒ์ดํŠธ. ํ›„์† ์ž‘์—…์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ตœ์†Œ ๋‘ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ์ฆ๊ฑฐ ์ฑ„๋„์„ ํ†ตํ•ด ํ›„๋ณด ๋ฐœ๊ฒฌ์‚ฌํ•ญ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Stage 4 โ€” ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ PoC ์ €์ž. ๊ฒ€์ฆ๋œ ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ์ž‘๋™ํ•˜๋Š” PoC ์ต์Šคํ”Œ๋กœ์ž‡์„ ์ƒ์„ฑํ•˜๋ฉฐ, ์‹ ๋ขฐ์„ฑ ์ฃผ์„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. Stage 5 โ€” ํŒจ์น˜ ์ƒ์„ฑ์ž. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊นจ์ง€ ์•Š์œผ๋ฉด์„œ ์ทจ์•ฝ์ ์„ ํ•ด๊ฒฐํ•˜๋Š” ์ฝ”๋“œ ๋˜๋Š” ์„ค์ • ๋ณ€๊ฒฝ์„ ์ƒ์„ฑํ•˜๋ฉฐ, ํšŒ๊ท€ ํ…Œ์ŠคํŠธ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์ต์Šคํ”Œ๋กœ์ž‡ & ํฌ์ŠคํŠธ ์ต์Šคํ”Œ๋กœ์ž‡

์ดˆ๊ธฐ ์ ‘๊ทผ ๋ฐ ์ต์Šคํ”Œ๋กœ์ž‡ ์ „์ˆ . ์›น/AD ๊ณต๊ฒฉ(SQLi, SSTI, Kerberoasting, ADCS ๋‚จ์šฉ, ์ž๊ฒฉ์ฆ๋ช… ๊ณต๊ฒฉ). ๊ถŒํ•œ ์ƒ์Šน, ํšก์  ์ด๋™, ์ž๊ฒฉ์ฆ๋ช… ์ˆ˜์ง‘, ์ง€์†์„ฑ โ€” ์ดˆ๊ธฐ ์ ‘๊ทผ์ด ํ™•๋ฆฝ๋œ ํ›„ ์ข…์ข… Sliver C2 ์„ธ์…˜์„ ํ†ตํ•ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ์ŠคํŽ˜์…œ๋ฆฌ์ŠคํŠธ

Active Directory ์ „๋ฌธ๊ฐ€. Kerberoasting, AS-REP roasting, ADCS ESC1โ€“ESC15, DCSync, ํ‹ฐ์ผ“ ์œ„์กฐ, ACL ๋‚จ์šฉ, GPO ์กฐ์ž‘, BloodHound ๊ฒฝ๋กœ ๋ถ„์„. ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ์ „๋ฌธ๊ฐ€. AWS/Azure/GCP์—์„œ IAM ๊ถŒํ•œ ์ƒ์Šน, S3/Azure ์Šคํ† ๋ฆฌ์ง€ ๋…ธ์ถœ, Kubernetes RBAC ํƒˆ์ถœ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์„œ๋น„์Šค ๋‚จ์šฉ. Solidity / EVM ์Šค๋งˆํŠธ ๊ณ„์•ฝ ๊ฐ์‚ฌ์ž. ์žฌ์ง„์ž…, ์˜ค๋ผํด ์กฐ์ž‘, ํ”Œ๋ž˜์‹œ๋ก  ๋‚จ์šฉ, ์ ‘๊ทผ ์ œ์–ด ๊ฒฐํ•จ; Slither ์ •์  ๋ถ„์„ + Foundry PoC ํ•˜๋„ค์Šค. ๋ฐ”์ด๋„ˆ๋ฆฌ ์—ญ๊ณตํ•™ ์ „๋ฌธ๊ฐ€. ELF/PE/Mach-O ๋ถ„๋ฅ˜, ํŒฉ์ปค ํƒ์ง€, ๋ฌธ์ž์—ด/๊ธฐํ˜ธ ์ถ”์ถœ, ROP ๊ฐ€์ ฏ ์ธ๋ฒคํ† ๋ฆฌ, Ghidra/radare2 ์Šคํฌ๋ฆฝํŒ….

๋ถ„์„ & ๋ฆฌํฌํŒ…

์ทจ์•ฝ์  ์—ฐ๊ตฌ ๋ฐ ๋ณด๊ณ  ์ „๋ฌธ๊ฐ€. ๋ฐœ๊ฒฌ์‚ฌํ•ญ์„ ๊ต์ฐจ ์ƒ๊ด€์‹œํ‚ค๊ณ , ์ง€์‹ ๊ทธ๋ž˜ํ”„๋ฅผ ์ฟผ๋ฆฌํ•˜๊ณ , ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ๋‚ด๋Ÿฌํ‹ฐ๋ธŒ๋ฅผ ์ดˆ์•ˆ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค โ€” ์†Œ์Šค ์ฝ”๋“œ ๋ฆฌ๋ทฐ, ์ •์  ๋ถ„์„(semgrep/bandit/gitleaks), ์˜์กด์„ฑ CVE ์Šค์œ•, ๋ฉ€ํ‹ฐ-ํ™‰ ์ต์Šคํ”Œ๋กœ์ž‡ ์ฒด์ธ ๊ตฌ์„ฑ.

๋ชฉํ‘œ๋ณ„ ํด๋ฆฐ ์ปจํ…์ŠคํŠธ

๋ชจ๋“  ์—์ด์ „ํŠธ๋Š” ๋ชจ๋“  ๋ชฉํ‘œ์— ๋Œ€ํ•ด ์ƒˆ๋กœ์šด ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋กœ ์Šคํฐ๋ฉ๋‹ˆ๋‹ค:

text
๋ชฉํ‘œ 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 ์„ธ์…˜์„ ํ†ตํ•ด ์˜คํŽœ์‹œ๋ธŒ ๋„๊ตฌ์™€ ์ƒํ˜ธ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค:

text
์—์ด์ „ํŠธ โ†’ Docker ์†Œ์ผ“ โ†’ Kali ์ƒŒ๋“œ๋ฐ•์Šค โ†’ tmux ์„ธ์…˜ โ†’ ๋„๊ตฌ (sliver-client, msfconsole, evil-winrm, ...)
                                              โ†“
                                        ํ”„๋กฌํ”„ํŠธ ํƒ์ง€
                                              โ†“
                                        ํ›„์† ๋ช…๋ น

๋„๊ตฌ๊ฐ€ ๋Œ€ํ™”ํ˜• ํ”„๋กฌํ”„ํŠธ(sliver >, msf6 >, PS C:\>)๋ฅผ ์ œ์‹œํ•  ๋•Œ, ์—์ด์ „ํŠธ๋Š”:

  1. ํ”„๋กฌํ”„ํŠธ ํŒจํ„ด์„ ํƒ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋„๊ตฌ์˜ ์ถœ๋ ฅ์„ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ ์ ˆํ•œ ํ›„์† ๋ช…๋ น์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  4. ํ•„์š”์‹œ ์ œ์–ด ์‹ ํ˜ธ(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 ์Šฌ๋ผ์ด์Šค๋ฅผ ํ†ตํ•ด ๋™์ผํ•œ ๊ฐ€๋“œ๋ ˆ์ผ์„ ์ƒ์†๋ฐ›์Šต๋‹ˆ๋‹ค.

text
โ”Œโ”€ 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์ด ๋ชจ๋“  ์„œ๋ธŒ ์—์ด์ „ํŠธ๋ฅผ ๊ฐ์‹ธ๋ฏ€๋กœ ํ† ํฐ์ด ๋‹ค์Œ์— ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค:

  1. Python CLI์˜ UIRenderer (Ink ํ„ฐ๋ฏธ๋„ UI).
  2. LangGraph HTTP ์ปค์Šคํ…€ ์ด๋ฒคํŠธ ์ฑ„๋„(์›น ๋Œ€์‹œ๋ณด๋“œ).

์ด๊ฒƒ์ด ์šด์˜์ž๊ฐ€ Recon์ด ํฌํŠธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์—ด๊ฑฐํ•˜๋Š” ๊ฒƒ์„ ๋ณด๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค, ์‚ฌ์‹ค ์ดํ›„๊ฐ€ ์•„๋‹ˆ๋ผ.

์ด ๋ฏธ๋“ค์›จ์–ด ์Šคํƒ์ด ๊ฐ์‹ธ๋Š” 16๊ฐœ์˜ ์ „๋ฌธ ์—์ด์ „ํŠธ. OPPLAN ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ๋…ธ์ถœํ•˜๊ณ  ์ฃผ์ž…ํ•˜๋Š” ๊ตฌ์กฐํ™”๋œ ๊ณ„ํš.

File: ko/concepts/mitre-attack.mdx

[Binary file]


File: ko/concepts/red-team-lifecycle.mdx


title: "๋ ˆ๋“œํŒ€ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ๋ผ์ดํ”„์‚ฌ์ดํด"

๋ ˆ๋“œํŒ€ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๋Š” ์ทจ์•ฝ์  ์Šค์บ”์— ๋ช‡ ๊ฐ€์ง€ ๋‹จ๊ณ„๋ฅผ ๋”ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋Š” ์‹ค์ œ ์œ„ํ˜‘ ํ”„๋กœํŒŒ์ผ์— ๋Œ€ํ•œ ์ฒด๊ณ„์ ์ธ ์บ ํŽ˜์ธ์œผ๋กœ, ์„ธ ๊ฐ€์ง€ ๋‹จ๊ณ„๋กœ ์‹คํ–‰๋˜๋ฉฐ, ๊ณต์‹ ๋ฌธ์„œ(RoE, ConOps, OPPLAN)์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๊ณ , 8๊ฐ€์ง€ ์ •๊ทœ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ๋ชฉํ‘œ์— ๋”ฐ๋ผ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

์„ธ ๊ฐ€์ง€ ๋‹จ๊ณ„

๋ธ”๋ฃจํŒ€์—๊ฒŒ ๋“คํ‚ค์ง€ ์•Š์œผ๋ฉด์„œ ์ดˆ๊ธฐ ์ ‘๊ทผ์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค. ํ’‹ํ”„๋ฆฐํŠธ๋Š” ๋น„์šฉ์ž…๋‹ˆ๋‹ค โ€” ์ž‘์„์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค. Decepticon์€ OPPLAN์˜ `INITIAL_ACCESS` ๋ชฉํ‘œ์— ์˜ํ•ด ์ฃผ๋„๋˜๋Š” **Recon**๊ณผ **Exploit** ์—์ด์ „ํŠธ๋ฅผ ํ†ตํ•ด Get In์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ง€์†์„ฑ(Persistence)๊ณผ ๋ช…๋ น ๋ฐ ์ œ์–ด(Command-and-Control). ๋ชฉํ‘œ๋Š” ์ƒ์กด์„ฑ์ž…๋‹ˆ๋‹ค โ€” ์žฌ๋ถ€ํŒ…, ๋ฐฉ์–ด์ž ๋Œ€์‘, EDR ์Šค์œ„ํ”„๋ฅผ ๊ฒฌ๋””๋Š” ๋น„์ฝ˜์ž…๋‹ˆ๋‹ค. Decepticon์€ ์—ฌ๊ธฐ์„œ Sliver C2 ์„ธ์…˜์„ ์„ค์ •ํ•˜๊ณ  ๊ณ„์ธตํ™”๋œ ์ฝœ๋ฐฑ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•ฉ๋‹ˆ๋‹ค โ€” ๊ถŒํ•œ ์ƒ์Šน, ์ธก๋ฉด ์ด๋™, ํฌ๋ฆฌ๋ด์…œ ์ ‘๊ทผ, ๋ฐ์ดํ„ฐ ๋ฐœ๊ฒฌ, ์œ ์ถœ, ์šด์˜ ์˜ํ–ฅ. Decepticon์˜ **Post-Exploit** ์—์ด์ „ํŠธ๋Š” MITRE ATT&CK ID๋กœ ํƒœ๊ทธ๋œ Act ๋ชฉํ‘œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

C2 ๊ณ„์ธตํ™”

Stay In ๋‹จ๊ณ„์—์„œ ๋ช…๋ น ๋ฐ ์ œ์–ด๋Š” ๊ณ„์ธต์œผ๋กœ ๊ตฌ์กฐํ™”๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ณ„์ธต์€ ์‘๋‹ต์„ฑ๊ณผ ํƒ์ง€ ์œ„ํ—˜ ์‚ฌ์ด์—์„œ ๊ท ํ˜•์„ ๋งž์ถฅ๋‹ˆ๋‹ค.

๊ณ„์ธต ์ฝœ๋ฐฑ ์ฃผ๊ธฐ OPSEC ํ”„๋กœํŒŒ์ผ ์‚ฌ์šฉ ์‚ฌ๋ก€
INTERACTIVE ์ดˆ ๋†’์€ ๋…ธ์ถœ ํ•ซ ๋ชฉํ‘œ ์ค‘ ์šด์˜์ž ์‹ค์‹œ๊ฐ„ ์ œ์–ด
SHORT_HAUL 1~24์‹œ๊ฐ„ ๋ณดํ†ต ์ง„ํ–‰ ์ค‘์ธ ๋ชฉํ‘œ๋ฅผ ์œ„ํ•œ ์‹ ๋ขฐ์„ฑ ๋†’์€ ์šด์˜ ์ ‘๊ทผ
LONG_HAUL 24์‹œ๊ฐ„ ์ด์ƒ ๋‚ฎ์€ ๋…ธ์ถœ ๋ฐฉ์–ด์ž ์‚ฌ๋ƒฅ์„ ๊ฒฌ๋””๋Š” ์ง€์†์  ํด๋ฐฑ ์ฑ„๋„

Decepticon์˜ OPPLAN ๋ชฉํ‘œ๋Š” ์—์ด์ „ํŠธ๊ฐ€ ๊ฐ ์ž‘์—…์— ์–ด๋–ค ์ฑ„๋„์„ ์‚ฌ์šฉํ• ์ง€ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์ ์ ˆํ•œ C2Tier๋กœ ํƒœ๊ทธ๋ฉ๋‹ˆ๋‹ค.

8๊ฐ€์ง€ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ๋ชฉํ‘œ

๋ ˆ๋“œํŒ€ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๋Š” ์ •๊ทœ ๋ชฉํ‘œ์— ๋”ฐ๋ผ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค โ€” ํŒ€์ด ๋ฌด์—‡์„ ๋‹ฌ์„ฑํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๊ฐ€? ๊ทธ๋ฆฌ๊ณ  ๋ธ”๋ฃจํŒ€์ด ์ด๋ฅผ ํƒ์ง€ํ–ˆ๋Š”๊ฐ€? Decepticon์€ ์—…๊ณ„ ์ „๋ฐ˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋™์ผํ•œ 8๊ฐ€์ง€ ๋ฒ”์ฃผ๋ฅผ ์ฑ„ํƒํ•ฉ๋‹ˆ๋‹ค:

๋ฌผ๋ฆฌ ๋ณด์•ˆ ๋ฐ ๋ฐฐ์ง€ ์ œ์–ด ํ‰๊ฐ€ โ€” ๋„์–ด ์ ‘๊ทผ, ๊ผฌ๋ฆฌ๋ฌผ๊ธฐ(Tailgating), RFID ํด๋กœ๋‹ ๋ช…๋ช…๋œ ํ•ต์‹ฌ ์‹œ์Šคํ…œ(SWIFT, ERP, ํ”„๋กœ๋•์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์ฝ”๋“œ ์„œ๋ช… ์ธํ”„๋ผ) ๋„๋‹ฌ ์„ธ๊ทธ๋จผํŠธ ๊ฐ„ ํ”ผ๋ฒ— โ€” DMZ์—์„œ ๊ธฐ์—…๋ง์œผ๋กœ, ๊ธฐ์—…๋ง์—์„œ OT๋กœ, ํด๋ผ์šฐ๋“œ์—์„œ ์˜จํ”„๋ ˆ๋ฏธ์Šค๋กœ ๋‚ฎ์€ ๊ถŒํ•œ ์‚ฌ์šฉ์ž์—์„œ ๋กœ์ปฌ ๊ด€๋ฆฌ์ž, ๋„๋ฉ”์ธ ๊ด€๋ฆฌ์ž, ๋˜๋Š” ํด๋ผ์šฐ๋“œ ํ…Œ๋„ŒํŠธ ๋ฃจํŠธ๋กœ ์Šน๊ฒฉ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ ์œ„์น˜ ํŒŒ์•… โ€” ์‹œํฌ๋ฆฟ, ์†Œ์Šค ์ฝ”๋“œ, ๊ณ ๊ฐ ๊ธฐ๋ก, IP DLP๋ฅผ ํšŒํ”ผํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ ์ด๋™. ๋ฐ”์ดํŠธ๋งŒํผ ๊ฒฝ๋กœ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. SIEM, EDR, NDR ๋˜๋Š” ์ธ๊ฐ„ ๋ถ„์„๊ฐ€ ํ‹ฐ์ผ“์„ ๋ฐœ๋™ํ•˜์ง€ ์•Š๊ณ  ์šด์˜ ๊ฒฐ๊ณผ๋ฅผ ์‹œ์—ฐ โ€” ๋น„์ฆˆ๋‹ˆ์Šค ์ค‘๋‹จ, ๋ฌด๊ฒฐ์„ฑ, ๊ฐ€์šฉ์„ฑ

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๊ฐ€์ง€ ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ ์ด์— ๊ตฌ์†๋ฉ๋‹ˆ๋‹ค:

๋ฒ”์œ„, ์ œํ•œ์‚ฌํ•ญ, ํ†ต์‹  ๊ณ„ํš, Deconfliction. ์šด์˜ ๊ถŒํ•œ ์œ„ํ˜‘ ํ”„๋กœํŒŒ์ผ, ๋ฐฉ๋ฒ•๋ก , ์„ฑ๊ณต ๊ธฐ์ค€, ์ธํ”„๋ผ ๊ณ„ํš ๋ ˆ๋“œํŒ€ ํ™œ๋™์ด ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ์ค‘ ์‹ค์ œ ์‚ฌ๊ฑด๊ณผ ๋ถ„๋ฆฌ๋˜๋Š” ๋ฐฉ์‹ ๋ชฉํ‘œ ๋ชฉ๋ก โ€” ๊ฐ๊ฐ MITRE ATT&CK ID, ํ‚ฌ ์ฒด์ธ ๋‹จ๊ณ„, ์˜์กด์„ฑ, ์ˆ˜๋ฝ ๊ธฐ์ค€ ํฌํ•จ ์ด 3๋‹จ๊ณ„ ํ”„๋ ˆ์ด๋ฐ์€ [redteam.guide ๋ฐฉ๋ฒ•๋ก ](https://redteam.guide/docs/Concepts/red-teaming/)๊ณผ Joe Vest์™€ James Tubberville์˜ ์ €์„œ *Red Team Development and Operations*์—์„œ ๊ฐœ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Decepticon์˜ ๊ธฐ์—ฌ๋Š” ๊ฐ ๋‹จ๊ณ„๋ฅผ ์—์ด์ „ํŠธ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

File: ko/concepts/roles-and-cells.mdx


title: "์—ญํ•  & ์…€"

๋ ˆ๋“œํŒ€ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๋Š” ๋‹จ์ˆœํ•œ "๊ณต๊ฒฉ์ž vs ๋ฐฉ์–ด์ž"๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋Š” ๋ช…๋ช…๋œ ์—ญํ• ์„ ๊ฐ€์ง„ ๊ตฌ์กฐํ™”๋œ ์—ฐ์Šต์œผ๋กœ, ๊ฐ๊ฐ ๊ณ ์œ ํ•œ ์ฑ…์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค. Decepticon์€ ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ๋Œ€์ฒดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค โ€” Red Cell ๋‚ด์—์„œ ํฌ์Šค ๋ฉ€ํ‹ฐํ”Œ๋ผ์ด์–ด๋กœ ์ž‘๋™ํ•˜๋ฉฐ ๋‹ค๋ฅธ ์—ญํ• ๊ณผ ๋ช…์‹œ์  ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

4๊ฐ€์ง€ ์…€

๊ณต๊ฒฉ ๊ตฌ์„ฑ ์š”์†Œ. ์œ„ํ˜‘ ํ”„๋กœํŒŒ์ผ์˜ ์ „๋žต์  ๋ฐ ์ „์ˆ ์  ๋Œ€์‘์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค. RoE ๋‚ด์—์„œ ์šด์˜ํ•ฉ๋‹ˆ๋‹ค. **Decepticon์ด ์—ฌ๊ธฐ์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.** ๋Œ€์ƒ์„ ๋ฐฉ์–ดํ•˜๋Š” ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ โ€” SOC ๋ถ„์„๊ฐ€, IR ๋Œ€์‘์ž, ๋‚ด๋ถ€ ์ง์›, ๊ด€๋ฆฌ์ธต. ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๊ฐ€ ์ธก์ •ํ•˜๋Š” ํšจ๊ณผ์˜ ๋Œ€์ƒ ์‹ฌํŒ. RoE ์ค€์ˆ˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ์‹ค์ œ ์‚ฌ๊ฑด๊ณผ ์—ฐ์Šต ํ™œ๋™์„ ๋ถ„๋ฆฌํ•˜๋ฉฐ, ๊ฒฐ๊ณผ๋ฅผ ํŒ์ •ํ•ฉ๋‹ˆ๋‹ค. Red์™€ Blue ๋ชจ๋‘ ์‹ ๋ขฐํ•ฉ๋‹ˆ๋‹ค. ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ํ™œ๋™์— ๋Œ€ํ•œ ์ƒ์„ธ ์ง€์‹์„ ๊ฐ€์ง„ ํŠน๊ถŒ ์ธ์‚ฌ์ž. ๋Œ์ดํ‚ฌ ์ˆ˜ ์—†๋Š” ์†์ƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ๊ณ ์œ„ํ—˜ ๋‹จ๊ณ„๋ฅผ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค.

์…€์ด ์ž์œจ ์—์ด์ „ํŠธ์— ์ค‘์š”ํ•œ ์ด์œ 

์…€์€ ๊ด€๋ฃŒ์ฃผ์˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค โ€” ๊ณต๊ฒฉ์  ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๊ฐ€ ์‚ฌ๊ฑด์œผ๋กœ ๋ณ€ํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒฝ๊ณ„์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ์—†๋Š” ์ž์œจ ์—์ด์ „ํŠธ๋Š” ๋ฌด๋ชจํ•ฉ๋‹ˆ๋‹ค. 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์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

Decepticon์ด ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋“  ๋ช…๋ น์–ด๋Š” ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ID๋กœ ํƒœ๊ทธ๋ฉ๋‹ˆ๋‹ค. White Cell์€ "Red๊ฐ€ 03:14 UTC์— ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๊ฐ€?"๋ฅผ ์ฟผ๋ฆฌํ•˜๊ณ  ๋ช‡ ์ดˆ ์•ˆ์— ๊ถŒ์œ„ ์žˆ๋Š” ๋‹ต์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CLI๋Š” ์‹คํ–‰ ์ค‘์ธ C2 ์„ธ์…˜์„ ๋ฒ„๋ฆฌ์ง€ ์•Š์œผ๋ฉด์„œ ์ƒˆ๋กœ์šด ๋ชฉํ‘œ ์Šค์ผ€์ค„๋ง์„ ์ค‘๋‹จํ•˜๋Š” ์šฐ์•„ํ•œ ์ผ์‹œ ์ค‘์ง€๋ฅผ ๋…ธ์ถœํ•˜๋ฏ€๋กœ deconfliction ์ฝœ์ด ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๋ฅผ ์†Œ๋ชจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์—์ด์ „ํŠธ ํ–‰๋™, ๋„๊ตฌ ํ˜ธ์ถœ, ๋ฐœ๊ฒฌ์ด ํƒ€์ž„์Šคํƒฌํ”„์™€ ํ•จ๊ป˜ PostgreSQL์— ์ง€์†๋ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ๊ฐ€ deconfliction ๋ ˆ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

์šด์˜์ž-as-White-Cell

์†Œ๊ทœ๋ชจ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ์—์„œ Decepticon์„ ์‹คํ–‰ํ•˜๋Š” ์ธ๊ฐ„์€ ์ข…์ข… ์—ฌ๋Ÿฌ ์…€์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค โ€” ์šด์˜์ž(Red), ์‹ฌํŒ(White), ๊ถŒํ•œ ๋ณด์œ ์ž(Trusted Agent). Decepticon์˜ CLI๋Š” ์ด ํ˜„์‹ค์„ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค:

  • OPPLAN ์Šน์ธ ๊ฒŒ์ดํŠธ๋Š” ์‹คํ–‰์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์šด์˜์ž๊ฐ€ Trusted Agent๋กœ ํ–‰๋™ํ•˜๋„๋ก ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.
  • ์ŠคํŠธ๋ฆฌ๋ฐ ํŠธ๋žœ์Šคํฌ๋ฆฝํŠธ๋Š” White Cell ๊ด€์ฐฐ์ž์™€ ๋™์ผํ•œ ์šด์˜์ž ๊ฐ€์‹œ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ผ์‹œ ์ค‘์ง€/์žฌ๊ฐœ ์ œ์–ด๋Š” ์šด์˜์ž๊ฐ€ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ์ค‘ deconfliction ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋” ํฐ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ์˜ ๊ฒฝ์šฐ, ์šด์˜์ž๋Š” ์ด ์˜๋ฌด๋ฅผ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” Decepticon์„ ํ•œ ๊ฐ€์ง€ ์‹ ์›์œผ๋กœ ์‹คํ–‰(Red Cell)ํ•˜๊ณ  ๋ณ„๋„์˜ White Cell ํ”„๋กœ์„ธ์Šค์— deconfliction ๋กœ๊ทธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์…€ ๋ชจ๋ธ์€ [redteam.guide ์—ญํ•  & ๊ด€๊ณ„](https://redteam.guide/docs/Concepts/role-relationships/) ํŽ˜์ด์ง€์—์„œ ๊ฐœ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Decepticon์€ ๋ชจ๋ธ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค โ€” ๊ทธ ์•ˆ์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. Soundwave๊ฐ€ ์…€์ด ์šด์˜ํ•˜๋Š” RoE์™€ OPPLAN์„ ์–ด๋–ป๊ฒŒ ์ƒ์‚ฐํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์„ธ์š”.

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 ์—”์ง€๋‹ˆ์–ด๋“ , ๋” ๋‚˜์€ ๋ฐฉ์–ด ์ฒด๊ณ„๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๋ถ„์ด๋“  โ€” ์—ฌ๋Ÿฌ๋ถ„์˜ ์ž๋ฆฌ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์—ฌ ๋ฐฉ๋ฒ•

์—์ด์ „ํŠธ ๊ฐœ์„ , ๋„๊ตฌ ํ†ตํ•ฉ, ์ธํ”„๋ผ ๊ฐ•ํ™”, ๋ฒ„๊ทธ ์ˆ˜์ •, ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€. ์Šคํ‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ƒˆ๋กœ์šด ์˜คํŽœ์‹œ๋ธŒ ๊ธฐ๋ฒ• ์ถ”๊ฐ€ โ€” MITRE ATT&CK ID ํƒœ๊ทธ, ์—์ด์ „ํŠธ ์—ญํ• ๋ณ„ ๊ตฌ์„ฑ. ์ด ๋ฌธ์„œ๋ฅผ ๊ฐœ์„ ํ•˜๊ณ , ํŠœํ† ๋ฆฌ์–ผ์„ ์ž‘์„ฑํ•˜๊ณ , ์˜ˆ์ œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ์ƒˆ ์–ธ์–ด๋กœ ๋ฒˆ์—ญํ•˜์„ธ์š”. Discord์—์„œ ์งˆ๋ฌธ์— ๋‹ตํ•˜๊ณ , ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ํŒจํ„ด์„ ๊ณต์œ ํ•˜๊ณ , ๋ฒ„๊ทธ๋ฅผ ๋ณด๊ณ ํ•˜๊ฑฐ๋‚˜, ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋…ผ์˜ํ•˜์„ธ์š”.

๊ธฐ์—ฌ ์›Œํฌํ”Œ๋กœ์šฐ

[Decepticon ์ €์žฅ์†Œ](https://github.com/BitterSecurity/Decepticon)๋ฅผ ์—ฌ๋Ÿฌ๋ถ„์˜ GitHub ๊ณ„์ •์œผ๋กœ ํฌํฌํ•ฉ๋‹ˆ๋‹ค. `main`์—์„œ ์„ค๋ช…์ ์ธ ์ด๋ฆ„์œผ๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค: ```bash git checkout -b feature/add-kerberoasting-skill ``` [๊ฐœ๋ฐœ์ž ์„ค์ •](/ko/contributing/developer-setup)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค: ```bash make test make lint ``` Decepticon์€ [Conventional Commits](https://www.conventionalcommits.org/) ํ˜•์‹์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค: `type(scope): subject`. ์ผ๋ฐ˜์ ์ธ ํƒ€์ž…: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`. ๋ณธ๋ฌธ์—์„œ *๋ฌด์—‡*์ด ์•„๋‹Œ *์™œ*๋ฅผ ์„ค๋ช…ํ•˜์„ธ์š”.
text
```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
```
๋ธŒ๋žœ์น˜๋ฅผ ํ‘ธ์‹œํ•˜๊ณ  `main`์— ๋Œ€ํ•œ PR์„ ์—ฝ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฌด์—‡์ด๊ณ  ์™œ ํ•„์š”ํ•œ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์Šคํ‚ฌ ๊ธฐ์—ฌ

์Šคํ‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ƒˆ๋กœ์šด ์Šคํ‚ฌ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€์žฅ ๊ฐ€์น˜ ์žˆ๋Š” ๊ธฐ์—ฌ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ฐ ์Šคํ‚ฌ์€ ๋‹ค์Œ์„ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  • ํ”„๋ก ํŠธ๋งคํ„ฐ โ€” ์ด๋ฆ„, ์„ค๋ช…, 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์˜ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ์ธ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ์ •์ฐฐ, ์ต์Šคํ”Œ๋กœ์ž‡, ๊ถŒํ•œ ์ƒ์Šน, ์ธก๋ฉด ์ด๋™, ์ง€์†์„ฑ์— ์ด๋ฅด๋Š” ์ „์ฒด ํ‚ฌ ์ฒด์ธ์„ ์ž์œจ์ ์œผ๋กœ ๋ฐ˜๋ณต ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์„ ํ˜•์ ์ธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋Š” ๊ฐ ์—์ด์ „ํŠธ๊ฐ€ ๋ฐœ๊ฒฌํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ ์‘ํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ๋ฃจํ”„

์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ OPPLAN์—์„œ ๋‹ค์Œ ๋Œ€๊ธฐ ์ค‘์ธ ๋ชฉํ‘œ๋ฅผ ์„ ํƒํ•˜๊ณ , ์˜์กด์„ฑ์„ ํ•ด๊ฒฐํ•˜๋ฉฐ ํ‚ฌ ์ฒด์ธ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ชฉํ‘œ ์„ธ๋ถ€ ์ •๋ณด, RoE ๊ฐ€๋“œ๋ ˆ์ผ, ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์Šคํ‚ฌ, ์ด์ „์— ์™„๋ฃŒ๋œ ๋ชฉํ‘œ์˜ ๊ด€๋ จ ๋ฐœ๊ฒฌ ์‚ฌํ•ญ์œผ๋กœ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. **ํด๋ฆฐ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ**๋ฅผ ๊ฐ€์ง„ ์ƒˆ ์—์ด์ „ํŠธ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ชฉํ‘œ์—์„œ ์ถ•์ ๋œ ๋…ธ์ด์ฆˆ ์—†์ด โ€” ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ์ถ”๋ก ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ Kali ์ƒŒ๋“œ๋ฐ•์Šค ๋‚ด์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ์™€ ์Šคํ‚ฌ์„ ํ™œ์šฉํ•ด ๋ชฉํ‘œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ช…๋ น์€ ๋Œ€ํ™”ํ˜• ํ”„๋กฌํ”„ํŠธ ๊ฐ์ง€ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ์˜์†์  tmux ์„ธ์…˜ ๋‚ด์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ์—์ด์ „ํŠธ์˜ `PASSED` / `BLOCKED` ์‹œ๊ทธ๋„์„ ํŒŒ์‹ฑํ•˜๊ณ , ๋ชฉํ‘œ ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ฉฐ, ๋ฐœ๊ฒฌ ์‚ฌํ•ญ์„ ๋””์Šคํฌ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ชฉํ‘œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์™„๋ฃŒ๋œ ๋ชฉํ‘œ์˜ ๋ฐœ๊ฒฌ ์‚ฌํ•ญ์ด ํ›„์† ์—์ด์ „ํŠธ์— ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋‹ค๋‹จ๊ณ„ ๊ณต๊ฒฉ ์ฒด์ธ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๋ชฉํ‘œ๋ณ„ ํด๋ฆฐ ์ปจํ…์ŠคํŠธ

์ด๊ฒƒ์€ ํ•ต์‹ฌ์ ์ธ ์„ค๊ณ„ ๊ฒฐ์ •์ž…๋‹ˆ๋‹ค. ๊ฐ ์—์ด์ „ํŠธ๋Š” ๋ชฉํ‘œ๋งˆ๋‹ค ํด๋ฆฐ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋กœ ์Šคํฐ๋ฉ๋‹ˆ๋‹ค โ€” ๊ธด ์ธ๊ฒŒ์ด์ง€๋จผํŠธ์— ๊ฑธ์นœ ์ปจํ…์ŠคํŠธ ์—ดํ™”(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๋ถ„๊ฐ„ ํ”„๋กฌํ”„ํŠธ์—์„œ ๋Œ€๊ธฐํ•˜๋Š” ๊ฒƒ์€ ์ปดํ“จํŠธ์™€ ํ„ด์˜ ๋‚ญ๋น„์ž…๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” ๋Œ€์‹  ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋‹ค๋ฅธ ์ž‘์—…์œผ๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค:

text
bash(
  command="nmap -p- -A target.lan -oN scan.txt",
  run_in_background=True,
  session="scan-1",
)
โ†’ { "status": "started", "session": "scan-1" }

์Šค์บ”์ด ๋„๋Š” ๋™์•ˆ ์—์ด์ „ํŠธ๋Š” ๋‹ค๋ฅธ ํ‘œ๋ฉด์„ ์ •์ฐฐํ•˜๊ณ , ๋‹ค์Œ ๋ชฉํ‘œ๋ฅผ ๊ณ„ํšํ•˜๊ณ , ์ง€์‹ ๊ทธ๋ž˜ํ”„๋ฅผ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์Šค์บ”์ด ๋๋‚˜๋ฉด SandboxNotificationMiddleware๊ฐ€ ์ถœ๋ ฅ์„ ์ž๋™์œผ๋กœ ์บก์ฒ˜ํ•ด ๋‹ค์Œ ์ถ”๋ก  ํ„ด์— ์ฃผ์ž…ํ•ฉ๋‹ˆ๋‹ค:

text
ํ„ด 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์— ์ •์˜๋œ ๋ฒ”์œ„, ์‹œ๊ฐ„, ๋˜๋Š” ๊ธฐ๋ฒ• ๊ฒฝ๊ณ„๋ฅผ ์œ„๋ฐ˜ํ•  ๊ฒฝ์šฐ, ์ž๋™์œผ๋กœ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

ATT&CK ๋งคํ•‘๋œ ์—ญ๋Ÿ‰์œผ๋กœ ์—์ด์ „ํŠธ๋ฅผ ๋ฌด์žฅ์‹œํ‚ค๋Š” ํ”„๋กœ๊ทธ๋ ˆ์‹œ๋ธŒ ์Šคํ‚ฌ ์‹œ์Šคํ…œ์„ ์•Œ์•„๋ณด์„ธ์š”.

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 ํ”„๋กœํŒŒ์ผ์„ ํ†ตํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค:

bash
COMPOSE_PROFILES=c2-sliver decepticon

์ด ๋ช…๋ น์€ Kali ์ƒŒ๋“œ๋ฐ•์Šค ๋ฐ ํƒ€๊ฒŸ ์ธํ”„๋ผ์™€ ํ•จ๊ป˜ ์ž‘์ „ ๋„คํŠธ์›Œํฌ(sandbox-net)์— Sliver ํŒ€ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜

text
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 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 ๋“ฑ)๋ฅผ ๋‚˜์ค‘์— ํ”Œ๋Ÿฌ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์ง€๋งŒ, ๊ทธ๋“ค์€ ์•„์ง ์ด์šฉ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค:

bash
# Sliver C2 โ€” ์œ ์ผํ•˜๊ฒŒ ์ง€์›๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ (๊ธฐ๋ณธ๊ฐ’)
COMPOSE_PROFILES=c2-sliver

# ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค๋ฅผ ์œ„ํ•œ ๊ณ„ํš (์•„์ง ์ด์šฉ ๋ถˆ๊ฐ€๋Šฅ):
# COMPOSE_PROFILES=c2-havoc
# COMPOSE_PROFILES=c2-mythic
C2 ํŠธ๋ž˜ํ”ฝ์„ ๊ด€๋ฆฌ ์˜์—ญ๊ณผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒฉ๋ฆฌ๋œ ๋„คํŠธ์›Œํฌ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์•Œ์•„๋ณด์„ธ์š”.

File: ko/features/dynamic-infrastructure.mdx

[Binary file]


File: ko/features/engagement-planning.mdx


title: "์ธ๊ฒŒ์ด์ง€๋จผํŠธ ๊ณ„ํš (Engagement Planning)"

๊ฐœ์š”

๋ชจ๋“  ์ „๋ฌธ์ ์ธ ๋ ˆ๋“œํŒ€ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๋Š” ์ต์Šคํ”Œ๋กœ์ž‡์ด ์•„๋‹Œ ๋ฌธ์„œํ™”์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. Decepticon์€ Soundwave ์—์ด์ „ํŠธ๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค. Soundwave๋Š” ์˜คํผ๋ ˆ์ดํ„ฐ๋ฅผ ์ธํ„ฐ๋ทฐํ•˜๊ณ , ์–ด๋– ํ•œ ๊ณต๊ฒฉ ํ–‰์œ„๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์™„์ „ํ•œ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ํŒจํ‚ค์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ ์ ˆํ•œ ๋ฌธ์„œํ™” ์—†์ด๋Š” ์–ด๋–ค ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๋„ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ „๋ฌธ์ ์ธ ๋ ˆ๋“œํŒ€ ํ”Œ๋žซํผ๊ณผ ์Šคํฌ๋ฆฝํŠธ ํ‚ค๋””์˜ ์žฅ๋‚œ๊ฐ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค.

Soundwave ์—์ด์ „ํŠธ

Soundwave๋Š” Decepticon์˜ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ๊ณ„ํš ์ „๋ฌธ๊ฐ€์ž…๋‹ˆ๋‹ค. ๋Œ€ํ™”ํ˜• ์ธํ„ฐ๋ทฐ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

๋ฒ”์œ„, ์‹œ๊ฐ„, ๊ฒฝ๊ณ„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ๊ฑด๋“œ๋ฆด ์ˆ˜ ์žˆ๊ณ  ์—†๋Š”์ง€. ์ด๋ฅผ ์œ„๋ฐ˜ํ•˜๋ฉด ๋ ˆ๋“œํŒ€์ด ์•„๋‹ˆ๋ผ ๋ฒ”์ฃ„์ž์ž…๋‹ˆ๋‹ค. ์œ„ํ˜‘ ํ–‰์œ„์ž ํ”„๋กœํŒŒ์ผ, ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•๋ก , "์šฐ๋ฆฌ๊ฐ€ ๋ˆ„๊ตฌ๋ฅผ ๋ชจ๋ฐฉํ•˜๋Š”๊ฐ€"๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฌธ์„œ. ์ดˆ๊ธฐ ์ ‘๊ทผ ๋ฒกํ„ฐ์™€ TTP๋ฅผ MITRE ATT&CK ID๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ๋“œํŒ€ ํ™œ๋™๊ณผ ์‹ค์ œ ์œ„ํ˜‘์„ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์†Œ์Šค IP, ์œ ์ € ์—์ด์ „ํŠธ, ์‹œ๊ฐ„๋Œ€, SOC์™€์˜ ์‹ค์‹œ๊ฐ„ ๋””์ปจํ”Œ๋ฆญ์…˜ ์ฝœ์„ ์œ„ํ•œ ๊ณต์œ  ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ์ž„๋ฌด ๊ณ„ํš. ๋ชฉํ‘œ, ํ‚ฌ ์ฒด์ธ ๋‹จ๊ณ„, ์ˆ˜๋ฝ ๊ธฐ์ค€. ๋ชจ๋“  ํ–‰๋™์€ ๋ชฉ์ ์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.

์ž‘๋™ ๋ฐฉ์‹

Soundwave๊ฐ€ ๊ตฌ์กฐํ™”๋œ ์ธํ„ฐ๋ทฐ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค: ํƒ€๊ฒŸ ๋ฒ”์œ„, ์œ„ํ˜‘ ๋ชจ๋ธ, ์Šน์ธ๋œ ๊ธฐ๋ฒ•, ์‹œ๊ฐ„ ์ œ์•ฝ, ์„ฑ๊ณต ๊ธฐ์ค€. ์ธํ„ฐ๋ทฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ Soundwave๊ฐ€ ์™„์ „ํ•œ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ํŒจํ‚ค์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค โ€” RoE, ConOps, ๋””์ปจํ”Œ๋ฆญ์…˜ ํ”Œ๋žœ, OPPLAN. ๊ฐ OPPLAN ๋ชฉํ‘œ์—๋Š” MITRE ATT&CK ๊ธฐ๋ฒ• ID, ํ‚ฌ ์ฒด์ธ ๋‹จ๊ณ„, ์ˆ˜๋ฝ ๊ธฐ์ค€์ด ํƒœ๊ทธ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค์ด ์ž์œจ ์‹คํ–‰ ๋ฃจํ”„์— ์ง์ ‘ ํˆฌ์ž…๋ฉ๋‹ˆ๋‹ค. ๊ต์ „ ๊ทœ์น™์€ ์ž์œจ ๋ฃจํ”„์˜ ๋ชจ๋“  ๋ฐ˜๋ณต์—์„œ ๊ฐ•์ œ๋ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” ์ •์˜๋œ ๊ฒฝ๊ณ„ ๋ฐ–์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

OPPLAN ๊ตฌ์กฐ

OPPLAN์€ ์ž์œจ ์‹คํ–‰์„ ๊ตฌ๋™ํ•˜๋Š” ํ•ต์‹ฌ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ๊ฐ ๋ชฉํ‘œ๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:

text
Objective: ์™ธ๋ถ€ ๋…ธ์ถœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์นจํ•ด
Phase: Initial Access
MITRE ATT&CK: T1190 (Exploit Public-Facing Application)
Acceptance Criteria: ์›น ์„œ๋ฒ„์—์„œ ์›๊ฒฉ ์ฝ”๋“œ ์‹คํ–‰ ๋‹ฌ์„ฑ
Dependencies: ์ •์ฐฐ ๋ชฉํ‘œ ์™„๋ฃŒ
Status: PENDING

๋ชฉํ‘œ๋Š” ์ƒํƒœ ์ „์ด๋ฅผ ํ†ตํ•ด ์ถ”์ ๋ฉ๋‹ˆ๋‹ค: PENDING โ†’ IN_PROGRESS โ†’ PASSED / BLOCKED. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ณ  ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๊ณต๊ฒฉ ๊ฒฝ๋กœ๋ฅผ ์ ์‘์‹œํ‚ต๋‹ˆ๋‹ค.

์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ์ž์œจ ํ‚ฌ ์ฒด์ธ์„ ํ†ตํ•ด OPPLAN ๋ชฉํ‘œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.

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 Google 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), ์ •์ฐฐ ์ž‘์—…์€ ๋” ๋น ๋ฅด๊ณ  ์ €๋ ดํ•œ ๋ชจ๋ธ๋กœ๋„ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์—ญํ•  ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…

๊ฐ ์—์ด์ „ํŠธ ์—ญํ• ์€ ์„œ๋กœ ๋‹ค๋ฅธ ์ธ์ง€์  ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค:

๋ชฉํ‘œ ์‹œํ€€์‹ฑ, ์˜์กด์„ฑ ํ•ด๊ฒฐ, ๊ณต๊ฒฉ ๊ฒฝ๋กœ ์ ์‘์„ ์œ„ํ•œ ๊นŠ์€ ์ถ”๋ก ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์—ญ๋Ÿ‰ ์žˆ๋Š” ๋ชจ๋ธ์— ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค. ์ทจ์•ฝ์  ์ต์Šคํ”Œ๋กœ์ž‡ ๋ฐ ๋„๊ตฌ ์กฐ์ž‘์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๊ธฐ์ˆ ์  ์ถ”๋ก ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ค‘์ƒ์œ„ ํ‹ฐ์–ด์— ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค. ํฌํŠธ ์Šค์บ”, ์„œ๋น„์Šค ์—ด๊ฑฐ, ์ถœ๋ ฅ ํŒŒ์‹ฑ ๋“ฑ ๊ตฌ์กฐํ™”๋œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋” ๋น ๋ฅธ ๋ชจ๋ธ๋กœ๋„ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. C2 ์„ธ์…˜์„ ํ†ตํ•œ ๋ณต์žกํ•œ ํฌ์ŠคํŠธ ์ต์Šคํ”Œ๋กœ์ž‡. ์ต์Šคํ”Œ๋กœ์ž‡ ํ‹ฐ์–ด์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค.

์ž๋™ ํด๋ฐฑ

๊ฐ ํ‹ฐ์–ด๋Š” ์ œ๊ณต์ž๋ณ„ ํด๋ฐฑ ์ฒด์ธ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ”„๋กœ๋ฐ”์ด๋”๊ฐ€ ๋ ˆ์ดํŠธ ๋ฆฌ๋ฐ‹์— ๊ฑธ๋ฆฌ๊ฑฐ๋‚˜ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, Decepticon์ด ์›ํ™œํ•˜๊ฒŒ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค:

text
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: "์˜คํŽœ์‹œ๋ธŒ ๋ฐฑ์‹  ํŒŒ์ดํ”„๋ผ์ธ"

์•„๋ž˜์— ์„ค๋ช…๋œ **5๋‹จ๊ณ„ Vulnresearch ํŒŒ์ดํ”„๋ผ์ธ**์€ ์˜ค๋Š˜ ์ถœ์‹œ๋œ ์ƒํƒœ์ด๋ฉฐ, `Vulnresearch` ์กฐ์œจ์ž์™€ ๊ทธ 5๊ฐœ์˜ ์„œ๋ธŒ ์—์ด์ „ํŠธ๊ฐ€ ๊ตฌ๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ฃจํ”„๋ฅผ ๋‹ซ๋Š” **๋ฐฉ์–ด ์ธก ์ ˆ๋ฐ˜** ("Defender" ์—์ด์ „ํŠธ, ์ž๋™ ์™„ํ™” ๋ฐฑ์—”๋“œ, ์žฌ๊ณต๊ฒฉ ๊ฒ€์ฆ)์€ ํ˜„์žฌ ์ฝ”๋“œ๋ฒ ์ด์Šค์— ํ™œ์„ฑ ๊ตฌํ˜„๋˜์ง€ ์•Š์€ **๊ณ„ํš๋œ ์ œํ’ˆ ๋ฐฉํ–ฅ**์ž…๋‹ˆ๋‹ค. ์ด์ „ Defender ๊ทธ๋ž˜ํ”„์™€ Docker ๋ฐฉ์–ด ๋ฐฑ์—”๋“œ๋Š” ์ œ๊ฑฐ๋˜์—ˆ๊ณ , ํ–ฅํ›„ ๊ตฌํ˜„์€ OPPLAN ๋ฏธ๋“ค์›จ์–ด ์œ„์— ์žฌ๊ตฌ์ถ•๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ repo์˜ [`docs/offensive-vaccine.md`](https://github.com/BitterSecurity/Decepticon/blob/main/docs/offensive-vaccine.md) ์ฐธ์กฐ.

์˜คํŽœ์‹œ๋ธŒ ๋ฐฑ์‹ ์€ Decepticon์— ์ด๋ฆ„๊ณผ ๋ชฉ์ ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฃจํ”„์ž…๋‹ˆ๋‹ค: ๋ชจ๋“  ์˜คํŽœ์‹œ๋ธŒ ํ–‰๋™์ด ๋ฐฉ์–ด์  ์‚ฐ์ถœ๋ฌผ์ด ๋ฉ๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€๋Š” ์˜ค๋Š˜ ์ถœ์‹œ๋œ 5๋‹จ๊ณ„ Vulnresearch ํŒŒ์ดํ”„๋ผ์ธ๊ณผ, ํ–ฅํ›„ ๋ฃจํ”„๋ฅผ ์ข…๋ฃŒํ•  ๊ณ„ํš๋œ ๋ฐฉ์–ด ์ธก ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฌธ์„œํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋ฃจํ”„

text
๊ณต๊ฒฉ โ†’ ํƒ์ง€ ๊ทœ์น™ โ†’ ๊ฒ€์ฆ โ†’ ์ต์Šคํ”Œ๋กœ์ž‡ PoC โ†’ ํŒจ์น˜
   โ†‘                                                      โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    ํšŒ๊ท€ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€

๊ฐ ๋‹จ๊ณ„๋Š” ์ „๋ฌธ๊ฐ€ ์—์ด์ „ํŠธ๊ฐ€ ์†Œ์œ ํ•ฉ๋‹ˆ๋‹ค. ํ•จ๊ป˜ ๋ณด์•ˆ ์‚ฐ์—…์ด "ํผํ”Œ ํŒ€ ํ™œ๋™"์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์„ ์™„์ „ํžˆ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค.

5๋‹จ๊ณ„

ํƒ€๊ฒŸ ์ „์ฒด์˜ ์ž๋™ ์ทจ์•ฝ์  ์Šค์บ”. ์ถœ๋ ฅ: ํ›„๋ณด ๋ฐœ๊ฒฌ (CVE ๋งค์น˜, ์„ค์ • ๋ฌธ์ œ, ๋…ธ์ถœ๋œ ํ‘œ๋ฉด). ํ›„๋ณด ์ทจ์•ฝ์ ์˜ ํƒ์ง€ ์‹ ํ˜ธ ์ƒ์„ฑ โ€” Sigma ๊ทœ์น™, YARA ๊ทœ์น™, IDS ์„œ๋ช… ๋˜๋Š” ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜ ํœด๋ฆฌ์Šคํ‹ฑ. ๋ฐฉ์–ด์ž๋“ค์€ ํƒ์ง€ํ•˜๊ธฐ ์ „์— ๋ฌด์—‡์„ ์ฐพ์•„์•ผ ํ• ์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. 2-๋ฉ”์„œ๋“œ ๊ฒŒ์ดํŠธ: ์ตœ์†Œ 2๊ฐ€์ง€์˜ ๋…๋ฆฝ์ ์ธ ๊ฒ€์ฆ ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ์ทจ์•ฝ์  ํ™•์ธ. ์ต์Šคํ”Œ๋กœ์ž‡ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๊ฑฐ์ง“ ์–‘์„ฑ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ทจ์•ฝ์ ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊นจ์ง€ ์•Š๊ณ  ๋‹ซ๋Š” ์ตœ์†Œ ํŒจ์น˜ โ€” ์ฝ”๋“œ ๋ณ€๊ฒฝ, ์„ค์ • ๋ณ€๊ฒฝ, ๋ณด์ƒ ํ†ต์ œ โ€” ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , `patch_verify`๋กœ ํŒจ์น˜๊ฐ€ ๋ฒ„๊ทธ๋ฅผ ๋‹ซ์•˜์Œ์„ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค. PoC ์ด์ „ ํŒจ์น˜๋Š” offensive-vaccine ์—ญ์ „ โ€” ๋ฐฉ์–ด์ž์˜ diff๊ฐ€ ํ…Œ์ŠคํŠธ ๋Œ€์ƒ์ด ๋ฉ๋‹ˆ๋‹ค. ํŒจ์น˜๋œ ํ›„๋ณด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ PoC๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. PoC๊ฐ€ ํŒจ์น˜๋œ ์ฝ”๋“œ์— ๋Œ€ํ•ด ์„ฑ๊ณตํ•˜๋ฉด ํŒจ์น˜๊ฐ€ ๋ถˆ์™„์ „ํ•˜๋ฏ€๋กœ ๋ฃจํ”„๊ฐ€ ๋ฐ˜๋ณต๋˜๊ณ , PoC๊ฐ€ ์‹คํŒจํ•˜๋ฉด ํŒจ์น˜๊ฐ€ ๊ฒฌ๊ณ ํ–ˆ์Œ์„ ์ž…์ฆํ•ฉ๋‹ˆ๋‹ค.

Vulnresearch ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ

5๊ฐœ์˜ ์—์ด์ „ํŠธ๋Š” ๊ณ ์ • ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค โ€” ๋ฐœ๊ฒฌ ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” 6๋ฒˆ์งธ ์—์ด์ „ํŠธ Vulnresearch์— ์˜ํ•ด ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜๋ฉ๋‹ˆ๋‹ค. Scanner๊ฐ€ ๋†’์€ ์‹ ๋ขฐ๋„์˜ ํ›„๋ณด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, Vulnresearch๋Š” Verifier๋กœ ์ง์ ‘ ์Šคํ‚ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Verifier๊ฐ€ ํ›„๋ณด๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋ฉด, Patcher๋‚˜ Exploiter ๋ฆฌ์†Œ์Šค๋ฅผ ๋‚ญ๋น„ํ•˜์ง€ ์•Š๊ณ  ๋ฃจํ”„๋Š” ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ ์ž…๋ ฅ ์ถœ๋ ฅ
Scanner ํƒ€๊ฒŸ ๋ฒ”์œ„ ํ›„๋ณด ๋ฐœ๊ฒฌ ๋ชฉ๋ก
Detector ํ›„๋ณด ๋ฐœ๊ฒฌ ํƒ์ง€ ๊ทœ์น™ (Sigma / YARA / ํœด๋ฆฌ์Šคํ‹ฑ)
Verifier ํ›„๋ณด + ํƒ์ง€ ๊ทœ์น™ ๊ฒ€์ฆ๋จ-์˜ˆ ๋˜๋Š” ๊ฒ€์ฆ๋จ-์•„๋‹ˆ์š”, 2๊ฐ€์ง€ ์ฆ๊ฑฐ ๋ฐฉ๋ฒ• ํฌํ•จ
Patcher ๊ฒ€์ฆ๋œ ํ›„๋ณด ํŒจ์น˜ (์ฝ”๋“œ ๋˜๋Š” ์„ค์ •) + ํŒจ์น˜๊ฐ€ ๋ฒ„๊ทธ๋ฅผ ๋‹ซ์•˜์Œ์„ ์ฆ๋ช…ํ•˜๋Š” patch_verify
Exploiter ํŒจ์น˜๋œ ํ›„๋ณด ํŒจ์น˜์— ๋Œ€ํ•œ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ PoC โ€” ํŒจ์น˜๊ฐ€ ๊ฒฌ๊ณ ํ•˜๋ฉด ์‹คํŒจ, ํŒจ์น˜๊ฐ€ ๋ถˆ์™„์ „ํ•˜๋ฉด ์„ฑ๊ณต (๋ฃจํ”„ ๋ฐ˜๋ณต)

๊ณ„ํš๋œ ๋ฐฉ์–ด ์ปดํฌ๋„ŒํŠธ

์ด ์ปดํฌ๋„ŒํŠธ๋Š” ํ˜„์žฌ ์ฝ”๋“œ๋ฒ ์ด์Šค์— ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค โ€” ์ด์ „ Defender ๊ทธ๋ž˜ํ”„์™€ Docker ๋ฐฉ์–ด ๋ฐฑ์—”๋“œ๋Š” ์ œ๊ฑฐ๋˜์—ˆ๊ณ , ํ–ฅํ›„ ๋Œ€์ฒด๋Š” OPPLAN ๋ฏธ๋“ค์›จ์–ด์™€ ์ „์šฉ ๋ฐฑ์‹  ๊ฐœ๋… ์œ„์— ์žฌ๊ตฌ์ถ•๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Vulnresearch ํŒŒ์ดํ”„๋ผ์ธ์˜ ์‚ฐ์ถœ๋ฌผ(ํƒ์ง€ ๊ทœ์น™, 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 ๋…ธ๋“œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค
  • ๊ฒ€์ฆ์€ ํ”„๋กœ๋น„๋„Œ์Šค ์—์ง€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค

๊ทธ๋ž˜ํ”„๋Š” ์ž‘์ „ ์ค‘์— ์ฟผ๋ฆฌ ๊ฐ€๋Šฅํ•˜๊ณ  ์ž‘์ „ ์‚ฐ์ถœ๋ฌผ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐœ๊ฒฌ, ํƒ์ง€ ๋ฐ ํŒจ์น˜๊ฐ€ Neo4j ๊ณต๊ฒฉ ๊ทธ๋ž˜ํ”„์— ์–ด๋–ป๊ฒŒ ๋„์ฐฉํ•˜๋Š”์ง€. ๊ฐ ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„๋Š” `skills/scanner/`, `skills/detector/` ๋“ฑ์˜ ์ „์šฉ ์Šคํ‚ฌ ์„ธํŠธ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

File: ko/features/opplan-system.mdx


title: "OPPLAN ์‹œ์Šคํ…œ"

OPPLAN(์ž‘์ „ ๊ณ„ํš, Operations Plan)์€ ์ธ๊ฐ„์˜ ์˜๋„์™€ ์ž์œจ์  ์‹คํ–‰์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋‹ค๋ฆฌ์ž…๋‹ˆ๋‹ค. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ์Šค์ผ€์ค„๋งํ•˜๋Š” ๋‹จ์ผ ์ •๋ณด ์†Œ์Šค์ด๋ฉฐ, ์ „๋ฌธ๊ฐ€ ์—์ด์ „ํŠธ๊ฐ€ ์†Œ๋น„ํ•˜๊ณ , ์šด์˜์ž๊ฐ€ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค. OPPLAN ์—†์ด๋Š” Decepticon์ด ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

OPPLAN์ด๋ž€

OPPLAN์€ ๊ตฌ์กฐํ™”๋œ ๋ชฉํ‘œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค โ€” ๊ฐ๊ฐ ํ‚ฌ ์ฒด์ธ ๋‹จ๊ณ„, MITRE ATT&CK ID, OPSEC ์ˆ˜์ค€, C2 ํ‹ฐ์–ด, ์˜์กด์„ฑ ๋ฐ ์ˆ˜์šฉ ๊ธฐ์ค€์œผ๋กœ ํƒœ๊ทธ๋ฉ๋‹ˆ๋‹ค. Soundwave ์—์ด์ „ํŠธ๊ฐ€ ์šด์˜์ž ์ธํ„ฐ๋ทฐ์—์„œ ์ƒ์„ฑํ•˜๊ณ , Decepticon ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ์‹คํ–‰ํ•˜๋ฉฐ, ์šด์˜์ž๋Š” ์–ธ์ œ๋“  ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

yaml
- 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: pending

OPPLAN ๋ฏธ๋“ค์›จ์–ด

์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋Š” 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์ธ ๋ชฉํ‘œ๋งŒ ์Šค์ผ€์ค„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์šด์˜์ž์—๊ฒŒ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์†์œผ๋กœ ์ฝ”๋”ฉํ•˜์ง€ ์•Š๊ณ ๋„ ๊ฒฐ์ •๋ก ์  ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

text
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 ์˜คํผ๋ ˆ์ดํ„ฐ ์—์ด์ „ํŠธ๊ฐ€ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์ฒด์ ์ธ ํ•˜์œ„ ๋ชฉํ‘œ๋กœ ๋™์ ์œผ๋กœ, ๋น„ํ–‰ ์ค‘์— ๋ถ„ํ•ดํ•ฉ๋‹ˆ๋‹ค.

text
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๋งŒ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์—์ด์ „ํŠธ ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์ธ์ฝ”๋”ฉ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž‘์ „ ๋ฒ”์œ„, ๋ชฉํ‘œ, ํƒ€๊ฒŸ, ์œ„ํ˜‘ ํ”„๋กœํŒŒ์ผ. ๊ตฌ์กฐํ™”๋œ ๋ฌธ์„œ, ์ž‘์ „ ์›Œํฌ์ŠคํŽ˜์ด์Šค์— ์ž‘์„ฑ๋จ. ์šด์˜์ž๊ฐ€ ๊ฐ ๋ชฉํ‘œ๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค; ์Šน์ธ์ด ์ฃผ์–ด์งˆ ๋•Œ๊นŒ์ง€ ์—์ด์ „ํŠธ๋Š” ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. Decepticon ์—์ด์ „ํŠธ๊ฐ€ OPPLAN์„ ์ฝ๊ณ , ๋ชฉํ‘œ๋ฅผ ์ˆœ์„œํ™”ํ•˜๋ฉฐ, ์ „๋ฌธ๊ฐ€๋ฅผ ์Šคํฐํ•ฉ๋‹ˆ๋‹ค. CLI ๋ช…๋ น์„ ํ†ตํ•ด ๋ชฉํ‘œ๋ฅผ ์ถ”๊ฐ€, ์ œ๊ฑฐ ๋˜๋Š” ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฐ˜๋ณต์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.

OPPLAN๊ณผ ์‹ ์„ ํ•œ ์ปจํ…์ŠคํŠธ

๊ฐ ๋ชฉํ‘œ๋Š” ์‹ ์„ ํ•œ ์—์ด์ „ํŠธ ์ธ์Šคํ„ด์Šค๋กœ ์‹คํ–‰๋˜๋ฉฐ ๊นจ๋—ํ•œ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋Š” ๊ด€๋ จ๋œ ์ด์ „ ๋ฐœ๊ฒฌ์„ ๋ช…์‹œ์ ์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค โ€” ์ „์ฒด ๋Œ€ํ™” ๊ธฐ๋ก์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋Š” 200๊ฐœ ๋ชฉํ‘œ ์ž‘์ „์ด ์ปจํ…์ŠคํŠธ ์—ดํ™”๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

Soundwave๊ฐ€ ์ดˆ๊ธฐ OPPLAN ์ดˆ์•ˆ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ OPPLAN ๋ชฉํ‘œ๋ฅผ ์–ด๋–ป๊ฒŒ ์Šค์ผ€์ค„๋งํ•˜๊ณ  ๋””์ŠคํŒจ์น˜ํ•˜๋Š”์ง€.

File: ko/features/skill-system.mdx

[Binary file]


File: ko/getting-started/configuration.mdx


title: "์„ค์ • (Configuration)"

API ํ‚ค ์„ค์ •

Decepticon์˜ ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ๋™ํ•˜๋ ค๋ฉด LLM API ํ‚ค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ™”ํ˜• ์„ค์ • ๋งˆ๋ฒ•์‚ฌ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”:

bash
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 ์ž๋™ ํด๋ฐฑ๊ณผ ํ•จ๊ป˜ ์™„์ „ ์ง€์›
Google Gemini 2.5 Pro / Flash / Flash-Lite LiteLLM ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด ์ง€์›
MiniMax MiniMax-M2.5, MiniMax-M2.5-lightning ๋Œ€์ฒด ์ƒ์œ„/์ค‘์œ„ ํ‹ฐ์–ด
์ปค์Šคํ…€ ๋ชจ๋“  LiteLLM ๋ฐฑ์—”๋“œ ์ž์ฒด ํ˜ธ์ŠคํŒ… ๋˜๋Š” ๋Œ€์•ˆ ํ”„๋กœ๋ฐ”์ด๋”

ํ™˜๊ฒฝ ๋ณ€์ˆ˜

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด์„œ๋„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

bash
# ๊ธฐ๋ณธ ํ”„๋กœ๋ฐ”์ด๋”
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๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

bash
# .env (๊ธฐ๋ณธ๊ฐ’)
COMPOSE_PROFILES=c2-sliver

# ๋˜๋Š” ์‹คํ–‰ ์‹œ ์‰˜์„ ํ†ตํ•ด ์žฌ์ •์˜
COMPOSE_PROFILES=c2-sliver decepticon

ํ™œ์„ฑํ™” ์‹œ, Sliver ํŒ€ ์„œ๋ฒ„๊ฐ€ ์ž‘์ „ ๋„คํŠธ์›Œํฌ์—์„œ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค:

  • ์ž๋™ ์ƒ์„ฑ๋œ ์˜คํผ๋ ˆ์ดํ„ฐ ์„ค์ •
  • ์ƒŒ๋“œ๋ฐ•์Šค์— ์‚ฌ์ „ ์„ค์น˜๋œ sliver-client
  • mTLS, HTTPS, DNS C2 ์ฑ„๋„ ์ง€์›
Sliver C2 ํ†ตํ•ฉ ๋ฐ 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 ์ž‘์ „ ๋„คํŠธ์›Œํฌ (๊ธฐ๋ณธ ํ”„๋กœํŒŒ์ผ)
Kali ์ƒŒ๋“œ๋ฐ•์Šค๋Š” ์ „์ฒด ์˜คํŽœ์‹œ๋ธŒ ํˆดํ‚ท์„ ์‹คํ–‰ํ•˜๋ฏ€๋กœ ๊ฐ€์žฅ ๋งŽ์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ์˜ ์•ˆ์ •์ ์ธ ์šด์˜์„ ์œ„ํ•ด ์ตœ์†Œ 4 GB์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜์„ธ์š”.

File: ko/getting-started/library-usage.mdx


title: "๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ยท SDK ์‚ฌ์šฉ"

PyPI ์—์„œ ์„ค์น˜

Decepticon ์€ Python ํŒจํ‚ค์ง€๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ฝ”์–ด SDK ๋ฅผ ์„ค์น˜ํ•˜์„ธ์š”:

bash
pip install decepticon              # ์ฝ”์–ด SDK
pip install "decepticon[neo4j]"     # + ์ง€์‹๊ทธ๋ž˜ํ”„ ๊ณต๊ฒฉ์ฒด์ธ ๋„๊ตฌ
`decepticon` ์€ **ํด๋ผ์ด์–ธํŠธ SDK** ์ด์ง€ ๋‹จ๋… ์‹คํ–‰ ์•ฑ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ ํŒฉํ† ๋ฆฌยท๋ฏธ๋“ค์›จ์–ดยท๋„๊ตฌยท์Šคํ‚ฌ์„ ๋‹ด๊ณ  ์žˆ์ง€๋งŒ, LLM ํ˜ธ์ถœ๊ณผ ์ƒŒ๋“œ๋ฐ•์Šค ์‹คํ–‰์€ **๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค**๋กœ HTTP ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋ฅผ ์‹ค์ œ๋กœ ๋Œ๋ฆฌ๋ ค๋ฉด ๊ทธ ์„œ๋น„์Šค๋“ค(Docker ์Šคํƒ ๋˜๋Š” ์ง์ ‘ ์šด์˜ํ•˜๋Š” ์—”๋“œํฌ์ธํŠธ)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๊ฐœ์˜ 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 ํŒจํ‚ค์ง€๋Š” ์—์ด์ „ํŠธ๋ฅผ ๋‹น์‹ ์˜ ์„œ๋น„์Šค์— ์ž„๋ฒ ๋“œํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฏธ๋ฆฌ ๋นŒ๋“œ๋œ ์—์ด์ „ํŠธ ์‚ฌ์šฉ

python
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 ์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค:

python
from decepticon.plugin_loader import PluginBundle

MY_BUNDLE = PluginBundle(
    bundle="mybundle",
    replaced_tools={"ask_user_question": my_ask_tool},
    prompts={"recon": {"prepend": "<MY_HEADER>..."}},
)
toml
# ๋‹น์‹  ํŒจํ‚ค์ง€์˜ pyproject.toml
[project.entry-points."decepticon.bundles"]
mybundle = "my_pkg.bundles:MY_BUNDLE"

DECEPTICON_PLUGINS=standard,mybundle ๋กœ ํ™œ์„ฑํ™”. ๋‹ค์šด์ŠคํŠธ๋ฆผ ์ œํ’ˆ์ด ์˜คํ”ˆ ์ฝ”์–ด ์œ„์— ์ƒ์šฉ ๊ธฐ๋Šฅ์„ ์–น๋Š” ๋ฐฉ์‹์ด ์ •ํ™•ํžˆ ์ด๊ฒƒ์ž…๋‹ˆ๋‹ค โ€” decepticon ์— ์˜์กดํ•  ๋ฟ ํฌํฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „ ๊ด€๋ฆฌ

pyproject.toml ์— ํ˜ธํ™˜ ๋ฒ”์œ„๋ฅผ ํ•€:

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 ํ˜ธํ™˜ ํ”„๋กœ๋ฐ”์ด๋”)

๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์„ค์น˜

bash
curl -fsSL https://decepticon.red/install | bash

Decepticon ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ , ๊ฒฉ๋ฆฌ๋œ ๋„คํŠธ์›Œํฌ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉฐ, decepticon CLI๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ •

API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

bash
decepticon config

๋Œ€ํ™”ํ˜• ์„ค์ • ๋งˆ๋ฒ•์‚ฌ์—์„œ ๋‹ค์Œ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • LLM ํ”„๋กœ๋ฐ”์ด๋” โ€” Anthropic, OpenAI, ๋˜๋Š” ๊ธฐํƒ€ LiteLLM ๋ฐฑ์—”๋“œ
  • API ํ‚ค โ€” ํ”„๋กœ๋ฐ”์ด๋” API ํ‚ค
  • ๋ชจ๋ธ ํ”„๋กœํŒŒ์ผ โ€” eco, max, ๋˜๋Š” test (๋ฉ€ํ‹ฐ ๋ชจ๋ธ ๋ผ์šฐํŒ… ์ฐธ์กฐ)

์‹คํ–‰

Decepticon์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

bash
decepticon

๋ชจ๋“  ์„œ๋น„์Šค(์—์ด์ „ํŠธ API, LiteLLM ํ”„๋ก์‹œ, ์ƒŒ๋“œ๋ฐ•์Šค, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๋Œ€ํ™”ํ˜• CLI๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ๋ณด๋Š” ๊ฒƒ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ŠคํŠธ๋ฆฌ๋ฐ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋ฐ๋ชจ ์‹คํ–‰

์ง์ ‘ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์ „์— Decepticon์˜ ๋™์ž‘์„ ๋จผ์ € ํ™•์ธํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? ๊ฐ€์ด๋“œ ๋ฐ๋ชจ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”:

bash
decepticon demo

๋ฐ๋ชจ๋Š” Metasploitable 2๋ฅผ ํƒ€๊ฒŸ์œผ๋กœ ๋ฐฐํฌํ•˜๊ณ , ์‚ฌ์ „ ๊ตฌ์„ฑ๋œ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๋ฅผ ๋กœ๋“œํ•œ ํ›„, ์ „์ฒด ํ‚ฌ ์ฒด์ธ์„ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

์ •์ฐฐ(Recon) ์—์ด์ „ํŠธ๊ฐ€ ํƒ€๊ฒŸ์„ ์Šค์บ”ํ•˜๊ณ  ์—ด๋ฆฐ ์„œ๋น„์Šค๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ต์Šคํ”Œ๋กœ์ž‡ ์—์ด์ „ํŠธ๊ฐ€ vsftpd ๋ฐฑ๋„์–ด ์ทจ์•ฝ์ ์„ ์‹๋ณ„ํ•˜๊ณ  ๊ณต๊ฒฉํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฒฉ ์„ฑ๊ณต ํ›„ Sliver C2 ์ž„ํ”Œ๋ž€ํŠธ๋ฅผ ํƒ€๊ฒŸ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ํฌ์ŠคํŠธ ์ต์Šคํ”Œ๋กœ์ž‡ ์—์ด์ „ํŠธ๊ฐ€ C2 ์„ธ์…˜์„ ํ†ตํ•ด ํฌ๋ฆฌ๋ด์…œ์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์นจํ•ด๋œ ํ˜ธ์ŠคํŠธ์—์„œ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

API ํ‚ค ์™ธ์— ์ถ”๊ฐ€ ์„ค์ •์€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„

API ํ‚ค, ๋ชจ๋ธ ํ”„๋กœํŒŒ์ผ, ํ™˜๊ฒฝ ์„ค์ •์„ ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ช…๋ น์–ด์™€ ์˜ต์…˜์„ ํ™•์ธํ•˜์„ธ์š”. ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ๊ณ„ํš, ํ‚ฌ ์ฒด์ธ ์‹คํ–‰, C2 ํ†ตํ•ฉ์„ ์‚ดํŽด๋ณด์„ธ์š”. ๊ฒฉ๋ฆฌ๋œ ๋„คํŠธ์›Œํฌ ์•„ํ‚คํ…์ฒ˜์™€ ์—์ด์ „ํŠธ ์‹œ์Šคํ…œ์„ ์ดํ•ดํ•˜์„ธ์š”.

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์ฃผ) ๋™์•ˆ ํ…Œ์ŠคํŠธํ•˜๋„๋ก ์„ค๊ณ„๋œ ํฌ๊ด„์ ์ธ ์ ๋Œ€์  ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ž…๋‹ˆ๋‹ค.

๋ ˆ๋“œํŒ€ ํ…Œ์ŠคํŒ…์˜ ํ•ต์‹ฌ ์†์„ฑ

  1. ์ „์ฒด์ ์ด๊ณ  ๋‹ค์ค‘ ๋„๋ฉ”์ธ โ€” ์‹ค์ œ ๊ณต๊ฒฉ์ž๋“ค์€ ์›น ์•ฑ๋งŒ ๊ณต๊ฒฉํ•˜๊ณ  ๋ฉˆ์ถ”์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ํด๋ผ์šฐ๋“œ, ๋ชจ๋ฐ”์ผ, ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ, ์‹ฌ์ง€์–ด ๋ฌผ๋ฆฌ์  ๋˜๋Š” ์‚ฌํšŒ๊ณตํ•™์  ๋ฒกํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ๋“œํŒ€ ํ…Œ์ŠคํŒ…์ด ์ด๋ฅผ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.
  2. ์€๋‹‰๊ณผ ์ง€์†์„ฑ โ€” ์ฃผ์š” ๋ชฉํ‘œ๋Š” ๋ธ”๋ฃจํŒ€์˜ ํƒ์ง€๋ฅผ ํ”ผํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ ˆ๋“œํŒ€ ์š”์›๋“ค์€ ์กฐ์šฉํžˆ ์ž‘๋™ํ•˜๋ฉฐ, SIEMs๊ณผ EDRs๋ฅผ ํšŒํ”ผํ•˜๊ณ , ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋™์•ˆ ์ ‘๊ทผ์„ ์œ ์ง€(์ง€์†์„ฑ)ํ•ฉ๋‹ˆ๋‹ค.
  3. ํ˜„์‹ค์ ์ธ ๋ชฉํ‘œ โ€” CVE ๋‚˜์—ด ๋Œ€์‹ , ๋ชฉํ‘œ๋Š” ์‹ค์งˆ์ ์ž…๋‹ˆ๋‹ค: SWIFT ์ธํ”„๋ผ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? ๋ธ”๋ฃจํŒ€์ด ์•Œ์•„์ฑ„์ง€ ๋ชปํ•˜๋Š” ๋™์•ˆ ๋”๋ฏธ ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ถœํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  4. ์œ„ํ˜‘์ด ํˆฌํ‘œ๋ฅผ ๋ฐ›๋Š”๋‹ค โ€” ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๋Š” ๋ฐฉ์–ด์ž๋“ค์ด ๊ณ„ํšํ•œ ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹ค์ œ ์œ„ํ˜‘์ด ์‹ค์ œ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์— ๊ธฐ๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ์œ„ํ˜‘ ํ”„๋กœํ•„์ด TTPs๋ฅผ ์ฃผ๋„ํ•ฉ๋‹ˆ๋‹ค.
  5. ๊ฐ€์ •๋œ ์นจํˆฌ โ€” ์ดˆ๊ธฐ ์ ‘๊ทผ(์˜ˆ: ํ”ผ์‹ฑ)์ด ์ฐจ๋‹จ๋˜๋ฉด, ๋ ˆ๋“œํŒ€ ์š”์›๋“ค์€ "๊ฐ€์ •๋œ ์นจํˆฌ" ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค: ๋น„์ฝ˜์ด ๋‚ด๋ถ€์ ์œผ๋กœ ์‹ฌ์–ด์ ธ ์นจํˆฌ ํ›„ ๋Œ€์‘, ํšก์  ์ด๋™ ํƒ์ง€, ๋‚ด๋ถ€ ์ •์ฐฐ์„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ธ๊ฒŒ์ด์ง€๋จผํŠธ ๋ผ์ดํ”„์‚ฌ์ดํด: ์ง„์ž…, ์ž”๋ฅ˜, ํ–‰๋™

๋ ˆ๋“œํŒ€ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๋Š” ์„ธ ๊ฐ€์ง€ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. โ€” redteam.guide ๋ฐฉ๋ฒ•๋ก ์—์„œ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๊ณ  ์„ฑ๋ฌธํ™”๋œ ๋ชจ๋ธ:

์œ„ํ˜‘ ํ”„๋กœํ•„์ด ์„ ํ˜ธํ•˜๋Š” ๋ฒกํ„ฐ๋ฅผ ํ†ตํ•œ ์ดˆ๊ธฐ ์ ‘๊ทผ โ€” ํ”ผ์‹ฑ, ๋…ธ์ถœ๋œ ์„œ๋น„์Šค, ๊ณต๊ธ‰๋ง, ์‚ฌํšŒ๊ณตํ•™. ๋ชฉํ‘œ๋Š” ํ”์ ์ด์ง€, ์†Œ์Œ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ง€์†์„ฑ๊ณผ ๋ช…๋ น-ํ†ต์ œ ์ˆ˜๋ฆฝ. ํ‹ฐ์–ด C2 ์ฑ„๋„(๋Œ€ํ™”ํ˜• / ๋‹จ๊ฑฐ๋ฆฌ / ์žฅ๊ฑฐ๋ฆฌ). OPSEC ์œ ์ง€. ๋ฐฉ์–ด์ž ๋Œ€์‘์—์„œ ์ƒ์กด. ์ธ๊ฒŒ์ด์ง€๋จผํŠธ ๋ชฉํ‘œ ์‹คํ–‰ โ€” ๊ถŒํ•œ ์ƒ์Šน, ํšก์  ์ด๋™, ์ž๊ฒฉ์ฆ๋ช… ์ ‘๊ทผ, ๋ฐ์ดํ„ฐ ๋ฐœ๊ฒฌ, ์œ ์ถœ, ์ž‘์ „ ์˜ํ–ฅ โ€” ๋™์‹œ์— ์ž„๋ฌด์— ์ถฉ์‹คํ•˜๊ณ  ๊ต์ „ ๊ทœ์น™ ๋‚ด์—์„œ.

Decepticon์ด ์ž์œจ ํ•ดํ‚น ์—์ด์ „ํŠธ์ธ ์ด์œ 

Decepticon์€ ๋ชจ์˜ํ•ดํ‚น ์ฒดํฌ๋ฆฌ์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ ˆ๋“œํŒ€ ํ…Œ์ŠคํŒ… ๋งˆ์ธ๋“œ์…‹์„ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋ฅผ ์ž๋™ํ™”๋œ ์Šค์บ๋„ˆ๋กœ ํญ์ฃผ์‹œํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. โ€” ์ด๋Š” ๋ธ”๋ฃจํŒ€์„ ์ฆ‰์‹œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์‹ , ํ™˜๊ฒฝ์˜ ๋งฅ๋ฝ์„ ์ฝ์Šต๋‹ˆ๋‹ค. ์€๋‹‰์„ ์œ ์ง€ํ•˜๊ณ , ๋‚ด๋ถ€ ์ •์ฐฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ํšก์  ์ด๋™์„ ์‹คํ–‰ํ•˜๊ณ , ๊ฐ€์ •๋œ ์นจํˆฌ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ž์œจ์ ์œผ๋กœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค. ํ‚ฌ ์ฒด์ธ์€ OPPLAN โ€” ์šด์˜์ž์˜ RoE์™€ ConOps์—์„œ ๋‹จ์ผ ํŒจํ‚ท์ด ๋‚˜๊ฐ€๊ธฐ ์ „์— ์—์ด์ „ํŠธ๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ์กฐํ™”๋œ ์ž‘์ „ ๊ณ„ํš์— ์˜ํ•ด ์ฃผ๋„๋ฉ๋‹ˆ๋‹ค.

๋ฌด์ •ํ•˜๊ณ  AI ๊ธฐ๋ฐ˜์˜ ๋ ˆ๋“œํŒ€ ์—ญํ• ์„ ๋งก์Œ์œผ๋กœ์จ, Decepticon์€ ๋ฌดํ•œํ•œ ๊ณต๊ฒฉ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ณต๊ฒฉ ๋ฐฑ์‹ ์ž…๋‹ˆ๋‹ค. โ€” ์˜ค๋ž˜๋œ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ๋ณด๋‹ค๋Š”, ํ˜„๋Œ€์  ์‚ฌ์ด๋ฒ„ ์œ„ํ˜‘์˜ ์œ ๊ธฐ์ ์ด๊ณ  ์€๋‹‰๋œ ํ˜„์‹ค์— ๋Œ€ํ•ญํ•˜์—ฌ ๋ฐฉ์–ด ์‹œ์Šคํ…œ์„ ํ›ˆ๋ จ์‹œํ‚ต๋‹ˆ๋‹ค.

์ง„์ž…, ์ž”๋ฅ˜, ํ–‰๋™ โ€” ์„ธ ๋‹จ๊ณ„ ๋ผ์ดํ”„์‚ฌ์ดํด, Decepticon์˜ ์—์ด์ „ํŠธ์— ๋งคํ•‘๋จ. ์ „์ˆ , ๊ธฐ๋ฒ•, ์ ˆ์ฐจ โ€” ์œ„ํ˜‘๊ณผ Decepticon ์‚ฌ์ด์˜ ๊ณต์œ  ์–ดํœ˜. Decepticon์ด ์œ„ํ˜‘ ํ”„๋กœํ•„์„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•. ๋ ˆ๋“œ ์„ธํฌ, ๋ธ”๋ฃจ ์„ธํฌ, ํ™”์ดํŠธ ์„ธํฌ, ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์—์ด์ „ํŠธ โ€” ๊ทธ๋ฆฌ๊ณ  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์€ ์ „์ฒด ๊ทธ๋ฆผ์„ ํฌ๊ด„ํ•ฉ๋‹ˆ๋‹ค:

  1. ์–ด๋–ป๊ฒŒ (The How) โ€” ํƒ€๊ฒŸ์— ๋Œ€ํ•ด ์ถ”๋ก ํ•˜๊ณ , ๋ฐฉ์–ด์— ์ ์‘ํ•˜๋ฉฐ, ๋‹ค๋‹จ๊ณ„ ๊ณต๊ฒฉ์„ ์ž์œจ์ ์œผ๋กœ ์ฒด์ด๋‹ํ•˜๋Š” AI ์—์ด์ „ํŠธ
  2. ์™œ (The Why) โ€” ๋šซ๋ฆฌ์ง€ ์•Š๋Š” ๋ฐฉ์–ด ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ฌดํ•œํ•œ ์˜คํŽœ์‹œ๋ธŒ ํ”ผ๋“œ๋ฐฑ ์ œ๊ณต
  3. ํ”„๋ ˆ์ž„์›Œํฌ (The Framework) โ€” ์ „๋ฌธ์ ์ธ ๋ ˆ๋“œํŒ€ ๋ฐฉ๋ฒ•๋ก  ์•ˆ์—์„œ ์šด์˜: RoE, OPPLAN, ConOps, ๊ณต์‹ ์Šน์ธ

"์ž์œจ(Autonomous)"์ด๋ผ๋Š” ๋‹จ์–ด๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  AI ๋ณด์•ˆ ๋„๊ตฌ์™€์˜ ์ฐจ๋ณ„์ ๋„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค: ์—์ด์ „ํŠธ๋Š” ๋‹จ์ˆœํžˆ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์ ์ฒ˜๋Ÿผ ์ƒ๊ฐํ•˜๊ณ , ์ ์‘ํ•˜๊ณ , ์ง€์†ํ•ฉ๋‹ˆ๋‹ค.

"์ž ๊น, ๋„ˆํฌ๋„ ๊ฒฐ๊ตญ ๋˜‘๊ฐ™์€ ๊ฑฐ ์•„๋ƒ?"

์ข‹์€ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ์งง์€ ๋‹ต: ์•„๋‹™๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ์˜คํŽœ์‹œ๋ธŒ ์‹œํ๋ฆฌํ‹ฐ์—์„œ ๋†“์น˜๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ดํ‚น๊ณผ ๋ ˆ๋“œํŒ€ ํ…Œ์ŠคํŒ… ์‚ฌ์ด์—๋Š” ๊ฑฐ๋Œ€ํ•œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ ˆ๋“œํŒ€ ํ…Œ์ŠคํŒ…์€ ๊ทœ์ œ๋˜๊ณ , ์Šน์ธ๋œ, ์ „๋ฌธ์ ์ธ ๊ทœ์œจ์ด ์ ์šฉ๋˜๋Š” ๋ถ„์•ผ์ž…๋‹ˆ๋‹ค. ๋‹จ ํ•˜๋‚˜์˜ ํŒจํ‚ท์ด ์ „์†ก๋˜๊ธฐ ์ „์—, ๋ฌธ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ฉ์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทœ์น™์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • RoE (๊ต์ „ ๊ทœ์น™) โ€” ๋ฌด์—‡์„ ๊ฑด๋“œ๋ฆด ์ˆ˜ ์žˆ๊ณ  ์—†๋Š”์ง€๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ”์œ„, ์‹œ๊ฐ„, ๊ฒฝ๊ณ„. ์ด๊ฒƒ์„ ์œ„๋ฐ˜ํ•˜๋ฉด ๋ ˆ๋“œํŒ€์ด ์•„๋‹ˆ๋ผ ๋ฒ”์ฃ„์ž์ž…๋‹ˆ๋‹ค.
  • ConOps (์ž‘์ „ ๊ฐœ๋…) โ€” ์œ„ํ˜‘ ํ–‰์œ„์ž ํ”„๋กœํŒŒ์ผ, ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•๋ก , "์šฐ๋ฆฌ๊ฐ€ ๋ˆ„๊ตฌ๋ฅผ ๋ชจ๋ฐฉํ•˜๋Š”๊ฐ€"๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฌธ์„œ.
  • ๋””์ปจํ”Œ๋ฆญ์…˜ ํ”Œ๋žœ โ€” ๋ ˆ๋“œํŒ€ ํ™œ๋™๊ณผ ์‹ค์ œ ์œ„ํ˜‘์„ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์†Œ์Šค IP, ์œ ์ € ์—์ด์ „ํŠธ, ์‹œ๊ฐ„๋Œ€, SOC์™€์˜ ์‹ค์‹œ๊ฐ„ ๋””์ปจํ”Œ๋ฆญ์…˜ ์ฝœ์„ ์œ„ํ•œ ๊ณต์œ  ์ฝ”๋“œ.
  • OPPLAN (์ž‘์ „ ๊ณ„ํš) โ€” ์ „์ฒด ์ž„๋ฌด ๊ณ„ํš. ๋ชฉํ‘œ, ํ‚ฌ ์ฒด์ธ ๋‹จ๊ณ„, ์ˆ˜๋ฝ ๊ธฐ์ค€. ๋ชจ๋“  ํ–‰๋™์€ ๋ชฉ์ ์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.

Decepticon์€ ์ด ๋ชจ๋“  ๊ฒƒ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ์ธ๊ฒŒ์ด์ง€๋จผํŠธ๋Š” ์ ์ ˆํ•œ ๋ฌธ์„œํ™”๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ชฉํ‘œ๊ฐ€ ์ถ”์ ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ–‰๋™์ด ์ •์˜๋œ ๊ฒฝ๊ณ„ ์•ˆ์—์„œ ์šด์˜๋ฉ๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ๋Š” ๋‹จ์ˆœํžˆ ํ•ดํ‚นํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณต์‹ ์ž‘์ „ ๊ณ„ํš ์•„๋ž˜ ์šด์˜๋˜๊ณ , ๊ต์ „ ๊ทœ์น™์„ ์ค€์ˆ˜ํ•˜๋ฉฐ, ๊ฐ์‚ฌ ๊ฐ€๋Šฅํ•œ ๊ฒฐ๊ณผ๋ฌผ์„ ์ƒ์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์žฌ๋ฏธ์žˆ๋Š” PoC(Proof of Concept)๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ž์œจ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์ „๋ฌธ ๋ ˆ๋“œํŒ€ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

์™œ Decepticon์ธ๊ฐ€?

๋ชจ์˜ํ•ดํ‚น์€ ์ทจ์•ฝ์ ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๋ ˆ๋“œํŒ€์€ ๊ฐ€์žฅ ์–ด๋ ค์šด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค: ๋‹น์‹ ์˜ ์กฐ์ง์ด ์‹ค์ œ ๊ณต๊ฒฉ์—์„œ ์‚ด์•„๋‚จ์„ ์ˆ˜ ์žˆ๋Š”๊ฐ€?

๋Œ€๋ถ€๋ถ„์˜ ๋ณด์•ˆ ๋„๊ตฌ๋Š” ์Šค์บ” ๋ฆฌํฌํŠธ์—์„œ ๋ฉˆ์ถฅ๋‹ˆ๋‹ค. Decepticon์€ ์˜คํžˆ๋ ค ํ‚ฌ ์ฒด์ธ์œผ๋กœ ์‚ฌ๊ณ ํ•ฉ๋‹ˆ๋‹ค โ€” ์ •์ฐฐ, ์ต์Šคํ”Œ๋กœ์ž‡, ๊ถŒํ•œ ์ƒ์Šน, ์ธก๋ฉด ์ด๋™, ์ง€์†์„ฑ โ€” ์Šค์บ๋„ˆ๊ฐ€ ์•„๋‹Œ ์‹ค์ œ ์ ์ด ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋‹ค๋‹จ๊ณ„ ์ž‘์ „์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋„ค ๊ฐ€์ง€ ์›์น™์ด ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“œ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ด๋•๋‹ˆ๋‹ค:

Decepticon์€ ์‹ค์ œ ์ ๋Œ€์ž ํ–‰๋™์„ ๋ชจ๋ฐฉํ•ฉ๋‹ˆ๋‹ค โ€” ํฌํŠธ ๋ชฉ๋ก์— CVE ์ฒดํฌ๋ฅผ ๋Œ๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ž‘์ „ ๊ณ„ํš์„ ์ฝ๊ณ , ๋ฐœ๊ฒฌํ•œ ๊ฒƒ์— ์ ์‘ํ•˜๋ฉฐ, ์–ด๋–ค ๊ฒฝ๋กœ๊ฐ€ ์—ด๋ฆฌ๋“  ๋ชฉํ‘œ๋ฅผ ์ถ”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ๋  ๋ฐฉ์‹์œผ๋กœ ๋ฐฉ์–ด๋ฅผ ์‹œํ—˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์˜คํŽœ์‹œ๋ธŒ ๋ณด์•ˆ ๋„๊ตฌ๋Š” ๋Œ€ํ™”ํ˜•์ž…๋‹ˆ๋‹ค โ€” sliver-client, msfconsole, evil-winrm, sqlmap, impacket-psexec. ๋Œ€๋ถ€๋ถ„์˜ AI ์—์ด์ „ํŠธ๊ฐ€ subprocess.run()์œผ๋กœ ์›์ƒท ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ณ  ๋๋‚ด๋Š” ๋ฐ˜๋ฉด, Decepticon์€ ์ž๋™ ํ”„๋กฌํ”„ํŠธ ๊ฐ์ง€๊ฐ€ ์žˆ๋Š” ์˜์†์  tmux ์„ธ์…˜ ๋‚ด์—์„œ ๋ชจ๋“  ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ์‹ค์ œ๋กœ ๋„๊ตฌ๋ฅผ ์กฐ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ช…๋ น์€ ์ „์šฉ ์ž‘์ „ ๋„คํŠธ์›Œํฌ์˜ ๊ฐ•ํ™”๋œ Kali Linux ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ๊ด€๋ฆฌ ์ธํ”„๋ผ์™€ ์™„์ „ํžˆ ๊ฒฉ๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๊ต์ฐจ ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ ์—†์Œ. LangGraph๋Š” ๋„คํŠธ์›Œํฌ๊ฐ€ ์•„๋‹Œ Docker ์†Œ์ผ“์„ ํ†ตํ•ด์„œ๋งŒ ์ƒŒ๋“œ๋ฐ•์Šค์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ ์ž‘์—…์€ ํ„ฐ๋ฏธ๋„์—์„œ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. Decepticon์˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” Ink๋กœ ๊ตฌ์ถ•๋œ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ CLI์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ํƒญ๋„, ๋Œ€์‹œ๋ณด๋“œ๋„, ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ๋„ ์—†์Šต๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ๋ณด๋Š” ๊ฒƒ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ด…๋‹ˆ๋‹ค.

ํฐ ๊ทธ๋ฆผ: ๊ณต๊ฒฉ์ด ๋ฐฉ์–ด๋ฅผ ์„ฌ๊ธด๋‹ค

๋งŽ์€ "์˜คํŽœ์‹œ๋ธŒ AI" ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž˜๋ชป ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค: ๊ณต๊ฒฉ์„ ๋ชฉ์ ์ง€๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค๋Š” ๊ฒƒ.

Decepticon์€ ๋ชฉ์ ์ง€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Step 1์ž…๋‹ˆ๋‹ค.

์ด๋ฏธ ์ˆ˜๋งŽ์€ ์˜คํŽœ์‹œ๋ธŒ AI ์—์ด์ „ํŠธ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์„ธ์ƒ์— "๋ด, AI๊ฐ€ ํ•ดํ‚นํ•  ์ˆ˜ ์žˆ์–ด" ๋ฐ๋ชจ๊ฐ€ ํ•˜๋‚˜ ๋” ํ•„์š”ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์„ธ์ƒ์ด ์ง„์ •์œผ๋กœ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒƒ์€ ์˜คํŽœ์‹œ๋ธŒ ์—ญ๋Ÿ‰์„ ๋ฐฉ์–ด ์ง„ํ™”๋กœ ์ „ํ™˜ํ•˜๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค:

ํ˜„์‹ค์ ์ธ ๋ ˆ๋“œํŒ€ ์ž‘์ „์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์„ธ๊ณ„ ์ตœ๊ณ  ์ˆ˜์ค€์˜ ํ•ดํ‚น ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค. **์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค.** ์—์ด์ „ํŠธ๋ฅผ ๋ฐฐํฌํ•˜์—ฌ ์ง€์†์ ์ด๊ณ  ๋‹ค์–‘ํ•œ ๊ณต๊ฒฉ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค โ€” ๋์—†๋Š” ์‹ค์ œ ์œ„ํ˜‘ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ŠคํŠธ๋ฆผ. ๊ทธ ํ”ผ๋“œ๋ฐฑ์„ ๋ธ”๋ฃจํŒ€ ์—ญ๋Ÿ‰์œผ๋กœ ์ „ํ™˜ํ•œ๋‹ค โ€” ํƒ์ง€ ๋ฃฐ, ๋Œ€์‘ ํ”Œ๋ ˆ์ด๋ถ, ํ•˜๋“œ๋‹ ์ „๋žต. ๊ณต๊ฒฉ์ด ๋ฉˆ์ถ”์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฉ์–ด๋„ ์ง„ํ™”๋ฅผ ๋ฉˆ์ถ”์ง€ ์•Š๋Š”๋‹ค.

์ด๊ฒƒ์„ **์˜คํŽœ์‹œ๋ธŒ ๋ฐฑ์‹ (Offensive Vaccine)**์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์„ธ์š”. ์ƒ๋ฌผํ•™์  ๋ฐฑ์‹ ์ด ์•ฝํ™”๋œ ๋ณ‘์›์ฒด์— ์‹ ์ฒด๋ฅผ ๋…ธ์ถœ์‹œ์ผœ ๋ฉด์—ญ๋ ฅ์„ ๊ตฌ์ถ•ํ•˜๋“ฏ, Decepticon์€ ๋Š์ž„์—†๋Š” AI ๊ธฐ๋ฐ˜ ๊ณต๊ฒฉ์— ์ธํ”„๋ผ๋ฅผ ๋…ธ์ถœ์‹œ์ผœ ํšŒ๋ณต๋ ฅ์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

์ง„์ •ํ•œ ๊ฐ€์น˜๋Š” ๊ณต๊ฒฉ์— ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ๊ฒฌ๋ŽŒ๋‚ด๋ฉฐ ํƒ„์ƒํ•˜๋Š” ๋ฐฉ์–ด ์‹œ์Šคํ…œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

Decepticon์˜ ์ง‘๋‹จ์ง€์„ฑ ๋ชจ๋ธ์ด ์ด ๋น„์ „์„ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋ฐ˜์˜ ํ˜„์‹ค๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.

File: ko/vision/core-philosophy.mdx


title: "ํ•ต์‹ฌ ์ฒ ํ•™ (Core Philosophy)"

Decepticon์€ ์ฆ‰ํฅ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์€ ์ˆ˜๋…„๊ฐ„์˜ ์—ฐ๊ตฌ์™€ ์‹คํŒจ, ๊ทธ๋ฆฌ๊ณ  ๊ฐ’๋น„์‹ผ ๊ตํ›ˆ์œผ๋กœ๋ถ€ํ„ฐ ๋‹จ์กฐ๋œ ํ•ต์‹ฌ ์ฒ ํ•™ ์œ„์— ์„ธ์›Œ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€์—์„œ๋Š” Decepticon์ด ๋ฌด์—‡์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ์˜๋„์ ์œผ๋กœ ๋ฌด์—‡์ด ์•„๋‹Œ์ง€๋ฅผ ์ •์˜ํ•˜๋Š” ์ฒ ํ•™์  ๊ธฐ๋‘ฅ๋“ค์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ทธ๋‹ˆ์ฒ˜๊ฐ€ ์•„๋‹Œ ์ถ”๋ก  (Reasoning Over Signatures)

์ „ํ†ต์ ์ธ ๋ณด์•ˆ ๋„๊ตฌ๋“ค์€ ์‹œ๊ทธ๋‹ˆ์ฒ˜ ๊ธฐ๋ฐ˜(Signature-based) ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ (CVE) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์•Œ๋ ค์ง„ ์•…์„ฑ ํŽ˜์ด๋กœ๋“œ, ์•Œ๋ ค์ง„ ๊ณต๊ฒฉ ํŒจํ„ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋Œ€์กฐํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๊ณต๊ฒฉ์ด ์‹œ๊ทธ๋‹ˆ์ฒ˜์— ๋งค์นญ๋˜์ง€ ์•Š์œผ๋ฉด, ๊ทธ๋Œ€๋กœ ํƒ์ง€๋ฅผ ํ”ผํ•ด ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ์šด์˜ ์‹œ์Šคํ…œ์—์„œ ๊ฐ€์žฅ ์œ„ํ—˜ํ•œ ์ทจ์•ฝ์ ์€ CVE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ฑฐ์˜ ๋“ฑ๋ก๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ **๋…ผ๋ฆฌ์  ๊ฒฐํ•จ(Logical Flaw)**์œผ๋กœ, ํƒ€๊ฒŸ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์•„ํ‚คํ…์ฒ˜, ๊ทธ๋ฆฌ๊ณ  ์‹œ์Šคํ…œ์„ ๋งŒ๋“  ์ธ๊ฐ„์˜ ์‚ฌ๊ณ  ๋งน์ ์—์„œ ๋น„๋กฏ๋˜๋Š” ๊ณ ์œ ํ•œ ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค.

Decepticon์€ ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์šฐ์„  ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ์ •์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ํŒจํ„ด ๋งค์นญ ๋Œ€์‹ , ํƒ€๊ฒŸ์— ๋Œ€ํ•ด **์ถ”๋ก (Reasoning)**ํ•ฉ๋‹ˆ๋‹ค:

  • ๋ฌธ๋งฅ ์ดํ•ด (Contextual Understanding): ์„œ๋ฒ„ ์‘๋‹ต์„ ์ฝ๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ๋ฆ„์„ ํŒŒ์•…ํ•˜๋ฉฐ, ์ธ๊ฐ„์˜ ์‚ฌ๊ณ  ๋งน์ ์ด ๋งŒ๋“œ๋Š” ๊ณต๊ฒฉ ๊ฐ€๋Šฅ ์ง€์ ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
  • ๋™์  ์ „๋žต ์ˆ˜๋ฆฝ (Dynamic Strategy): ๋งค๋ฒˆ ๊ฐ™์€ ์Šค์บ” ํ”Œ๋ ˆ์ด๋ถ์„ ๋Œ๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ฐ ํƒ€๊ฒŸ ํ™˜๊ฒฝ์˜ ๊ณ ์œ ํ•œ "๋ฐ”์ด๋ธŒ"์— ๋งž๊ฒŒ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ ์‘์‹œํ‚ต๋‹ˆ๋‹ค.
  • ์‚ฌ๊ณ  ์—ฐ์‡„ ๊ณต๊ฒฉ (Chain-of-Thought Attacks): ๊ฐ ๋‹จ๊ณ„๊ฐ€ ๋‹ค์Œ ๋‹จ๊ณ„์— ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋‹ค๋‹จ๊ณ„ ๊ณต๊ฒฉ ์ฒด์ธ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹คโ€”์‹ค์ œ ์ธ๊ฐ„ ๊ณต๊ฒฉ์ž๊ฐ€ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ.

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ง€๋Šฅ (Hybrid Intelligence)

Decepticon์€ ๊ฒ€์ฆ๋œ ๋ณด์•ˆ ๋„๊ตฌ๋ฅผ AI๋กœ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋“ค์„ ์ง€๋Šฅ์ ์œผ๋กœ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‚ฌ์ด๋ฒ„ ๋ณด์•ˆ ๋ถ„์•ผ์—๋Š” ์ˆ˜์‹ญ ๋…„์— ๊ฑธ์ณ ๊ฒ€์ฆ๋œ ๊ธฐ๋ฒ•๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค: ํผ์ง•(Fuzzing), ์ •์  ๋ถ„์„, ๋„คํŠธ์›Œํฌ ์Šค์บ๋‹, ํŽ˜์ด๋กœ๋“œ ๋ณ€์ด ๋“ฑ. ์ด ๋„๊ตฌ๋“ค์€ ๊ฐ์ž์˜ ์˜์—ญ์—์„œ ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ถ”๋ก ํ•˜๊ณ , ์ ์‘ํ•˜๊ณ , ์—ฌ๋Ÿฌ ๊ณต๊ฒฉ ํ‘œ๋ฉด์— ๊ฑธ์ณ ๋งฅ๋ฝ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋Šฅ๋ ฅ์€ ์—†์Šต๋‹ˆ๋‹ค.

ํผ์ง•, ์Šค์บ๋‹, ํŽ˜์ด๋กœ๋“œ ์ƒ์„ฑ ๋“ฑโ€”์ •์˜๋œ ๋ฒ”์œ„ ๋‚ด์—์„œ ๊ตฌ์กฐํ™”๋œ ๋ฐ˜๋ณต ์ž‘์—…์— ํƒ์›”ํ•œ ๊ฒ€์ฆ๋œ ๋„๊ตฌ๋“ค. ๋ฌธ๋งฅ์„ ์ดํ•ดํ•˜๊ณ , ์ „๋žต์„ ์ ์‘์‹œํ‚ค๋ฉฐ, ๋‹ค๋‹จ๊ณ„ ์ž‘์ „์„ ๋™์ ์œผ๋กœ ์กฐ์œจํ•˜๋Š” LLM ๊ธฐ๋ฐ˜ ์ถ”๋ก  ๋Šฅ๋ ฅ.

Decepticon์˜ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๊ฐ๊ฐ์ด ๊ฐ€์žฅ ์ž˜ ํ•˜๋Š” ๊ฒƒ์„ ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค:

  • ํผ์ €๋Š” ์–ด๋–ค LLM๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์ˆ˜์ฒœ ๊ฐœ์˜ ๋ณ€ํ˜•๋œ ์ž…๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์Šค์บ๋„ˆ๋Š” ๊ธฐ๊ณ„์  ์ •๋ฐ€ํ•จ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์—ด๊ฑฐํ•˜๊ณ  ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
  • ์—์ด์ „ํŠธ๋Š” ์ด ๋„๊ตฌ๋“ค์„ ์–ธ์ œ ๋ฐฐํฌํ• ์ง€ ๊ฒฐ์ •ํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ํ•ด์„ํ•˜๋ฉฐ, ์ด๋ฅผ ์˜๋ฏธ ์žˆ๋Š” ๊ณต๊ฒฉ ์‹œํ€€์Šค๋กœ ์ฒด์ด๋‹ํ•˜๊ณ , ์ƒํ™ฉ์ด ๋ฐ”๋€Œ๋ฉด ํ”ผ๋ฒ—ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด **ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ง€๋Šฅ(Hybrid Intelligence)**์ž…๋‹ˆ๋‹ค: AI ์—์ด์ „ํŠธ์˜ ์ถ”๋ก ์ด ์ด๋„๋Š” ์ž๋™ํ™”์˜ ์ •๋ฐ€ํ•จ.

์˜คํŽœ์‹œ๋ธŒ ๋ฐฑ์‹  (The Offensive Vaccine)

๊ฐœ์š”์—์„œ ๋…ผ์˜ํ•œ ๋ฐ”์™€ ๊ฐ™์ด, Decepticon์˜ ๊ถ๊ทน์  ๋ชฉํ‘œ๋Š” ๊ณต๊ฒฉ์ด ์•„๋‹Œ ๋ฉด์—ญ์ž…๋‹ˆ๋‹ค.

์ƒ๋ฌผํ•™์  ๋ฐฑ์‹ ์ด ์•ฝํ™”๋œ ๋ณ‘์›์ฒด์— ์‹ ์ฒด๋ฅผ ๋…ธ์ถœ์‹œ์ผœ ๋ฉด์—ญ๋ ฅ์„ ๊ตฌ์ถ•ํ•˜๋“ฏ, Decepticon์€ ๋Š์ž„์—†๋Š” AI ๊ธฐ๋ฐ˜ ๊ณต๊ฒฉ์— ์ธํ”„๋ผ๋ฅผ ๋…ธ์ถœ์‹œ์ผœ ํšŒ๋ณต๋ ฅ์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด "๋˜ ํ•˜๋‚˜์˜ ์Šค์บ๋„ˆ"์™€ ๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ๋ฌดํ•œ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„: ์—์ด์ „ํŠธ๋Š” ๋™์ผํ•œ ํ”Œ๋ ˆ์ด๋ถ์„ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๋Š”, ๋‹ค์–‘ํ•˜๊ณ  ๋ฌธ๋งฅ์„ ์ธ์‹ํ•˜๋Š” ๊ณต๊ฒฉ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋์—†์ด ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ํ˜„์‹ค์ ์ธ ์œ„ํ˜‘ ์‹œ๋ฎฌ๋ ˆ์ด์…˜: ํšจ๊ณผ์ ์ธ ๋ฐฑ์‹ ์ด ๋˜๋ ค๋ฉด, ๊ณต๊ฒฉ์€ ์‹ค์ œ ์œ„ํ˜‘ ํ–‰์œ„์ž๋ฅผ ์ถฉ์‹คํžˆ ๋ชจ๋ฐฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋„๋Ÿฝ๊ฒŒ ํฌํŠธ ์Šค์บ”ํ•˜๊ณ  ๊ธฐ๋ณธ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ฒดํฌํ•˜๋Š” ๋„๊ตฌ๋Š” ๋ฐฑ์‹ ์ด ์•„๋‹ˆ๋ผ ์œ„์•ฝ(Placebo)์ž…๋‹ˆ๋‹ค.
  3. ์ธก์ • ๊ฐ€๋Šฅํ•œ ์ง„ํ™”: ๊ณต๊ฒฉ๊ณผ ๋ฐฉ์–ด์˜ ๋ชจ๋“  ์‚ฌ์ดํด์€ ์ธก์ • ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์‚ฐํ•˜์—ฌ, ๋ธ”๋ฃจํŒ€์ด ์‹œ๊ฐ„์— ๋”ฐ๋ฅธ ์ž์‹ ์˜ ์„ฑ์žฅ์„ ์ •๋Ÿ‰์ ์œผ๋กœ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ๋žŒ์ด ์ค‘์‹ฌ์— ์„œ๋‹ค (Human in the Loop)

์ž์œจ์ ์ด๋ผ๋Š” ๊ฒƒ์€ ๊ฐ๋…๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Decepticon์€ ์ธ๊ฐ„ ์˜คํผ๋ ˆ์ดํ„ฐ๋ฅผ ๊ถ๊ทน์  ๊ถŒ์œ„์žโ€”์ž‘์ „์˜ ์ง„์ •ํ•œ ์˜์‚ฌ๊ฒฐ์ •์ž์ด์ž ์ง€์„ฑ์ฒด๋กœ ์œ„์น˜์‹œํ‚ต๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ๋Š” ์ž์œจ์ ์œผ๋กœ ์ „๋žต์„ ์‹คํ–‰ํ•˜๊ณ  ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ ์‘ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ๋žŒ์€ ํ•ญ์ƒ ๊ทธ ์ž๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง: ํ˜„๋Œ€์˜ AI ์—์ด์ „ํŠธ ์„œ๋น„์Šค์ฒ˜๋Ÿผ, ์˜คํผ๋ ˆ์ดํ„ฐ๋Š” ์—์ด์ „ํŠธ์˜ ํ–‰๋™์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹คโ€”๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€, ์™œ ํ•˜๋Š”์ง€, ๋‹ค์Œ์— ๋ฌด์—‡์„ ํ•  ๊ณ„ํš์ธ์ง€.
  • ์–ธ์ œ๋“  ๊ฐœ์ž… ๊ฐ€๋Šฅ: ์˜คํผ๋ ˆ์ดํ„ฐ๋Š” ์ž‘์ „์˜ ์–ด๋–ค ์‹œ์ ์—์„œ๋“  ์—์ด์ „ํŠธ์˜ ๊ฒฐ์ •์„ ์ผ์‹œ์ •์ง€, ๋ฐฉํ–ฅ ์ „ํ™˜, ๋˜๋Š” ์ง์ ‘ ๊ฐœ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” ๋„๊ตฌ์ด๊ณ , ์ธ๊ฐ„์ด ์ „๋žต๊ฐ€์ž…๋‹ˆ๋‹ค.
  • ํ”ผ๋“œ๋ฐฑ ๊ธฐ๋ฐ˜ ํ•™์Šต: ์ธ๊ฐ„์˜ ํ”ผ๋“œ๋ฐฑ์ด ์—์ด์ „ํŠธ์˜ ํ–‰๋™์„ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜คํผ๋ ˆ์ดํ„ฐ๋Š” ๋‹จ์ˆœํžˆ ์ง€์ผœ๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ž‘์ „์„ ์ ๊ทน์ ์œผ๋กœ ๋‹ค๋“ฌ๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ž์œจ์ฃผํ–‰์ฐจ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์„ธ์š”: ์ฐจ๊ฐ€ ์šด์ „์„ ๋‹ด๋‹นํ•˜์ง€๋งŒ, ์ธ๊ฐ„์€ ์–ธ์ œ๋“  ํ•ธ๋“ค์„ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค ์ปค๋ธŒ๋ฅผ ์ง์ ‘ ๋Œ ํ•„์š”๋Š” ์—†์ง€๋งŒ, ์–ธ์ œ๋‚˜ ํ†ต์ œ๊ถŒ์€ ์‚ฌ๋žŒ์—๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค.

์€๋‹‰์ด ๊ธฐ๋ฐ˜์ด๋‹ค (Stealth as Foundation)

๋Œ€๋ถ€๋ถ„์˜ ์ž๋™ํ™”๋œ ๋ณด์•ˆ ๋„๊ตฌ๋Š” ๋ณธ์งˆ์ ์œผ๋กœ ์‹œ๋„๋Ÿฝ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ฒœ ๊ฐœ์˜ ์š”์ฒญ์„ ํผ๋ถ“๊ณ , ๋ชจ๋“  SIEM ๋ฃฐ์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๋ฉฐ, ์ž์‹ ์˜ ์กด์žฌ๋ฅผ ๋งŒ์ฒœํ•˜์— ์•Œ๋ฆฝ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ ˆ๋“œํŒ€ ํ…Œ์ŠคํŒ…์˜ ๋ชฉ์ ์„ ์™„์ „ํžˆ ๋ฌด๋ ฅํ™”ํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ ์ •๊ตํ•œ ์ ์„ ๋ธ”๋ฃจํŒ€์ด ํƒ์ง€ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ…Œ์ŠคํŒ… ๋„๊ตฌ๊ฐ€ ์‹œ์ž‘ํ•˜์ž๋งˆ์ž ๋ชจ๋“  ์•Œ๋žŒ์„ ์šธ๋ฆฐ๋‹ค๋ฉด, ํƒ์ง€ ์—ญ๋Ÿ‰์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์•Œ๋žŒ ํ”ผ๋กœ๋„๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Decepticon์€ ์€๋‹‰์„ ๊ทผ๋ณธ์ ์ธ ์„ค๊ณ„ ์š”๊ตฌ์‚ฌํ•ญ์œผ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค:

  • C2 ๊ธฐ๋ฐ˜ ์šด์˜: ์—์ด์ „ํŠธ๋Š” ์‹ค์ œ ์œ„ํ˜‘ ํ–‰์œ„์ž์ฒ˜๋Ÿผ C2(Command & Control) ์ธํ”„๋ผ๋ฅผ ํ†ตํ•ด ์šด์˜๋˜๋ฉฐ, ์•”ํ˜ธํ™”๋œ ์€๋ฐ€ํ•œ ํ†ต์‹  ์ฑ„๋„์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒŒ๋“œ๋ฐ•์Šค ์‹คํ–‰: ๋ช…๋ น์–ด๋Š” ์ƒŒ๋“œ๋ฐ•์Šค ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ์‹ค์ œ ๊ณต๊ฒฉ์ž๊ฐ€ ์‹ค์ฒœํ•˜๋Š” ์ž‘์ „ ๋ณด์•ˆ(OPSEC) ํ›ˆ๋ จ์„ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
  • ์ €์†-์ง€์† (Low-and-Slow): ํ™œ๋™์€ ์ •์ƒ ํŠธ๋ž˜ํ”ฝ ํŒจํ„ด์— ๋…น์•„๋“ค๋„๋ก ์กฐ์ ˆ๋˜๋ฉฐ, ๋ณผ๋ฅจ์œผ๋กœ ๋ฐฉ์–ด๋ฅผ ์••๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹จ์ˆœํžˆ ์ทจ์•ฝ์ ์„ ์ฐพ๋Š” ๊ฒƒ์ด ๊ฐ€์น˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์งˆ๋ฌธ์— ๋‹ตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค: ๋ธ”๋ฃจํŒ€์ด ์šฐ๋ฆฌ๋ฅผ ํƒ์ง€ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ๋Œ€์‘ํ•˜๋Š”๊ฐ€? ๋ฌด์—‡์„ ๋†“์น˜๋Š”๊ฐ€?

Decepticon์˜ ์ง‘๋‹จ์ง€์„ฑ ๋ชจ๋ธ์ด ์ „ํ†ต์ ์ธ ์˜คํ”ˆ์†Œ์Šค๋ฅผ ์–ด๋–ป๊ฒŒ ๋„˜์–ด์„œ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ๋ณด์•ˆ ์ƒํƒœ๊ณ„ ์ „์ฒด์— ์™œ ์ค‘์š”ํ•œ์ง€ ์•Œ์•„๋ณด์„ธ์š”.

File: ko/vision/target-architecture.mdx

[Binary file]


File: ko/vision/why-open-source.mdx

[Binary file]