R's Hacking Daily Log

Authentication 본문

Port Swigger/Authentication

Authentication

hanhxx 2022. 11. 11. 10:31

https://portswigger.net/web-security/images/password-reset-poisoning.svg

 

Authentication vulnerabilities

적어도 개념적인 측면에서 인증 취약점은 가장 이해하기 쉬운 이슈 중에 하나이지만, 동시에 보안과 인증의 명확한 관계성을 봤을 때, 가장 중요한 이슈에 속한다. 

잠재적으로 공격자가 중요한 데이터 및 기능에 직접 접근하는 것을 허락할 뿐만 아니라

공격할만한 추가적인 측면을 노출시키게 된다. 

이러한 이유로 일반적인 보호조치를 우회하는 걸 포함하는 인증 취약점을 이용하고 
확인하는 방법을 배우는 것은 필수적인 기술이라 할 수 있다!!

 

 

 

what is authentication?

Authentication이란 

user or client의 신원을 입증하는 과정으로, 그들이 주장하는 사람이 실제로 그들이라 보장할 수 있게 하는 것을 포함한다. 

website는 설계상 인터넷으로 연결하고자 하는 누군가에게 노출되고, 
견고한 인증 메커니즘은 효과적인 web 보안의 무한한 측면과 직결된다. 


▶ 크게 3개의 타입으로 구분되는 factors

  • Something you KNOW, "knowledge factor" = passwd or answer to a security question.
  • Something you HAVE, "possession factors" = mobile phone or security token
  • Something you BE, "inherence factors" = biometrics or patterns of behavior

인증 메커니즘은 이러한 factor를 한 개 또는 그 이상으로 확인(입증)하는 기술력에 의존하게 된다. 

 

 

 

what is the difference between authentication and authorization??

Authentication은 user가 자신이라 주장하는 사람이 맞는지 확인하는 과정이고, 

Authorization은 무언가를 할 수 있게 허락된 user인지 아닌지를 확인하는 것을 포함한다. 

 

다시 말해, 
그가 자신이라 주장하는 신원이 맞는지를 확인하는 것이 Authentication
그가 무엇을 할 수 있는지, 어느 수준까지 접근권한을 가지는지를 확인하는 것Authorization

 

▶ website or web application에서, 인증은 그 계정을 만든 사람과 username Carlos123으로 그 사이트에 접근하려고

시도한 사람이 같은 인물인지 아닌 지를 확인한다. 

한 번 Carlos123이 인증을 받으면, 다른 user의 개인정보에 접근한다거나, 다른 user의 계정을 삭제하는 행위를 수행하는 등의 권한을 받았는지 아닌지를 확인한다. 이 과정을 Authorization이라고 하는 것!

 

따라서, Authorization은 Authentication + 어떠한 행위에 대한 권한 수준을 확인하는 것이다!

 

▶ 일반 사용자와 관리자를 두고 봤을 때,

이 둘은 같은 application을 사용하더라도 일반 사용자에게 다른 계정에 대한 통제권이나 관리할 수 있는 권한을 주지는

않는 것처럼 역할이 다르기 때문에 주어지는 접근권한 수준이 다르다. 그렇기에 각 사용자에 대한 권한 수준을 확인하는 것

 

 

 

how do authentication vulnerabilities arise??

대략적으로 말하자면, 인증 메커니즘에서 대부분의 취약점은 다음의 둘 중 하나에 의해 발생한다.

 

brute-force 공격에 대해 적절히 보호하는 것에 실패하기 때문에 인증 메커니즘이 약해진다.
실행에 있어 논리적 결함 및 잘못된 코드는 인증 메커니즘이 우회될 수 있도록 허락한다. 

이 때문에 때떄로 "broken authentication"이라 불리기도 한다. 

 

web 개발의 많은 측면에서, 논리 결함은 단순히 web site가 예기치 못하게 행동하도록 만들며 이는 보안 문제가 될 수도 있고, 

아닐 수도 있다. 하지만, 인증은 보안에 굉장히 중요한 요소로서 결함이 있는  인증 논리가 그 web site의 보안 이슈를 노출시킬 

가능성은 분명히 높아지게 될 것!

 

 

 

what is the impact of vulnerable authentication??

인증 취약점의 영향은 꽤나 심각할 수 있다. 공격자가 인증을 우회하거나 brute-forced 방식으로 다른 계정에 침입하면, 
공격자들은 취득한 계정이 가지는 모든 데이터와 기능에 접근할 수 있게 된다. 

▶ 시스템 관리자 같은 높은 권한의 계정을 취득할 수 있다면,
그들은 application의 완전한 제어권을 가져올 수 있고 잠재적으로 내부 인프라에 접근할 수 있는 권한을 얻게 된다. 

권한이 낮은 계정을 손상시키더라고 공격자는 가져서는 안 되는 데이터에 대한 접근 권한을 부여할 수 있고, 

상업적으로 민감한 사업 정보와 같이 손상된 계정이 가지고 있는 모든 데이터와 기능에 접근할 수도 있다.

▶ 만약 계정이 어떤 민감한 정보에 직접적으로 접근할 수 없더라도,

공격할만한 측면을 제공하는 추가적인 페이지에 대한 접근을 가능하게 할지도 모르는 일이다.

▶ 공개적으로 접근할 수 있는 페이지에서 certain high-severity attacks은 불가능하지만,

내부 페이지에서는 가능할 수도 있다!!

 

 

'Port Swigger > Authentication' 카테고리의 다른 글

Authentication - 2FA.Lab(1)  (0) 2023.05.21
Authentication - Lab(2)  (0) 2023.05.11
Authentication - Lab(1)  (0) 2023.05.07
Authenticaiton (2)  (0) 2023.05.07
Authentication (1)  (0) 2023.05.03
Comments