| 카테고리 | Critical | High | Medium | Low | 합계 | 상태 |
|---|---|---|---|---|---|---|
| A01 · Broken Access Control | 1 | 3 | 2 | 1 | 7 | FAIL |
| A02 · Cryptographic Failures | 0 | 0 | 1 | 2 | 3 | PASS |
| A03 · Injection (SQL/XSS) | 2 | 2 | 3 | 2 | 9 | FAIL |
| A04 · Insecure Design | 0 | 0 | 0 | 1 | 1 | PASS |
| A05 · Security Misconfiguration | 0 | 1 | 2 | 3 | 6 | WARN |
| A06 · Vulnerable Components | 0 | 0 | 2 | 1 | 3 | WARN |
| A07 · Auth & Session | 0 | 1 | 1 | 2 | 4 | HIGH |
| A08 · Software/Data Integrity | 0 | 0 | 1 | 1 | 2 | WARN |
| A09 · Logging & Monitoring | 0 | 0 | 0 | 1 | 1 | WARN |
| A10 · SSRF | 0 | 0 | 0 | 0 | 0 | PASS |
POST /api/admin/auth/loginadmin' OR '1'='1'-- 입력, 비밀번호는 임의값POST /api/admin/auth/login HTTP/1.1
Host: admin.greenova.test
Content-Type: application/json
{"username":"admin' OR '1'='1'--","password":"anything"}
→ HTTP/1.1 200 OK
Set-Cookie: ADMIN_SESSION=eyJhbGci...; Path=/; HttpOnly
{"ok":true,"role":"SUPER_ADMIN","userId":1}${} → #{}GET /api/orders/{orderId}orderId=102934 조회orderId=102935 변경 호출orderId.ownerId == session.userId 검증GET /admin/users/export 외 12개 내부 엔드포인트curl -H "Referer: https://admin.greenova.test/dashboard" https://admin.greenova.test/admin/users/exportPOST /api/products/{id}/qna · 관리자 화면 /admin/qna<img src=x onerror=alert(1)> 저장 후 관리자 답변 페이지 진입 시 스크립트 실행DOMPurify / OWASP Java HTML Sanitizer 적용default-src 'self'; script-src 'self' 설정JSESSIONID=AAAA 쿠키 상태에서 로그인 후에도 JSESSIONID=AAAA 유지 확인. 공격자가 주입한 세션 ID를 피해자가 사용해 로그인하면 공격자도 동일 세션 사용 가능session.invalidate() + changeSessionId()). JWT 사용 시 액세스 토큰 회전Set-Cookie 헤더에서 세션 식별자 값이 변경되는지 재검증POST /api/users/profile 외 3건Set-Cookie에 SameSite=Lax 이상Content-Security-Policy: 없음Strict-Transport-Security: 없음X-Frame-Options: 없음X-Content-Type-Options: 없음Referrer-Policy: 없음Permissions-Policy: 없음Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-{random}'
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()[email protected] · [email protected]npm audit --audit-level=high 파이프라인 추가| ID | 심각도 | 제목 | OWASP | 담당 | 기한 |
|---|---|---|---|---|---|
| SEC-001 | Critical | 관리자 로그인 SQL Injection | A03 | BE | 즉시 |
| SEC-002 | Critical | 주문 상세 IDOR (타인 개인정보 노출) | A01 | BE | 즉시 |
| SEC-003 | Critical | Referer 기반 인증 우회 | A07 | BE/Platform | 즉시 |
| SEC-004 | High | Q&A 본문 Stored XSS | A03 | FE/BE | 2주 |
| SEC-005 | High | Session Fixation (로그인 후 세션 미변경) | A07 | BE | 2주 |
| SEC-006 | High | 수직 권한 상승 (사업자 → 관리자 메뉴 진입 일부 허용) | A01 | BE | 2주 |
| SEC-007 | High | 파일 업로드 확장자 검증 미비 (.jsp 차단 불가) | A03 | BE | 2주 |
| SEC-008 | High | 브루트포스 제한 미설정 (로그인 · OTP) | A07 | BE/Platform | 2주 |
| SEC-009 | High | API 응답에 DB 쿼리·스택트레이스 노출 | A05 | BE | 2주 |
| SEC-010 | High | CSRF 토큰·SameSite 미설정 | A01 | FE/BE | 2주 |
| SEC-014 | Medium | 주요 보안 헤더 6종 누락 | A05 | Platform | 1개월 |
| SEC-022 | Medium | axios · lodash 취약 버전 | A06 | BE | 1개월 |
| … 기타 30건 | — | Medium 10 · Low 14 · Info 6 (상세는 별첨) | — | — | — |
| Phase | 재점검 일정 | 범위 | 판정 기준 |
|---|---|---|---|
| P1 Retest | 2026-04-18 | Critical 3건 집중 | CVSS 4.0 이하로 하향 또는 해소 |
| P2 Retest | 2026-04-28 | High 7건 + P1 회귀 | High 0건 · Critical 0건 유지 |
| P3 Retest | 2026-05-12 | Medium/Low + 전체 회귀 | OWASP Top 10 전 영역 PASS |
| 최종 승인 | 2026-05-20 | 리포트 v1.4 발행 | 재점검 결과 + 경영진 리포트 |
| 산출물 | 형식 | 주요 내용 | 대상 |
|---|---|---|---|
| Executive Summary Report | 경영진용 1페이지 요약 · 심각도 분포 · 핵심 권고 | 경영진 | |
| Technical Security Report | HTML/PDF | 본 문서 · 42건 Finding 상세 · OWASP 매핑 | 개발팀 · 보안담당 |
| Finding Spreadsheet | XLSX | ID · 심각도 · CVSS · CWE · 재현절차 · 권고 · 담당 · 기한 | PM · BE · FE · Platform |
| PoC Evidence Pack | ZIP | 재현 스크린샷 · HTTP Request/Response · sqlmap 로그 | 개발팀 · 감사 |
| Remediation Checklist | MD | 42건 개별 보완 체크리스트 · PR 추적 링크 | 개발팀 |
| Security Headers Policy | YAML | CSP · HSTS · Referrer-Policy · Permissions-Policy 표준 | Platform |
| Retest Results (v1.4) | 재점검 후 해소 상태 요약 · 최종 승인 문서 | 경영진 · 감사 |
| 도구 | 용도 | 커버리지 |
|---|---|---|
| OWASP ZAP 2.14 | 자동 스캔 · Passive / Active | 전체 URL 크롤링 · 파라미터 퍼징 |
| Burp Suite Pro | 수동 점검 · Repeater / Intruder | 권한·세션·로직 심층 테스트 |
| sqlmap 1.8 | SQL Injection 자동화 검증 | 전 POST/GET 파라미터 |
| Nuclei 3.2 | 템플릿 기반 CVE / 설정 스캔 | 알려진 CVE · 헤더 누락 · 디버그 노출 |
| semgrep / npm audit | 정적 분석 · 의존성 스캔 | 소스·라이브러리 취약점 |
| 수동 비즈니스 로직 점검 | 권한 상승 · IDOR · 결제 우회 | 관리자·사업자·일반 사용자 롤 교차 |