Home Authentication bypass
Post
Cancel

Authentication bypass

실무에서 자주나오는 인증우회 취약점 패턴들을 알아봅시다.

Authentication Bypass

인증우회란(Authentication Bypass) 공격자가 정상적인 인증 절차를 거치지 않고, 시스템이나 기능에 접근할 수 있는 취약점입니다.

CWE-287에 인증 우회에 대한 조건이 설명되어 있습니다.

인증 우회 패턴

대부분의 금융권 서비스들은 주요 기능들을 이용할때 대부분 2차 인증(OTP, 카드비밀번호, 휴대폰 본인확인)등이 적용 되어있습니다. 이는 세션이나 계정이 탈취당하더라도 공격자가 추가 인증을 통과하지 못하면 주요 기능을 수행할 수 없도록 하기 위반 보안 통제입니다.

그러나 인증 절차가 잘못 구현된 경우에는 이러한 보호 통제가 무력화 될 수 있으며, 실무에서 발생하는 인증 우회 패턴들을 소개하겠습니다.

[ 인증 우회 패턴]

  1. 서버 측 인증 검증 누락
  2. 클라이언트 인증 여부 판단
  3. 프로세스 인증 누락

서버 측 인증 검증 누락

주요 기능 접근 시 서버가 추가 인증 여부를 검증하지 않는 경우입니다.
대표적으로 마이페이지, 결제/송금등 중요 기능들을 접근할 때 2차 인증이 없는 경우입니다. 해당 케이스들은 거의 발견되지는 않지만 마이페이지 접근할 때 이러한 인증 절차가 없는 케이스들이 종종 발견됩니다.

공격자 입장에서는 마이페이지에 접근하는 것이 개인정보를 얻을 수 있는 방법 중 하나이기 때문에, UX가 불편하더라도 이러한 기능을 추가하는 것이 세션이나 계정들을 탈취당했을 때 2차 피해를 막을 수 있는 방안 중 하나입니다.

클라이언트 인증 여부 판단

클라이언트가 인증 성공 여부를 판단하는 경우 발생하는 취약점입니다.
해당 취약점은 틀린 정보를 입력 시 응답 에러코드를 정상코드로 변조 시 우회되는 취약점입니다. 해당 케이스는 웹 보다는 모바일에서 주로 발견됩니다.

대부분의 금융권 모바일은 E2E 솔루션이 적용되어 있어 암호화된 패킷은 변조할수 없다고 생각하기 쉽습니다. E2E 암호화는 네트워크 구간에서 MITM(중간자공격)을 방어하는데 효과적인 보안통제 이지만, 공격자가 직접 소유하고 있는 단말기 내부까지 보호할 수 있는 기술은 아닙니다.

E2E는 결국 단말기 내부에서 암/복호화 처리를 하기 때문에 결국 메모리상에 평문으로 키가 노출 되거나, 공격자는 암복호화 함수를 후킹하여 평문을 무조건 볼 수 있습니다.
따라서, 인증 여부 판단은 반드시 서버에서 처리하도록 해야 합니다.

프로세스 인증 누락

해당 취약점은 여러 단계의 인증 절차 중 일부 인증 결과를 서버가 검증하지 않아 최종 단계에서만 통과하면 전체 인증이 완료되는 취약점입니다.

아래는 휴대폰 인증은 통과하지 못했는데 최종 인증 단계인 카드비밀번호 인증에서 정상 통과 시 이체가 성공하는 예시입니다.
이런 케이스들은 중간 인증 절차에 대한 위에서 언급한 서버측 인증 검증이 부재하거나 최종 인증에만 적용되어 있을 경우 발생할 수 있습니다.

1
예시) [ 로그인 ] -> [ 휴대폰 인증 ] -> [ 카드 비밀번호 ] -> [ 이체 성공 ]

Conclusion

최근 모의해킹 강의를 들으면서, 강사님께서는 이러한 취약점이 웹보다 모바일에서 더 자주 발견되는 이유 중 하나로 웹 서비스는 오랜 기간 동안 지속적으로 보안 점검을 받아왔지만, 모바일은 상대적으로 점검이 부족한 경우가 많기 때문​이라는 의견을 말씀해 주셨습니다.

이러한 의견에 공감하고 개인적인 생각으로는 모바일 점검 환경 또한 중요한 원인이라고 생각합니다. 웹 서비스는 비교적 바로 점검을 시작할 수 있는 반면, 모바일은 점검에 앞서 루팅 탐지, Frida 탐지, E2E 암호화, SSL Pinning등 다양한 보안 기능을 우회하거나 분석 가능한 환경을 구축해야 합니다. 이러한 준비 과정만으로도 상당한 시간과 전문성이 필요합니다.

즉, 이러한 기술을 이해하지 못하거나 분석 환경을 구축하지 못하면 실제 비즈니스 로직이나 인증 절차를 충분히 점검하기 어렵습니다.
추가로 점검 공수가 웹서비스와 동일하다면, 모바일은 분석 환경 구축에 많은 시간을 소모하게 되어 정작 중요 기능에 대한 점검은 충분히 수행하지 못할 가능성이 높습니다.

Referrence

  • https://www.sentinelone.com/ko/cybersecurity-101/identity-security/authentication-bypass/