취약한 로깅 메커니즘
- 로그 기록에 노출되면 안되는 중요한 데이터가 기록되는 경우
- 사용자가 입력하는 중요 정보가 노출되면 안됨
진단 방법
- 안드로이드 스튜디오에서 제공하는 로그캣(logcat)을 사용해서 진단
- 모든 기능을 이용해보면서 로그캣 정보 확인
로그캣(Logcat)
- 안드로이드 운영 체제에서 제공하는 시스템의 로그 메시지를 수집하고 출력하는 도구
- 이를 통해 개발자는 애플리케이션의 실행 중에 발생하는 정보, 경고, 오류 등 다양한 로그를 확인할 수 있다.
로그캣 메시지 유형
메시지 유형 | 설명 |
V | Verbose. 중요하지 않은 정보 |
D | Debug. 디버그 정보 |
I | Information. 일반 정보 |
W | Warning. 경고 정보 |
E | Error. 에러 정보 |
F | Fatal. 중요한 정보 |
S | Silent. 가장 높은 우선순위의 정보 |
인시큐어뱅크 앱을 통한 실습
1. 로그인 정보
사용자가 로그인할 때 로그인 정보가 로그에 노출되는지 확인해보자
dinesh 계정으로 로그인한 후 로그캣 정보를 확인해보니
id와 패스워드가 그대로 저장되고 있었다.
2. 패스워드 변경
dinesh계정의 패스워드를 Dinesh@123$로 변경한 후 logcat 명령을 통해 저장된 로그를 확인해보면
이전 패스워드와 바꾼 패스워드를 친절히 보여준다.
3. 거래정보
사용자가 거래하는 과정에서 계좌번호, 송금하는 액수 등의 정보가 로그에 저장된다면 이것도 역시 취약하다고 할 수 있다.
888888888에서 666666666로 백만원을 송금한 후 로그캣 정보를 확인해보자
여기서도 아주 친절히 계좌번호, 송금한 금액의 모든 정보를 보여주는 것을 확인했다.
대응방안
- 앱의 배포시 로깅을 비활성화하거나 제한한다.
- 로그 정보는 개발 시 log 선언을 하기 때문에 남는다. 따라서 개발자에게 해당 로그 코드를 삭제하도록 알려야 한다.
'모바일 앱 해킹' 카테고리의 다른 글
[DIVA] HardCoding Issues(하드코딩 이슈) | 안드로이드 앱 취약점 실습 (0) | 2024.05.18 |
---|---|
[DIVA] Insecure Logging(안전하지 않은 로깅) | 안드로이드 앱 취약점 실습, DIVA란? (0) | 2024.05.18 |
로컬 암호화 이슈 | 안드로이드 앱 해킹, 인시큐어뱅크 실습 (0) | 2024.05.12 |
안드로이드 앱 구조 이해하기 | apk, dex, manifest 등 (0) | 2024.05.10 |
모바일 앱 해킹 이걸 해봐라 | 모바일 앱 개발, Frida, DIVA (0) | 2024.05.10 |