[web]Authentication 취약점

zzsla·2023년 7월 4일
0
post-custom-banner

Authentication 이란

Authentication(인증)은 특정 사용자나 client의 신원을 확인하는 과정이다. 즉 그들이 주장하는 대로 실제 그들이 누구인지 확인하는 것을 뜻한다. 웹사이트는 원칙적으로 인터넷에 연결된 누구에게나 노출될 수 있는 구조로 설계되어 있다. 따라서 강력한 인증 메커니즘은 효과적인 웹 보안의 필수 요소이다.
서로 다른 종류의 인증을 다음과 같이 세 가지 요소로 분류할 수 있다.

  • 지식 요소 - 비밀번호, 보안 질문의 답과 같이 알고 있는 것을 말한다.
  • 소유 요소 - 휴대폰이나 보안 토큰과 같이 물리적인 물체를 가지고 있는 것을 말한다.
  • 고유 요소 - 본인의 생체인식이나 행동 패턴 등 본인이거나 본인의 행동을 말한다.

인증 메커니즘은 이러한 요소 중 하나 이상을 확인하기 위해 다양한 기술을 사용한다.

authentication과 authorization의 차이점

authentication은 사용자가 실제 주장하는 사람인지 확인하는 프로세스이고, authorization은 사용자가 무언가를 할 수 있는지 확인하는 것이다.

웹 사이트나 웹 application에 있는 상황에서 authentication(인증)은 누군가 username이 Carlos123으로 접근하는데 이게 실제 계정을 만든 사람인지를 결정한다.
Carlos123이 인증되면, 그가 다른 사용자의 개인 정보에 접근하거나 계정을 삭제하는 등의 authorization(권한)이 있는지 결정한다.

Authentication 취약점 발생 원인

대체로 인증 메커니즘의 대부분의 취약점은 다음 두 가지 방법 중 하나로 발생한다.

  • 인증 메커니즘이 brute-force 공격으로부터 적절하게 보호하지 못하기 때문에 취약하다.
  • 구현 시 논리 결함이나 잘못된 코딩으로 인해 공격자가 인증 메커니즘을 우회할 수 있다. 이를 취약한 인증이라고도 한다.

Authentication 취약점의 영향

Authentication 취약점의 영향은 매우 심각할 수 있다. 공격자가 인증을 우회하거나 다른 사용자의 계정에 brute-force를 취약한 계정의 모든 데이터와 기능에 접근할 수 있다. 시스템 관리자 같이 권한이 높은 계정이 취약할 경우 전체 application을 제어하고 잠재적으로 내부 인프라의 접근 권한을 얻을 수 있다.
그리고 권한이 낮은 계정이 취약할 경우 공격자는 민감한 비즈니스 정보와 같이 공격자가 가져가면 안 되는 데이터의 접근 권한을 얻을 수 있다. 만약 계정에 민감한 데이터의 접근 권한이 없더라도 공격자가 추가적인 공격 영역을 제공하는 페이지를 추가 접근 할 수 있다. 위험도가 높은 특정 공격은 공개적으로 접근 가능한 페이지에서 불가능하지만 내부페이지에서는 가능하다.

profile
[README]newbi security hacker :p
post-custom-banner

0개의 댓글