사이버 공격에 사용되는 AI
2025년경부터 보안 업계에서는 'AI를 이용한 공격'에 대한 논의가 급증하고 있습니다.
랜섬웨어 그룹이 LLM(대규모 언어 모델)을 사용하여 목표 시스템의 코드를 분석하고 맞춤형 페이로드를 생성한다는 보고가 있습니다. 피싱 메일의 정교함이 높아진 것도 AI를 이용한 문장 생성과 개인 정보 결합이 원인으로 꼽힙니다. CISA(미국 사이버보안 및 인프라 보안청) 역시 2025년 권고에서 AI 강화형 위협에 대한 경고를 발령했습니다.
공격 측면에서 AI가 사용된다면, 방어 및 검증 측면에서도 AI를 사용할 수밖에 없습니다. 이러한 생각으로 침투 테스트 엔진을 만들었습니다. 이름은 ALIEN PENTEST입니다.
기존 침투 테스트의 과제
침투 테스트(Penetration Test)는 본래 공격자의 관점에서 시스템을 검증하는 중요한 과정입니다. 하지만 실제로는 다음과 같은 문제점이 있습니다.
시간 소요: 숙련된 엔지니어가 각 도구를 수동으로 조작해야 합니다.
- 높은 비용: 전문가의 인건비가 그대로 비용이 됩니다.
- 제한적인 범위(Scope): 시간 및 예산 제약으로 인해 전면적인 검증이 어려운 경우가 많습니다.
- 재현성 편차: 담당자에 따라 놓치는 포인트가 달라집니다.
'nmap으로 스캔하고 → 취약점을 확인하고 → searchsploit으로 조사하고 → Metasploit으로 시도하는' 일련의 흐름은 구조적으로 자동화할 수 있어야 합니다.
아키텍처: PLANNER 루프
ALIEN PENTEST의 핵심은 PLANNER라고 불리는 동적 루프입니다. 이 역할을 LLM이 담당합니다.
PLANNER는 매 턴 다음과 같은 상태를 보고 판단합니다:
recon_done / scan_done 완료 플래그
- 발견된 취약점 목록 (CRITICAL/HIGH/MEDIUM/LOW)
- 확보한 쉘(Shell)의 개수와 종류
- 지금까지 시도했던 익스플로잇 결과
그리고 '다음으로 무엇을 해야 하는지'를 자연어로 출력하며, 이에 대응하는 단계별 에이전트가 실행합니다.
단계 구성 (Phase Composition)
| 단계 | 주요 도구 | 목적 |
|---|
| RECON | nmap, nuclei | 포트/서비스/OS 탐지 |
| ... | | |
고안한 포인트
1. 도구의 타임아웃 및 자식 프로세스 문제
enum4linux와 같은 Perl 스크립트는 자식 프로세스를 대량으로 생성(spawn)합니다. Go의 exec.CommandContext로 타임아웃을 설정했음에도 불구하고, 부모 프로세스를 KILL한 후에도 자식 프로세스가 파이프를 계속 잡고 있어 cmd.Run()이 영원히 블록되는 문제가 있었습니다.
Go 1.20+에서 제공하는 cmd.WaitDelay를 설정함으로써 해결했습니다.
cmd := exec.CommandContext(cmdCtx, tool, args...)
cmd.WaitDelay = 5 * time.Second // 타임아웃 후 5초 동안 파이프 강제 종료
2. 병렬 실행 제어
여러 도구를 병렬로 구동할 경우 목표 시스템에 과부하를 줄 위험이 있습니다. 이를 세마포어(Semaphore)를 사용하여 동시 실행 수를 제한했습니다.
sem: make(chan struct{}, concurrency) // 기본값 5
3. PLANNER의 컨텍스트 설계
LLM에 전달하는 컨텍스트는 '현재 무엇을 알고 있는지'와 '어떤 규칙으로 작동해야 하는지'를 명확하게 분리했습니다. 발견된 취약점들을 심각도 순으로 정렬하여 프롬프트에 포함함으로써, PLANNER가 CRITICAL한 것부터 우선적으로 공략하도록 유도하고 있습니다.
4. 스텔스 모드
지터(Jitter)와 스로틀링(Throttling)을 결합한 스텔스 모드를 구현했습니다. IDS/IPS의 탐지를 피하고 싶을 때 사용합니다.
구현 스택
백엔드: Go (Wails를 이용해 데스크톱 앱화)
- 프론트엔드: Svelte
- LLM: Claude API (Anthropic)
- 라이선스 관리: Fly.io 상에 Go 서버 + Stripe 결제
- 지원 도구: nmap, nuclei, nikto, gobuster, hydra, Metasploit, sqlmap, enum4linux, searchsploit 등 35종 이상
실제로 구동하면 어떻게 되는가
Metasploitable2(의도적으로 취약하게 구성된 VM 이미지)에 대해 실행해 보았습니다.
RECON 완료까지 약 30초
SCAN으로 27개의 취약점 감지 (CRITICAL 4개 포함)
EXPLOIT으로 root 쉘 × 2, postgres 쉘 × 1 확보
REPORT로 리스크 점수 100, SYSTEM COMPROMISED 기록
PLANNER가 "PostgreSQL 빈 비밀번호보다 vsftpd 백도어가 직접 root를 얻을 수 있다"고 판단하여 우선순위를 재조정하는 모습은 보는 이로 하여금 약간 섬뜩함을 느끼게 했다.
데모의 자세한 내용은 다른 글에 작성되어 있습니다.
맺음말
"AI가 공격해 온다면, AI로 방어하고 검증하라"가 ALIEN PENTEST의 콘셉트입니다. 현재는 Linux 환경을 위한 침투 테스트(pentest) 도구로 제공하고 있지만, 향후 Active Directory 환경이나 웹 애플리케이션에 특화된 모드도 확장할 예정입니다.
무료 기간이 3일 동안 제공되니 꼭 사용해 보시길 바랍니다.
도구에 관심이 있다면 여기서:
🔗 https://alienpentest-license.fly.dev/pricing
피드백 및 질문은 X로:
X 계정 @AlienPentest
"AI에게는 AI를" — 이것이 앞으로의 보안 엔지니어링에 대한 하나의 해답이라고 생각합니다.
토론 (Discussion)