Kant's IT/Issue on IT&Security

웹 보안에서 인증과 권한 부여의 이해

Kant Jo 2024. 10. 12. 14:06

Unraveling Authentication and Authorization in Web Security

 

  • 개요
    • 인증(Authentication)과 권한 부여(Authorization)는 웹 애플리케이션 보안의 핵심 요소
    • 둘은 유사해 보이지만 서로 다른 개념이며, 각각의 보안 취약점은 웹 애플리케이션을 심각하게 위협할 수 있음
  • 인증과 권한 부여
    • 인증: 사용자가 누구인지 확인하는 과정 (예: 사용자명비밀번호)
    • 권한 부여: 인증된 사용자가 특정 리소스에 접근하거나 작업을 수행할 수 있는지를 결정하는 과정
    • 두 개념은 함께 작동하며, 잘못 구현될 경우 보안 취약점을 초래할 수 있음
  • 주요 인증 및 권한 부여 취약점
    • 잘못된 신뢰: 프론트엔드에서 생성된 JWT 토큰을 백엔드에서 검증하지 않고 신뢰하는 경우 발생하는 취약점
    • 토큰 관리 오류: 세션 쿠키비밀번호 재설정 토큰의 잘못된 관리로 인해 공격자가 토큰을 탈취하여 사용자로 가장할 수 있음
    • 느슨한 비교: PHPJavaScript와 같은 언어에서 느슨한 비교를 사용하여 인증을 우회할 수 있음
    • 경로 기반 인증: 경로 비교만으로 접근 제어를 수행할 경우, 디렉터리 트래버설(Directory Traversal) 공격에 취약
    • 기능 수준 접근 제어 부재: 숨겨진 API 엔드포인트에 대한 접근 제어가 부족하여 공격자가 관리자 기능에 접근할 수 있음
  • 보안 강화를 위한 베스트 프랙티스
    • 초기 설계 단계에서 인증과 권한 부여 통합: 애플리케이션 논리 내에서 강력한 인증 메커니즘을 설계하고, 보안 라이브러리를 사용해 보안을 강화
    • 안전한 코드 작성 및 정기 감사: 보안 코딩 관행을 따르고, 정기적인 코드 감사와 테스트를 통해 취약점을 조기에 발견
    • 웹 애플리케이션 방화벽(WAF) 사용: 추가적인 보호 계층으로 웹 방화벽을 도입해 다양한 위협으로부터 애플리케이션을 보호
  • 결론
    • 웹 애플리케이션이 복잡해짐에 따라 인증권한 부여의 중요성은 더욱 커짐
    • 취약점을 이해하고 검증된 보안 조치를 적용함으로써 사용자의 데이터를 보호하고 애플리케이션의 무결성을 유지해야 함