Side Channel Data Leakage

옥영진·2023년 2월 1일
0

DVIA-v2

목록 보기
7/7

App Screenshot

텍스트 입력
아이폰에서 홈 버튼을 두 번 눌렀을 때 백그라운드로 전환된 앱 리스트들이 표시되는데,

이 때 앱 화면이 실시간으로 보여지는 것이 아니라, 백그라운드로 전환되기 직전 앱 화면을 이미지로 저장되어 보여주는 것이다.

따라서 금융권 앱과 같이 중요 정보를 입력 하는 앱이 백그라운드 상태로 전환될 때는 앱 화면이 보호되지 않고 스냅샷으로 저장되어 노출되는지 확인해야 한다.

샌드박스 내 스냅샷이 저장되는 경로를 알기 위해 DVIA 앱 입력 칸에 문자열을 입력하고 홈 버튼을 눌러 백그라운드 상태로 전환한다.

홈 버튼 두번 누르기
이런식으로 홈 버튼을 두 번 누르면 백그라운드로 전환된 앱 리스트가 표시되는데, 백그라운드로 전환되기 직전 화면이 이미지로 저장된다는 것을 알고 있어야 한다.


/private/var/mobile/Containers/Data/Application/[앱 디렉토리]/Library/Caches/Snapshots/com.highaltitudehacks.DVIAswiftv2 디렉토리 내에 .ktx 파일이 있는 것을 확인할 수 있다.

filza 앱 실행
filza 파일 관리 앱을 실행한다.

이미지 뷰어 실행
찾았던 .ktx 파일을 이미지 뷰어로 열어본다.

스크린샷 확인
백그라운드로 전환되기 직전의 앱 화면이 이미지 파일로 저장되어 있음을 알 수 있다.

Pasteboard

카드번호 복사
입력칸에 카드 번호 등 개인 정보를 입력하고, 그 중 카드 번호를 복사한다.

pasteboard는 클립보드라고 생각하면 되는데, 일부 텍스트를 복사하면 pasteboard 버퍼에 저장되어 다른 앱에서 해당 버퍼에 저장된 텍스트를 가져올 수 있게 된다.

https://github.com/interference-security/frida-scripts/blob/master/iOS/pasteboard-monitoring.js

다른 포스팅에서 소개했던 ios frida 코드가 저장된 gitlab에서 pasteboard에 저장된 데이터를 확인하는 코드를 가져와서 사용했다.

frida 실행
frida로 해당 코드를 실행하면 pasteboard에 처음에 복사한 데이터가 저장된 것을 확인할 수 있다.

Keystroke logging


iOS에서는 텍스트 필드에 대해 Secure 설정이 되어 있지 않으면 입력되는 모든 값이 로그로 남게 된다.

keystroke 로그는 /var/mobile/Library/Keyboard/OO-dynamic.lm 디렉토리 내에 있다.


해당 디렉토리 안에 있는 모든 파일을 가져와서 열어보니 입력했던 기록이 남아 있는 것을 알 수 있다.

Cookies


일부 앱에서 cookie 값을 cookies.binarycookies 파일에 저장된다고 한다.

해당 파일을 /Library/Cookies/ 디렉토리 내에서 찾아 쿠키 값을 얻는 것이 목표다.


해당 파일을 찾아 메모장으로 쿠키 파일 내부를 살펴보면 username/admin123, password/dvpassword 가 눈에 띈다.


바이너리 파일이라 보기가 불편하다면 python 패키지 중 binarycookiesreader를 설치하여 사용한다.


그러면 cookie 값이 가독성 좋게 txt 파일로 생성되어 볼 수 있다.


또는 Objection 이라는 툴을 사용하여 앱에 저장된 cookie 값을 확인해볼 수도 있다.


얻은 쿠키 계정 정보를 입력하면 성공적으로 쿠키 값을 얻었다는 것을 알 수 있다.

profile
안녕하세요 함께 공부합시다

0개의 댓글