DVIA 를 통한 취약점 파헤치기!(Data 노출)
작성자 - 한수임안녕하세요.
이번에는 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
• 중요한 데이터(계정정보)를 저장하면 안되고, 서버에서 세션 값을 받아와 인증하도록 설정
이번 실습도 끄읏~
이제 남은 실습은 얼마 안남았습니다~
'Season 1 > 기술 보안' 카테고리의 다른 글
Cisco EtherChannel 구성 (0) | 2024.03.31 |
---|---|
[Active Directory] 4장. AD 정보수집 프로그램 제작 (0) | 2024.03.19 |
Apache struts 2 취약점(CVE-2023-50164) (0) | 2024.02.29 |
DVIA 를 통한 취약점 파헤치기!(Runtime 조작3) (0) | 2024.02.04 |
[IOS] DVIA 를 통한 취약점 파헤치기!(Runtime 조작2) (0) | 2024.01.02 |