R's Hacking Daily Log

Authenticaiton (2) 본문

Port Swigger/Authentication

Authenticaiton (2)

hanhxx 2023. 5. 7. 17:53

What is the impact of vulnerable authentication?

취약한 인증 체제로 인한 피해는 굉장히 심각할 수 있다.

공격자가 brute force 공격으로 다른 사용자의 계정을 탈취하거나 인증을 우회하게 되면

그들이 탈취한 계정이 가지는 모든 기능과 데이터에 대한 접근이 가능해진다.

 

 

만약 공격자가 시스템 관리자와 같이 높은 권한의 계정을 탈취했다면 그들은 시스템 전반에 걸친 제어권을 갖게 되며

잠재적으로 내부 인프라에 대한 접근성을 얻을 수 있다.

 

낮은 권한의 계정이 탈취되는 경우에도

공격자에게 알지 못했던 (상업적으로 민감한 사업 정보와 같은) 데이터를 얻을 권한이 주어지게 된다.

 

어떠한 데이터를 얻지 못한다고 하더라도

인증된 사용자에게만 출력되는 페이지에 접근 가능해지기 때문에 추가적인 공격 측면이 제공될 수도 있다. 

 

*보통 위험성이 높은 공격은 공개적으로 접근 가능한 페이지보다는 내부 페이지로부터 발생할 확률이 높다.

 

 

 

Vulnerabilities in authenticaion mechanisms

웹의 인증 메카니즘은 몇 개의 서로 다른 메카니즘들로 구성된다.

*여기서의 메카니즘에서 취약점이 발생할 수 있다.

 

몇몇의 취약점은 광범위하게 여러 메카니즘에 걸쳐 적용될 수 있지만,

반대로 특정 기능에 대해서만 적용되는 취약점도 존재한다.

 

그중에서도 가장 일반적인 취약점에 대해 알아볼 것이다.

*이 부분은 Lab으로 살펴볼 예정!!

 

 

 

Preventing attack on your own authentication mechanisms

앞에서 취약한 인증 체제가 미치는 영향에 대해 얘기해 보았다.

그렇다면 인증 체제에서 발생할 수 있는 취약점을 어떻게 예방할 수 있을 지에 대해 살펴보자.

 

 

1. 계정 정보 관리는 철저하게

가장 인증 체제를 무력하게 만드는 것은 우연찮게 계정 정보를 공격자에게 공개하는 것이다. 

그렇기 때문에 데이터를 암호화하지 않는 연결을 통해 전송하는 일은 일어나서는 안 된다!!

 

로그인하기 위해 HTTPS로 요청을 보내는 것뿐만 아니라 어쩌다 HTTP로 요청이 만들어져도 HTTPS로

리디렉션 되는지 확인할 필요가 있다. 

 

 

2. 사용자에게 보안을 의존할 순 없다..!?

엄격한 인증 절차는 사용자의 노력을 요구하지만

사용자 입장에서는 어떤 서비스를 이용하든 더 편리하고 간편한 방법을 추구하기 마련이다. 

(ex. browser - 계정 정보 기억하기)

 

간편함을 추구하는 행동은 때때로 보안적인 측면에서의 리스크를 유발할 수 있기 때문에

가능한 한 보안적인 부분을 고려한 노력을 들일 필요가 있다. 

 

가장 확실한 예시를 들자면 효과적인 암호 정책을 실행하는 것으로 비밀번호를 만들거나 변경할 때

어느 정도로 안전한 암호인지 알려주는 검사기를 한 번쯤 본 적이 있을 텐데 이를 활용하여

 

만약 가장 높은 보안 수준의 암호만을 사용할 수 있도록 정책을 시행한다면 

안전한 비밀번호 사용을 강화하기엔 충분히 효과적일 것이다. 

 

 

3. 사용자 이름 열거 방지하기 

사용자가 시스템에 존재한다는 사실이 공격자에게 알려진다면 그 사용자의 인증 체제를 뚫는 것은 상당히 쉬워지기 때문에,

특정 계정의 존재 여부를 아는 것은 상당히 민감한 정보라 할 수 있다. 

 

 

4. Brute force 공격에 대한 방어를 구현하자!

무차별 대입 공격을 실행하는 것이 얼마나 간단한 지 고려했을 때, 

무차별 대입 공격으로 어떤 로그인 시도를 방지하거나 적어도 중단시키기 위한 조치를 취해야 한다. 

 

공격자가 IP 주소를 조작하는 부분도 고려해야 하며, 제한된 횟수만큼 로그인을 시도했을 경우 CAPTCHA

실행하도록 하는 등의 기능 구현이 필요하다. 

 

 

5. 인증 로직을 세 번을 체크해봐야 한다.

사용자나 웹 사이트에 손상을 가할 수 있는 로직 결함이 코드 상에 포함되기 쉽기 때문에 

결함이 되는 부분을 찾아 없애기 위해 인증 로직을 검사하는 것은 강력한 인증 체제를 위한 key!!

 

 

6. 추가 기능을 무시하지 말라!

인증과 관련된 부분이라고 해서 로그인하는 페이지만을 중심적으로 고려하다가는

비밀번호 찾기 or 변경과 같은 기능들에서 공격 측면이 노출될 수 있다. 

 

 

7. 다인증 체제 설정하기 (2차 인증)

비밀번호만 사용하여 로그인하는 것보다 여러 factor를 사용하는 인증 체제를 구현하는 것이 훨씬 안전하다.

귀찮다는 이유로 2차 인증을 설정하지 않는 사람들이 많은데,

메일을 사용하는 계정은 더더욱 2차 인증이 기본 중에 기본이다!

'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
Authentication (1)  (0) 2023.05.03
Authentication  (0) 2022.11.11
Comments