Claude와 오픈소스 보안 도구를 결합해 코드 정적 분석부터 런타임 검증까지 커버하는 보안 진단 스킬 두 가지를 만들어 공개한다.
Python, Rust, Go, Java, TypeScript, Ruby 등 다양한 언어의 프로젝트가 공존하는 경우가 많아졌다. 이런 환경에서 전통적인 보안 도구만으로는 커버리지가 부족하고, 개발 속도와 보안 사이의 trade-off가 문제가 되기도 한다. Claude를 보안 도구로 활용해 Semgrep, Trivy, Nuclei, ZAP Docker를 결합해 보안 진단률을 높였다. 이 접근법은 개발 생산성을 크게 희생하지 않으면서도 프로덕션 수준의 보안성을 확보할 수 있도록 설계했다.
만들게 된 계기
- 언어별 보안 도구와 정책이 달라 일관된 보안 기준 적용이 어렵다
- 대규모 코드베이스에서 인간 리뷰만으로는 한계가 많았다.
- CI/CD 파이프라인에서 보안 검사를 강화하면 빌드 시간이 길어져 개발 속도가 저하된다.
- False Positive로 인한 개발자 피로도 증가도 한몫한다.
이러한 문제를 해결하기 위해 오픈 소스 도구 + Claude의 하이브리드 보안 접근 방법을 생각하게 되었다.
두 가지 보안 스킬
| 타이밍 | 스킬 | 대상 |
| 출시 전 | /security-full-scan | 모든 파일 정적 분석 + 종속성 CVE |
| 배포 후 | /security-scan | 런타임 동작 및 HTTP 동작 테스트 |
1. 릴리스 전 전체 정적 분석(/security-full-scan)
/security-full-scan 은 소스코드 단계에서 전체 코드베이스를 정적으로 분석하는 스킬(SAST, Static Application Security Testing)이다. 코드가 실제로 배포되기 전에 최대한 많은 취약점을 사전에 발견하고 수정하기 위한 1차 방어선 역할을 한다. 검증하는 영역은 아래와 같다.
| 검증 영역 | 주요 내용 | 특징 |
| 코드 레벨 취약점 | Injection, XSS, Path Traversal, Unsafe Deserialization 등 | Semgrep 중심 |
| 인증·인가 문제 | 권한 검증 누락, JWT 처리 오류, Role-Based Access Control 문제 | Claude 강점 |
| 의존성 및 Supply Chain | 알려진 CVE, 취약한 라이브러리 버전, License 문제 | Trivy 중심 |
| 시크릿 관리 | Hardcoded API Key, Password, Token 등 | Trivy + Semgrep |
| 보안 설정 오류 | Framework Misconfiguration (CORS, CSP, Rate Limit 등) | Trivy + Semgrep |
| 아키텍처·로직 취약점 | Multi-tenant 분리 실패, 위험한 패턴, Business Logic Flaw | Claude 종합 분석 |
/security-full-scan은 Claude가 전체 소스와 언어별 의존성 설정 파일을 정적으로 분석한다. 이 결과를 Semgrep + Trivy 분석 결과와 교차 검증해 False Positive를 효과적으로 필터링한다. Semgrep는 코드 레벨 SAST (다양한 언어 지원 최고)를 담당하고 Trivy는 의존성 CVE, Secret Scanning, Misconfiguration, SBOM의 역할을 담당한다. 판단의 근거는 아래와 같다.
| 항목 | Semgrep | Trivy | 조합 평가 |
| 코드 레벨 SAST | Excellent | 보통 | 매우 좋음 |
| 의존성 CVE 스캔 | 보통 | Excellent | 매우 좋음 |
| 시크릿 누출 스캔 | Good | Excellent | 매우 좋음 |
| Misconfiguration | Good | Excellent | 매우 좋음 |
| 속도 | 빠름 | 매우 빠름 | 우수 |
| False Positive | 중간 | 낮음 | 좋음 |
| 다언어 지원 | 매우 우수 | 매우 우수 | 우수 |
| SBOM 생성 | 없음 | Excellent | Trivy 강점 |
| 커스터마이징 | Excellent (자체 규칙 작성) | 좋음 | Semgrep 강점 |
아키텍처나 비즈니스 로직 수준 취약점은 상대적으로 약하다. security-full-scan이 보완해야 하는 부분이어서 소프트웨어 보안의 철학, 전략, 원칙을 기반으로 해당 프로젝트에서 사용하는 언어에 특성을 가미한 security-style.md 파일을 rules에 적용해서 코드 리뷰, 리팩토링에서 활용해서 보완하고 있다. Rust기반의 프로젝트에서 사용중인 rust-security-style.md가 한 예다.
DAST(Dynamic Application Security Testing, 동적 분석) 영역도 전혀 커버하지 못하기 때문에 이건 /security-scan 영역에서 수행하면 된다.
2. 스테이징 환경에서 런타임 검증 (/security-scan)
/security-scan은 배포된 실제 서버(스테이징 환경)를 대상으로 런타임(Runtime)에서 보안 취약점을 검증하는 스킬(DAST)이다. 정적 분석(/security-full-scan)이 “코드가 어떻게 작성되었는가”를 본다면, /security-scan은 “실제로 동작할 때 어떻게 작동하는가” 를 검증한다. 코드만으로는 절대 알 수 없는 실제 환경에서의 보안 문제를 찾아내는 것이 핵심 목적이다.
여기에서 검증하는 영역은 아래와 같다.
| 검증 영역 | 구체적 내용 | 왜 중요한가? |
| 보안 헤더 & TLS 설정 | HSTS, CSP, X-Frame-Options, X-Content-Type-Options 등 실제 응답 헤더 확인 | 설정 파일에만 있고 실제 적용 안 된 경우 다수 발견 |
| 인증·인가 로직 | JWT 검증, 세션 관리, 권한 우회, IDOR, 토큰 치환 공격 등 | 정적 분석으로는 발견하기 매우 어려움 |
| 동적 Injection 공격 | SQLi, XSS, SSRF, Command Injection 등 실제 요청을 통한 테스트 | 입력 처리 후 실제 동작에서만 나타남 |
| 에러 핸들링 & 정보 노출 | Stack trace, DB 쿼리, 내부 경로, 디버그 정보 노출 여부 | Production-like 환경에서 자주 발생 |
| Misconfiguration | CORS 정책, Rate Limiting, Debug Mode, API 버전 노출 등 | 배포 후에야 확인 가능한 항목 |
| 비즈니스 로직 취약점 | Multi-tenant 데이터 분리, 중요한 작업 권한 검증 등 | 코드 구조만으로는 판단 어려움 |
이 스킬에 사용되는 도구는 OWASP ZAP, Nuclei를 사용하고 사용 이유에 대한 장점들을 아래 도표로 보여주고 있고 이 도구에서 나오는 리포트와 Claude 에서 분석한 영역(owasp top10, authentication bypass, injection 등)을 통합해 교차 검증을 수행한다.
| 항목 | OWASP ZAP | Nuclei | 조합 평가 |
| 알려지지 않은 취약점 (Unknown) | Excellent (크롤링 + Active Scan) | Weak | ZAP 강점 |
| 알려진 CVE / Misconfig | Good | Excellent (11,000+ 템플릿) | Nuclei 강점 |
| 속도 | 보통 (느릴 수 있음) | 매우 빠름 | Nuclei 보완 |
| False Positive | 중간~높음 | 낮음 | Nuclei로 보완 |
| 인증/세션 처리 | Good (복잡한 로그인 지원) | 보통 | ZAP 강점 |
| CI/CD 적합성 | 보통 | Excellent | Nuclei 강점 |
| 비즈니스 로직 테스트 | Good (수동 + Active Scan) | Weak | ZAP 강점 |
SAST 영역은 커버하지 못하기에 /security-full-scan 영역에서 수행하면 된다. 그래서 두 개의 스킬을 만든 것이다.
스킬 사용 방법
스킬의 구성은 두 가지이며 /security-full-scan 설정은 security-full-scan 스킬 설명을 참고하고, /security-scan 설정은 security-scan 스킬 설명을 참고하라.
1. 디렉토리 구조
claude-security-skills/
├── skills/
│ ├── security-full-scan.md # /security-full-scan 스킬
│ └── security-scan.md # /security-scan 스킬
└── templates/
└── security-agent.config.yml # /security-scan 설정 파일2. 설치 방법
2026년 04월 16일에 GitHub 공식 CLI gh에 기술을 패키지 관리하는 새로운 부속 명령이 gh skill 이 추가 되었다. GitHub 리포지토리에 게시된 기술을 gh 를 통해 설치, 업데이트 할 수 있다.
> gh skill install mimul/claude-security-scan
> brew install trivy semgrep nuclei # 사용할 보안 도구 설치
> brew install --cask zap # OWASP ZAP 설치업데이트가 필요하다면 아래 커맨드를 실행하면 된다.
> gh skill update --dry-run # 무엇이 업데이트되는지 먼저 확인
> gh skill update # 업데이트3. 실행방법
해당 프로젝트에 이동해 아래 원하는 스킬 명령어를 실행하면 된다.
/security-full-scan /project/axum-rusty --mode=augmented
/security-scan staging --mode=augmented/security-scan 은 security-agent.config.yml 설정을 카피해서 필요한 정보는 수정해야 한다.
보안상 .gitignore 파일에 security-reports/ 디렉토리를 추가한다.




