본문 바로가기

IOS 모의해킹

10. Network Layer Security

1. Network Layer Security 개요

- 네트워크를 통해 데이터를 전송할 때 세가지 방법과 ATS 설정 확인

- HTTP, HTTPS, SSL/Cert PINNING, ATS

2. 실습

2-1. HTTP

현재 IP 주소 확인

 

BurpSuite에서 프록시 설정 변경

현재 PC의 IP 주소와 동일하게 입력하고, 사용하지 않는 임의의 포트번호 입력

 

아이폰에서 프록시 설정

 

SEND OVER HTTP 버튼 클릭

 

요청한 패킷이 잡히는 것을 확인

2-2. HTTPS

프록시 설정이 되어 있는 상태에서 주소창에 burp 입력

 

해당 사이트 우측에 인증서 클릭

 

설정,일반,프로파일로 들어가서 해당 파일 설치

 

설정,일반,정보,인증서 신뢰 설정에서 PortSwigger CA 활성화

 

https 패킷 전송 시 https 통신을 하고 있는 것을 확인

2-3. SSL Pinning

- SSL Pinning이 적용되어 있으면 해당 앱이 통신할 인증서가 특정 인증서로 고정되어 있어서 Pinning을 우회해야 한다

 

이름 및 카드번호 입력으로 인증 실패 시 실패 메시지 출력

 

프리다를 통해서 우회가 가능하나 IOS 버전별로 우회 코드가 조금씩 다르며, https://codeshare.frida.re에서 진단에 도움되는 코드 사용 가능

-f 옵션은 spawn, 앱을 실행하면서 해당 코드를 삽입

 

해당 코드를 노트패드로 저장 후 프리다로 실행시킬 경우 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