1. 국방모바일보안

- 국방모바일보안 앱은 국방부에서 개발과 배포를 담당하고 있는 MDM(Mobile Device Management) 애플리케이션

- 모든 병사, 직원 및 외부 출입자들은 보안 상 의무적으로 설치해야 하는 앱으로, 병사용, 직원용, 외부인용 버전이 존재

- 현재 국방부는 군 내부 보안규정에 따라 부대 출입 시 국방모바일보안 앱을 사용하도록 조치

- 군사 기밀 유출을 방지하기 위해 위치 기반 카메라 차단 기능을 제공 (전화, 인터넷 등 기능은 차단되지 않음)

- 군사 시설 내 NFC 기기에 접촉하여 카메라를 비활성화 하며, 위병소에 설치된 비콘을 인식해 활성화

※ 비콘으로 카메라를 활성화하지 못한 경우 앱에 사전 등록된 공공기관 등 주소를 찾아 위치 기반으로 차단 해제 필요

- 시민단체 인터랩에 의해 사용자 개인정보 및 군사정보 유출이 가능한 보안 취약점이 발견

 

2. 주요내용

2.1 사용자 개인정보 관련 취약점

- 세 가지 버전 모두 GPS 위치정보와 시간, 날짜를 일일 로그 파일에 작성

- 로그 저장 경로: /data/user/0/kr.go.mnd.mmsa/files/MobileSticker/log

- 로그는 사용자가 위치 기반으로 기기 잠금 해제를 시도하는 등의 ActivityCheckOutGPS 액티비티에 관련된 GPS 기능을 사용할 때 작성

[사진 1] 애플리케이션 로그 파일에 기록된 GPS 예시

 

위험 1. CWE-532: Insertion of Sensitive Information into Log File

- 로그 파일에 저장된 정보는 민감 정보일 수 있으며, 공격자에게 중요한 정보를 제공할 수 있음

> 배포 전 로그 레벨을 적절히 설정하여 민감한 사용자 데이터와 시스템 정보가 노출되지 않도록 하는 것이 중요

- 국방모바일보안 앱의 경우 GPS 정보를 로그에 기록함으로써 위치정보가 노출될 수 있음

 

위험 2. 위치정보법

- 위치정보법에 근거 위치정보는 개인정보로 취급되며, 위치정보 수집을 위해서는 사용자의 동의를 받아야 함

- 또한, 수집ㆍ이용ㆍ제공 목적을 달성한 때에는 위치정보를 지체없이 파기하여야 함

제2조 (정의)
1. “위치정보”라 함은 이동성이 있는 물건 또는 개인이 특정한 시간에 존재하거나 존재하였던 장소에 관한 정보로서 「전기통신사업법」 제2조제2호 및 제3호에 따른 전기통신설비 및 전기통신회선설비를 이용하여 측위(測位)된 것을 말한다.

2. “개인위치정보”라 함은 특정 개인의 위치정보(위치정보만으로는 특정 개인의 위치를 알 수 없는 경우에도 다른 정보와 용이하게 결합하여 특정 개인의 위치를 알수 있는 것을 포함한다)를 말한다.

제18조(개인위치정보의 수집)
① 위치정보사업자가 개인위치정보를 수집하고자 하는 경우에는 미리 다음 각호의 내용을 이용약관에 명시한 후 개인위치정보주체의 동의를 얻어야 한다.

제23조(개인위치정보의 파기 등) 
① 위치정보사업자등은 개인위치정보의 수집, 이용 또는 제공목적을 달성한 때에는 제16조제2항에 따라 기록ㆍ보존하여야 하는 위치정보 수집ㆍ이용ㆍ제공사실 확인자료 외의 개인위치정보는 즉시 파기하여야 한다. 다만, 다른 법률에 따라 보유하여야 하거나 대통령령으로 정하는 정당한 사유가 있는 경우 개인위치정보를 보유할 수 있다

 

- 세 가지 버전 모두 플레이스토어 앱 정보에서 "국방모바일보안앱은 사용자의 개인정보 일체를 수집 및 취급하지 않습니다." 명시

> 앱 설치 시에도 개인정보를 수집하지 않는다고 안내하지만, 로그로 기록하며, 위치정보법 제 18조 위반에 해당

[사진 2] 앱 정보(좌) 및 설치 과정(우)에서의 개인정보 관련 안내

 

- 국방모바일보안 앱에서 위치정보를 기록한 후 미리 저장된 위치정보(앱 작동 범위)와 비교 목적으로만 사용

> 위치 정보 비교 후 더 이상 필요하지 않으므로 파기해야 하지만, 로그로 기록하며, 위치정보법 제 23조 위반에 해당

 

2.2 데이터베이스 관련 취약점

- 국방모바일보안 앱에는 AegisGate.db 라는 이름의 로컬 SQL 데이터베이스가 포함

