Files
tk-factory-services/SECURITY-CHECKLIST.md
Hyungi Ahn ba9ef32808 security: 보안 강제 시스템 구축 + 하드코딩 비밀번호 제거
보안 감사 결과 CRITICAL 2건, HIGH 5건 발견 → 수정 완료 + 자동화 구축.

[보안 수정]
- issue-view.js: 하드코딩 비밀번호 → crypto.getRandomValues() 랜덤 생성
- pushSubscriptionController.js: ntfy 비밀번호 → process.env.NTFY_SUB_PASSWORD
- DEPLOY-GUIDE.md/PROGRESS.md/migration SQL: 평문 비밀번호 → placeholder
- docker-compose.yml/.env.example: NTFY_SUB_PASSWORD 환경변수 추가

[보안 강제 시스템 - 신규]
- scripts/security-scan.sh: 8개 규칙 (CRITICAL 2, HIGH 4, MEDIUM 2)
  3모드(staged/all/diff), severity, .securityignore, MEDIUM 임계값
- .githooks/pre-commit: 로컬 빠른 피드백
- .githooks/pre-receive-server.sh: Gitea 서버 최종 차단
  bypass 거버넌스([SECURITY-BYPASS: 사유] + 사용자 제한 + 로그)
- SECURITY-CHECKLIST.md: 10개 카테고리 자동/수동 구분
- docs/SECURITY-GUIDE.md: 운영자 가이드 (워크플로우, bypass, FAQ)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 09:44:21 +09:00

2.1 KiB

보안 PR 체크리스트 — TK Factory Services

공통 원칙: claude-config/memory/feedback_security_pr_checklist.md 자동 검증: scripts/security-scan.sh (pre-commit + pre-receive)

체크리스트

# 카테고리 검증 확인 항목 참조 파일
1 비밀 정보 자동 #1,#2 코드/문서에 비밀번호·토큰·API키 하드코딩 없음 .env.example
2 인증 수동 모든 라우트에 requireAuth 적용 shared/middleware/auth.js
3 권한 RBAC 수동 쓰기(POST/PUT/DELETE)에 requirePage() 또는 requireRole() shared/middleware/pagePermission.js
4 입력 검증 수동 path traversal(../), 타입, 길이 검증 system1-factory/api/utils/validator.js
5 파일 업로드 수동 magic number + 확장자 + MIME + 크기 제한 system1-factory/api/utils/fileUploadSecurity.js
6 네트워크 자동 #5 CORS 와일드카드 없음, rate limiting 적용 system1-factory/api/config/cors.js
7 DB 쿼리 자동 #6 파라미터화(?), await, COALESCE 패턴 CLAUDE.md 주의사항
8 에러/로그 자동 #7 로그에 비밀정보 없음, 스택트레이스 prod 비노출 shared/utils/errors.js
9 보안 헤더 수동 CSP, HSTS, X-Frame-Options system1-factory/api/config/security.js
10 자동 검증 자동 pre-commit + pre-receive 통과 scripts/security-scan.sh

자동 검출 규칙

규칙# 이름 심각도 동작
1 SECRET_HARDCODE CRITICAL 차단
2 SECRET_KNOWN CRITICAL 차단
3 LOCALSTORAGE_AUTH HIGH 차단
4 INNERHTML_XSS HIGH 차단
5 CORS_WILDCARD HIGH 차단
6 SQL_INTERPOLATION HIGH 차단
7 LOG_SECRET MEDIUM 경고 (5개 초과 시 차단)
8 ENV_HARDCODE MEDIUM 경고 (5개 초과 시 차단)

수동 확인 필요 항목 (자동화 한계)

  • RBAC 설계 오류 / 인증 흐름
  • 비즈니스 로직 / race condition
  • third-party dependency 취약점 (npm audit)
  • 환경변수 값 강도