본문 바로가기

해킹/IOS 앱 취약점 진단

soFrida를 이용한 IOS 앱 동적 분석 - 파일분석

이번 글에서는 IOS 앱을 동적 분석을 하기 위한 soFrida의 사용법과 

파일 처리 관련 함수를 후킹 하여 앱에서 어떤 파일을 사용하는지 확인하는 방법을 설명합니다.

필요한 것은 루팅된 아이폰과 USB 케이블입니다.

 

아이폰에는 Frida서버를 실행해주시고 PC에는 soFrida를 실행해야 하는데요

Frida서버를 아이폰에 설치하는 방법은 인터넷에 검색하시면 많이 나오니 생략합니다.

 

soFrida를 사용하기위해서는 아래의 깃허브에서 다운로드하고 설명대로 설치해주시면 됩니다.

https://github.com/june5079/soFrida

 

june5079/soFrida

soFrida - Dynamic Analysis Tool for Mobile Applications - june5079/soFrida

github.com

 

soFrida가 사용하기 좋은 이유는 Frida만 사용할 때에 비해 불편함이 어느 정도 덜어진다는 것인데요

실행했을 때 메인화면은 아래와 같이 나옵니다.

 

여기서 우리는 파일 입출력에 대해 분석을 하기위해 직접 함수를 브레이크 포인트를 걸고 분석하는 것이 아닌

Frida의 기능을 이용하여 해당 함수에 로깅기능을 추가해서 분석할 수 있습니다.

 

메인 화면에서 Analysis를 클릭하고 IOS - manual을 클릭하면 프로세스 목록이 뜨는 것을 확인할 수 있습니다. 

만약 프로세스 목록이 안뜬다면 frida server 버전을 확인하고 실행 중인지 확인하시면 됩니다.

 

해당 프로세스를 선택하고 Class와 Method를 선택하면 해당 함수를 후킹 할 수 있습니다.

앱에서 어떤 파일을 사용하는지 확인하기 위해 NSFileManager 클래스의 fileExistsAtPath 함수에

후킹을 걸어서 어떤 파일을 사용하는지 확인하였습니다.

 

Load버튼을 클릭하면 해당함수가 위의 코드를 거쳐서 호출되고 

앱에서 기능을 실행시켜 어떤 파일을 사용하는지 확인 할 수 있습니다.

 

 

만약 특정 파일들(이미지 등)을 제외하고 보고 싶다면

아래와 같이 약간의 코드를 추가하여 볼 수 있습니다.

 

 

앱이나 프로그램을 분석하기 위해서는 무조건 디버거를 열어서 

어떤 기능이 있는지 확인하는 것보다는 soFrida같이 간접적으로 정보를 수집하고 

그 이후 상세 분석으로 들어가는 것이 좋다고 생각합니다.

 

제가 경험은 많이 없지만 이러한 것들을 경험으로 깨달았고 

이런 방법들이 시간을 많이 절약해주기 때문에 이러한 툴이 정말 중요하다고 생각합니다.