2019.04.03

"해커를 잡는 덫" 허니팟의 이해

Josh Fruhlinger | CSO
허니팟(honeypot)은 IT 전문가가 악의적인 해커를 잡기 위해 설치하는 덫이다. 해커가 허니팟에 걸려들어 유용한 정보를 흘리게 하는 것이 목표다. IT에서 가장 오래된 보안 수단 가운데 하나지만, 격리된 시스템에서 실시한다 해도 해커를 네트워크로 유인할 때는 위험에 주의를 기울여야 한다.
 
ⓒ Getty Images Bank 

우선 노턴의 간단한 허니팟 정의부터 보자. "허니팟은 그럴듯한 사이버 공격의 목표물을 가장하는 컴퓨터 또는 컴퓨터 시스템"이다. 흔히 허니팟은 공격자 관점에서 더 매력적인, 또는 확실한 목표물을 가장하기 위해 의도적으로 알려진 취약점을 사용해서 설계된다. 허니팟은 프로덕션 데이터를 포함하지 않고 네트워크의 정상적인 트래픽에도 참여하지 않는다. 즉, 이 안에서 일어나는 모든 일은 공격에 따른 결과다. 누군가 허니팟에 발을 들여놓는다면 나쁜 짓을 하려는 것이다.

이 정의의 범위에는 소수의 취약한 시스템을 제공하는 베어본 가상머신부터 여러 서버에 걸쳐 정교하게 만들어진 가짜 네트워크에 이르기까지 폭넓은 시스템이 포함된다. 허니팟을 만드는 사람의 목적 역시 심층 방어(defense in depth)부터 학계 연구까지 다양하다. 또한 지금은 기만 기술(deception technology)이라는 하나의 독립된 마케팅 범주가 존재한다. 기만 기술은 엄격한 의미에서 허니팟 정의에 부합하지는 않지만 같은 계열임은 확실하다. 


허니팟의 유형

허니팟의 범주는 만들어진 방식과 용도, 두 가지를 기준으로 분류된다. 먼저 허니팟을 구현하는 여러 방법부터 살펴보자. 피델리스 사이버시큐리티(Fidelis Cybersecurity)는 다음과 같이 세분화한다.

- 순수 허니팟은 공격자를 유인하도록 구성된 물리적인 서버다. 특수한 모니터링 소프트웨어가 허니팟과 나머지 네트워크 사이의 연결을 감시한다. 그 자체로 완전히 기능하는 시스템이므로 공격자에게 실제 목표물처럼 보이지만, 공격자가 의도적으로 공격을 위한 준비 서버로 허니팟을 이용하는 ‘역공’의 위험도 있다. 또한 허니팟은 구성과 관리를 위해 많은 작업이 필요하다.

- 높은 상호작용 방식의 허니팟은 침해 가능성이 있는 시스템을 격리하기 위해 가상 머신을 사용한다. 여러 개의 가상 허니팟을 하나의 물리적 디바이스에서 실행할 수도 있다. 손쉽게 다수의 허니팟으로 확장하고, 침해된 시스템을 샌드박싱한 다음 종료, 재시작하고 정상 상태로 복원할 수 있다. 그러나 각 VM 자체가 완전히 기능하는 서버이며 따라서 모든 구성 작업도 여전히 필요하다.

- 낮은 상호작용 방식의 허니팟은 가장 일반적인 공격 벡터 또는 허니팟 제작 팀에서 주로 다루고자 하는 공격 벡터를 대표하는 제한된 서비스 모음만 실행하는 VM이다. 이 유형의 허니팟은 만들고 유지하기가 상대적으로 쉽고 리소스도 덜 들어가지만 공격자가 "가짜"임을 눈치챌 가능성이 더 높다.

허니팟을 나누는 또 다른 기준은 만드는 사람의 의도다. 이 기준으로 분류하면 연구용 허니팟과 프로덕션 허니팟이 있다. 두 허니팟을 구분하려면 실제로 사용되는 허니팟이 무엇인가에 대한 설명이 필요하다. 그 부분에 대해 알아보자.


