본문으로 바로가기

SSL 인증서 고정(SSL Certificate Pinning) 이란?

- SSL 인증서가 변조될 경우 프록시 툴(BurpSuite, Fiddler 등)에 의해 패킷이 분석 및 변조되며, 이를 이용하여 해커가 공격을 시도할 수 있다. 하여 어플(앱)에서는 SSL 인증서가 변조될 경우 더 이상 어플이 동작하지 않도록 보안조치를 취하는데 이를 SSL 인증서 고정이라 한다.

 

DVIA-v2 앱을 통한 실습

디바이스와 PC의 버프슈트(BurpSuite)를 연결한다.

※ 디바이스와 PC의 BurpSuite를 연결하는 방법은 아래의 글을 참고하길 바란다.

2023.02.13 - [Mobile App 취약점 진단/iOS App 진단] - 아이폰 버프슈트 프록시 연결 및 인증서 설치 방법

 

아이폰 버프슈트 프록시 연결 및 인증서 설치 방법

아이폰과 PC의 프록시(Proxy)를 연결하기 위해서는 네트워크 환경 구성부터, 프록시 설정, SSL 인증서 설치까지 많은 과정이 따른다. 좀 복잡하지만 아래의 방법을 따라하여 성공적으로 환경을 구

hagsig.tistory.com

 

인증서 고정 우회를 실습하기 위해 DVIA-v2 앱을 실행.

 

메인메뉴 좌측 상단 메뉴 클릭 > Network Layer Security 클릭

 

텍스트 필드에 값을 입력 > Send Using Certificate Pinning 클릭 > 인증서 고정 우회가 되지 않아 실패 메시지가 출력된다, 버프슈트에도 아무런 내용이 캡처되지 않는다.

 

인증서 고정 우회를 위해 아래의 사이트에 접속한다.

※ iOS 13 이상은 본문 하단에 있는 별도의 방법을 통해 우회하여야 한다. 본문 하단으로 가길 바란다.

https://codeshare.frida.re/@machoreverser/ios12-ssl-bypass/

 

Frida CodeShare

 

codeshare.frida.re

 

사이트에 출력된 소스코드를 복사, 메모장에 붙여넣기 하여 ios_ssl.js 라는 이름으로 저장.

 

프리다를 이용하여 인증서 고정을 우회할 앱의 이름(Name)을 확인.

> frida-ps -Ua

 

위에서 생성한 ios_ssl.js 파일과 프리다 명령어를 이용하여 인증서 고정 우회를 실행.

> frida -U -l "인증서우회파일이름" "[앱 이름]"

※ 파일명 또는 앱 이름에 띄어쓰기가 있는 경우 반드시 "  "으로 묶어주어야 한다.

 

위와 같이 Bypass successfully loaded 가 출력되는 경우 인증서 고정 우회에 성공한 것이다.

위의 문구가 출력되었다면 DVIA-v2에서 다시 Send Using Certificate Pinning 문자를 클릭한다.

성공했다는 메시지와 함께 버프슈트에서도 정상적으로 캡처되는 것을 확인할 수 있다.

 

대응방법

아래의 링크 참고.

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=gingkosnews&logNo=222271132603&categoryNo=1&proxyReferer= 

 

Prevent bypassing of SSL certificate pinning in iOS applications_iOS 애플리케이션에서 SSL 인증서 고정 우회 방지

By: Dennis Frett - Software engineer 공격자가 모바일 애플리케이션을 리버스 엔지니어링 할 때 가장...

blog.naver.com