본문 바로가기
App hacking

[안드로이드, 자료조사] SSL 피닝

by m_.9m 2022. 5. 13.

결론

인증서 고정이 없으면 애플리케이션은 일반적으로 요청된 호스트 이름과 일치하고 로컬에서 신뢰할 수 있는 CA(인증 기관)에서 발급한 모든 인증서를 수락합니다. 일반적으로 로컬 신뢰 저장소에 100개 이상의 CA가 있으므로 이들 중 하나가 성공적으로 공격을 받을 가능성이 높습니다. 따라서 수락하는 인증서를 특정 인증서로 제한하는 것이 좋습니다. 따라서 SSL 고정은 안전한 모바일 애플리케이션을 구축하는 데 도움이 되지만 고정된 호스트가 손상된 경우 연결을 보호하지 않습니다. 주로 클라이언트를 보호하지만 해커가 트래픽을 스누핑하고 API를 파악하고 다른 보안 허점을 악용하는 것을 더 어렵게 만들어 서버를 보호하는 데도 도움이 됩니다.

그러나 SSL Pinning이 제대로 구현 또는 구성되지 않은 경우 여러 가지 방법을 사용하여 우회할 수 있습니다. 일부 기술은 다음과 같습니다.

 

 

 

1. 자동화 도구 사용

2. 리버스 엔지니어링(Smali 코드 수정)

3. 후킹

SSL 고정과 관련된 몇 가지 우려 사항은 다음과 같습니다.

  • 인증서 비용
  • — 무료 SSL 인증서를 얻을 수 있지만 여러 가지 이유로 권장되지 않습니다. 따라서 SEO 순위, 보안 및 고객 신뢰와 같은 이점을 고려할 때 이 비용은 우려할 이유가 되지 않습니다.
  • 혼합 모드
  • — SSL 구현이 올바르게 설정되지 않고 여전히 HTTPS가 아닌 HTTP를 통해 제공되는 일부 파일이 있는 경우 혼란스럽고 불쾌한 동작이 발생할 수 있습니다.
  • 또한 다중 도메인 SSL 인증서의 경우 예기치 않은 동작을 유발할 수 있는 오류 가능성이 높습니다.
  • 전략을 구현하려면 PKI(공개 키 인프라)
  • 의 사용 및 응용 프로그램에 대한 이해가 필요합니다 . 프레임워크를 배치한 후에는 기본 서버가 다운될 경우에 대비해 별도의 저장 위치에 백업 키를 보관하여 인증서 고정 키를 안전하게 저장하고 보호하는 것이 우선 순위가 됩니다.

 

SSL Pinning Bypass 방지 -

SSL Pinning Bypass는 양방향 SSL 인증을 사용하여 방지할 수 있습니다. 이 기술을 사용하여 애플리케이션은 SSL 클라이언트 역할을 하고 SSL 서버가 SSL 클라이언트에 대해 자체 유효성을 검증한 후 유효성을 검증하기 위해 SSL 서버에 인증서를 보냅니다.

양방향 SSL의 구현은 대부분 복잡하므로 리버스 엔지니어링이나 후킹 방법 또는 기타 자동화 도구를 사용하여 SSL Pinning 우회를 기본적으로 피할 수 있는 Android 애플리케이션의 수정 또는 리버스 엔지니어링을 방지할 수 있습니다.

아래에 유용한 링크 공유 —

 

 

 

#해피코딩 #시큐어코딩

인증서 우회 4가지 방법

Four Ways to Bypass Android SSL Verification and Certificate Pinning

프록시로 인증서 우회

How to Bypass Certificate Pinning with Frida on an Android App

Hail Frida!! The Universal SSL pinning bypass for Android.

Defeating Android Certificate Pinning with Frida

루트 감지 및 SSL 고정 우회

Root detection and SSL pinning bypass

Bypassing SSL Pinning on Android

프리다 내 코드

Frida CodeShare