94 lines
2.7 KiB
Markdown
94 lines
2.7 KiB
Markdown
---
|
|
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자만 표시)
|
|
- 위험도는 보수적으로 평가
|
|
- 한국어로 보고서 작성
|