AI가 찾은보안 구멍,진짜일까
프로용깃허브 주간 인기 TOP10© AIKOREACLUBcloudflare/security-audit-skill
AI가 찾은 보안 구멍, 진짜일까
코딩 AI가 내 코드의 보안 구멍을 여섯 단계로 찾고, 찾은 것을 처음 보는 다른 AI가 반박해 본 뒤 기계가 읽는 결과 파일과 보고서로 남겨요
코딩 AI에게 "보안 점검해 줘"라고 하면 그럴듯한 위험 목록이 금방 나와요. 곤란한 건 그중 무엇이 진짜인지 가리기 어렵다는 점이에요. 찾은 AI가 자기 발견을 스스로 맞다고 채점하니까요.클라우드플레어가 공개한 이 스킬은 찾는 AI와 확인하는 AI를 반드시 나누고, 반박을 견딘 것만 '확정'으로 남겨요. 클라우드플레어의 취약점 찾기 시스템이 이 스킬에서 출발했고, 이번 주 깃허브에서 별을 9,155개 받았어요.
한 AI가 찾고 채점까지 하면
README가 꼽은 설계 원칙을 거꾸로, 흔히 생기는 문제로 그려 본 예시예요. 실제 점검 결과는 코드와 실행 환경에 따라 달라져요.
한눈에
무엇인가요
클라우드플레어 방식의 출발점이에요. 클라우드플레어 블로그 글 '나만의 취약점 하네스 만들기'에 나온 시스템이 이 스킬에서 시작됐어요. 그 시스템은 회사 전체를 도는 큰 구조로 자랐고, 이 저장소는 저장소 하나를 점검하는 처음 버전이에요.여러 AI가 역할을 나눠요. 구조를 파악하는 AI, 구멍을 찾는 AI, 빠진 곳을 따지는 AI, 찾은 걸 반박하는 AI가 서로 떨어져서 일해요. 찾은 AI는 절대 자기 발견을 확인하지 않아요.결과는 기계가 읽는 파일로 나와요. 모든 후보는 확정(confirmed), 검증 필요(needs_validation), 기각(rejected) 셋 중 하나로 findings.json 에 적히고, 정해진 형식에 맞는지 검사 프로그램이 확인해요. 사람이 읽을 보고서는 그 기록에서 뽑아요.
함께 쓰는 도구 · 하위 에이전트를 병렬로 띄울 수 있는 코딩 에이전트(클로드 코드 등)
이런 분께
- 직접 만든 서비스나 앱의 코드를 출시 전에 점검하고 싶은 개발자
- 보안 담당자가 따로 없는 작은 팀
- AI로 보안 점검을 어떻게 짜는지 구조를 배우고 싶은 분
어떻게 작동하나요
반박 검증 말고도 README가 밝힌 설계 원칙이 넷 더 있어요.확정에는 증거가 필요해요. 코드 속 흐름을 입구부터 끝까지 짚고 실제로 재현한 결과가 있어야 확정이에요. 막힌 부분이 남으면 그 사실 하나를 적고 검증 필요로 둬요.심각도는 피해로 매겨요. 체크리스트와 다르다고 위험한 게 아니라, 일어날 가능성과 피해 크기를 함께 봐요.방어 하나 빠진 건 구멍이 아니에요. 앞의 방어가 공격을 막고 있으면, 뒤 방어가 없는 건 '강화 메모'로 따로 적어요.여러 번 돌릴수록 더 찾아요. 자체 시험에서 한 번 실행은 여러 번 실행해 찾은 전체의 대략 절반을 찾았다고 해요. 같은 저장소를 다시 돌리면 이전 기록을 이어받아 빈 곳과 바뀐 코드를 중심으로 봐요.
할 수 있는 일
바로 쓸 수 있나요
필요한 것도구 사용과 병렬 하위 에이전트를 지원하는 코딩 에이전트, Node, 그리고 점검 대상 코드를 돌릴 때 쓸 운영체제 수준의 격리 환경(외부 네트워크 차단, 정해진 폴더에만 쓰기)
비용저장소는 무료(MIT). 여러 에이전트를 띄우므로 쓰는 코딩 에이전트 사용량은 따로 들어요
시작하기
- 스킬 설치
스킬 CLI로 이 프로젝트에 설치해요. 모든 프로젝트에서 쓰려면 끝에 --global 을 붙여요
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit - 점검할 코드에서 에이전트 열기
점검할 코드 폴더에서 코딩 에이전트를 실행해요
- 보안 감사 요청
요청이 맞으면 스킬이 저절로 켜져요. 결과 폴더를 정하지 않으면 홈 폴더의 security-audit-skill/<저장소 이름>/run-<번호> 에 저장돼요
security audit this codebase
do a security review, output to ~/audits/my-project
결과를 저장할 폴더까지 정해 주는 README 예시예요. 보안 질문만 하거나 일부만 물으면 보고서 없이 안내하는 방식으로 답해요.여섯 단계를 지나 findings.json 과 보고서로
src/ api/orders.ts api/upload.ts api/webhook.ts admin/export.ts auth/session.ts
다른 사람 주문도 열림새 검증 AI가 막으려 했지만, 로그인한 다른 계정으로 재현됨
confirmed알림 서명 확인 없음코드만으로는 판단 불가. 배포 설정에서 켜져 있는지 확인해야 함
needs_validation파일 이름으로 폴더 밖 쓰기앞 단계에서 파일 이름을 정리해 막혀 있음
rejected찾은 AI는 자기 후보를 검증하지 않아요
[
{ "verdict": "confirmed",
"fingerprint": "api/orders.ts:order-owner-check",
"title": "다른 사람 주문도 열림",
"trace": [ entrypoint, propagation, sink ],
"severity": { "overall_severity": "high" … } },
{ "verdict": "rejected",
"fingerprint": "api/upload.ts:path-traversal",
"reason": "앞 단계에서 파일 이름을 정리함" … },
{ "verdict": "needs_validation",
"fingerprint": "api/webhook.ts:signature-check",
"blockers": [ "배포 설정의 서명 검사 여부" ],
"validation_plan": { "deployment": … } }
]
PASS: 3 findings valid
api/orders.ts 의 코드 위치와 재현 결과찾지도, 검증하지도 않은 새 AI가 지금 코드에서 다시 확인
새 확인 AI기록을 크게 바꿔야 하면, 그 수정안도 또 다른 새 AI가 다시 확인해요
REPORT.md · 확정된 문제
NEEDS VALIDATION
검증 필요 항목은 심각도 없이 따로 적고, 기각된 것은 문제로 쓰지 않아요
1 정찰코드 구조와 외부 입력이 들어오는 곳을 지도로 그리고, 점검할 단위를 장부에 적어요
작동 순서를 보여 주려고 저희가 그린 예시예요. 판정 이름과 파일 이름, 기록 칸, 검사 프로그램의 통과 문구는 저장소의 형식을 따랐고, 점검 대상과 결과 내용은 지어낸 예예요. 실제 결과는 코드와 실행 환경에 따라 달라져요.
비슷한 도구
이 스킬은 내가 만든 서비스의 코드 자체에서 구멍을 찾는 쪽이에요(각 README 기준).
주의할 점
- 한 번 돌려서 다 찾는 도구가 아니에요. README에 따르면 자체 시험에서 한 번 실행은 여러 번 실행해 찾은 전체의 대략 절반을 찾았어요
- 격리 환경(외부 네트워크 차단, 정해진 폴더에만 쓰기)이 없으면 대상 코드를 실행하지 않고 해당 후보를 검증 필요로 남겨요. 대상 코드를 실제로 돌리는 점검은 격리 환경을 갖춘 뒤에 하세요
- 여러 AI를 띄워 단계마다 따로 확인하는 구조라 코딩 에이전트 사용량이 그만큼 들어요
- 2026-11-03 기준 마지막 반영이 2026-09-14이고, 열린 이슈와 수정 요청이 111개예요
더 보기
클라우드플레어가 공개했어요. 질문과 의견은 README에 적힌 security-ai-research@cloudflare.com 으로 받는대요.
클라우드플레어 블로그: 나만의 취약점 하네스 만들기 ↗스킬 CLI ↗결과 형식(report-schema.json) ↗깃허브 저장소 ↗
낯선 말
- 보안 감사 · 코드에 공격받을 수 있는 구멍이 있는지 체계적으로 찾아보는 점검이에요
- 취약점 · 공격자가 악용할 수 있는 코드나 설정의 약한 곳이에요
- 신뢰 경계 · 믿을 수 있는 영역과 외부 입력이 만나는 지점이에요. 구멍이 잘 생기는 곳이죠
- JSON · 프로그램이 읽기 쉽게 이름과 값을 정해진 모양으로 적는 글 형식이에요
- 샌드박스 · 프로그램을 바깥과 막힌 공간에 가둬 실행하는 격리 환경이에요
- 프롬프트 주입 · AI가 읽는 글 속에 몰래 지시를 넣어 AI를 엉뚱하게 움직이게 하는 공격이에요
댓글
AI 답은 참고 자료예요. 법·세금·돈·건강처럼 삶에 큰 영향을 주는 일에서는 AI 답이 정답이 될 수 없어요. 최종 판단은 전문가나 공식 기관에서 확인하세요.

