--- name: security-audit label: 보안 코드 감사 description: 코드베이스의 보안 취약점을 점검하고 OWASP 기반 보안 보고서를 생성합니다. icon: \uE72E allowed-tools: - file_read - grep - folder_map - search_codebase - html_create - glob tabs: code --- 코드베이스의 보안 취약점을 체계적으로 점검하고 보고서를 생성하세요. ## 워크플로우 1. **스캔 범위 확인**: folder_map으로 프로젝트 구조 파악, 언어/프레임워크 식별 2. **취약점 패턴 탐지**: grep으로 위험 패턴 검색 3. **의존성 분석**: 패키지 파일(package.json, *.csproj, requirements.txt) 읽기 4. **비밀 정보 노출 검사**: API 키, 토큰, 비밀번호 하드코딩 탐지 5. **보고서 생성**: html_create로 보안 감사 보고서 생성 ## OWASP Top 10 점검 항목 ### A01 — 접근 제어 취약 - 인증 없는 API 엔드포인트 - 하드코딩된 권한 체크 - 관리자 경로 노출 ### A02 — 암호화 실패 - 평문 비밀번호 저장 - 약한 해시 알고리즘 (MD5, SHA1) - HTTP (비HTTPS) 통신 ### A03 — 인젝션 - SQL 인젝션 (문자열 결합 쿼리) - XSS (innerHTML, dangerouslySetInnerHTML) - 명령 인젝션 (Process.Start, exec, system) - 경로 순회 (../ 미검증) ### A04 — 불안전한 설계 - 비즈니스 로직 검증 누락 - 레이트 리밋 미적용 ### A05 — 보안 설정 오류 - 디버그 모드 활성화 상태 - 기본 자격증명 사용 - 불필요한 포트/서비스 노출 ### A07 — 인증 실패 - 약한 비밀번호 정책 - 세션 만료 미설정 - 브루트포스 방어 부재 ### A09 — 로깅/모니터링 부족 - 보안 이벤트 미기록 - 민감 정보 로그 출력 ## 비밀 정보 탐지 패턴 ``` grep 대상 패턴: - password\s*=\s*["'][^"']+["'] - api[_-]?key\s*=\s*["'][^"']+["'] - secret\s*=\s*["'][^"']+["'] - token\s*=\s*["'][A-Za-z0-9+/=]{20,}["'] - -----BEGIN (RSA |EC )?PRIVATE KEY----- - AWS_ACCESS_KEY_ID - AKIA[0-9A-Z]{16} ``` ## 출력 형식 ### 보안 감사 보고서 | 위험도 | 카테고리 | 파일 | 라인 | 내용 | 권장 조치 | |--------|---------|------|------|------|----------| | 🔴 심각 | A03 인젝션 | ... | ... | SQL 문자열 결합 | 파라미터 바인딩 사용 | | 🟡 경고 | A02 암호화 | ... | ... | MD5 해시 사용 | SHA-256 이상 전환 | | 🟢 참고 | A09 로깅 | ... | ... | 에러 로깅 미흡 | 보안 이벤트 로깅 추가 | ### 요약 통계 - 심각/경고/참고 건수 - OWASP 카테고리별 분포 - 우선 조치 항목 Top 5 ## 규칙 - 코드를 수정하지 않음 (분석 + 보고서만) - 발견된 비밀 정보는 마스킹하여 보고 (앞 4자만 표시) - 위험도는 보수적으로 평가 - 한국어로 보고서 작성