상세 컨텐츠

본문 제목

SHAREit 안드로이드 앱에서 해커들이 파일을 훔칠 수 있는 심각한 결함 발견

국내외 보안동향

by 알약(Alyac) 2019. 2. 28. 13:59

본문

Severe Flaws in SHAREit Android App Let Hackers Steal Your Files


보안 연구원들이 SHAREit 안드로이드 앱에서 해커가 피해자 기기의 인증 메커니즘을 우회하고 민감 정보를 담은 파일을 훔칠 수 있는 심각한 취약점 2개를 발견했습니다.


전 세계 15억명이 사용하고 있는 SHAREit은 사용자들이 여러 기기에서 영상, 음악, 파일, 앱을 공유할 수 있도록 만들어진 안드로이드, iOS, 윈도우, 맥용 파일 공유 어플리케이션입니다.


5억명 이상이 사용 중인 SHAREit 안드로이드 앱에서 인증 우회 결점 및 임의 파일 다운로드 취약점이 발견 되었습니다.


이 취약점은 2017년 12월 처음 발견 되어 2018년 3월에 수정 되었지만, 연구원들은 “이 취약점이 끼칠 영향, 방대한 공격 영역 및 쉬운 악용을 우려하여” 세부 사항을 지난 월요일까지 공개하지 않았습니다.


SHAREit이 파일을 전송하는 방법


SHAREit 서버는 기기의 포트들을 통해 다수의 서비스를 호스팅 합니다. 연구원들은 명령 채널(포트 55283에서 실행), 다운로드 채널(포트 2999에서 실행)을 분석하였습니다.


명령 채널은 Raw 소켓 연결을 사용하여 다른 기기들의 SHAREit 인스턴스들과 메시지를 교환하는데 사용하는 일반 TCP 채널입니다. 기기 인증, 파일 전송 요청 처리, 연결 상태 확인 등도 함께 이루어집니다.


다운로드 채널은 SHAREit 어플리케이션 고유의 HTTP 서버 구현으로, 다른 클라이언트가 공유 된 파일을 다운로드 하는데 사용 됩니다.


연구원들에 따르면, 다른 기기에 파일을 보내기 위해 SHAREit 안드로이드 앱을 사용하면 일반 기기 인증과 함께 일반 파일 전송 세션이 시작 됩니다. 이후 ‘전송자’는 제어 메시지를 ‘수신자’에게 보내어 공유할 파일이 있음을 알립니다.


‘수신자’가 해당 파일이 중복이 아님을 확인하면, 다운로드 채널로 이동되며 이전의 제어 메시지 정보를 이용하여 전송된 파일을 가져옵니다.


해커들, SHAREit 결점 악용해 사용자 파일에 접근 가능


하지만 유효한 세션이 없는 사용자가 404 상태 페이지(Not Found) 대신 존재하지 않는 페이지를 가져오려 시도하면, SHAREit 앱은 200 상태 코드(요청 처리 성공)의 빈 페이지로 응답하여 해당 사용자를 인식 된 기기에 추가해 결국 승인 되지 않은 사용자를 인증하게 됩니다.


연구원들에 따르면, 완전히 작동하는 PoC 익스플로잇은 curl http://shareit_sender_ip:2999/DontExist와 같이 너무나도 간단해, 역대 가장 이상하면서도 단순한 인증 우회가 가능하게 되었습니다.


또한 연구원들은 다운로드 요청이 시작 되면 SHAREit 클라이언트가 송신자의 HTTP 서버로 아래와 같은 GET 요청을 보내는 것을 발견했습니다.


http://shareit_sender_ip:2999/download?metadatatype=photo&metadataid=1337&filetype=thumbnail&msgid=c60088c13d6


SHAREit 앱이 송신자가 다운로드를 시작할 때 각 요청을 위해 생성 된 고유 식별자인 ‘msgid’ 파라미터 인증에 실패 하기 때문에, 유효한 세션이 있는 악성 클라이언트가 이 식별자를 직접 참조하여 어떤 리소스라도 다운로드할 수 있게 됩니다.


이 결함은 공유 된 WiFi 네트워크상의 공격자가 악용 가능하며, 불행하게도 취약한 SHAREit 버전은 쉽게 식별 가능한 오픈 Wi-Fi 핫스팟을 생성할 것입니다. 


이는 두 기기간 트래픽을 가로채는데 사용 될 뿐만 아니라(HTTP를 사용하므로), 발견 된 취약점을 악용하여 취약한 기기의 저장장치에 무제한으로 접근할 수 있도록 합니다.


이 익스플로잇은 단순히 타겟 파일의 경로를 참조하는 curl 명령어 하나를 보내는 것이기 때문에, 받아오려는 파일의 정확한 위치를 알아야합니다.


이를 위해 연구원들은 흥미로운 정보가 담겨있을 법한 SHAREit 히스토리인 SHAREit 미디어 저장 데이터베이스를 포함하여 공개적으로 경로가 알려진 파일들을 찾기 시작했습니다.


연구원들은 사용자의 페이스북 토큰, 아마존 웹 서비스 사용자 키, SHAREit 웹뷰를 통해 방문한 웹사이트의 자동 완성 데이터 및 웹사이트의 쿠키, 심지어 일반 텍스트 형태의 사용자 오리지널 핫스팟 등과 같은 중요한 정보를 포함한 파일들이 있었다고 밝혔습니다.


연구원들은 DUMPit!이라 명명된 PoC 익스플로잇을 통해 2GB에 달하는 약 3천개의 파일을 다운로드 할 수 있었으며, 파일 전송에 걸린 시간은 채 8분도 되지 않았습니다.


연구원들은 2018년 초부터 SHAREit 팀에 다양한 경로로 연락을 취하려 시도했지만 답변을 받을 수 없었습니다. 이들은 30일 후 취약점의 세부사항을 공개하겠다고 경고한 이후인 2월 초에 답변을 받을 수 있었습니다.


SHAREit 팀은 연구원들에게 패치된 안드로이드 앱 버전, 취약점의 CVE ID, 정보 공개에 대한 어떠한 코멘트도 없이 2018년 3월 이 취약점을 조용히 패치 했습니다.


연구원들은 SHAREit과의 소통은 만족스럽지 않았으며, 메시지에 응답하는데 너무나 긴 시간이 소요 되었고, 협조적이지 못했으며, 그들의 작업과 노력을 가치 있게 생각하지 않는다는 느낌을 받았다고 말했습니다.


연구원들은 사용자들이 SHAREit 앱을 업데이트 할 수 있는 충분한 시간을 준 후, PoC 익스플로잇인 DUMBit!과 함께 이 취약점에 대한 기술적 세부 사항을 공개했습니다. 이 PoC는 GitHub에서 다운받을 수 있습니다.


이 취약점은 안드로이드용 SHAREit 4.0.38 및 이전 버전에 영향을 미칩니다. 아직 업데이트 하지않은 상태라면, 가능한 빨리 구글 플레이 스토어에서 업데이트 해야합니다.


출처:

https://thehackernews.com/2019/02/shareit-android-hacking.html

https://blog.redforce.io/shareit-vulnerabilities-enable-unrestricted-access-to-adjacent-devices-files/


관련글 더보기

댓글 영역