반응형
백그라운드 화면 보호 취약점은 개인정보 페이지나 기타 중요정보가 보이는 페이지에서
앱을 백그라운드로 전환했을 때 앱의 화면이 보이나 안보이나를 판단한다.
앱이 백그라운드로 전환될 때 스냅샷이 촬영되는데 해당 스냅샷도 확인하면 더욱 좋다.
대응방안은 FLAG_SECURE를 사용하는 것이다
예시 코드는 아래와 같다
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
@Override
protected void onPause() {
super.onPause();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
}
앱이 포그라운드에서 실행중일 때 onCreate에서 getWindow().addFlags에서 FLAG_SECURE라는 플래그값을 설정한다
그리고 백그라운드로 전환될 때는 onPause가 호출되며 clearFlags로 FLAG_SECURE를 삭제한다.
플래그가 삭제되면 화면이 가려지게되고 설정되면 화면이 표시된다.
앱 분석 코드로 스말리코드를 보면 아래와 같다
setFlags(8192, 8192); 코드가 백그라운드 시 화면을 가려지게하는 플래그 값인데 FLAG_SECURE와 동일하다
그래서 실제로 앱을 백그라운드에서 보게되면 화면이 안보인다
FLAG값을 화면이 잠기지않도록 수정 하면 앱화면이 표시된다.
끝
반응형
'보안가이드' 카테고리의 다른 글
[Android] 디버깅 탐지 기능 여부 취약점 보안가이드 (5) | 2023.05.19 |
---|---|
[Android] 메모리 내 중요정보 노출 취약점 보안가이드 (0) | 2023.05.18 |