티스토리 뷰
< 로그(log)>
: 서버에서 운영되는 서비스들이 실행되는 상태나 특정 프로그램을 사용한 사용자의 행위,
흔적을 파일 or 출력을 통해 남기는 행동
- 서버 관리자, 개발자 등 로그를 통해 특정 서비스나 프로그램이 정상적으로 작동하는지 알 수 있음
- 로그로 정보 유출이나 침해 사고 당했을 경우 원인 파악하기도 함
[ 안전하지 않은 로깅 메커니즘 ]
: 민감한 데이터 or 노출되면 안되는 정보 등을 로그로 남길 시 발생하는 취약점
로그 버퍼 종류 | 설명 |
Main | 메인 앱 로그로서 앱이나 플랫폼 내부에서 android.util.Log 클래스로 기록된 로그 |
Event | 시스템에서 발생하는 이벤트 정보를 위한 로그 |
Radio | 이동통신망과 관련된 이벤트 정보 |
system | 안드로이드 플랫폼 내부의 하위 레벨에 잇는 시스템이나 디버깅을 위한 로그 |
로그 등급 | 설명 |
V(Verbose) | 별로 중요하지 않은 정보 |
I(Info) | 일반 정보 |
D(Debug) | 디버그 관련 정보 |
W(Warning) | 경고 로그 정보 |
E(Error) | 에러 로그 |
F(Fatal) | 중요한 정보 |
S(Slinet) | 가장 높은 우선순위로 다른 로그들은 출력되지 않음 |
사용자가 지정한 등급에 의해 출력되기 때문에 효율적으로 분석할 수 있도록 도와줌
예를 들어 adb locat *.W 와 같이 특정 등급의 로그만 출력하는 방법도 있음
1) ADB를 통한 로그 확인
- 로그캣은 디바이스 내에서만 사용할 수 있으며, 아무런 옵션값 넣지 않고 실행했을 경우 많은 로그가 출력되므로
원하는 정보 얻기 힘들기 때문에 옵션값과 필터값으로 쿼리를 만들어 원하는 데이터 필터링 해야 함
logcat [ 옵션] [ 필터값 ]
locat [ 실행 명령어 ]
로그캣 옵션 | 설명 |
-c | 모든 로그를 지운 후 종료 |
-d | 저장된 로그를 화면에 덤프하고 종료 |
-f <파일 이름> | 로그를 지정한 파일 이름으로 저장하고, 파일 이름을 지정하지 않을 경우 표준 출력 |
-g | 로그 버퍼의 크기 출력하고 종료 |
-b <버퍼명> | Main/radio/event 버퍼 중에서 원하는 것 선택 |
-r <kbytes> | 지정한 용량 만큼의 로그 파일을 생성 기본값은 16kbytes이며, -f 옵션 필요 |
-s | 기본 필터 조건을 silent 등급으로 지정 |
-v 포맷 | 사용자가 출력할 로그의 포맷 지정 포맷의 종류는 brief, process, tag, thread, raw, time, threadtime, long |
- 메인 로그 : # logcat -b main -b system -v threadtime -d *.v
- 이벤트 로그 : # logcat -b events -v threadtime -d *.v
- 무선 통신 로그 : logcat -b radio -v threadtime -d *.v
2) DDMS를 통한 로그 확인
- 안드로이드 스튜디오는 GUI 환경을 통해 로그캣 로그 확인할 수 있도록 DDMS 기능 포함하고 있음
안드로이드 sdk에서 지원하는 DDMS 도구로 확인 가능
- DDMS(Dalvik Debug Moniter Service)는 안드로이드 앱의 메모리 사용량 확인 or 메모리 덤프, 특정 에러를 구체적으로
확인하기 위해 쓰기도 함
- 안드로이드 스튜디오 TOOL 메뉴 > Android > Android Device Monitor 실행
< 취약점 진단 과정 >
1. ADB 접속 후 로그 txt 추출
저장할 위치로 이동 후
adb -e shell logcat>test.txt
< 대응 방안 >
인시큐어뱅크는 System.out.println 함수로 로그를 생성함
로그를 발생시켜 프로그램의 흐름을 확인하는 것은 개발자에게 매우 유용하고 편리한 기능이지만
앱을 배포하기 전에 제대로 제거하지 않으면 정보를 노출하게 되므로 유의.
'Security Study > Android' 카테고리의 다른 글
[InsecureBankv2] 애플리케이션 디버깅 기능 (1) | 2023.01.27 |
---|---|
[InsecureBankv2] 안드로이드 키보드 캐시 이슈 (0) | 2023.01.27 |
[InsecureBankv2] 메모리 내 민감한 정보 저장 (0) | 2023.01.27 |
Apk 코드 패치(리앱) 후 서명(Signing) 하는 법 (0) | 2023.01.27 |
[InsecureBankv2] 애플리케이션 패칭 (0) | 2023.01.27 |
- Total
- Today
- Yesterday
- cheatengine
- MISC
- 해킹
- mongodb
- web
- forensic
- Android
- FTKImager
- 포렌식
- Fiesta
- SQLi
- networking
- md5
- 인시큐어뱅크
- 리버싱
- forensics
- 스테가노그래피
- rev
- sqlinjection
- 모바일
- dreamhack
- CTF
- 취약점
- reversing
- Steganography
- 드림핵
- 안드로이드
- Cookie
- AssaultCube
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |