728x90
반응형
모바일 앱 진단 수행 중 로그인 구간에서 webview를 사용하고 있고 해당 기능 이후 메모리 덤프 시 중요정보가 평문으로 저장되는 이슈가 발생
모바일 앱 동작 방식은 네이트브 형태나, 하이브리드 형태가 아니라 웹 뷰 형태에서 껍데기만 씌워놓은 형식으로 동작을 수행하고 있어서 기존에 대응 방안으로 안내하는 가상키페드 방식이나 메모리 초기화 방식으로 처리하기에는 어려운 상태
그래서 확인해본결과
- 로그인 직후는 평문으로 남아있음
- 한 5~10분정도 후 에는 또 없어짐
초기에만 남아있는 형태로 보여져서
일단 안내는 웹뷰 구현 시 캐시를 지우는 방법으로 하기로
사용 목적
- 보안 강화:
- 세션 종료 후 남아 있는 데이터를 삭제하여 민감 정보가 노출되는 것을 방지.
- 개인정보 보호:
- 사용자의 폼 데이터나 브라우징 기록을 지워서 프라이버시를 보호.
- 앱 성능 최적화:
- 캐시를 초기화하여 불필요한 데이터 축적을 방지하고 성능을 개선.
코드 설명
- webView.clearFormData();
- WebView에 입력된 폼 데이터를 삭제합니다.
- 사용자가 이전에 작성한 입력 데이터(예: 로그인 폼에서 입력한 ID, 비밀번호 등)가 저장된 경우 이를 초기화합니다.
- 보안 및 개인정보 보호를 위해 사용됩니다.
- webView.clearCache(true);
- WebView의 캐시를 삭제합니다.
- true를 전달하면 디스크와 메모리에 저장된 모든 캐시 데이터를 제거합니다.
- 이를 통해 이전에 방문한 웹사이트의 남아 있는 데이터를 제거하고 초기 상태로 되돌립니다.
- webView.clearHistory();
- WebView의 방문 기록(히스토리)을 삭제합니다.
- 사용자가 이전에 방문한 웹페이지 목록을 초기화하여 개인 정보를 보호할 수 있습니다.
- webView.loadUrl("about:blank");
- WebView에 빈 페이지를 로드합니다.
- 현재 로드된 웹 페이지를 완전히 제거하고 빈 상태로 초기화합니다.
webView.clearFormData(); // 폼 데이터 삭제
webView.clearCache(true); // 캐시 삭제
webView.clearHistory(); // 히스토리 삭제
webView.loadUrl("about:blank"); // 빈 페이지 로드
Destroy 부분에 넣어주고 테스트를 해봐야할듯 싶다.
그래도 안된다면
1. 로그인 시 패킷 확인 해보니 평문으로 전송/사용 되고있음 (암호화 통신은 하고있고) 그래서 해당 부분을 암호화 처리해서 사용하도록 요청
2. 네이티브 방식으로 전환해서, 관련 API를 사용하든 처리할 수 있도록..
해결 및 이슈 진행상황에 대해서는 또 남기겠음
728x90
반응형
'보안 공부 > 모바일 보안' 카테고리의 다른 글
안드로이드 취약점 진단(4) - 콘텐츠 프로바이더 취약점 (1) | 2024.02.21 |
---|---|
안드로이드 취약점 진단(3) - 액티비티 컴포넌트 취약점 (0) | 2024.02.19 |
안드로이드 취약점 진단(2) - 취약한 인증 메커니즘(activity 취약점) (0) | 2024.02.18 |
안드로이드 취약점 진단(1) - 브로드캐스트 리시버 취약점 (0) | 2024.02.17 |
드로저(drozer) 사용법 - 취약점 분석(1) (1) | 2024.02.03 |