Hacker News

Zero click, silent, remote Android DoS

WAP Push 메시지로 안드로이드 전화 기능을 멈추는 결함, 실제 공격 범위는 아직 불명확

공개된 안드로이드 코드에는 WAP Push 길이값을 검사하지 않고 배열 크기로 쓰는 경로가 있어, 잘못된 값이 전화 기능 프로세스를 종료시킬 가능성이 있습니다. 다만 전화번호만 알면 누구나 공격할 수 있는지, 반복 전송으로 기기가 지속적으로 망가지는지는 공개 코드와 PoC만으로 확인되지 않습니다.

본문

안드로이드의 공개 AOSP 코드에는 WAP Push 메시지의 헤더 길이를 검사 없이 정수형으로 바꾼 뒤 배열 크기로 사용하는 경로가 있습니다. 큰 길이값이 음수로 변환되면 배열 생성에서 예외가 발생하고, 제보자가 설명한 것처럼 메시지 처리 중인 전화 기능 프로세스가 종료될 수 있습니다. 코드는 파서 결함의 구조를 뒷받침하지만, 특정 기기에서의 충돌이나 장애 범위까지 증명하지는 않습니다.

실제 공격에 필요한 조건

공개된 개념증명(PoC)은 안드로이드 앱에서 대상 번호와 데이터 SMS 포트를 지정해 메시지를 보내는 방식입니다. 앱에는 SMS 전송 권한이 필요합니다. 따라서 이 PoC가 보여 주는 경로만으로는 임의의 인터넷 사용자가 전화번호만 알아내면 공격을 전달할 수 있다고 결론 내릴 수 없습니다. 이동통신망이 해당 메시지를 받아 대상 기기까지 전달하는 조건이나 통신사별 필터링 여부는 자료에 없습니다.

사이트 작성자는 여러 기기에서 충돌을 재현했고, 메시지를 빠르게 반복 전송하면 SMS 저장소의 데이터베이스가 손상돼 재부팅 뒤에도 전화 기능을 쓸 수 없게 된다고 주장합니다. 그러나 공개 코드와 PoC 저장소는 이 데이터베이스 손상, 지속 장애, 공장 초기화 뒤 재전송에 따른 복구 문제를 독립적으로 입증하지 않습니다. 영향을 받는 안드로이드 버전과 제조사별 빌드, 수정 배포 현황도 자료에 없습니다.

전화 기능 프로세스가 메시지 처리 중 종료되면 통화가 끊길 수 있다는 설명도 제보자가 제시한 시험 결과입니다. 이 문제가 긴급전화 연결에 미치는 영향은 실제 전달 조건과 장애 지속 시간에 달려 있습니다. 제보자는 Google에 취약점을 전달했지만 보안 문제가 아니라는 답을 받았다고 밝혔습니다. 연결된 이슈 트래커는 공개 열람이 제한돼 분류 경위와 판정 근거를 별도로 대조할 수 없습니다.

자료: 공개 AOSP 코드, Android Developers, GitHub, SMS of Death / 정리·해설: Trawling

참고 자료