가. ASLR(Address Space Layout Randomization) 이란?
- "주소 공간 배열 무작위화"로 직역되며 메모리 손상 취약점 공격을 방지하기 위한 기술이다.
- 프로그램이 실행될 때마다 메모리주소가 랜덤으로 변경된다.
- 탈옥 탐지 우회, 앤 변조등을 하기 위해서는 바이너리 파일에 ASLR이 적용되어 있는지 확인하여야 한다.
나. otool 이란?
- 개체 파일이나 라이브러리의 지정된 부분을 표시할 수 있는 프로그램이다.
- Fairplay DRM 및 ALSR 적용유무를 확인하는데 사용한다.
다. 바이너리 파일 경로 확인
- 해당 과정을 진행하기 위해서는 3uTools가 필요하다. 아래의 게시글을 참고하여 3utools를 PC에 설치한다.
2022.06.28 - [Mobile App 취약점 진단/iOS App 진단] - [iOS App 진단] 03강 - 진단 도구 설치
- 3uTools Files에서 Applications(User) 클릭 또는 탐색창에 /var/Containers/Bundle/Application 입력한다.
- 분석 대상 앱 이름과 동일한 폴더를 더블클릭한다.
- Size 클릭하여 파일을 크기순으로 정렬한다.
- 폴더를 제외하고 크기가 제일 큰 파일이 바이너리 파일이다.
- 바이너리 파일명과 경로는 다음과정에서 사용해야 하므로 기억해 둔다.
라. ASLR 적용유무 확인
- Common tools 클릭 → Open SSH Tunnel 클릭
※ Open SSH Tunnel버튼이 없다면 우측 상단에 있는 Edit을 눌러 추가한다.
- 위에서 확인한 바이너리 파일 경로로 이동한 뒤, otool을 이용해 ASLR 적용유무를 확인.
* 명령어 : cd [바이너리 파일 경로]
* 명령어 : otool -Vh [바이너리 파일 이름]
- 아래 사진과 같이 'PIE'라는 문구가 출력되면 바이너리 파일에 ASLR이 적용되어 있는 것임.
※ PIE이란?
- PIE란 Position Independent Execution의 약자로 메모리 어디에 매핑되어도 실행에 지장이 없도록 바이너리를 위치를 독립적으로 컴파일하는 기법을 말하며, 바이너리가 실행될 때마다 랜덤한 주소에 매핑시켜 주는 메모리 보호기법 중 하나이다.
- PIE가 설정되어 있으면 코드 영역의 주소가 실행될 때마다 변하기 때문에 ROP와 같은 코드 재사용 공격을 막을 수 있다.
'Mobile App 취약점 진단 · 모의해킹 > iOS App 취약점 진단 · 모의해킹' 카테고리의 다른 글
[iOS App 진단] 12강 - 탈옥 탐지 우회(이론 및 대응방법) (0) | 2023.10.03 |
---|---|
프리다(Frida) 문법 및 후킹에 사용되는 함수 설명 (0) | 2023.10.03 |
[iOS App 진단] 11강 - 애플리케이션 패칭(앱 위·변조) 실습 4 (0) | 2023.09.10 |
[iOS App 진단] 11강 - 애플리케이션 패칭(앱 위·변조) 실습 3 (0) | 2023.09.10 |
[iOS App 진단] 11강 - 어플리케이션 패칭(앱 위·변조) 실습 2 (0) | 2023.09.10 |