Breaking
사이버 보안(Cybersecurity)
'페이스북', 신규 프로젝트서 치명적 보안 결함 '발견'
2019-06-26 18:29:55
장희주
▲세믈이라는 회사가 페이스북 피즈의 취약점을 밝혔다(사진=ⓒ플리커)

[라이헨바흐=장희주 기자] 보안 전문 업체 세믈이 지난달 페이스북의 피즈(Fizz) 프로젝트에서 치명적인 서비스 거부 공격(DoS) 취약점을 발견했다.

피즈 프로젝트란 웹사이트의 내부 및 외부 인프라에 주로 통합되는 웹서비스와의 통신 보안을 촉진하는 수단으로 페이스북이 시작한 것이다. 

작년 8월에 페이스북은 피즈 오픈 소스의 소스 코드를 작성했다. 그런데 지난 2월 20일에 취약점이 발견됐으며, 페이스북은 CVE-2019-3560이라고 표시된 취약점을 패치했다.

 

버그 발견

피즈 프로젝트의 버그를 발견한 것은 세믈의 연구원인 케빈 백하우스다. 그는 QL 쿼리를 통해 웹서비스 공격 대상을 추적해 그 내용을 자신의 개인 블로그에 올렸다. 

이 보고서에 따르면 사이버 공격자가 이 취약점을 원격으로 악용해 웹서비스를 중단시키는 무한 루프가 발생할 수 있다.

백하우스는 "피즈는 최신 C++ 스타일로 작성됐으므로 오래된 C 프로젝트에서 흔히 볼 수 있는 버퍼 오버플로가 발생하지는 않는다. 그래서 QL을 사용해 정수 오버플로를 쿼리했다"고 설명했다.

그는 이어서 "발견된 오버플로로 인해 코드가 무한 루프에 진입하면 서비스 거부 공격을 일으킬 수 있다. PlaintextRecordLayer.cpp의 42행에 있는 정수 오버플로를 위협 행위자가 의도적으로 악용할 경우 보안 취약점이 발생한다"고 덧붙였다.

그와 동료 연구원인 조나스 젠슨은 백하우스가 분석한 결과를 토대로 피즈의 결함이 막대한 사이버 공격을 발생시킬 우려가 있는지 확인하기 위해 테인트 분석을 시행했다. 이들은 새로운 IR 테인트 트래킹 라이브러리를 구현해 신뢰할 수 없는 입력이 발생하는지 확인했다.

데이터는 I0Buf에 저장돼 피즈와 폴리에서 읽을 수 있다. 연구진은 또한 소켓을 통해 전송되는 데이터가 일반적으로 네트워크 바이트 순서로 전송된다는 것을 발견했다. 

이는 네트워크 데이터가 'ntohs'또는 'ntohl' 등을 사용해 호스트 바이트 순서로 변환돼야 함을 의미한다. 'ntohs'또는 'ntohl'은 앞서 언급한 신뢰할 수 없는 입력에 대한 엑설런트 프록시로 간주된다.

그러나 피즈는 'ntohs'또는 'ntohl'의 사용법을 통합하지 않고 네트워크 바이트 순서를 호스트 바이트로 변환하는 데 엔디안 클래스를 사용했다. 연구진의 쿼리는 피즈의 취약점을 발견했다.

피즈의 취약점은 공격의 영향을 인증을 거치지 않은 액세스로 간주하지 않는다. 버그가 DoS의 한 형태이기 때문이다. 

즉, 웹서비스를 사용하는 서버에서 무한 루프를 유도해 취약점을 악용하려는 공격자가 악의적인 전송 제어 프로토콜(TCP) 메시지를 보내면 서비스가 중단돼 사용자와 서버에만 영향이 나타난다. 

피즈의 버그에 대한 공격에 사용되는 메시지는 겨우 64KB를 약간 넘기 때문에 해커가 필요로 하는 리소스가 다른 사이버 공격보다 적다.

▲피즈 프로젝트는 이전 버전보다 더 안전하다고 알려진 C++ 코드로 작성됐다(사진=ⓒ플리커)

페이스북의 대응

세믈 팀은 피즈 버그를 발견한 후 곧바로 페이스북에 보고했다. 페이스북은 성명을 발표해 즉시 대응했다.

페이스북 측은 "우리는 화이트햇 연구 커뮤니티가 페이스북 커뮤니티를 안전하게 지키는 데 도움이 되기 위해 투자한 시간과 에너지에 크게 감사한다"고 전했다. 

페이스북은 이어 "이것이 바로 우리가 버그 바운티 프로그램을 만든 이유다. 이번에 밝혀진 버그에 따르면 피즈에 대한 버그 때문에 DoS 공격이 발생할 우려가 있었다"고 덧붙였다.

 

페이스북은 피즈의 버그로 인해 사이버 공격이 발생했다고 하더라도 사용자들의 개인 정보는 손상되지 않는다고 안심시켰다. 그리고 2월 25일에 발 빠르게 버그를 수정해 패치를 발표했다.

이 회사는 "사용자 콘텐츠나 정보는 영향을 입지 않았을 것이다. 우리는 보고를 받은 직후 문제를 수정했다"고 덧붙였다. 또한, 이 버그로 인해 페이스북의 서비스나 인프라가 영향을 받지는 않았다고 말했다.

백하우스는 이 보안 결함을 발견한 대가로 페이스북으로부터 약 1,130만 원의 보상금을 받았다. 

일반적으로 연구진에게는 DoS 취약점을 발견했다고 해서 보상을 하지 않지만, 이번 경우는 이례적이었다. 세믈은 이에 대해 보상금을 거절하며 자선 단체에 기부해달라고 페이스북에 요청했고, 페이스북은 그 두 배에 달하는 돈을 기부했다.

▲페이스북은 세믈에 감사를 표하며 즉시 패치를 진행했다(사진=ⓒ위키미디어 커먼즈)
[라이헨바흐=장희주 기자]