AI 코딩 도구가 취약한 코드를 배포하고 있기 때문에 나는 Multi-Agent AI Pen Tester를 만들었다
Source: Dev.to

문제
AI 코딩 어시스턴트가 어디에나 있습니다. 개발자들은 Claude, Copilot, 그리고 Cursor를 사용해 그 어느 때보다 빠르게 코드를 배포하고 있습니다—하지만 동시에 다음과 같은 문제도 배포하고 있습니다:
- SQL 인젝션
- 하드코딩된 비밀
- 깨진 인증
- XSS
AI 도구는 작동하는 코드를 최적화하고, 보안이 강화된 코드는 최적화하지 않습니다. 일반적인 결과물:
- 로그인 폼은 작동하지만
‘ OR 1=1--와 같이 쉽게 우회될 수 있습니다. - 데모를 빠르게 작동시키기 위해 API 키를 하드코딩합니다.
- 명시적으로 요청하지 않는 한 입력 검증이 없습니다.
대부분의 개인 개발자와 소규모 팀은 침투 테스트 전문가를 고용하지 않습니다. 기본적인 펜테스트는 $500–$2,000 정도 들고, 예약까지 몇 주가 걸릴 수 있어 취약점이 그대로 배포됩니다.
Introducing VulnSwarm
VulnSwarm은 실제 침투 테스트 팀을 모방하는 특화된 AI 에이전트 군집을 배치합니다. 하나의 거대한 모델 대신, 각 에이전트는 고유한 역할을 가집니다:
| 에이전트 | 역할 |
|---|---|
| 🔭 Recon Agent | 공격 표면을 매핑하고, 진입점을 식별하며, 기술 스택을 파악하고, 가장 위험도가 높은 영역을 표시합니다. |
| 💥 Exploit Agent | Recon 데이터를 활용해 실제로 악용 가능한 부분을 판단합니다. 각 발견 항목을 심각도, 악용 가능성, 영향(CVSS와 유사한 점수)으로 평가합니다. |
| 🗡️ Red Team Agent | 공격자처럼 사고합니다. 취약점을 연결해 현실적인 공격 경로를 만들고 최악의 시나리오를 찾습니다. |
| 🛡️ Blue Team Agent | 방어자 역할을 합니다. 구체적인 코드 수준의 수정안을 작성하고, 노력 대비 효과를 기준으로 우선순위를 정합니다. |
| 📄 Report Agent | 전체 위험 점수, 심각도 구분, 그리고 개선 로드맵을 포함한 전문 침투 테스트 보고서로 모든 내용을 종합합니다. |
에이전트들은 서로 debate합니다: Red Team은 Exploit 분석에 도전하고, Blue Team은 심각도 평가에 이의를 제기하며, Report Agent는 미묘한 결과를 통합합니다.
OWASP Juice Shop 테스트
수동 테스트 (≈30 초)
- 이메일 필드에
' OR 1=1--를 입력해 관리자 계정으로 로그인했습니다. /administration에서 관리자 패널에 접근했습니다.- 사용자 이메일 주소 21개를 수집했습니다.
- 고객 피드백에서 노출된 암호화 지갑 시드 구문을 발견했습니다.
VulnSwarm 자동 탐지 결과 (CPU 전용 VPS에서 llama3.2:3b 로 약 15 분)
| 심각도 | 발견 내용 | CVSS |
|---|---|---|
| 🔴 Critical | 파일 업로드 엔드포인트 – 악성 코드를 주입하거나 데이터를 유출할 수 있음. | 9.0 |
| 🔴 Critical | 검증되지 않은 API 엔드포인트 – 입력 검증 및 정제가 부족함. | 9.0 |
| 🟠 Medium | Content‑Security‑Policy 누락 | 5.3 |
| 🟠 Medium | Strict‑Transport‑Security 누락 | 5.3 |
| 🟠 Medium | X‑XSS‑Protection 누락 | 5.3 |
| 🟠 Medium | Referrer‑Policy 누락 | 5.3 |
| 🟠 Medium | Permissions‑Policy 누락 | 5.3 |
qwen2.5:14b 나 Claude 와 같은 대형 모델도 제가 수동으로 찾은 SQL 인젝션을 탐지합니다.
멀티‑에이전트 아키텍처 작동 방식
Security analysis benefits from multiple perspectives arguing with each other, just like a real security team.
Your Code/App
│
▼
┌──────────┐ ┌───────────┐ ┌──────────┐ ┌─────────┐
│ Recon │───▶│ Exploit │───▶│ Red Team │───▶│ Blue │
│ Agent │ │ Agent │ │ Agent │ │ Team │
└──────────┘ └───────────┘ └──────────┘ └────┬────┘
│
▼
┌──────────┐
│ Report │
│ Agent │
└──────────┘
- Recon은 원시 코드/앱만 볼 수 있습니다.
- Exploit은 리콘 데이터만 볼 수 있습니다(수정 사항 없음).
- Red Team은 익스플로잇 결과만 볼 수 있습니다(수정 사항 없음).
- Blue Team은 공격 경로만 볼 수 있습니다(리콘 없음).
- Report는 모든 것을 보고 개발자 친화적인 문서를 생성합니다.
VulnSwarm 직접 실행하기
VulnSwarm는 Claude, GPT‑4o, Gemini, OpenRouter, 그리고 Ollama를 지원합니다. 무료로 로컬에서 실행하려면:
# Clone the repo
git clone https://github.com/aaronsood/VulnSwarm.git
cd VulnSwarm
# Install Python dependencies
pip install -r requirements.txt
로컬 모델 가져오기 (선택 사항)
ollama pull llama3.2:3b
스캐너 시작
python -m cli.main
테스트 대상 실행 (OWASP Juice Shop)
docker run --rm -p 3000:3000 bkimminich/juice-shop
그런 다음 VulnSwarm를 http://localhost:3000/에 지정하세요.
웹 스캔은 기본적으로 로컬호스트 전용이며—VulnSwarm는 당신이 소유하지 않은 어떤 것도 건드리지 않습니다.
아직 하지 못하는 것
- 이것은 첫 번째 검토이며, 전문 보안 팀을 대체하는 것이 아닙니다.
- 깊은 비즈니스 로직 이해가 필요한 제로데이 또는 새로운 공격 체인을 발견하지 못합니다.
- 작은 모델은 큰 모델이 포착하는 발견을 놓칩니다.
- CI/CD 또는 GitHub Actions 통합이 없습니다 (로드맵 항목).
로드맵에는 더 깊은 모델 지원, CI/CD 플러그인 및 보다 풍부한 보고가 포함됩니다.
큰 그림
AI를 사용해 취약점을 찾는 것은 시적이다: 코드를 작성할 수 있는 기계가 더 안전한 코드를 작성하도록 돕는다. VulnSwarm은 가장 흔한 고통점—보안 검토 없이 배포하고 예산도 없는 개발자 99 %—을 해결하기 위해 저렴하고 자동화된 “첫 번째 방어선”을 제공한다.
VulnSwarm
AI가 도입한 도전과 책임.
AI 코딩 도구가 소프트웨어를 작성하는 기본 방식이 되면서, AI 보안 도구도 그 속도를 따라가야 합니다.
프로젝트 소개
- 오픈 소스 – MIT 라이선스
- 초기 단계 – 특히 보안 또는 AI 도구 분야의 기여자를 환영합니다
저장소
CPU 전용 VPS와 의도적으로 해킹 가능한 웹 앱, 그리고 과도한 커피를 사용해 토요일에 구축하고 테스트했습니다.