64kb의 작은 메시지 하나로 CPU 코어 하나 마비시키는 것 가능
[보안뉴스 문가용 기자] 페이스북이 피즈(Fizz)에서 발견된 치명적인 DoS 취약점을 지난 달에 패치했다. 피즈는 TLS 프로토콜 1.3 버전을 페이스북이 오픈소스로 구현한 것이다. 이 취약점을 공격자들이 익스플로잇 할 경우 무한 루프를 생성함으로써 다른 사용자들이 웹 서비스를 사용할 수 없게 만들 수 있다고 한다.
[이미지 = iclickart]
이 취약점을 발견한 건 보안 업체 세믈(Semmle)에 소속된 보안 전문가 케빈 백하우스(Kevin Backhouse)다.
페이스북이 피즈를 오픈소스로 전환한 건 지난 8월의 일이다. “그때부터 지금까지 피즈가 여러 곳에 도입된 것으로 알고 있는데, 만약 이번 업데이트를 적용하지 않았다면 웹사이트 전체가 마비될 위험에 처하게 됩니다.”
백하우스는 피즈의 취약점에 대한 기술 보고서를 발표하며 다음과 같이 썼다. “공격자가 악성 메시지를 TCP를 통해 피즈를 사용하는 아무 서버로 전송하게 되면, 서버에서 무한 루프가 발생하게 됩니다. 서버는 루프를 돌리느라 바뻐서 다른 사용자의 요청에 대응할 수 없게 되죠. 이 악성 메시지의 크기는 64Kb 정도로 아주 작습니다. 그러므로 공격자 편에서의 투자는 극히 미비합니다. 효율이 좋은 공격이 완성되는 것이죠.”
백하우스의 설명은 계속된다. “업로드 속도가 1Mbps인 인터넷 서비스에 연결되어 있는 평범한 컴퓨터 한 대만 있으면 두 개의 악성 TCP 메시지를 1초에 2개씩 보낼 수 있습니다. 메시지 하나가 CPU 코어 하나를 마비시킬 수 있으니, 데이터센터 전체를 마비시키는 데 얼마 걸리지 않게 됩니다.”
세믈 측이 이러한 문제점을 발견하고 페이스북에 알린 건 2월 20일의 일이었다고 한다. 패치는 5일 후에 나왔다. 백하우스는 “공격을 성립시킬 수 있는 개념증명을 만들긴 했으나, 아직 공개할 때가 아닌 것 같다”는 설명을 덧붙였다. “아직 페이스북 피즈 사용자들 대다수가 패치를 적용했을 만한 시간이 지나지 않았습니다.”
페이스북은 이번 패치를 발표하며 “페이스북 생태계를 안전하게 지켜준 보안 전문가들에게 감사하다”고 말했다. “다행히 해당 취약점을 통해 사용자의 콘텐츠나 정보가 조작되거나 삭제되는 일이 벌어질 수는 없습니다. 또한 페이스북은 신고를 받고 수 시간 만에 문제 해결 방법을 찾아냈습니다. 현재까지 이 문제가 실제 공격에 악용된 경우를 찾아내지는 못했습니다.”
백하우스는 이 발견으로 1만 달러의 상금을 받았다. 페이스북은 버그바운티 프로그램을 자주 운영하기는 하지만, DoS 취약점에 대해서는 매우 인색한 편이라는 걸 생각했을 때 획기적인 금액이라고 할 수 있다.
하지만 백하우스는 이 금액을 받지 않고, “기부해달라”고 요청했다. 페이스북은 이 요청을 받고 버그바운티 관련 내규에 따라 상금의 두 배인 2만 달러를 어디론가 기부했다고 한다. 페이스북이나 세믈 측은 기부 받은 곳에 대해서는 상세히 밝히지 않고 있다.
3줄 요약
1. 페이스북의 TLS 구현 프로그램인 피즈에서 DoS 취약점 발견됨.
2. 피즈는 오픈소스라 많은 웹사이트에서 사용되고 있음. 따라서 위험한 상황.
3. 페이스북은 예외적으로 발견자에게 1만 달러라는 상금을 줌. 상당히 위험한 취약점이었음을 나타내는 부분.
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>