목차 열기
01. 아키텍처
AI Attack Agent는 에이전트 · 스웜 · 시뮬레이션 세 계층으로 구성됩니다. 각 계층은 서로 다른 요구사항을 가지며 그에 맞는 설계 원칙을 따릅니다. 에이전트는 서로 독립적으로 실행되며 개수는 자유롭게 설정합니다 — 독립 실행이 핵심이고, 몇 개를 띄울지는 구성에 따라 조정합니다.
계층 구조
Attack swarm architecture
문서 이미지를 큰 화면으로 확인합니다.
시뮬레이션 계층 (오른쪽): 여러 독립 PC가 각자의 스웜을 돌림, PC 간 통신 없음. 스웜 계층 (PC 1 내부): 한 PC의 에이전트들 + Event Bus + LLM Coordinator + Strategy Store + Monitor/Audit. 에이전트 계층 (파란색): 결정론 FlowState 상태머신, LLM 미사용. LLM은 스웜 레벨 전략 조정에만 관여.
계층별 설계 원칙
| 계층 | 핵심 요구 | 설계 선택 | LLM 사용 |
|---|---|---|---|
| 에이전트 | 재현 가능성·디버깅 | 비결정론 배제, 그래프 상태머신 | ❌ |
| 스웜 | 방어 반응 적응 | LLM + 비대칭 읽기/쓰기 | ✅ |
| 시뮬레이션 | 현실적 분산 | PC 간 통신 없음 | ❌ |
원칙: "작은 결정(에이전트)은 결정론, 큰 결정(스웜)은 LLM". 이 분리가 반응 속도와 유연성을 동시에 확보합니다.
주요 컴포넌트
에이전트 계층 컴포넌트
| 컴포넌트 | 역할 |
|---|---|
| 상태머신 엔진 | 단계별 상태 전이·인터럽트 복귀 제어 |
| 브라우저 워커 | 브라우저 조작, 마우스 primitive 제공 |
| 궤적 합성기 | 마우스 이동 경로 곡선 생성 |
| 챌린지 풀이기 | 보안 챌린지 자동 통과 |
| 요소 탐색기 | DOM 요소 다중 셀렉터 기반 식별 |
| 네트워크 관찰자 | HTTP 응답 실시간 수집 |
| 증거 수집기 | 스크린샷·네트워크 트레이스·콘솔 로그 저장 |
스웜 계층 컴포넌트
| 컴포넌트 | 역할 |
|---|---|
| 이벤트 버스 | 구독자별 독립 큐로 이벤트 배포 |
| 공유 전략 저장소 | 스웜 전체 전략 상태 보관 |
| LLM 코디네이터 | LLM 기반 전략 조정 결정 |
| 모니터 대시보드 | 실시간 터미널 대시보드 |
| 런처 | 스웜 전체 생명주기 관리 |
데이터 흐름
에이전트 내부 흐름
사용자 시작 명령
↓
[런처] 세션 파일 로드, 브라우저 컨텍스트 생성
↓
[상태머신] 초기화 → 예매 진입 → 대기열 → ... → 종료
↓
[브라우저 워커] 마우스·클릭·대기 primitive
↓
[궤적 합성기] 이동 경로 생성
↓
[요소 탐색기] 대상 UI 요소 식별
↓
[네트워크 관찰자] 응답 코드 감시
↓
각 단계에서 이벤트 로그·스냅샷 생성
스웜 전체 흐름
[에이전트 1~N] 이벤트 발행 (좌석 확보, 차단, 챌린지 결과 등)
↓
[이벤트 버스] 구독자별 독립 큐로 분기
├─→ [코디네이터] 누적 이벤트 → LLM 판단 → 전략 갱신
├─→ [모니터] 실시간 대시보드 갱신
└─→ [감사 로거] 구조화된 이벤트 로그 저장
↓
[공유 전략 저장소] 에이전트가 결정 지점에서 최신 전략 읽기
왜 이렇게 나누었나
에이전트 계층: 결정론
- 수백 번 돌려도 재현되는 결과가 필요 (디버깅·개선 가능성)
- 실패 시 "어느 단계에서 어떤 이유로 멈췄나"가 명확해야 함
- 그래서 그래프 기반 상태머신으로 구현, 상태 값만 보고 다음 동작을 결정
스웜 계층: LLM 기반 유연성
- 방어의 반응에 실시간 적응 필요
- 어떤 구역이 계속 차단되면 다른 구역을 시도해야 하는데, 이런 판단은 규칙으로 미리 다 적어두기 어려움
- 그래서 LLM 코디네이터가 선발대 결과를 보고 후발대 전략을 동적으로 조정
시뮬레이션 계층: PC 간 독립
- 실제 공격은 서로 다른 IP·네트워크·기기에서 독립적으로 들어옴 (중앙집권 봇넷이 아님)
- 그래서 PC 간 통신을 일부러 없애서 "여러 독립 공격원 동시 진입" 상황 재현
- 방어 시스템이 세션 상관관계를 어떻게 분해하는지 측정
참조
- 02-workflow-states — 에이전트 상태머신 상세
- 06-swarm-infrastructure — 스웜 인프라 세부
- 07-llm-coordinator — LLM 코디네이터 동작