프로젝트/AOS 모바일 앱 모의해킹

4. 취약한 로깅 메커니즘

real-again 2024. 12. 19. 09:00

1. 로그캣(Logcat) 메시지 유형 및 설명

○ 로그는 실행 중에 발생하는 프로그램의 이벤트, 통신 기록 등을 나타냄

○ 로그를 사용하여 장애 원인 분석이나, 프로그램을 개발 또는 유지보수 하는데 유용하게 사용 됨

○ 취약한 로깅 메커니즘은 로그 기록에 노출되면 안되는 중요한 데이터가 기록되는 경우가 발생

○ 안드로이드 스튜디오에서 제공하는 logcat을 사용해 진단

 

메시지 유형 설명
V ● Verbos (중요하지 않은 정보)
D ● Debug ( 디버그 정보 )
I ● Information ( 일반 정보 )
W ● Warning ( 경고 정보 )
E ● Error ( 에러 정보 )
F ● Fatal ( 중요한 정보 )
S ● Silent ( 가장 높은 우선 순위 정보 )

 

옵션 설명
-s ● 모든 태그의 우선 순위를 'silent'로 설정하는 필터 표현식 '*:S'와 동일
-c ● 로그 전체를 삭제
-d ● 로그를 스크린에 덤프
-f 파일 이름 ● 지정한 파일 이름에 로그를 저장
-g ● 로그 버퍼의 사이즈를 가져오고 종료
-v 포멧 ● 로그 메시지의 포멧을 설정. 기본은 brief 포멧

 

 

2. 로그캣(Logcat)을 이용한 정보 확인

nox_adb.exe의 logcat을 이용해 확인 가능

 

거래 정보가 logcat에 남는 것을 확인할 수 있음

 

○ nox_adb.exe shell

    ● ps | grep insecurebankv2 : pid 확인

    ● logcat | grep 103

 

3. 대응 방안

DoLogin 클래스의 postData 메소드

 

MyBroadCastReceiver 클래스의 System.out.println()

 

○ 개발에 사용한 로그 코드를 삭제

중요한 정보를 출력하는 로그 코드 삭제

 

4. 실습(1) - 사용자 로그인, 계좌 이체, 비밀번호 변경 로그 노출

사용자 로그인

 

계좌이체

 

패스워드

 

5. 실습(2) - Insecure Logging(DIVA)

계좌번호 입력

 

중요 정보 평문 노출