Android Hacking
Bypass Certificate Pinning - iOS / Android
hyunmini
2015. 1. 27. 11:31
모바일에만 해당되는 것은 아니지만 최근 HTTPS 사이트 몇군데에서 프록시 툴을 차단하는 경우가 있다.
프록시 툴은 MITM 을 수행하여 자신을 클라이언트로 HTTPS 로 연결한 뒤 클라이언트와 중계해 주는 방식으로 HTTPS 패킷을
볼 수 있게 해준다. 이러한 프록시를 차단하기 위한 한가지 방법으로 소개된 Certificate Pinning 은 클라이언트 상에서 CA를 검증
하여 자신이 접근해야 할 사이트가 아니면 차단하는 방법으로 구현되어 있다.
여기서 가장 큰 문제점은 클라이언트 상에서 구현이 된다는 것이다. 리버싱을 통해 얼마든지 우회가 가능하다는 말이기 때문이다.
방법은 몇가지가 있다.
1) 클라이언트 리버싱 + 코드패칭
- 코드 분석 후 리버싱, 리패키징
2) 후킹을 통한 우회
- 주로 사용되는 통신 API 후킹, 오버라이드
- iOS / NSStream, CFStream, NSURLConnection
- Android / HttpsURLConnection
1번은 코드에 따라 다르니 알아서 우회하면 되고, 2번은 자동화 툴이 공개되어 있다.
- iOS / iOS SSL Kill Switch / https://github.com/iSECPartners/ios-ssl-kill-switch
- Andoid / Android SSL Bypass Tool / https://github.com/iSECPartners/android-ssl-bypass
상세 분석은 다음에~