HoneyCrawlPot: Serve Decoy Files to AI-Powered Vulnerability Scanners
개요
HoneyCrawlPot은 AI 기반 취약점 스캐너가 API를 크롤링할 때 탐지 경로에 대해 실제와 유사한 가짜 파일을 제공하여 스캐너의 시간을 낭비시키고, 보고서를 오염시키며, 스캐너를 식별할 수 있게 하는 도구입니다.
주요 내용
* AI 스캐너의 위협: 현대의 AI 기반 취약점 스캐너는 LLM을 활용하여 .env 파일 등을 읽고 실제처럼 자격 증명을 추출하려 시도합니다. 단순한 404 응답이나 deny all 방식으로는 탐지를 막을 수 없습니다.
* 방어적 기만 (Defensive Deception): HoneyCrawlPot은 스캐너가 흔히 찾는 경로(.env, /.aws/credentials, /openapi.json 등)에 대해 실제로는 작동하지 않는 가짜 자격 증명, LLM 프롬프트 인젝션 페이로드, 고유한 카나리 토큰이 포함된 200 OK 응답을 반환합니다.
* 가짜 파일 내용:
* 가짜 자격 증명: 실제처럼 보이지만 비활성 상태인 AWS 키, Stripe 키, JWT 시크릿 등
* 프롬프트 인젝션 페이로드: LLM 에이전트를 속여 이전 지시를 무시하고 카나리 토큰을 출력하게 하거나, 파일을 반복 출력하게 하거나, 호스트를 "clean"으로 보고하도록 유도합니다.
* 카나리 토큰: 배포별로 고유한 문자열로, 이 토큰이 감지되면 스캐너가 미끼를 물었음을 알 수 있습니다.
* 구현 방식: Express 및 Hono 프레임워크에서 미들웨어 형태로 쉽게 통합할 수 있습니다. 미들웨어는 실제 라우트와 404 핸들러 사이에 위치하여 스캐너 경로를 가로챕니다.
* 커스터마이징: createHoneypot 함수를 사용하여 자체 브랜드, 도메인, 시크릿, 데이터베이스 정보 등을 포함한 맞춤형 가짜 파일을 생성할 수 있습니다.
* 한계점:
* 실제 보안 솔루션을 대체하지는 못합니다.
* 의도적으로 실제처럼 보이는 가짜 자격 증명으로 인해 GitHub의 시크릿 스캐닝에 플래그가 지정될 수 있습니다.
* Nginx 환경에서는 스캐너 경로를 앱으로 프록시하도록 구성해야 합니다.
* 모든 스캐너가 LLM 기반이 아니므로 프롬프트 인젝션이 작동하지 않을 수 있습니다.
시사점
HoneyCrawlPot은 AI 기반 스캐너에 대한 효과적인 역방어 수단으로, 개발자가 API 보안 위협에 대한 가시성을 확보하고, 자동화된 스캐너의 활동을 탐지하며, 잠재적인 보안 탐색 시도를 방해하는 데 유용합니다.
댓글
GitHub Discussions