연구 소식

FUSE: 모의 침투 테스트를 이용한 파일업로드 취약점 탐지 도구
작성일2020-02-26 10:02:42

FUSE: 모의 침투 테스트를 이용한 파일업로드 취약점 탐지 도구

현대 웹 애플리케이션의 파일업로드 기능은 사용자가 만든 콘텐츠를 공유한다는 관점에서 중요한 특징 중 하나이다. 하지만, 파일업로드 기능은 공격자가 생성한 임의의 파일을 대상 서버에 업로드하여, 대상 시스템을 장악하는 디딤돌로 사용할 수 있는 잠재적 보안 위협이 존재한다. 손수엘 교수 연구진은 모의 공격 테스트를 기반으로 해당 파일업로드 취약점을 탐지하는 새로운 기술을 연구하여, FUSE라는 도구를 구현하고 공개하였다.

 

파일업로드 취약점을 유발시키기 위하여, 먼저, 웹 애플리케이션 상에서 방어책으로 존재하는 콘텐츠 필터링 검증을 우회할 수 있는 업로드 요청을 생성해야 한다. 그러나, 애플리케이션마다 각자 다른 방식 및 논리로 콘텐츠 필터링 검증이 구현되었기 때문에, 이를 일반화 하여 자동적으로 우회할 수 있는 업로드 요청을 생성하는 작업은 매우 까다롭다. 또한, 대상 웹 서버 및 웹 브라우저에서 실행이 가능한 파일을 생성할 수 있는 업로드 요청을 생성해야 한다. 이를 위하여, 어떠한 제약 및 의미가 파일에 존재해야 하는지 식별하는 작업이 필요하다.

 

손수엘 교수의 Web Security & Privacy 연구실에서는 이와 같은 요구사항을 충족시키기 위하여, 기존의 업로드 요청을 변형하는 방법론을 제안하였다. 특별히, 콘텐츠 필터링 검증이 우회 될 수 있는 근본적인 이유와 함께, 업로드 된 파일의 실행 의미론이 유지될 수 있는 특성을 조사하고 이를 반영하여 [그림 1]과 같이, 총 13가지의 변형 방법을 고안하였다. 또한, 제안한 변형 방법을 활용하여 파일업로드 취약점을 자동적으로 찾아내는 모의 공격 테스팅 툴 FUSE를 구현하였다. [그림 2]는 FUSE의 전체적인 시스템 개요를 나타낸다. 구체적으로, FUSE는 실행 가능한 HTML, JavaScript, PHP, XHTML 시드 파일의 업로드 요청을 생성하고, 이에 대하여 변형을 가한 후, 업로드를 시도한다. 마지막으로, 업로드 된 파일의 URL을 통해 실행이 가능한지 검증한다.


[그림 1] 변형 방법 리스트

 

[그림 2] FUSE에 구현된 모의 침투 테스팅 개요

 

본 기술을 WordPress, Joomla등 널리 쓰이는 33개의 실제 웹 애플리케이션을 대상으로 적용해 본 결과, 임의의 코드 실행을 유발하는 30개의 새로운 파일업로드 취약점을 발견하였다. 또한, 연구진은 발견한 취약점들을 관계된 개발사에 보고하였고, 총 15개의 CVE를 부여 받았다.


본 연구의 성과를 인정받아, 해당 내용은 컴퓨터 보안 분야 최고 학회인 NDSS 2020에 논문으로 게재 및 발표 되었으며 (https://wsp-lab.github.io/papers/lee-fuse-ndss20.pdf), 해당 기술을 구현한 모의 공격 테스팅 툴 FUSE 또한 GitHub에 공개되어 있다 (https://github.com/WSP-LAB/FUSE).