클라이언트 허니팟

허니팟은 공격자로부터 탐사를 당하고 공격을 받는 역할을 하는 보안 장치이다. 전통적인 허니팟은 수동적으로 공격당하기를 기다리는 서버(혹은 서버 서비스들을 노출시키는 장치)의 형태이다. 클라이언트 허니팟은 클라이언트를 공격하는 악의적인 서버를 탐색하는 능동적인 보안 장치이다. 클라이언트 허니팟은 클라이언트로써 서버와 통신하며 공격이 발생했는지 조사한다. 보통 클라이언트 허니팟은 웹 브라우저에 중점을 두고 있지만, 서버와 상호 작용하는 클라이언트라면 무엇이든 클라이언트 허니팟으로 작동할 수 있다(ftp, ssh, 이메일 등).
클라이언트 허니팟을 묘사하는데는 여러 용어가 사용된다. 일반적으로 허니클라이언트라는 단어가 사용되기도 한다. 허니클라이언트는 최초로 알려진 오픈 소스 클라이언트 허니팟의 이름이기도 하지만, 맥락에 따라서 그 의미가 구별된다.
구성.
클라이언트 허니팟은 세 가지의 구성 요소로 이루어진다. 첫 번째 구성 요소인 큐는 클라이언트가 방문할 서버의 목록을 생성한다. 이 목록은 크롤링을 통해 생성될 수 있다. 두 번째 구성 요소인 클라이언트는 큐에서 식별된 서버에 요청을 보낸다. 세 번째 구성 요소인 분석 엔진은 클라이언트가 서버와 상호 작용을 한 후 공격이 발생했는지 알아낸다.
이러한 구성 요소들에 더불어, 서버의 공격이 클라이언트 허니팟을 넘어 영향을 끼치는 것을 막기 위해 격리 기법을 사용하고는 한다. 격리를 위해 방화벽을 사용하거나 가상 머신 샌드박스를 활용한다.
전통적인 서버 허니팟과 비슷하게 클라이언트 허니팟은 상호 작용 단계에 따라 High interaction과 Low interaction으로 구분이 된다. 이는 서버가 클라이언트 허니팟에서 활용할 수 있는 기능적 상호작용의 수준을 나타낸다. 이 외에도 High interaction 기술과 Low interaction 기술을 모두 활용하는 새로운 하이브리드 접근 방식도 있다.
High interaction (높은 상호 작용).
High interaction 클라이언트 허니팟은 실제 시스템에서 작동하는 실제 클라이언트와 비슷하게 완전한 기능을 갖춘 시스템이다. 따라서 high interaction 클라이언트 허니팟은 격리 기법과 관련된 것 외에는 기능 제한이 없다. high interaction 클라이언트 허니팟에 대한 공격은 서버와 상호 작용한 후 시스템의 상태를 검사하여 감지한다. 클라이언트 허니팟에 대한 변경을 감지하여 클라이언트의 취약점을 악용한 공격이 발생했는지 확인한다. 이러한 상태 변화의 예시 중 하나는 새로운 파일의 생성이나 기존 파일의 내용 변경 등이 있다.
High interaction 클라이언트 허니팟은 클라이언트에 대한 알려지지 않은 공격을 탐지하는데 매우 효과적이다. 그러나 시스템 상태의 변화를 관찰하고 공격을 평가하는데 자원이 필요하기 때문에 성능 하락이 발생한다. 또한 이러한 탐지 메커니즘은 익스플로잇의 다양한 종류의 회피에 취약하다. 어떠한 공격은 익스플로잇이 즉시 트리거되는 대신 시간을 지연시키거나(시한 폭탄) 일련의 조건이나 행위에 따라 트리거를 시킬 수도 있다(논리 폭탄). 탐지 가능한 변경이 즉시 발생하지 않을 경우 실제로는 서버가 공격을 성공했어도 안전한 서버라고 오탐을 할 수 있다. 만약 허니팟이 가상 머신 위에서 작동하고 있다면 익스플로잇은 가상 환경의 존재를 감지하고 트리거 하는 것을 멈추거나 다르게 작동할 수 있다.
Capture-HPC.
Capture는 웰링턴 빅토리아 대학교의 연구진들이 개발한 high interaction 클라이언트 허니팟이다. Capture는 현존하는 다른 클라이언트 허니팟들과 여러모로 차이점이 있다. 첫 번째로, Capture는 빠른 속도를 염두에 두고 설계되었다. 이벤트 기반 모델을 통해 상태 변화가 발생할 때마다 반응함으로써 변화가 감지된다. 두 번째로, 확장 가능하도록 설계되었다. 중앙 Capture 서버는 네트워크를 통해 수많은 클라이언트를 제어할 수 있다. 세 번째로, Capture는 다양한 클라이언트를 활용할 수 있는 프레임워크다. 초기 버전의 Capture는 Internet Explorer를 지원했지만, 현재 버전은 모든 주요 브라우저(Internet Explorer, Firefox, Opera, Safari)는 물론 사무 애플리케이션이나 미디어 플레이어와 같은 다른 HTTP 기반 클라이언트 소프트웨어들도 지원한다. 2013년 경 이후로는 별다른 업데이트가 없다. The Honeyney Projects에는 Old Projects로 분류되어 있다.
HoneyClient.
HoneyClient는 2004년 Kathy Wang이 디자인하고 MITRE가 개발하고 있는 웹 브라우저(Internet Explorer, FireFox) 기반 high interaction 클라이언트 허니팟이다. 이는 최초의 오픈 소스 클라이언트 허니팟이고 Perl, C++, 그리고 Ruby를 혼합하여 개발되었다. HoneyClient는 상태 기반이고 윈도우 클라이언트에서 파일, 프로세스 이벤트, 그리고 레지스트리 엔트리들을 감시함으로서 공격을 탐지한다. 공격 탐지를 위해 Capture-HPC의 실시간 무결성 검사기를 통합시켰다. 또한 HoneyClient는 크롤러를 포함하고 있기 때문에 시작할 초기 URL 목록을 시드한 다음 클라이언트 측 멀웨어를 탐지하기 위해 웹 사이트를 계속 탐색할 수 있다. 2010년 경 이후로 별다른 업데이트가 없다.
HoneyMonkey (2010년 지원 중단).
HoneyMonkey는 2005년 마이크로소프트에 의해 구현된 웹 브라우저(Internet Explorer) 기반 high interaction 클라이언트 허니팟이다. HoneyMonkey는 상태 기반으로 작동하며 파일, 레지스트리, 그리고 프로세스를 감시함으로써 공격을 감지한다. HoneyMonkey의 독특한 특징은 제로데이 익스플로잇을 식별하기 위해 서버와 상호 작용시에 단계적으로 접근한다는 것이다. 먼저 HoneyMonkey는 취약한 설정으로 웹을 크롤링한다. 공격이 식별된다면, 완전히 패치된 상태에서 다시 서버를 조사한다. 만약 여전히 공격이 감지된다면, 공격은 아직 공개적인 패치가 존재하지 않는 익스플로잇을 사용하는 것이므로 굉장히 위험하다고 판단할 수 있다.
SHELIA (2009년 지원 중단).
SHELIA는 암스테르담 자유 대학교의 Joan Robert Rocaspana가 개발한 high interaction 클라이언트 허니팟이다. 이메일 리더와 통합되어 수신되는 각 이메일(URL 및 첨부파일)을 처리한다. 수신된 URL이나 첨부파일의 종류에 따라서 다른 클라이언트 응용프로그램(웹 브라우저, 사무 소프트웨어 등)을 연다. 그리고는 명령어들이 메모리의 데이터 영역에서 실행되는지 감시한다(쉘코드를 활용한 익스플로잇이 발생했다는것을 나타내는 지표가 될 수 있다). 이러한 접근을 통해 SHELIA는 익스플로잇을 감지할 수 있을 뿐만 아니라 실제로 익스플로잇이 트리거되는것을 방지할 수 있다.
UW Spycrawler.
The Spycrawler는 2005년 워싱턴 대학의 Moshchuk에 의해 개발된 브라우저 기반 high interaction 클라이언트 허니팟이다. 이 클라이언트 허니팟은 다운로드가 불가능하다. The Spycrawler는 파일, 프로세스, 레지스트리, 그리고 브라우저 크래시를 감시하며 상태 기반으로 클라이언트에 대한 공격을 탐지한다. Spycrawlers의 탐지 메커니즘은 이벤트 기반이다. 또한 익스플로잇을 트리거하기까지의 시간을 지연시키는 방법으로 탐지를 우회하는 경우를 고려하여 가상 머신의 실행 시간을 증가시켰다.
Web Exploit Finder.
WEF는 주립 미디어 대학의 학생인 Thomas Müller, Benjamin Mack 그리고 Mehmet Arziman가 2006년 여름학기에 개발한 드라이브 바이 다운로드 자동 탐지 툴이다. WEF는 손상된 가상 머신의 롤백을 위한 완전한 가상화 아키텍처와 함께 능동적 HoneyNet으로 사용될 수 있다.
Cuckoo Sandbox.
Cuckoo Sandbox는 허니팟을 표방하지는 않지만 악성코드 분석을 위해 활발히 사용되는 샌드박스다. Cuckoo VM에서 실행파일, 마이크로소프트 오피스 문서, 이메일을 포함한 악성코드를 실행할 수 있다. 어떤 코드를 실행시켰고, 어떤 파일과 레지스트리가 변경되었으며 어떤 네트워크 통신을 했는지가 모두 기록된 보고서가 생성된다. 격리된 가상 환경 내에서 코드를 실행하고 상태 변화를 추적 할 수 있으며 샌드박스 내의 웹 브라우저로 URL에 접속하는 등 클라이언트 소프트웨어에 대한 취약점 공격을 탐지하는 것도 가능하다는 점에서 클라이언트 허니팟의 개념과 부합하는 점이 있다.
DRAKVUF.
DRAKVUF는 가상화 기반의 에이전트 없는 블랙박스 실행파일 분석 시스템이다. 직접적으로 허니팟을 표방하지는 않지만 The Honeynet Project에 포함되어 있다. DRAKVUF는 가상머신 내에 분석을 위한 소프트웨어를 별도로 설치하지 않고도 운영체제를 포함한 임의의 바이너리에 대한 심도있는 실행 추적을 가능케 한다. DRAKVUF는 VM 내에서 거의 감지할 수 없도록 설계되었으며 멀웨어 분석 및 허니팟 솔루션을 구축하기 위해 사용될 수 있다. DRAKVUF Sandbox project는 DRAKVUF 위에 구축된 모든 기능을 갖춘 자동화된 멀웨어 분석 시스템이다.
Low interaction (낮은 상호 작용).
Low interaction 클라이언트 허니팟은 실제 시스템 전체를 활용하지 않는 대신에 경량화 되거나 시뮬레이트된 클라이언트를 활용하여 서버와 상호 작용 한다는 점에서 high interaction 클라이언트 허니팟과 다르다. (웹 브라우저의 경우 웹 크롤러와 유사하게 작동한다). 공격 여부를 판단하기 위해 서버로부터의 응답을 바로 검사한다. 예시로, 응답 안에 악의적인 문자열이 존재하는지 검사하는 등의 방법을 사용하기도 한다.
Low interaction 클라이언트 허니팟은 high interaction 클라이언트 허니팟에 비해서 배치하고 조작하기 수월하며 퍼포먼스가 더욱 뛰어나다는 장점이 있다. 하지만 알려진 공격을 탐지하기 때문에 정확성은 상대적으로 떨어진다는 단점이 존재한다. 새로운 공격은 보통 탐지되지 않는다. 구조의 단순함으로 인해 익스플로잇이 클라이언트 허니팟의 존재를 알아차리고 회피하기 쉬운 것도 단점 중 하나이다.
HoneyC.
HoneyC는 2006년 웰링턴빅토리아대학교의 Christian Seifert가 개발한 low interaction 허니팟 클라이언트이다. HoneyC는 Ruby로 작성된 플랫폼 독립적인 오픈소스 프레임워크이다. 현재 웹 브라우저 시뮬레이터를 구동하여 서버와 상호 작용하는데 집중하고 있다. 스노트 시그니쳐를 통해 웹 서버의 응답에서 악의적인 문자열을 정적으로 조사함으로써 악의적인 서버를 탐지한다. 2021년 기준 대략 10년정도 업데이트가 되지 않았다. The Honeynet Project에는 Old Projects로 구분되어 있다.
Monkey-Spider (2008년 지원 종료).
Monkey-Spider는 만하임대학교의 Ali Ikinic이 처음 개발한 low interaction 클라이언트 허니팟이다. Spider는 악성코드를 탐지하기 위해 안티 바이러스 소프트웨어를 활용하는 크롤러 기반의 허니팟이다. 속도가 빠르고 다른 탐지 메커니즘들을 확장할 수 있다. 졸업 논문으로 시작된 프로젝트지만 계속 개발되어서 GPL에 따라 자유 소프트웨어로 출시된다.
PhoneyC (2015년 지원 종료).
PhoneyC 는 Jose Nazario가 개발한 low interaction 클라이언트 허니팟이다. PhoneyC는 일반적인 웹 브라우저를 모방하고 악의적인 컨텐트를 복호화 함으로써 동적 컨텐츠를 이해하고 탐지를 할 수 있다. 또한 PhoneyC는 특정 취약점을 에뮬레이션하여 공격 벡터를 정확히 찾아낸다. PhoneyC는 악의적인 HTTP 페이지의 연구와 최신 취약점과 공격 기법들의 이해를 가능케 하는 모듈식 프레임워크다.
SpyBye.
SpyBye는 Niels Provos가 개발한 low interaction 클라이언트 허니팟이다. SpyBye는 일련의 컨텐츠에 대한 휴리스틱과 ClamAV를 사용한 스캐닝을 통해 웹 사이트가 위험한지 알아낼 수 있는 방법을 웹 마스터에게 제공한다. 오랫동안 업데이트가 되지 않고 있는 것 같다.
Thug.
Thug는 Angelo Dell'Aera에 의해 개발된 low interaction 클라이언트 허니팟이다. Thug는 웹 브라우저의 행위를 에뮬레이트 하며 악의적인 웹 페이지의 탐지에 중점을 두고 있다. Google V8 자바스크립트 엔진을 사용하고 자체 DOM을 구현한다. Thug의 가장 중요하고 특이한 기능은 ActiveX 컨트롤 핸들링 모듈(취약점 모듈)과 정적+동적 분석 기능(추상 구문 트리와 Libemu 쉘코드 분석기를 사용)이다. Thug는 Python으로 작성되었으며 GNU General Public License을 따른다.
YALIH.
YALIH (Yet Another Low Interaction Honeyclient)는 뉴질랜드 웰링턴빅토리아대학교의 허니넷 지부에서 Masood Mansoori가 개발한 low interaction 클라이언트 허니팟으로서 시그니쳐와 패턴 매칭을 통해 악성 웹사이트를 탐지하도록 디자인된 low interaction 클라이언트 허니팟이다. YALIH는 악성 웹사이트 데이터베이스, 빙 API, POP3와 IMAP 프로토콜 메일 수신함과 스팸 메일 폴더에서 악성 URL들을 수집하는 기능을 가지고 있다. 웹사이트에 포함된 자바스크립트 추출, 난독화 해제와 압축 해제 등을 수행할 수 있고 referer와 브라우저 agent를 에뮬레이트를 할 수 있으며 리다이렉션, 쿠키와 세션을 처리할 수 있다. 방문자 에이전트는 geo-location과 IP 클로킹 공격을 우회하기 위해 여러 위치에서 웹사이트를 가져올 수 있다. YALIH는 또한 공격의 변형을 감지하기 위해 자동화된 서명을 생성할 수 있다. YALIH는 오픈 소스 프로젝트로 제공된다.
miniC.
miniC은 wget과 Yara 엔진에 기반한 low interaction 클라이언트 허니팟이다. 가볍고 빠르며 다수의 웹사이트 검색에 적합하도록 설계되었다. mimiC를 사용하여 Referer, User-Agent, Accept-Language와 다른 몇 가지 변수들을 설정하고 시뮬레이션 할 수 있다. mimiC은 웰링턴의 빅토리아 대학교 허니넷 지부에서 설계되었다.
하이브리드 클라이언트 허니팟.
하이브리드 클라이언트 허니팟은 high interaction과 low interaction 방식 모두의 이점을 취하기 위해 두 가지 접근 방식을 합친 형태이다.
HoneySpider (2013년 지원 종료).
HoneySpider 네트워크는 NASK/CERT Polska, GOVCERT.NL 및 SURFnet 간의 합작 투자로 개발된 하이브리드 클라이언트 허니팟이다. 프로젝트 목표는 기존 클라이언트 허니팟 솔루션과 특히 URL의 대량 처리를 위한 크롤러를 기반으로 하는 완전한 클라이언트 허니팟 시스템을 개발하는 것이다.