본문으로 바로가기

가. ASLR(Address Space Layout Randomization) 이란?

- "주소 공간 배열 무작위화"로 직역되며 메모리 손상 취약점 공격을 방지하기 위한 기술이다.

- 프로그램이 실행될 때마다 메모리주소가 랜덤으로 변경된다.

- 탈옥 탐지 우회, 앤 변조등을 하기 위해서는 바이너리 파일에 ASLR이 적용되어 있는지 확인하여야 한다.

 

나. otool 이란?

- 개체 파일이나 라이브러리의 지정된 부분을 표시할 수 있는 프로그램이다.

- Fairplay DRM 및 ALSR 적용유무를 확인하는데 사용한다.

 

다. 바이너리 파일 경로 확인

- 해당 과정을 진행하기 위해서는 3uTools가 필요하다. 아래의 게시글을 참고하여 3utools를 PC에 설치한다.

2022.06.28 - [Mobile App 취약점 진단/iOS App 진단] - [iOS App 진단] 03강 - 진단 도구 설치

 

[iOS App 진단] 03강 - 진단 도구 설치

1. Cydia(시디아) - 탈옥을 성공하면 자동으로 설치되며, 앱 스토어에서 지원하지 않는 앱을 다운로드할 수 있다. - iOS가 지원하지 못하는 기능을 Cydia를 이용하여 설치할 수 있는데 이를 Tweak(트윅)

hagsig.tistory.com

 

- 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와 같은 코드 재사용 공격을 막을 수 있다.