보안 제품정보


TP링크 라우터에서 치명적일 수 있는 제로데이 취약점 발견 2019.04.02

TP링크 제품 일부의 디버그 프로토콜, 일부 버전은 인증 과정 없어
임의 코드 실행 가능케 해주는 취약점...보고했으나 업체에서는 답하지 않아


[보안뉴스 문가용 기자] TP링크 SR20 스마트 허브와 라우터 제품에서 제로데이 취약점이 발견됐다. 이를 익스플로잇 할 경우 공격자가 임의의 명령을 실행할 수 있다고 한다. 이 취약점은 다른 TP링크(TP-Link) 제품들에도 있을 것으로 보인다.

[이미지 = iclickart]


이 문제를 발견한 건 구글의 보안 전문가인 매튜 가렛(Matthew Garrett)으로, TP링크의 디버그 관련 프로토콜인 TDDP(TP-Link Device Debug Protocol)에서 이 문제를 발견했다고 한다. TDDP는 TP링크 라우터들이 자주 루트에서 실행시키는 것으로, 두 번째 버전에서는 관리자 비밀번호를 입력하는 절차가 들어가는데, 첫 번째 버전에서는 그렇지 않다.

매튜 가렛은 조사를 더 진행했고, SR20 라우터가 1번 버전의 TDDP 명령어 일부를 여전히 노출시키고 있음을 발견할 수 있었다. 그 중에는 설정 확인과 관련된 것도 포함되어 있었다.

“파일 이름, 세미콜론, 아규먼트를 전송할 수 있습니다. 그러면 라우터가 TFTP 프로토콜을 통해 요청이 발생한 기계와 연결을 시도합니다. 그런 후에 TFTP를 통해 파일 이름을 요청하고, 루아(LUA) 해석 프로그램으로 임포트합니다. 그러면서 방금 임포트한 파일의 config_test() 함수로 아규먼트가 전달됩니다.”

config_test()는 원격 기계로부터 다운로드 된 파일이 제공하는 것이기 때문에 결국 “해석 프로그램 내에서 임의 코드를 실행하는 게 가능해진다”는 것이 가렛의 설명이다. “중요한 건 해석 프로그램이 루트 권한을 가지고 실행된다는 것입니다. 그러므로 공격자는 ox.execute() 메소드를 활용해 루트 권한을 가지고 임의의 코드를 실행할 수 있습니다.”

TDDP는 모든 인터페이스에 대한 리스닝 기능을 가지고 있다. 그러나 SR20 기기에 디폴트로 설정된 방화벽 규칙 때문에 WAN 접근은 차단된다. “그러므로 이 취약점은 로컬 네트워크를 통해서만 익스플로잇이 가능합니다. SR20 사용자가 기본 방화벽 설정을 바꾼 게 아니라면 말이죠.”

가렛이 이 제로데이 취약점을 발견한 건 지난 해의 일이다. “TP링크 측으로 문제가 보고된 건 12월입니다. 하지만 아직까지도 답장을 받지 못했습니다.” 그래서 가렛은 이 문제를 공개할 수밖에 없었다고 한다. 가렛은 이 버그를 익스플로잇 하는 개념증명 코드(https://pastebin.com/GAzccR95)도 함께 공개했다.

가렛은 TP링크를 겨냥해 두 가지 부분을 비판했다. “디버그용 데몬(debug daemon)을 제품 펌웨어에 넣어서 출시하지 마시죠. 그리고 취약점 보고를 받는 웹사이트를 운영할 거라면 대응할 직원을 배정하는 것도 기본 아닌가요?”

3줄 요약
1. 구글의 한 보안 전문가, TP링크 제품 일부에서 제로데이 취약점 발견.
2. 파일 임포트한 후 형성되는 환경설정 파일 통해 임의 코드 실행 가능케 해주는 취약점.
3. 작년 12월에 TP링크 측에 알렸으나 아무런 답이 없는 상태라 공개.

[국제부 문가용 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>