name: cso description: "Security audit with Quick/Full modes. Quick runs inside /review for auth/API changes. Full runs standalone with OWASP Top 10 + STRIDE. Use when touching security-sensitive code or for periodic audits."
CSO (Chief Security Officer)
Position
독립 스킬. 메인 플로우에 속하지 않음.
- Quick 모드:
/review가 security_sensitive 코드 변경 감지 시 리뷰 에이전트 내부에서 자동 실행 - Full 모드: 사용자가
/cso직접 호출 시 실행
Quick Mode (리뷰 내장용)
/review의 code-review 에이전트가 auth/middleware/API route 변경 감지 시 Pass 1에 포함하여 실행.
별도 스킬 호출 아님 — 리뷰 체크리스트의 확장.
| 검사 | 대상 |
|---|---|
| 인증/인가 경로 | 미보호 라우트, 권한 우회, 토큰 검증 누락 |
| 입력 검증 | SQL injection, XSS, command injection, path traversal |
| 시크릿 하드코딩 | 코드 내 API 키, 토큰, 비밀번호 |
| 의존성 취약점 | 알려진 CVE (npm audit / pip audit / cargo audit) |
Full Mode
Flow
/cso
│
├── Phase 1: 스택 감지
│ ├── 언어, 프레임워크, DB, 인프라 파악
│ └── 공격 표면 목록 작성 (API 엔드포인트, 외부 연동, 파일 업로드 등)
│
├── Phase 2: OWASP Top 10 검사
│ ├── A01 Broken Access Control
│ ├── A02 Cryptographic Failures
│ ├── A03 Injection
│ ├── A04 Insecure Design
│ ├── A05 Security Misconfiguration
│ ├── A06 Vulnerable Components
│ ├── A07 Auth Failures
│ ├── A08 Data Integrity Failures
│ ├── A09 Logging/Monitoring Failures
│ └── A10 SSRF
│
├── Phase 3: STRIDE 위협 모델링
│ ├── Spoofing — 인증 우회 가능성
│ ├── Tampering — 데이터 무결성 위반
│ ├── Repudiation — 감사 로그 부재
│ ├── Information Disclosure — 민감정보 노출
│ ├── Denial of Service — 리소스 고갈 가능성
│ └── Elevation of Privilege — 권한 상승 경로
│
├── Phase 4: 추가 검사
│ ├── git history 시크릿 스캔 (git log -p | 패턴 매칭)
│ ├── CI/CD 파이프라인 보안 (시크릿 주입 방식, 권한 범위)
│ ├── 환경변수 관리 (.env 파일 gitignore 여부, 프로덕션 분리)
│ └── API 엔드포인트 전수 검사 (인증 필요 여부, rate limiting)
│
├── Phase 5: 검증 + 오탐 필터링
│ ├── 각 발견 항목 실제 악용 가능한지 확인
│ ├── 프레임워크가 이미 방어하는 항목 제외
│ └── 오탐 제거
│
└── Phase 6: 리포트
Triage (심각도)
| 등급 | 기준 | 예시 |
|---|---|---|
| CRITICAL | 즉시 악용 가능, 데이터 유출/변조 | SQL injection, 인증 우회, 시크릿 노출 |
| HIGH | 악용 조건 존재하나 현실적 위협 | 불충분한 rate limiting, CORS 과다 허용 |
| MEDIUM | 방어 심화 권장 | CSP 미설정, 불필요한 상세 에러 메시지 |
| LOW | 모범 사례 권장 | 감사 로그 미비, 보안 헤더 미설정 |
Output
## Security Audit Report
### Stack
- Language: {lang}
- Framework: {framework}
- Attack Surface: {endpoint 수}개 API, {외부 연동 수}개 외부 서비스
### Findings
| # | 등급 | 카테고리 | 이슈 | 위치 | 권장 조치 |
|---|------|---------|------|------|----------|
| 1 | CRITICAL | A03 Injection | SQL 파라미터화 미사용 | src/db.ts:42 | prepared statement 사용 |
| 2 | HIGH | Spoofing | JWT 검증 누락 | src/auth.ts:15 | 미들웨어 추가 |
### Summary
- CRITICAL: {n}건
- HIGH: {n}건
- MEDIUM: {n}건
- LOW: {n}건
### Remediation Priority
1. {가장 시급한 항목 + 구체적 수정 방법}
2. ...
Rules
- 오탐 최소화: 프레임워크 기본 방어(예: Next.js의 자동 이스케이핑)를 고려하여 이미 방어된 항목은 보고하지 않음
- 실행 가능한 권장: "보안을 강화하세요" 같은 추상적 권고 금지. 구체적 코드 위치 + 수정 방법 명시
- 자동 수정 안 함: Full 모드에서는 리포트만 생성. 수정은 사용자 확인 후 별도 진행
- Quick 모드에서 CRITICAL 발견 시 →
/review의 P0로 에스컬레이션