허니팟, 무엇에 쓰이는 물건인고

연구용 허니팟은 해커의 수법을 분석하는 것을 목표로 한다. 허니팟을 운용하는 팀은 해커가 시스템에 침투하고 권한을 승격하거나 기타 대상 네트워크에서 저지르는 만행에 사용하는 기법을 관찰할 수 있다. 

이런 유형의 허니팟은 위협 환경을 살펴보고자 하는 보안 업체, 학계, 정부 기관에 의해 구축된다. 어떤 종류의 공격자가 활동하는지, 특정 종류의 공격이 어떻게 해서 이뤄지는지 확인하거나, 공격의 진원지를 추적하기 위해 특정 해커를 유인하기 위한 용도로도 사용된다. 이런 시스템은 대체로 완전히 격리된 실험실 환경에 구축되므로 침해가 허니팟 이외의 시스템에 대한 공격으로 이어지는 경우는 없다.

반면 프로덕션 허니팟은 최대한 격리하기 위한 조치가 취해지긴 하지만 일반적으로 조직의 일부 프로덕션 인프라와 근접해 구축된다. 이런 허니팟은 조직의 네트워크에 침투하려는 해커를 유인해 중요한 데이터 또는 서비스로부터 떨어뜨리기 위한 미끼 역할도 하고, 탄광의 카나리아 역할, 즉 공격이 진행 중이며 최소한 일부라도 성공했음을 알리는 역할도 한다.


허니팟과 허니넷의 차이

허니넷(Honeynets)은 허니팟 개념을 논리적으로 확장한 것이다. 허니팟은 개별 머신(또는 가상머신)인 반면 허니넷은 일련의 허니팟이 네트워크로 연결된 형태다. 물론 공격자 관점에서 볼 때 공격 대상의 인프라에 머신이 하나뿐이라면 설득력이 없다. 여러 특화된 유형의 서버가 다수 있는 편이 더 현실적이다. 

예를 들어 공격자가 파일 서버에서 웹 서버로 네트워크를 가로지르는 이동 경로를 관찰하면 공격자가 무엇을, 어떻게 하고 있는지 더 정확히 알 수 있다. 또한 자신이 실제 네트워크를 침투했다고 공격자가 착각할 가능성도 더 높다. 허니넷의 중요한 특징은 실제 네트워크와 같은 방식으로 연결되고 상호작용한다는 것이다. 에뮬레이션 또는 추상화된 계층을 사용하면 공격자가 쉽게 눈치챌 수 있다.

허니팟과 허니넷은 이른바 기만 기술의 바탕이다. 기만 제품은 허니팟과 허니넷을 포함하는 경우가 많고, 프로덕션 서버의 "미끼" 파일을 포함하기도 한다. 마크 랠리버트는 다크리딩(DarkReading)에서 기만 기술이라는 범주가 "대략적으로 현대의 동적인 허니팟과 허니넷을 가리킨다"고 말했다. 

가장 큰 차이점은 기만 기술은 툴이 실시간으로 공격에 반응해 공격자를 실제 자산이 아닌 기만 자산으로 유인할 수 있게 해주는 자동화된 기능을 포함한다는 데 있다. 본지는 4개의 기만 툴을 테스트한 적이 있다. 이 리뷰를 보면 기만 기술이 어떻게 작동하는지 이해하는 데 도움이 될 것이다.

랠리버트도 언급했듯이 이런 모든 툴에서 중요한 점은 공격자에 대한 데이터를 제공하지만, 공격에 직접 대응하지 않는 경우도 있다는 것이다. 따라서 허니팟 또는 허니넷에서 공격자가 무엇을 하고 있는지에 대한 정보를 분석할 사람이 필요하다. 이 작업을 직접 할 필요가 없도록 분석 및 보호를 서비스 형태로 제공하는 보안 업체도 있다.


허니팟의 역사

