Learning
토픽 61 / 210·인증 및 접근제어

OAuth 2.0 취약점 (OAuth 2.0 Vulnerabilities)

OAuth 2.0 취약점 (OAuth 2.0 Vulnerabilities)

OAuth 2.0 인가 프레임워크의 구현 및 설정 미흡으로 발생하는 보안 취약점으로, Authorization Code 탈취, CSRF, Token 유출 등의 공격에 노출될 수 있으며, PKCE, State 파라미터 등의 보안 확장이 필수

목적: 안전한 OAuth 구현, 토큰 보호, 인가 코드 탈취 방지, CSRF 방지, 피싱 방어

특징: 구현 복잡성, 다양한 Grant Type, Redirect 기반, 토큰 관리 중요

주요 취약점

  • Authorization Code Interception: 인가 코드 가로채기 → 대응: PKCE 적용
  • CSRF(Cross-Site Request Forgery): 악의적 인가 요청 → 대응: State 파라미터
  • Open Redirect: redirect_uri 조작 → 대응: 화이트리스트, 정확한 매칭
  • Token Leakage: 토큰 노출(URL, 로그, Referrer) → 대응: POST 응답, Secure 저장
  • Insufficient Scope: 과도한 권한 요청 → 대응: 최소 권한 원칙

PKCE(Proof Key for Code Exchange)

  • 모바일/SPA에서 인가 코드 탈취 방지
  • code_verifier(랜덤 값) → code_challenge(해시) 전송 → 토큰 요청 시 code_verifier 검증
  • S256(SHA-256) 권장

보안 모범 사례: PKCE 필수(모든 클라이언트), State 파라미터, 짧은 토큰 만료, Refresh Token Rotation, HTTPS 필수

장점: 표준화된 인가 프레임워크, 확장성, 위임 인가, 다양한 Grant Type

단점: 구현 복잡, 설정 오류 위험, 보안 확장 필수, 학습 곡선

적용사례: 소셜 로그인, API 인가, 모바일 앱, SPA(Single Page App)

비교: OAuth 2.0(인가) vs OpenID Connect(인증+인가) vs SAML(엔터프라이즈 SSO)

연관: PKCE, JWT, OpenID Connect, 인증·인가, API 보안, CSRF