2019-09-17 15:24 (화)
PDF관련 PHP라이브러리에서 취약점 발견
상태바
PDF관련 PHP라이브러리에서 취약점 발견
  • 페소아 기자
  • 승인 2019.03.21 12:58
이 기사를 공유합니다

cyber-security-3480163_640.jpg
한 보안연구원이 PDF 파일 생성을 위한 가장 대중적인 PHP 라이브러리 중 하나에서 심각한 보안 취약점을 발견했다.

이 취약점은 HTML 코드를 PDF 문서로 변환하거나 PDF 파일을 생성하는 라이브러리 중 하나인 TCPDF에서 발견되었다.

TCPDF 라이브러리는 오늘날 가장 많이 사용되는 PHP 라이브러리 중 하나로 mPDF, FPDF와 함께 PDF관련 "빅 3" PHP라이브러리이다. 독립 실행형 웹사이트, CMS(Content Management System), CMS 플로그인, CMS 테마, 기업 인트라넷, CRM, HRM, 인보이스 솔루션 등 다양한 곳에서 사용되고 있다.

발표된 보안 취약점은 TCPDF 라이브러리를 사용하는 웹사이트와 웹 앱에서 원격 코드 실행을 가능하게 해주어, 위협 행위자가 악성코드를 실행하고 시스템을 장악할 수 있다.

이 취약점은 사실 다른 연구원 발견의 변형이다. 원 취약점은 2018년 여름 PHP 앱에 영향을 주는 일련의 역직렬화 취약점을 찾았던 세카르마(Secarma)의 연구원 샘 토마스(Sam Thomas)가 발견했다. 그는 워드프레스와 타이포3(Typo3) CMS 플랫폼뿐만 아니라 콘타오 CMS(Contao CMS) 내에 삽입된 TCPDF 라이브러리에 대한 PHP 직렬화 공격 내용을 담고 있는 연구문서를 공개했었다.

주말에 공개된 블로그 포스트에서 폴릭트(Polict)라는 이름으로 온라인에서 활동하는 이탈리안 연구원이 지난해 토마스가 발견했던 것과 같은 방법으로 TCPDF에 영향을 주는 새로운 PHP 직렬화 결함을 공개했다.

폴릭트는 그가 발견한 취약점이 두 가지 방법으로 익스플로잇될 수 있다고 말한다. 첫 번째 경우는 인보이스에 이름이나 기타 세부 정보를 추가할 때와 같이 사용자 입력을 PDF 파일 생성 프로세스의 일부로 허용하는 웹사이트이다.

두 번째는 웹사이트에 공격자가 HTML 소스 코드 안에 악성코드를 넣을 수 있는 XSS 취약점이 존재하여 TCPDF 라이브러리가 포함될 경우이다.

트릭은 조작된 데이터를 TCPDF 라이브러리에 제공하는 것이다. 이 데이터는 TCPDF 라이브러리가 PHP 서버의 "phar://" 스트림 래퍼(stream wrapper)를 호출하도록 강제하고, PHP 역직렬화 프로세스를 악용하여 서버에서 코드를 실행하는 방식으로 수정된다.

이것은 매우 복잡한 공격 루틴으로 악용하기 위해서는 고급 PHP 코딩 지식이 필요하다. 일반적으로 역직렬화 악용은 밝혀내기 어렵고 PHP 외에도 Ruby, Java, .NET 등 많은 프로그래밍 언어에서도 나타나는 결함이다.

지난 8월 TCPDF 라이브러리 작성자에게 이 취약점(CVE-2018-17057)을 보고한 후 9월에 이 취약점이 패치된 TCPDF 6.2.20이 발표되었다. 그러나 이 버전에서 샘 토마스가 보고했던 취약점이 다시 발생했기 때문에 다시 6.2.22 버전을 공개했다.

폴릭트는 취약점 세부사항을 패치 후 6개월 만에 공개했다. 이는 버그의 심각성을 고려하여 웹사이트 및 웹 응용프로그램 소유자가 패치할 시간을 충분히 주기 위해서이다.

★정보보안 대표 미디어 데일리시큐!★