허니팟은 초기 유명한 정보보안 사건 중 하나에서 처음 사용됐다. UC 버클리 시스템 관리자 클리포드 스톨이 1986년 저술한 책 <뻐꾸기의 알(The Cuckoo's Egg)>에 따르면, 스톨은 로렌스 유닉스 시스템 사용에 대해 버클리 연구실에 0.75달러가 청구된 것을 보고 오류가 발생했다고 판단해 조사에 착수했다. 이 과정에서 스톨은 누군가가 시스템에 전화로 접속해 수퍼유저 액세스 권한을 획득했음을 발견했고, 이 해커를 추적하기 위해 허니팟과 비슷한 두 가지 방어를 구축했다. 

스톨은 터미널을 빌려 주말 내내 수신 전화선 50개 모두에 연결하고 해커가 전화를 걸 때까지 기다렸다. 해커가 핵 방어 기밀에 대한 정보를 노린다는 것을 알게 된 스톨은 해커를 유인해 시간을 낭비하도록 하기 위해 LBL에 “스타 워즈” 미사일 방어 시스템을 연구하는 것으로 가장한 완전히 가짜 부서를 만들었다. 이후 체포된 공격자는 KGB를 위해 일하는 서독 국민으로 밝혀졌다.

허니팟이 사용된 또 다른 중요한 사건은 1990년에 발생했다. 해커가 AT&T 벨 랩스(Bell Labs)에 침투해 비밀번호 파일을 훔치려고 시도한 사건이다. 당시 벨 랩스에서 근무하던 인터넷 개척자 빌 체스윅은 공격자의 위치를 추적하고 공격 수법을 파악하기 위해 임시 허니팟 시스템을 통해 공격자를 “숨바꼭질”로 유도했다. 체스윅이 쓴 사건 기록 "버퍼드와의 저녁(An Evening with Berferd)"은 당시 상당한 영향을 미쳤다.

허니팟은 보안 전문가가 갖춰야 할 기본 툴 중 하나로 자리를 잡았다. 1997년에는 디셉션 툴킷(Deception Toolkit) 프로젝트가 출범했다. 지금은 활동하지 않지만 웹사이트는 1990년대 후반 웹 디자인을 고스란히 담은 채 여전히 열려 있다. 1999년에 시작된 허니넷 프로젝트는 현재까지 활동하면서 보안 커뮤니티 리소스 역할을 하고 있다.


허니팟 소프트웨어

제품이 포함된 허니팟 프로젝트는 여러 가지이며 대부분은 무료 오픈소스다. Honeyd는 이 가운데 가장 유명한 제품이며, 낮은 상호작용 방식의 가상 허니팟이다. 앞서 언급한 허니넷 프로젝트의 경우 허니팟 기능뿐만 아니라 허니팟이 수집하는 데이터를 분석하는 방법도 함께 제공하는 광범위한 툴 목록을 게시한다.

깃허브에도 각 허니팟을 여러 범주별로 구분한 유용한 허니팟 목록이 있다. 이 목록은 허니팟 유형의 다양함에 대해 알아보기에 좋다. 예를 들어 데이터베이스부터 산업용 SCADA 디바이스에 이르기까지. 허니팟이 시뮬레이션하는 대상은 무수히 많다.

상업용으로 판매되는 독립적인 허니팟 시스템은 거의 없지만 대부분의 기만 기술 업체는 솔루션의 일부로 허니팟을 제공한다. 래피드7(Rapid7)의 인사이트IDR(InsightIDR)이 이런 제품 가운데 하나다. 


허니팟 시스템 구축하기

허니팟을 직접 구축하려면 온라인 자습서를 참고하면 된다. 허니팟에서 정보를 수집할 수 있는 보안 툴인 스플렁크(Splunk)는 오픈소스 카우리(Cowrie) 패키지를 사용해 허니팟을 설정하는 방법을 정리해 제공한다. 허니팟을 시스템에서 격리하려는 경우 0x00sec.org에서 제공하는 ‘아마존 AWS 서버를 사용해서 무료로 허니팟 설정하기’ 가이드가 유용할 것이다. editor@itworld.co.kr 

 


2019.04.03

"해커를 잡는 덫" 허니팟의 이해

Josh Fruhlinger | CSO
허니팟(honeypot)은 IT 전문가가 악의적인 해커를 잡기 위해 설치하는 덫이다. 해커가 허니팟에 걸려들어 유용한 정보를 흘리게 하는 것이 목표다. IT에서 가장 오래된 보안 수단 가운데 하나지만, 격리된 시스템에서 실시한다 해도 해커를 네트워크로 유인할 때는 위험에 주의를 기울여야 한다.
 
ⓒ Getty Images Bank 

우선 노턴의 간단한 허니팟 정의부터 보자. "허니팟은 그럴듯한 사이버 공격의 목표물을 가장하는 컴퓨터 또는 컴퓨터 시스템"이다. 흔히 허니팟은 공격자 관점에서 더 매력적인, 또는 확실한 목표물을 가장하기 위해 의도적으로 알려진 취약점을 사용해서 설계된다. 허니팟은 프로덕션 데이터를 포함하지 않고 네트워크의 정상적인 트래픽에도 참여하지 않는다. 즉, 이 안에서 일어나는 모든 일은 공격에 따른 결과다. 누군가 허니팟에 발을 들여놓는다면 나쁜 짓을 하려는 것이다.

이 정의의 범위에는 소수의 취약한 시스템을 제공하는 베어본 가상머신부터 여러 서버에 걸쳐 정교하게 만들어진 가짜 네트워크에 이르기까지 폭넓은 시스템이 포함된다. 허니팟을 만드는 사람의 목적 역시 심층 방어(defense in depth)부터 학계 연구까지 다양하다. 또한 지금은 기만 기술(deception technology)이라는 하나의 독립된 마케팅 범주가 존재한다. 기만 기술은 엄격한 의미에서 허니팟 정의에 부합하지는 않지만 같은 계열임은 확실하다. 


허니팟의 유형

허니팟의 범주는 만들어진 방식과 용도, 두 가지를 기준으로 분류된다. 먼저 허니팟을 구현하는 여러 방법부터 살펴보자. 피델리스 사이버시큐리티(Fidelis Cybersecurity)는 다음과 같이 세분화한다.

- 순수 허니팟은 공격자를 유인하도록 구성된 물리적인 서버다. 특수한 모니터링 소프트웨어가 허니팟과 나머지 네트워크 사이의 연결을 감시한다. 그 자체로 완전히 기능하는 시스템이므로 공격자에게 실제 목표물처럼 보이지만, 공격자가 의도적으로 공격을 위한 준비 서버로 허니팟을 이용하는 ‘역공’의 위험도 있다. 또한 허니팟은 구성과 관리를 위해 많은 작업이 필요하다.

- 높은 상호작용 방식의 허니팟은 침해 가능성이 있는 시스템을 격리하기 위해 가상 머신을 사용한다. 여러 개의 가상 허니팟을 하나의 물리적 디바이스에서 실행할 수도 있다. 손쉽게 다수의 허니팟으로 확장하고, 침해된 시스템을 샌드박싱한 다음 종료, 재시작하고 정상 상태로 복원할 수 있다. 그러나 각 VM 자체가 완전히 기능하는 서버이며 따라서 모든 구성 작업도 여전히 필요하다.

- 낮은 상호작용 방식의 허니팟은 가장 일반적인 공격 벡터 또는 허니팟 제작 팀에서 주로 다루고자 하는 공격 벡터를 대표하는 제한된 서비스 모음만 실행하는 VM이다. 이 유형의 허니팟은 만들고 유지하기가 상대적으로 쉽고 리소스도 덜 들어가지만 공격자가 "가짜"임을 눈치챌 가능성이 더 높다.

허니팟을 나누는 또 다른 기준은 만드는 사람의 의도다. 이 기준으로 분류하면 연구용 허니팟과 프로덕션 허니팟이 있다. 두 허니팟을 구분하려면 실제로 사용되는 허니팟이 무엇인가에 대한 설명이 필요하다. 그 부분에 대해 알아보자.


허니팟, 무엇에 쓰이는 물건인고

연구용 허니팟은 해커의 수법을 분석하는 것을 목표로 한다. 허니팟을 운용하는 팀은 해커가 시스템에 침투하고 권한을 승격하거나 기타 대상 네트워크에서 저지르는 만행에 사용하는 기법을 관찰할 수 있다. 

이런 유형의 허니팟은 위협 환경을 살펴보고자 하는 보안 업체, 학계, 정부 기관에 의해 구축된다. 어떤 종류의 공격자가 활동하는지, 특정 종류의 공격이 어떻게 해서 이뤄지는지 확인하거나, 공격의 진원지를 추적하기 위해 특정 해커를 유인하기 위한 용도로도 사용된다. 이런 시스템은 대체로 완전히 격리된 실험실 환경에 구축되므로 침해가 허니팟 이외의 시스템에 대한 공격으로 이어지는 경우는 없다.

반면 프로덕션 허니팟은 최대한 격리하기 위한 조치가 취해지긴 하지만 일반적으로 조직의 일부 프로덕션 인프라와 근접해 구축된다. 이런 허니팟은 조직의 네트워크에 침투하려는 해커를 유인해 중요한 데이터 또는 서비스로부터 떨어뜨리기 위한 미끼 역할도 하고, 탄광의 카나리아 역할, 즉 공격이 진행 중이며 최소한 일부라도 성공했음을 알리는 역할도 한다.


허니팟과 허니넷의 차이

허니넷(Honeynets)은 허니팟 개념을 논리적으로 확장한 것이다. 허니팟은 개별 머신(또는 가상머신)인 반면 허니넷은 일련의 허니팟이 네트워크로 연결된 형태다. 물론 공격자 관점에서 볼 때 공격 대상의 인프라에 머신이 하나뿐이라면 설득력이 없다. 여러 특화된 유형의 서버가 다수 있는 편이 더 현실적이다. 

예를 들어 공격자가 파일 서버에서 웹 서버로 네트워크를 가로지르는 이동 경로를 관찰하면 공격자가 무엇을, 어떻게 하고 있는지 더 정확히 알 수 있다. 또한 자신이 실제 네트워크를 침투했다고 공격자가 착각할 가능성도 더 높다. 허니넷의 중요한 특징은 실제 네트워크와 같은 방식으로 연결되고 상호작용한다는 것이다. 에뮬레이션 또는 추상화된 계층을 사용하면 공격자가 쉽게 눈치챌 수 있다.

허니팟과 허니넷은 이른바 기만 기술의 바탕이다. 기만 제품은 허니팟과 허니넷을 포함하는 경우가 많고, 프로덕션 서버의 "미끼" 파일을 포함하기도 한다. 마크 랠리버트는 다크리딩(DarkReading)에서 기만 기술이라는 범주가 "대략적으로 현대의 동적인 허니팟과 허니넷을 가리킨다"고 말했다. 

가장 큰 차이점은 기만 기술은 툴이 실시간으로 공격에 반응해 공격자를 실제 자산이 아닌 기만 자산으로 유인할 수 있게 해주는 자동화된 기능을 포함한다는 데 있다. 본지는 4개의 기만 툴을 테스트한 적이 있다. 이 리뷰를 보면 기만 기술이 어떻게 작동하는지 이해하는 데 도움이 될 것이다.

랠리버트도 언급했듯이 이런 모든 툴에서 중요한 점은 공격자에 대한 데이터를 제공하지만, 공격에 직접 대응하지 않는 경우도 있다는 것이다. 따라서 허니팟 또는 허니넷에서 공격자가 무엇을 하고 있는지에 대한 정보를 분석할 사람이 필요하다. 이 작업을 직접 할 필요가 없도록 분석 및 보호를 서비스 형태로 제공하는 보안 업체도 있다.


허니팟의 역사

허니팟은 초기 유명한 정보보안 사건 중 하나에서 처음 사용됐다. UC 버클리 시스템 관리자 클리포드 스톨이 1986년 저술한 책 <뻐꾸기의 알(The Cuckoo's Egg)>에 따르면, 스톨은 로렌스 유닉스 시스템 사용에 대해 버클리 연구실에 0.75달러가 청구된 것을 보고 오류가 발생했다고 판단해 조사에 착수했다. 이 과정에서 스톨은 누군가가 시스템에 전화로 접속해 수퍼유저 액세스 권한을 획득했음을 발견했고, 이 해커를 추적하기 위해 허니팟과 비슷한 두 가지 방어를 구축했다. 

스톨은 터미널을 빌려 주말 내내 수신 전화선 50개 모두에 연결하고 해커가 전화를 걸 때까지 기다렸다. 해커가 핵 방어 기밀에 대한 정보를 노린다는 것을 알게 된 스톨은 해커를 유인해 시간을 낭비하도록 하기 위해 LBL에 “스타 워즈” 미사일 방어 시스템을 연구하는 것으로 가장한 완전히 가짜 부서를 만들었다. 이후 체포된 공격자는 KGB를 위해 일하는 서독 국민으로 밝혀졌다.

허니팟이 사용된 또 다른 중요한 사건은 1990년에 발생했다. 해커가 AT&T 벨 랩스(Bell Labs)에 침투해 비밀번호 파일을 훔치려고 시도한 사건이다. 당시 벨 랩스에서 근무하던 인터넷 개척자 빌 체스윅은 공격자의 위치를 추적하고 공격 수법을 파악하기 위해 임시 허니팟 시스템을 통해 공격자를 “숨바꼭질”로 유도했다. 체스윅이 쓴 사건 기록 "버퍼드와의 저녁(An Evening with Berferd)"은 당시 상당한 영향을 미쳤다.

허니팟은 보안 전문가가 갖춰야 할 기본 툴 중 하나로 자리를 잡았다. 1997년에는 디셉션 툴킷(Deception Toolkit) 프로젝트가 출범했다. 지금은 활동하지 않지만 웹사이트는 1990년대 후반 웹 디자인을 고스란히 담은 채 여전히 열려 있다. 1999년에 시작된 허니넷 프로젝트는 현재까지 활동하면서 보안 커뮤니티 리소스 역할을 하고 있다.


허니팟 소프트웨어

제품이 포함된 허니팟 프로젝트는 여러 가지이며 대부분은 무료 오픈소스다. Honeyd는 이 가운데 가장 유명한 제품이며, 낮은 상호작용 방식의 가상 허니팟이다. 앞서 언급한 허니넷 프로젝트의 경우 허니팟 기능뿐만 아니라 허니팟이 수집하는 데이터를 분석하는 방법도 함께 제공하는 광범위한 툴 목록을 게시한다.

깃허브에도 각 허니팟을 여러 범주별로 구분한 유용한 허니팟 목록이 있다. 이 목록은 허니팟 유형의 다양함에 대해 알아보기에 좋다. 예를 들어 데이터베이스부터 산업용 SCADA 디바이스에 이르기까지. 허니팟이 시뮬레이션하는 대상은 무수히 많다.

상업용으로 판매되는 독립적인 허니팟 시스템은 거의 없지만 대부분의 기만 기술 업체는 솔루션의 일부로 허니팟을 제공한다. 래피드7(Rapid7)의 인사이트IDR(InsightIDR)이 이런 제품 가운데 하나다. 


허니팟 시스템 구축하기

허니팟을 직접 구축하려면 온라인 자습서를 참고하면 된다. 허니팟에서 정보를 수집할 수 있는 보안 툴인 스플렁크(Splunk)는 오픈소스 카우리(Cowrie) 패키지를 사용해 허니팟을 설정하는 방법을 정리해 제공한다. 허니팟을 시스템에서 격리하려는 경우 0x00sec.org에서 제공하는 ‘아마존 AWS 서버를 사용해서 무료로 허니팟 설정하기’ 가이드가 유용할 것이다. editor@itworld.co.kr 

 


X