CPGuard — 찾아낸 취약점을 AI가 직접 실행으로 검증까지 해주는 보안 스캐너
목차
코드에 숨어 있는 보안 취약점을 찾아주는 스캐너는 많지만, 찾은 게 진짜인지까지 확인해주는 도구는 드뭅니다. 패턴 매칭으로는 못 찾고, AI로 검증까지 붙인 오픈소스 도구가 있어 소개합니다. 한국 개발자가 만들었어요.
이게 뭐에요?
CPGuard는 코드 보안 분석 도구입니다. 이름은 CPG(Code Property Graph) + Guard의 합성어예요. 정규식 패턴만 뒤지는 기존 스캐너와 달리, 코드를 그래프(AST·제어 흐름·정의-사용·호출 관계)로 바꿔 데이터가 어디서 들어와(Source) 어디서 실행되는지(Sink) 함수 경계를 넘나들며 추적하는 taint analysis 방식입니다.
지원 언어는 JavaScript·TypeScript·PHP·Python·Java·Kotlin·Go·Ruby·C/C++·Swift·C#까지 11개 언어, taint 규칙은 78개입니다. SQL 인젝션·명령어 인젝션·XSS·경로 순회·SSRF 같은 고전적인 웹 취약점부터 버퍼 오버플로우까지 커버하고, 하드코딩된 시크릿 키·개인정보·약한 해시 같은 패턴 탐지도 병행합니다.
데스크톱 앱으로도, CI의 GitHub Action으로도, CLI로도 돌릴 수 있고, 한국어·영어 토글도 됩니다. Apache 2.0 오픈소스라 마음대로 가져다 쓸 수 있어요.
뭐가 재밌어요?
- 진짜 핵심: AI 에이전트가 동적으로 실증합니다. 이번에 붙은 MCP 서버 덕분에 Claude Code·Cursor 같은 AI 코딩 에이전트가 스캔 → 근거(데이터 흐름) 조회 → 규칙 설명 → 실제 실행으로 확인까지 할 수 있어요. 정적 분석이 답 못 하는 "이거 진짜 뚫리나요?"에 답하는 구조입니다. 스캐너가 페이로드와 오라클(싱크가 실행됐음을 증명하는 관찰 지표)을 제시하면, 에이전트가 실제로 쏴보고 돌아온 값을 스캐너가 판정해 CONFIRMED / LIKELY / NOT_REPRODUCED / FALSE_POSITIVE 중 하나로 verdict를 냅니다.
- 오탐과의 전쟁을 수치로 공개. OWASP 벤치마크 기준으로 점수를 개선해온 과정을 릴리스 노트에 다 밝혔습니다. Java 0.80 → 0.83, Go 0.15 → 0.66, C++ 0.10 → 0.80 같은 식으로요. "정확도 높았습니다"가 아니라 어떤 결함을 잡아서 올렸는지까지 적어뒀습니다.
- 사람이 판정하는 워크벤치가 본체. 발견된 이슈 목록 → 코드 뷰어 → 인스펙터의 3단 화면에서 Source→Sink 흐름을 코드 위에 바로 하이라이트하고, 확인/오탐/보류/수정됨 verdict를 남기면 그 기록이 그대로 보고서에 반영됩니다. 재스캔 때도 같은 판정을 유지해서, 2차·3차 진단에서 같은 걸 다시 보지 않아도 됩니다.
- 한국 현장 맞춤형 보고서. 행정안전부 시큐어코딩 가이드, 전자금융감독규정 웹 체크리스트, OWASP Top 10, CWE를 기준으로 삼을 수 있습니다. 보고서는 PDF·Word·엑셀(14열 분석표)로 나오고, 기준을 바꾸면 보고서 모양만 바뀌고 재스캔은 필요 없어요. 엑셀 14열 포맷은 국내 발주처가 실제로 요구하는 양식입니다.
- 완전 오프라인. 집에 전화 거는 기능이 없습니다. 설치 파일 하나로 깔리고, 윈도우에서는 파이썬 없이도 돌아가는 exe가 제공됩니다.
- CI 붙이기도 쉽다. GitHub Actions로 push·PR마다 돌리고 SARIF를 Code Scanning에 올려 PR 코드 위에 바로 표시할 수 있습니다. 심각도 게이트로 빌드 실패 처리도 됩니다.
지금 상태는?
- 최신 릴리스 v0.2.0 (정확도 개선 + MCP 서버가 이번 버전의 주인공)
- GitHub 스타 24개, 커밋 221개, 개인 개발자가 9월 초부터 계속 밀고 있는 중
- 라이선스 Apache 2.0, 문서 한·영 제공
한 줄 평: 스캐너가 "위험해 보여요"에서 멈추지 않고 AI 손을 빌려 "이건 진짜입니다"까지 말해주는 시대가 오고 있다.
링크 모음
댓글 0
아직 댓글이 없어요. 첫 댓글을 남겨 주세요.
댓글 남기기
댓글 입력창은 Blogger(Google)가 제공해요.

