728x90
iOS는 왜 해킹에 강할까? 라는 의문점을 가지고 찾아 보는 중에 DEP라는 매커니즘이 적용된 것을 알 수 있었다.
01 DEP란?
프로세서가 데이터 영역은 실행하지 않고 코드 영역만 구동하도록 메모리에서 코드 영역과 데이터 영역을 구분하기 위한 메커니즘.
즉, 공격 코드가 다운로드한 코드를 실행시키는 것을 막을 수 있다는 뜻이다.
다운로드한 코드는 DEP를 통해 데이터로 취급되어서 실행을 할 수 없게 된다.
그래서 iOS를 공격할 때는 ROP를 사용한단다. ( ROP에 대해선 나중에..)
02 iOS의 코드서명.
iOS의 코드서명은 매커니즘은 DEP와 비슷하지만 좀 더 강력하다.
DEP를 매커니즘이 되어있다면, ROP를 활용해 쓰고 실행할 수 있는 메모리 영역을 먼저 생성한 후, 공격에 필요한 페이로드를 작성하고 실행시키면 되지만,
iOS의 코드서명의 경우 신뢰할 수 있는 기관으로 부터 서명되지 않은 코드는 아무것도 실행시킬 수 없다.
따라서 ROP를 실행시킬 수 있을 뿐 페이로드는 실행하기 어렵다.
728x90
'Developer > iOS' 카테고리의 다른 글
[iOS]What's New in the Apple Push Notification Service (0) | 2017.08.08 |
---|---|
[iOS]NSDate 시간 차이 구하기 (0) | 2017.05.19 |
iOS10.0의 새로운 점(What's New in iOS 10.0) (0) | 2016.11.07 |
비동기(NSOperation, GCD)의 차이점. (2) | 2016.08.16 |
[iOS]WCSession으로 iWatch와 iPhone 데이터 주고 받기 (0) | 2016.08.02 |