안녕하세요.

 

이번에는 Side Channel Data Leakage 항목을 실습 해보도록 하겠습니다.

 

중요한 데이터를 노출할 때

디바이스 로그, Pasteboard, 앱 스크린샷, Keystroke 로깅, API 등 종류가 있습니다.

 

Keystroke : 입력 키를 누르는 행위, 키보드  또는 이와 유사한 입력 장치를 누름

Pasteborad : 애플리케이션 내 또는 애플리케이션 간에 데이터 교환을 위한 매커니즘

 

1. Device Logs

- 개발자가 디버깅동안 로그를 남기지만 배포할 때 로그를 제거하지 않아 발생

 

DVIA 에서 Device Logs 항목을 통해 보도록 하겠습니다.

 

해당 항목 접근 후 아래와 같이 작성 후 Sign Up 시 로그를 통해 노출되는 값이 있는지 확인해 보도록 하겠습니다.

 

 

3uTools를 통해 로그 기록을 확인 결과, 노출 되는 곳은 없었습니다. 아이폰 업데이트 후 사라진것 같다고 하네요..

Export 기능을 통해 파일 추출 후 문자열 검색을 통해 확인할 수 있습니다.

 

2. App Screenshot

- 애플리케이션이 백그라운드로 들어갈 때 스크린샷을 찍음, 사용자에게 원활하게 보여주기 위해 사용됨

- 스크린샷에 중요한 정보 담길 수 있으며, 적절한 보호 없이 애플리케이션 샌드박스에 저장되어 확인 가능

 

 

 

 

App Screenshot 버튼 클릭

 

해당 부분에 임의의 test 작성 후 백그라운드에서 화면 확인

 

작성한 test가 screenshot에 저장되어 있음을 확인

 

이전에 설치한 Filza를 통해 저장된 스크린샷 확인

 

var > mobile >Containers > Data > Application > 이후 DVIA 앱 찾기> Library > Caches > Snapshots > DVIA 파일 선택 > atx 파일 선택 후 이미지 뷰어로 확인

(3uTools 위치 : Files > Application(User) > DVIA-v2(시간순 정렬 후 확인) > DVIA-v2.app > var(데이터 컨테이너 접속됨 ) > mobile >Containers > Data > Application > 이후 DVIA 앱 찾기> Library > Caches > Snapshots > DVIA 파일 선택 >  atx 파일 확인 )

 

이미지로 확인 시 백그라운드에서 확인한 screen shot 확인 가능

 

3. Pasteboard 

- 일부 텍스트를 복사하면 Pasteboard 버퍼에 저장됨, 다른 애플리케이션이 버퍼에 저장된 데이터를 가져올 수 있음

- 복사한 중요한 텍스트가 Pasteboard에 포함되어 있으면 다른 애플리케이션에서 가져와 데이터 유출 가능

 

Pasteboard 항목에 들어가 아래 임의의 입력 후 12341234 번호 선택 후 저장

 

 

복사 후 frida를 통해 저장된 값을 확인 

 

 

해당 코드는 구글링을 통한 pastboard 모니터링 한 코드이며, 프리다로 수행

 

해당 복사 값이 저장되는 것을 확인

 

4. Keystroke logging

- 텍스트 필드가 Secure로 설정되지 않을 경우 디바이스의 텍스트 필드에 입력한 모든 입력을 기록

- 로그를 통해 쉽게 확인가능

- /var/mobile/Library/Keyboard/en-dynamic.lm 위치에 .dat 파일로 저장

 

해당 부분에서 임의로 입력

 

해당 부분 .dat 파일 확인을 통해 로깅된 텍스트를 확인가능 하지만, 현재 확인되지 않음.

(IOS 업데이트로 인해 정책상 막혀있는것으로 보임)

 

5. Cookies

- Persistance Cookies를 생성해 cookie.binarycookies 파일에 저장

- /var/mobile/Containers/Data/Application/$uuid/Libratty/Cookies/Cookies.binarycookies 가 쿠키 경로

 

앱의 해당 기능을 통해 임의의 입력 후 Test the result 클릭

 

실패 메시지 확인

 

3uTools의 해당 경로의 아래 파일을 통해 쿠키 값 확인

 

해당 파일 확인 시 ID/PW 확인 후 입력

 

성공 된 것을 확인

 

 

 

대응 방안

 

- Device Logs

• 개발자가 애플리케이션 로그 제거를 잊었을 때 발생하므로, 로그 활성화 여부 확인이 필요

– App Screenshot

• 애플리케이션이 백그라운드로 전환될 때 스크린샷은 애플리케이션의 메인 화면 또는 중요한 데이터가 노출되지 않 는 화면을 사용해야 함

– Pasteboard

• 중요한 데이터를 다루는 곳에서는 Custom Pasteboard / 가상 키패드를 사용

• 중요한 데이터가 Pasteboard 버퍼에 캐시 여부 확인

– Keystroke logging

• 텍스트 필드를 Secure로 설정하고, autocorrect(자동고침) 옵션을 해제해야 함

– Cookies

• 중요한 데이터(계정정보)를 저장하면 안되고, 서버에서 세션 값을 받아와 인증하도록 설정

 

이번 실습도 끄읏~

이제 남은 실습은 얼마 안남았습니다~

 

 

 

 

 

 

 

 

 

 

복사했습니다!