[모의해킹] 디버그 로그 내 중요정보 노출 여부

cielo ru·2024년 7월 28일
0

모의해킹

목록 보기
8/14
post-thumbnail

➰ 취약점 개요

개발 과정에서 개발자들은 에러를 추적하거나 테스트를 목적으로 시스템에 로그를 찍어 확인하고, 이 과정에서 민감한 정보들이 로그에 기록된다. 배포 시에 해당 로그 코드를 모두 지워야 하지만 개발자의 실수로 이를 모두 포함하여 출시할 경우 해당 정보를 다른 취약점에 연계해서 사용할 수 있으므로 제거해야 한다.

"디버그 로그 내 중요정보 노출 여부" 취약점은 시스템 디버깅 과정에서 생성된 로그 파일중요한 정보가 포함되어 외부에 노출될 위험을 말한다. 로그 파일에 기록될 경우, 로그 파일에 접근 가능한 사용자나 해커에 의해 민감한 정보가 유출될 수 있다.

*아래와 같이 log.info로 로그를 찍어 디버깅을 한다.

로그 파일에 민감한 정보가 유출되지는 않았는지 디버그 로그 정보를 확인해보자.

➰ 취약점 내용

DDMS 등 디버그 로그를 확인 할 수 있는 도구를 이용하여 디버그 로그 내 중요정보 노출 여부를 점검한다.

중요정보란?
개인정보(주민등록번호), 금융정보(비밀번호, 카드번호, OTP, 보안카드 번호 등), 기타 중요정보라 판단되는 정보

➰ 점검기준

🌱 양호

  • 디버그 로그에 사용자 비밀번호, 신용카드 정보, 개인 식별 정보 등 민감한 정보가 기록되지 않는다.

  • 앱 동작 시, 로그 파일에 민감한 정보가 포함되는 경우, 해당 정보가 철저히 마스킹 또는 암호화되어 있다.

  • 운영 환경에서는 디버그 로그가 비활성화되어 있다.

  • 로그 파일에 기록되는 정보가 최소한으로 제한되며, 민감한 데이터는 포함되지 않는다.

💊 취약

  • 디버그 로그에 사용자 비밀번호, 신용카드 정보, 개인 식별 정보 등 민감한 정보가 평문으로 기록된다.

  • 로그 파일에 민감한 정보가 마스킹 또는 암호화되지 않고 그대로 기록되어 노출된다.

  • 운영 환경에서도 디버그 로그가 활성화되어 있고, 민감한 데이터가 로그에 포함되어 있다면 점검 기준 "취약"이다.

  • 로그 파일에 불필요한 정보가 과도하게 기록되어 있으며, 이를 통해 민감한 데이터가 노출되어 있다.


➰ 점검 방법

  1. LogFilter 다운로드 후 Logfilter.jar를 실행시켜 압축을 해제한다.
    LogFilter download link
  1. Logfilter.bat 파일 실행한다.
  1. 점검용 모바일 디바이스를 PC에 디버깅 모드로 연결하고,
    좌측 상단 device select 탭에서 android 선택 후 ok 버튼 클릭하여 연결된 디바이스를 선택한다.
  1. 연결된 앱의 pid를 확인한다.
> adb shell pidof com.app.damnvulnerablebank
> 3921

  1. Tag Filter 탭에 pid 입력 후 확인하고자 하는 앱(Ohbank)의 로그만 필터링한다.

    ** 그 외에도 다양한 옵션들이 있는데 LogFilter 메뉴얼을 확인하면 된다.
  1. Ohbank 앱에서 로그인 후 찍히는 로그를 확인한다.
  1. 로그에서 accesstoken이 그대로 노출된 것을 확인할 수 있다.

점검결과 : 취약

➰ 대응 방안

  1. 앱 배포전 개발 시 사용되는 모든 로그 메시지 삭제 처리한다.

  2. 개발 환경에서만 디버그 로그를 활성화하고, 운영 환경에서는 디버그 로그를 비활성화한다.

  3. 민감한 정보는 마스킹 또는 암호화하여 기록한다.


➿ 경험담

실제로 자주 나오는 취약점은 아니다. 디버그 로그가 남아있다고 해도 민감한 정보가 포함되어 있는 경우는 드물다. (주민등록번호의 경우 뒷자리는 대부분 마스킹되어 있다.)

그래도 로그 내에 토큰이 포함되어 있는 경우는 종종 본 것 같다. 그래서 해당 취약점을 확인하고 싶다면 로그 파일을 .txt 파일로 저장하고, ctrl+f로 accessToken 을 검색해보거나 카드번호 등만 확인해보면 될 것 같다. 오래 볼 취약점은 아니고 간단하게 검색해보고 넘어가면 된다.


➰ 참고

profile
Cloud Engineer & BackEnd Developer

0개의 댓글