2026년 11월 3일 AI 소식, 지금 바로 확인해보세요.

매일 쉽게 읽는 AI 소식

← 개발·바이브코딩

cloudflare/security-audit-skill

AI가 찾은 보안 구멍, 진짜일까

코딩 AI가 내 코드의 보안 구멍을 여섯 단계로 찾고, 찾은 것을 처음 보는 다른 AI가 반박해 본 뒤 기계가 읽는 결과 파일과 보고서로 남겨요

★ 57,789 · 이번 주 +9,155에이전트 스킬 · MIT확인 2026-11-03

코딩 AI에게 "보안 점검해 줘"라고 하면 그럴듯한 위험 목록이 금방 나와요. 곤란한 건 그중 무엇이 진짜인지 가리기 어렵다는 점이에요. 찾은 AI가 자기 발견을 스스로 맞다고 채점하니까요.클라우드플레어가 공개한 이 스킬은 찾는 AI와 확인하는 AI를 반드시 나누고, 반박을 견딘 것만 '확정'으로 남겨요. 클라우드플레어의 취약점 찾기 시스템이 이 스킬에서 출발했고, 이번 주 깃허브에서 별을 9,155개 받았어요.

한 AI가 찾고 채점까지 하면

찾은 AI가 스스로 채점해요자기 발견을 다시 의심하지 않으니, 진짜와 헛짚은 것이 한 목록에 섞여요
빠진 방어 하나를 구멍이라 불러요앞의 방어가 이미 막고 있는데도 뒤쪽 방어가 없다고 위험으로 올리면 목록만 길어져요
한 번 돌리고 끝내요만든 쪽 시험에서 한 번 실행은 여러 번 돌려 찾은 전체의 대략 절반을 찾았대요

README가 꼽은 설계 원칙을 거꾸로, 흔히 생기는 문제로 그려 본 예시예요. 실제 점검 결과는 코드와 실행 환경에 따라 달라져요.

한눈에

무엇인가요

클라우드플레어 방식의 출발점이에요. 클라우드플레어 블로그 글 '나만의 취약점 하네스 만들기'에 나온 시스템이 이 스킬에서 시작됐어요. 그 시스템은 회사 전체를 도는 큰 구조로 자랐고, 이 저장소는 저장소 하나를 점검하는 처음 버전이에요.여러 AI가 역할을 나눠요. 구조를 파악하는 AI, 구멍을 찾는 AI, 빠진 곳을 따지는 AI, 찾은 걸 반박하는 AI가 서로 떨어져서 일해요. 찾은 AI는 절대 자기 발견을 확인하지 않아요.결과는 기계가 읽는 파일로 나와요. 모든 후보는 확정(confirmed), 검증 필요(needs_validation), 기각(rejected) 셋 중 하나로 findings.json 에 적히고, 정해진 형식에 맞는지 검사 프로그램이 확인해요. 사람이 읽을 보고서는 그 기록에서 뽑아요.

함께 쓰는 도구 · 하위 에이전트를 병렬로 띄울 수 있는 코딩 에이전트(클로드 코드 등)

이런 분께

  • 직접 만든 서비스나 앱의 코드를 출시 전에 점검하고 싶은 개발자
  • 보안 담당자가 따로 없는 작은 팀
  • AI로 보안 점검을 어떻게 짜는지 구조를 배우고 싶은 분

어떻게 작동하나요

반박 검증 말고도 README가 밝힌 설계 원칙이 넷 더 있어요.확정에는 증거가 필요해요. 코드 속 흐름을 입구부터 끝까지 짚고 실제로 재현한 결과가 있어야 확정이에요. 막힌 부분이 남으면 그 사실 하나를 적고 검증 필요로 둬요.심각도는 피해로 매겨요. 체크리스트와 다르다고 위험한 게 아니라, 일어날 가능성과 피해 크기를 함께 봐요.방어 하나 빠진 건 구멍이 아니에요. 앞의 방어가 공격을 막고 있으면, 뒤 방어가 없는 건 '강화 메모'로 따로 적어요.여러 번 돌릴수록 더 찾아요. 자체 시험에서 한 번 실행은 여러 번 실행해 찾은 전체의 대략 절반을 찾았다고 해요. 같은 저장소를 다시 돌리면 이전 기록을 이어받아 빈 곳과 바뀐 코드를 중심으로 봐요.

할 수 있는 일

구조 파악코드 구조, 신뢰 경계, 입력이 들어오는 곳을 architecture.md 와 점검 장부(coverage-ledger.json)에 정리해요
나눠서 구멍 찾기장부의 단위마다 따로 띄운 찾기 AI가 맡고, 비평 AI가 빠진 곳을 짚어요
반박 검증후보마다 처음 보는 검증 AI가 반박을 시도하고, 남는 것만 확정해요
분야별 점검 목록웹 인증, AI와 프롬프트 주입, 공급망, 클라우드 배포, 모바일·데스크톱 앱 등 분야별 공격 유형 문서가 들어 있어요
기계가 읽는 결과findings.json 을 정해진 형식으로 쓰고, 의존성 없는 검사 프로그램으로 확인해요
보고서 세 개REPORT.md, 자세한 발견(FINDINGS-DETAIL.md), 검증이 더 필요한 목록(NEEDS-VALIDATION.md)을 따로 만들어요

바로 쓸 수 있나요

개발자 필요

필요한 것도구 사용과 병렬 하위 에이전트를 지원하는 코딩 에이전트, Node, 그리고 점검 대상 코드를 돌릴 때 쓸 운영체제 수준의 격리 환경(외부 네트워크 차단, 정해진 폴더에만 쓰기)

비용저장소는 무료(MIT). 여러 에이전트를 띄우므로 쓰는 코딩 에이전트 사용량은 따로 들어요

시작하기

  1. 스킬 설치

    스킬 CLI로 이 프로젝트에 설치해요. 모든 프로젝트에서 쓰려면 끝에 --global 을 붙여요

    npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit
  2. 점검할 코드에서 에이전트 열기

    점검할 코드 폴더에서 코딩 에이전트를 실행해요

  3. 보안 감사 요청

    요청이 맞으면 스킬이 저절로 켜져요. 결과 폴더를 정하지 않으면 홈 폴더의 security-audit-skill/<저장소 이름>/run-<번호> 에 저장돼요

    security audit this codebase
처음 해 볼 한마디

do a security review, output to ~/audits/my-project

결과를 저장할 폴더까지 정해 주는 README 예시예요. 보안 질문만 하거나 일부만 물으면 보고서 없이 안내하는 방식으로 답해요.

여섯 단계를 지나 findings.json 과 보고서로

security-audit내 가게 주문 서버 점검 중
코드 읽는 중

src/ api/orders.ts api/upload.ts api/webhook.ts admin/export.ts auth/session.ts

만들어진 파일architecture.mdcoverage-ledger.json
단위 1 · 주문 조회 API아직
단위 2 · 파일 올리기아직
단위 3 · 결제 알림 받기아직
찾기 AI 1
다른 사람 주문도 열리는 것 같음단위 1 · api/orders.ts
찾기 AI 2
파일 이름으로 폴더 밖에 쓸 수 있을지도단위 2 · api/upload.ts
찾기 AI 3
알림의 서명을 확인하지 않는 듯단위 3 · api/webhook.ts
비평 AI
장부에 없는 입구가 있어요단위 4 추가 · admin/export.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": … } }
]
$ node validate-findings.cjs findings.json
PASS: 3 findings valid

api/orders.ts 의 코드 위치와 재현 결과찾지도, 검증하지도 않은 새 AI가 지금 코드에서 다시 확인

새 확인 AI
확인 결과
코드 위치가 지금 코드와 맞음맞음
재현 결과가 주장과 같음맞음
심각도가 드러난 피해보다 크지 않음맞음

기록을 크게 바꿔야 하면, 그 수정안도 또 다른 새 AI가 다시 확인해요

만들어진 보고서REPORT.mdFINDINGS-DETAIL.mdNEEDS-VALIDATION.md
REPORT.md · 확정된 문제
심각도제목관찰 결과
high다른 사람 주문도 열림남의 주문 내용이 응답에 나옴
NEEDS VALIDATION
제목막힌 사실
알림 서명 확인 없음배포 설정 확인 필요

검증 필요 항목은 심각도 없이 따로 적고, 기각된 것은 문제로 쓰지 않아요

1 정찰코드 구조와 외부 입력이 들어오는 곳을 지도로 그리고, 점검할 단위를 장부에 적어요

작동 순서를 보여 주려고 저희가 그린 예시예요. 판정 이름과 파일 이름, 기록 칸, 검사 프로그램의 통과 문구는 저장소의 형식을 따랐고, 점검 대상과 결과 내용은 지어낸 예예요. 실제 결과는 코드와 실행 환경에 따라 달라져요.

비슷한 도구

이 스킬은 내가 만든 서비스의 코드 자체에서 구멍을 찾는 쪽이에요(각 README 기준).

코딩 AI에 개발팀 업무 방식 통째로 넣기안에 든 AgentShield는 내 코드가 아니라 에이전트 설정(프롬프트, 훅, 권한, 비밀값 노출)을 점검affaan-m/ECC

주의할 점

  1. 한 번 돌려서 다 찾는 도구가 아니에요. README에 따르면 자체 시험에서 한 번 실행은 여러 번 실행해 찾은 전체의 대략 절반을 찾았어요
  2. 격리 환경(외부 네트워크 차단, 정해진 폴더에만 쓰기)이 없으면 대상 코드를 실행하지 않고 해당 후보를 검증 필요로 남겨요. 대상 코드를 실제로 돌리는 점검은 격리 환경을 갖춘 뒤에 하세요
  3. 여러 AI를 띄워 단계마다 따로 확인하는 구조라 코딩 에이전트 사용량이 그만큼 들어요
  4. 2026-11-03 기준 마지막 반영이 2026-09-14이고, 열린 이슈와 수정 요청이 111개예요

더 보기

클라우드플레어가 공개했어요. 질문과 의견은 README에 적힌 security-ai-research@cloudflare.com 으로 받는대요.

낯선 말

  1. 보안 감사 · 코드에 공격받을 수 있는 구멍이 있는지 체계적으로 찾아보는 점검이에요
  2. 취약점 · 공격자가 악용할 수 있는 코드나 설정의 약한 곳이에요
  3. 신뢰 경계 · 믿을 수 있는 영역과 외부 입력이 만나는 지점이에요. 구멍이 잘 생기는 곳이죠
  4. JSON · 프로그램이 읽기 쉽게 이름과 값을 정해진 모양으로 적는 글 형식이에요
  5. 샌드박스 · 프로그램을 바깥과 막힌 공간에 가둬 실행하는 격리 환경이에요
  6. 프롬프트 주입 · AI가 읽는 글 속에 몰래 지시를 넣어 AI를 엉뚱하게 움직이게 하는 공격이에요

댓글

    AI 답은 참고 자료예요. 법·세금·돈·건강처럼 삶에 큰 영향을 주는 일에서는 AI 답이 정답이 될 수 없어요. 최종 판단은 전문가나 공식 기관에서 확인하세요.

    놓치면 아쉬운 AI 지원금·써먹기,
    아침에 먼저 받아 보세요

    마감 임박 AI 지원사업과 바로 따라 하는 가이드만 골라 보내요.

    개인정보·마케팅 수신 동의 전문 보기