> 해당 데이터베이스는 기기의 정보(관리자 전화번호, 기기 정보, 설정 정보)를 기록 및 저장하며, 앱이 특정 기능을 수행할 때 사용됨

 

위험 1. 불필요 데이터 저장

- 외부인 버전에서 사용자로부터 AdminTelephone 번호를 입력 받아 AdminTellInfo 테이블에 기록

- 직원 버전에서 수/발신 전화번호가 ConfigInfo 테이블에 기록

- 해당 데이터를 앱에서 사용되지 않지만 기록되어 외부에 노출되어 악용될 가능성 존재

 

위험 2. 미흡한 암호화

- 데이터베이스에 포함된 모든 값들은 AES/CBC/PKCS5Padding 으로 암호화되고 base64 로 인코딩

> 그 중 AES 키는 타임스탬프를 기반으로 하여 생성되는데, 타임스탬프는 SHA256 인코딩을 거쳐 생성된 32 바이트 값

> 전화번호는 타임스탬프 기반 키와 앱에서 생성된 IV 값을 이용해 암호화를 거친 뒤 base64 로 인코딩되어 저장

[사진 3] 전화번호 암호화 메소드

 

- [사진 3]의 메소드에서 타임스탬프 기반으로 생성된 키가 AgentK 테이블에 저장됨 

> 공격자가 데이터베이스와 IV에 접근할 수 있을 경우 데이터베이스에 저장된 데이터를 복호화 할 수 있게 됨

[사진 4] AgentK 테이블에 저장된 키를 사용한 emergency 값의 복호화

 

2.3 위치 정보  관련 취약점

- 국방모바일보안 앱의 전반적인 보안은 좋은 편

> 공격자가 기기에 접근할 수 있을 때 개인정보 유출을 초래하는 취약점 발견

> 해당 취약점은 국방모바일보안(외부인) 2.1.17, 국방모바일보안(직원) 2.1.25 버전에 존재

 

- 두 버전에는 "BroadcastReceiverExternal"이라는 브로드캐스트 리시버가 존재

- 권한이 설정되어 있지않아 누구나 리시버를 내보낼 수 있음

※ 브로드캐스트 리시버: 안드로이드는 기기의 상태 변화 이벤트(충전, 비행기 모드 설정 등)가 발생한 경우 인텐트로 감싸진 Broadcast 신호를 보내는데, 해당 신호를 받아 인텐트 필터를 통해 구분 후 관련된 기능에 전달해 주는 역할을 수행

[사진 5] BroadcastReceiverExternal 권한

 

- 브로드캐스트 리시버는 “com.markany.aegis.AEGIS_ACTION_ADMIN_REQUEST” 인텐트 필터를 가짐

> 해당 인텐트가 포함된 브로드캐스 수신 시 문자열 값 “action_admin”과 “action_admin_exportLog”이 포함되는지 확인

> 두 문자열이 포함된 경우 앱이 기록한 모든 로그를 /storage/emulated/0/Aegis/ 경로로 추출

[사진 6] 관련 메소드

 

- Drozer에서 다음의 명령을 수행할 경우 누구나 접근 가능한 저장소 디렉토리에 로그 추출이 가능

※ Drozer: 모바일 앱 취약점 진단 프레임워크로 안드로이드 시스템에 접근하여 앱을 동적으로 진단할 수 있는 도구이며, 서버-클라이언트로 동작

run app.broadcast.send --action com.markany.aegis.AEGIS_ACTION_ADMIN_REQUEST --component kr.go.mnd.mmsa.of kr.go.mnd.mmsa.of.br.BroadcastReceiverExternal --extra string action_admin action_admin_exportLog

 

- 이 경우, 사용자에게 알림이 발생하며, 추출된 로그를 통해 대략적인 GPS 위치 정보 등을 확인 가능

※ 앱에서 직접 로그를 추출은 관리자 권한이 없어 불가능

[사진 7] 로그 추출 암림(좌) 및 추출 로그(우)

 

- 국방부는 해당 취약점에 대해 다음과 같은 입장을 발표

> 인터랩 제보 통해 해당 취약점 확인 및 개발업체와 협조해 보완 조치중

> 국방모바일보안 앱은 사용자 데이터를 수집하지 않으며, GPS 기록은 개인 휴대전화 내부에 로그로만 저장될 뿐 유출 위험은 없음

> 개발업체와 협조하여 앱 로그에 GPS 정보가 포함되지 않도록 보완할 예정

> GPS 정보는 부대 외부에서 국방모바일보안 앱 해제를 위해 이용될 뿐 부대 위치 정보는 포함되지 않음

> 국방모바일보안 앱은 사용자 등록 및 로그인 기능이 없어 개인정보 보관 등의 우려는 없음

 

3. 참고

[1] https://interlab.or.kr/archives/19268
[2] https://www.boannews.com/media/view.asp?idx=118437&page=1&kind=1

+ Recent posts