SSL 인증서 고정(SSL Certificate Pinning) 이란?
- SSL 인증서가 변조될 경우 프록시 툴(BurpSuite, Fiddler 등)에 의해 패킷이 분석 및 변조되며, 이를 이용하여 해커가 공격을 시도할 수 있다. 하여 어플(앱)에서는 SSL 인증서가 변조될 경우 더 이상 어플이 동작하지 않도록 보안조치를 취하는데 이를 SSL 인증서 고정이라 한다.
DVIA-v2 앱을 통한 실습
디바이스와 PC의 버프슈트(BurpSuite)를 연결한다.
※ 디바이스와 PC의 BurpSuite를 연결하는 방법은 아래의 글을 참고하길 바란다.
2023.02.13 - [Mobile App 취약점 진단/iOS App 진단] - 아이폰 버프슈트 프록시 연결 및 인증서 설치 방법
인증서 고정 우회를 실습하기 위해 DVIA-v2 앱을 실행.
메인메뉴 좌측 상단 메뉴 클릭 > Network Layer Security 클릭
텍스트 필드에 값을 입력 > Send Using Certificate Pinning 클릭 > 인증서 고정 우회가 되지 않아 실패 메시지가 출력된다, 버프슈트에도 아무런 내용이 캡처되지 않는다.
인증서 고정 우회를 위해 아래의 사이트에 접속한다.
※ iOS 13 이상은 본문 하단에 있는 별도의 방법을 통해 우회하여야 한다. 본문 하단으로 가길 바란다.
https://codeshare.frida.re/@machoreverser/ios12-ssl-bypass/
사이트에 출력된 소스코드를 복사, 메모장에 붙여넣기 하여 ios_ssl.js 라는 이름으로 저장.
프리다를 이용하여 인증서 고정을 우회할 앱의 이름(Name)을 확인.
> frida-ps -Ua
위에서 생성한 ios_ssl.js 파일과 프리다 명령어를 이용하여 인증서 고정 우회를 실행.
> frida -U -l "인증서우회파일이름" "[앱 이름]"
※ 파일명 또는 앱 이름에 띄어쓰기가 있는 경우 반드시 " "으로 묶어주어야 한다.
위와 같이 Bypass successfully loaded 가 출력되는 경우 인증서 고정 우회에 성공한 것이다.
위의 문구가 출력되었다면 DVIA-v2에서 다시 Send Using Certificate Pinning 문자를 클릭한다.
성공했다는 메시지와 함께 버프슈트에서도 정상적으로 캡처되는 것을 확인할 수 있다.
대응방법
아래의 링크 참고.
'Mobile App 취약점 진단 · 모의해킹 > iOS App 취약점 진단 · 모의해킹' 카테고리의 다른 글
[iOS 취약점 진단] 09강 - 중요정보 메모리 저장(메모리 덤프) (0) | 2023.02.22 |
---|---|
아이폰 버프슈트 프록시 연결 및 인증서 설치 방법 (0) | 2023.02.13 |
[iOS 취약점 진단] 07강 - 불필요한 권한 (0) | 2023.02.12 |
[iOS 취약점 진단] 06강 - 부채널을 통한 데이터 유출(Cookies) (0) | 2023.02.12 |
[iOS 취약점 진단] 06강 - 부채널을 통한 데이터 유출(Keystroke logging) (0) | 2023.02.12 |