Skip to content

fix: 보안 취약점 수정 및 보안 감사 완료 - #24

Merged
mack-erel merged 7 commits into
mainfrom
security
Apr 20, 2026
Merged

fix: 보안 취약점 수정 및 보안 감사 완료#24
mack-erel merged 7 commits into
mainfrom
security

Conversation

@mack-erel

Copy link
Copy Markdown
Owner

Summary

  • CRITICAL×2, HIGH×3, MEDIUM×2 보안 취약점 수정
  • 비밀번호 해싱을 PBKDF2에서 argon2id로 전환 (L-1)
  • CSP nonce 도입 및 Sliding Window rate limit 전환 (M-1, L-3)
  • 보안 감사 체크리스트 전체 완료

Changes

  • argon2id 기반 비밀번호 해싱 도입
  • CSP(Content Security Policy) nonce 적용
  • Rate limiting을 Fixed Window → Sliding Window로 전환
  • 관리자 페이지 전반 보안 가드 강화
  • OIDC end-session, SAML SSO 엔드포인트 보안 처리
  • 암호화 키 관리 모듈 추가 (src/lib/server/crypto/keys.ts)

Test plan

  • 로그인/비밀번호 변경 정상 동작 확인
  • Rate limiting 동작 확인
  • CSP 헤더 정상 적용 확인
  • 관리자 페이지 권한 처리 확인

🤖 Generated with Claude Code

mack-erel and others added 7 commits April 17, 2026 21:25
- [CRITICAL] requireAdminContext 가드 추가 및 모든 admin action에 적용
  SvelteKit layout.server.ts load는 form action 제출 시 실행되지 않으므로
  action마다 관리자 인가를 직접 검사하도록 수정
- [HIGH] 세션 토큰 SHA-256 해싱 후 DB 저장 (평문 저장 제거)
- [HIGH] LDAP STARTTLS 모드에 rejectUnauthorized: true 적용
- [HIGH] OIDC 클라이언트 update 시 public client PKCE 다운그레이드 방지
- docs: 보안 감사 보고서 추가 (docs/security-audit-20260417.md)

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- [MEDIUM] SAML SSO 엔드포인트 IP 기반 rate limit 추가 (30회/분)
- [MEDIUM] OIDC end-session id_token_hint 서명 검증 및 sub 일치 확인
- feat: verifyIdToken (RS256 JWT 검증) 함수 추가

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- @hicaru/argon2-pure.js 도입 (순수 JS, Cloudflare Workers 호환)
- 신규 해시: argon2id (m=4096KB, t=3, p=1)
- 레거시 PBKDF2 해시는 로그인 시 자동 검증 후 argon2id로 업그레이드
- verifyPassword()가 두 포맷을 모두 처리하므로 마이그레이션 불필요

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- [M-1] svelte.config.js csp.mode='hash' 설정으로 script-src unsafe-inline 제거
  SvelteKit이 SSR 인라인 스크립트 SHA-256 해시를 자동 추가
  hooks.server.ts 수동 CSP 제거 (중복 방지)
- [L-3] Fixed Window → Sliding Window(두 버킷 근사) 전환
  경계 2x burst 제거: prev*(1-elapsed/window)+current 가중 합산

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
@mack-erel
mack-erel merged commit c3e4c52 into main Apr 20, 2026
6 checks passed
@mack-erel
mack-erel deleted the security branch April 20, 2026 04:26
@mack-erel
mack-erel restored the security branch April 20, 2026 04:26
@mack-erel
mack-erel deleted the security branch July 3, 2026 06:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant