1. Network Layer Security 개요
- 네트워크를 통해 데이터를 전송할 때 세가지 방법과 ATS 설정 확인
- HTTP, HTTPS, SSL/Cert PINNING, ATS
2. 실습
2-1. HTTP
현재 IP 주소 확인
BurpSuite에서 프록시 설정 변경
아이폰에서 프록시 설정
SEND OVER HTTP 버튼 클릭
요청한 패킷이 잡히는 것을 확인
2-2. HTTPS
프록시 설정이 되어 있는 상태에서 주소창에 burp 입력
해당 사이트 우측에 인증서 클릭
설정,일반,프로파일로 들어가서 해당 파일 설치
설정,일반,정보,인증서 신뢰 설정에서 PortSwigger CA 활성화
https 패킷 전송 시 https 통신을 하고 있는 것을 확인
2-3. SSL Pinning
- SSL Pinning이 적용되어 있으면 해당 앱이 통신할 인증서가 특정 인증서로 고정되어 있어서 Pinning을 우회해야 한다
이름 및 카드번호 입력으로 인증 실패 시 실패 메시지 출력
프리다를 통해서 우회가 가능하나 IOS 버전별로 우회 코드가 조금씩 다르며, https://codeshare.frida.re에서 진단에 도움되는 코드 사용 가능
해당 코드를 노트패드로 저장 후 프리다로 실행시킬 경우 pinning 우회 발생
PUBLIC KEY PINNING, CERTIFICATE PINNING 둘 다 클릭 시
잡힌 패킷 확인
2-3. ATS(App Transport Security)
NSAllowArbitarryLoads는 HTTP 통신을 허용한다는 의미
기존 infoplist 파일을 아래의 이미지와 같이 변경 후 import
변경한 내용의 Info.plist 파일을 import 해주면 HTTP 통신을 하는 패킷은 잡지 않고, HTTPS 통신을 하는 패킷만 잡게됨
3. 대응방안
- HTTPS 통신 필수
- HTTP 통신을 사용하지 않는다면, ATS에 NSTemporaryExceptionAllowsInsecureHTTPLoads 키 설정
[도움 및 출처]
보안프로젝트 김태영 팀장 해커를 위한 iOS 앱 모의 해킹 전문 과정
'IOS 모의해킹' 카테고리의 다른 글
12. Aplication Patching(2) - Check For Jailbreak (0) | 2023.03.15 |
---|---|
11. Aplication Patching(1) - Login Method (0) | 2023.03.15 |
9. IPC Issues (0) | 2023.03.14 |
8. Side Channel Data Leakage (0) | 2023.03.14 |
7. Runtime Manpulation(3) (0) | 2023.03.13 |