최신 넥서스 스마트폰의 통화를 가로채고 데이터 송수신 내용을 감청할 수 있게 만드는 안드로이드 보안취약점이 최근 패치됐다.
대다수 안드로이드 애플리케이션 개발자와 일반인이 사용하는 '안드로이드 디버그 브리지(ADB)' 도구가 해당 취약점을 악용하는 악성코드에게 방아쇠 역할을 하는 것으로 파악됐다.
지난 5일 IBM X포스 애플리케이션보안연구팀이 넥서스6과 넥서스6P 기기에 적용된 '커스텀부트모드'의 심각한 보안취약점을 여럿 제보했고 이를 구글이 패치했다고 밝혔다. 지난해 11월 배포된 넥서스6 부트로더 71.22 버전과 이번달 배포된 넥서스6P 부트로더 03.64 버전이 각각 문제의 보안취약점을 해결해 나온 것이라고 설명했다.
IBM 연구팀 분석에 따르면 공격자는 악성코드를 품은 PC나 충전장치를 통해 ADB로 연결된 넥서스 기기를 재시작한 이후 초기화 동작에 개입할 수 있다. 커스텀부트모드를 적용해 기기의 설정을 조작하거나, 사용자가 직접 안드로이드 기기의 저장장치에 직접 접근해 내용을 수정할 수 있는 '패스트부트(fastboot)'로 진입하도록 기다릴 수도 있다는 지적이다.
IBM 연구팀이 발견해 구글이 패치한 취약점은 안드로이드오픈소스프로젝트(AOSP) 보안게시판에 'CVE-2016-8467'이란 일련번호로 등재됐다. 이는 공격자가 사용자 모르게 기기를 재시작하고 해로운 추가 동작을 유도할 수 있다는 점에서 심각한 것으로 묘사됐다. 해로운 동작은 이를테면 기기의 모뎀에 접근해 통화를 가로채거나 데이터 통신, GPS와 연동되는 위치정보, 기기의 내외장 저장장치 데이터를 엿보는 식이다.
커스텀부트모드 취약점 공격 시나리오는 넥서스 기기가 ADB를 통해 연결됐을 때 시작된다. ADB는 PC에서 명령어를 입력해 안드로이드 기기를 제어할 수 있는 도구를 포함한다. 악성코드는 PC에서 ADB로 연결된 기기에 명령어 몇 개를 보내 기기를 재시작(reboot)한다. 기기가 재시작한 이후에는 USB 단자 연결만 유지되면 ADB 도구 없이 공격이 진행될 수 있다.
관련기사
- 리눅스 시대 "큰 힘엔 큰 책임 따른다"2017.01.10
- 아이폰, '안드로이드보다 안전' 장담못해2017.01.10
- 안드로이드 개방성-보안 딜레마, 구글 해법은?2017.01.10
- 리눅스 보안허점, 안드로이드가 더 위험?2017.01.10
안드로이드 기기에 ADB 명령이 통하려면 기기의 '개발자 설정'을 바꿔야 한다. 이 설정은 보통 해제돼 있다. 다만 IBM 연구팀에 따르면 공격자는 안드로이드 기기의 디버깅 권한을 가진 'ADB 인증 PC'를 악성코드로 감염시키고, 이를 통해 안드로이드 기기에 악성코드를 심을 수 있다. 공격자가 ADB 인증 PC에 물리적으로 접근하면 이걸로 ADB 연결(session)을 열고, 공격대상의 PC에 설치된 'ADB호스트'가 ADB인증토큰에 서명하게 만들 수 있다는 지적이다.
IBM 연구팀은 커스텀부트모드로 실행되는 기능 중 '모토로라 테스트 커맨드'라는 이름으로 표시되는 USB인터페이스 관련 취약점도 찾았다. 이는 'f_usbnet'이라는 커널 드라이버가 담당했다. 드라이버는 호스트에 구성되는 USB 연결 이더넷 어댑터(USB랜카드)를 제어하기 때문에, 일부 네트워크 트래픽을 빼돌릴 수 있다. 또 커널 드라이버는 USB를 통해 전달되는 이더넷 프레임마다 4~5바이트 크기의 초기화되지 않은 커널 데이터를 덧붙이는데, 여기에 사이버범죄자가 시스템의 취약점을 악용할 수 있는 민감한 데이터가 담길 수도 있다고 연구팀은 지적했다.