본문 바로가기

해킹/Mobile application Hacking

[Mobile App Hacking] 백그라운드 화면 보호 취약점

모바일에서 

어플이 백그라운드로 들어갈 때 해당 실행 화면을 그대로 보여주는 것이 아니라

백그라운드 들어가기 직전의 화면을 snapshots로 남겨두고 그 snapshot을 백그라운드에서 출력해주는 방식이다

 

따라서 해당 스냅샷 화면에 중요정보가 노출되어 있다면 공격자로 하여금 이 스냅샷 사진 파일이 탈취당한다면 중요정보도 유출될 위험이 있다.

 

따라서 이 취약점 점검시 실행중이던 어플이 백그라운드 상태로 진입할 때 저장되는 스냅샷에 중요정보가 노출되는지,

백그라운드 상태로 진입할 때 적절한 화면 보호가 이루어지는지 함께 확인을 해야한다.

 

Android Snapshot 위치

 : /data/system_ce/0/snapshots

 

그런데 이 jpg 파일을 열어서 보려고 하면 권한이 없어 Permission denied 에러가 날 것이다

 

그래서 /data/local/tmp 폴더로 복사해서 이 파일을 adb pull로 끌어오는 방법을 사용할 수 있다.

cp /data/system_ce/0/snapshots/해당스냅샷파일.jpg /data/local/tmp/원하는이름.jpg

 

adb pull /data/local/tmp/스냅샷파일.jpg ./스냅샷파일.jpg
iOS Snapshot 저장 위치

/var/mobile/Containers/Data/Application/UUID/Library/SplashBoard/Snapshots/ 경로에 ktx 파일로 저장

 

이 파일을 별도의 변환 없이 Filza 앱의 이미지 뷰어를 통해 확인 가능

 

조치 방안

화면 캡쳐 방지와 동일하게 setFlags 메소드를 이용하여 FLAG_SECURE를 설정해주면 됩니다.

getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);

 

 

 

 

 

 

 

 

 

 

 

 

 

 


소스 참조

Android Snapshot 위치 : https://hacksms.tistory.com/177

백그라운드 화면 보호 : https://takudaddy.tistory.com/603