하우리 로고 이미지

전체메뉴 열기

Security issues analysis

주의해야 할 보안위협요소에 대한 분석자료 제공

보안이슈 분석

Virtual PC로 Honeypot을 만들자 (4)
등록일 :
2005.10.25
당신의 허니팟 생성

허니팟의 생성은 각 가상 시스템의 기본 OS 설치, 각 가상 시스템의 프로필 설정, 프로필을 확인하기 위한 테스트의 실행, 가상 세션의 백업의 순서가 필요하다. 당신은 외부 감염의 모든 가능성을 제거하기 위해, 고립된 사설 네트워크에서 이러한 작업을 진행해야 한다. 게다가, 필자는 각 가상 세션을 설치하는 동안, 자세한 문서의 작성을 강력히 권장한다. 이 업무는 허니팟의 정확한 기록을 가질 수 있게 해주고, 차후, 보안상 문제가 된 가상 시스템의 과학적 분석을 할 때 도움을 준다.

가상 시스템의 프로필은 OS의 설치와 서드-파티 소프트웨어, 특정 서비스의 노출을 포함한 특정 구성이다. 예를 들어, 웹 서버 팜내 취약점을 테스트하려면, IIS를 IIS Lockdown 툴과 TCP 80과 443을 제외한 모든 포트를 막아놓은 패킷 필터 설정을 한다. 이를 내장한 윈도우 2000 서버내 마이크로소프트 IIS 5.0 웹 서버를 미러한 프로필을 설정한다. 기본 프로필로서, 이 가상 세션을 저장할 수 있다. 그리고 허니팟 테스트를 좀더 하기 위하여 알려진 취약점을 추가, 제거한 다양한 프로필을 생성할 수 있다.

Virtual PC내 기본 운영 체제 설치는 간단하나, 시간이 많이 걸린다. 가상 세션의 설정후, 당신은 설치하고자 하는 운영체제의 부팅 가능한 CD-ROM이나 ISO 이미지를 넣고, 기본 설치를 실행한다. 불행하게도, Virtual PC내 운영체제의 설치는 매우 느리다. 호스트 OS로 윈도우 2003의 설치는 20분 정도밖에 안걸리나, 가상 머신내에 이를 설치할 때는 4시간 이상이 걸린다. 필자는 호스트와 가상 세션사이에 CPU를 어떻게 공유할지에 대한 기본 옵션을 변경해 보았지만, 설치 시간내 차이를 느낄 수 있을 정도의 변화가 있는 것같지는 않았따. 다행하게도, 한번 설치한 이후, 게스트 운영체제는 매우 잘 동작한다.

그다음, 필요한 프로필로 각 가상 세션을 설정한다. 이 순서는 운영체제의 설정, 필요한 컴포넌트의 설치, 시스템 보안 설정, 필요 서비스 팩과 패치의 적용, 그리고 실행하고자 하는 서드-파티 소프트웨어의 설치를 포함한다. 만약 웹서버와 같이, 외부에서 사용 가능한 서버를 계획한다면, 서비스가 허니팟이라는 사실을 숨기도록 설정하여야 한다. 예를 들어 컨텐츠가 이를 운영하는 조직과 연관되지 않거나 다소 오래된 웹 서버는 잠재된 공격자의 의심을 받거나, 흥미를 떨어뜨릴 것이다.

당신의 시스템을 감출 때, 합법이지만, 몇가지 도덕적 질문을 유발할 유인(Enticement)의 의미와 불법인 함정(Entrapment)에 대해서 잘 알고 있어야 한다. 당신의 DMZ내 익명의 허니팟 웹 서버를 운영하는 것은 찾아올 내부 공격자를 유인한다. 그러나 웹 서버의 존재와 내부 컨텐츠를 잠재적 공격자에게 이메일 메세지로 보내는 것은 함정이 될 수 있다. 법률 전문가가 허니팟의 함정을 책임질 수 있다는 것에 대해 납득하지 않더라도 당신은 이 주제에 대해 공부해야만 한다. (시작하기 위한 몇가지 장소가 Learning Path 박스에 있다.) 많은 전문가는 사용자는 허가받아야 하며, 모니터링 되고 있다는 배너를 내부 허니팟이 보여줘야 한다고 권장한다.

각 가상 세션을 설정하는 일부분으로, 필요한 증거를 제공하기 위한 설정을 했는지 확인해야 한다. 비록 당신은 몇몇 증거(예를 들어, 네트워크 트래픽)을 가상 세션의 밖에서 모을 수 있지만, 최고의 법적 증거 중 일부는 가상 세션의 보안 위협에서 온다. 필자는 항상 모든 로그인/로그아웃, 프로세스, 계정 관리, 그리고 정책 이벤트에 대한 로깅을 켜놓고, 이벤트 로그의 크기를 증가시켜 놓는다.

그후, 의도한 데로 동작하는지 확인하기 위해, 각 가상 시스템의 내, 외부 프로필을 테스트해야 한다. 예를 들어, 만약 당신이 인바운드 TCP 트래픽 포트 80만 허가하는 데스크탑 방화벽을 내장한 웹 서버를 공개하길 원한다면, 당신이 프로필을 정확하게 설정했는지 확인하기 위해, 침입-테스팅 도구를 사용해야 한다. 가상 세션 외부 프로필중 일반적인 관점은 거의 발견되지 않을 것이다. 불행하게도, 가상 세션의 내부 프로필에 대해서는 동일하게 말할 수 없다. Virtual PC는 하드웨어를 에뮬레이션하므로, 가상 세션은 일반적 드라이버로 설치된다. 그래서, 공격자는 세션이 가상이라는 사실에 대해서 매우 빠르게 발견할 수 있다. 당신은 VMWare 세션에서도 한가지를 제외하고는, 동일한 문제를 더 많이 발견할 수 있다. Virtual PC에서, 하드 디스크는 Virtual HD라는 설명을 가진다. 이 설명은 숨길 수 없다. 좋은 뉴스는 지난 2년동안 가상화의 빠른 채택이 가상 세션이 일반적이게 하였고, 공격자에게 의심을 덜 받게 되었다.

가상 세션 설정의 마지막 단계는 각 세션의 백업을 만드는 것이다. 당신은 세가지 이유로 인해 이를 해야만 한다. 첫번째, 세션의 설치와 설정은 많은 노력이 필요하고, 깔끔한 백업은 이러한 노고를 잃지 않게 한다. 두번째, 시스템이 보안상 위협에 빠졌을 때, 당신은 보안 위협전의 상태와 비교, 분석을 위해 되돌릴 수 있게 한다. 마지막으로 당신은 종종, 추가 증거의 수집을 위해 특정 가상 세션의 설정을 조금 바꾸길 원할 수 있다. 이 경우 백업이 특정 변경을 하기 위한, 기본 설정으로 빠르게 돌아가게 한다.

실제 상황으로 가자

당신은 허니팟을 실제 상황으로 옮기기 위한 준비를 거의 다했지만, 옮기기 전, 당신은 세션 설정을 마지막에 리뷰해야하며 세션의 증거 스냅샷을 찍어야 하고, 호스트에서 증거 수집을 시작해야 한다. 필자는 보통 마지막 설정내 일관성과 무결성을 확인하기 위해 이 단계에서 체크리스트를 이용하여 작업을 한다.

설정을 리뷰하기 위해, 가상 세션을 시작하고 적절한 설정을 했는지 확인차, 개개별의 수동 리허설을 해본다. 만약 당신이 허니넷을 운영한다면, 네트워크 설정을 확인한다. 각 세션별로, 각 장치의 내,외부 프로필을 확인하고, 증거를 수집하고 보관하기 위해 각 가상 세션이 적절히 설치되었는지 확인하는 표본 추출 검사를 한다.

필자는 항상 각 가상 세션이 실제 상황으로 가기 전, 설정의 스냅샷을 저장한다. 시스템이 보안상 공격을 받은 후, 변경 사항을 파악하기 위해 사용하는 베이스라인을 만들기 위함이다. 비록 UNIX에서 시스템 설정의 스냅샷을 찍기 위한 몇몇 좋은 유틸리티가 있지만, 윈도우에는 유틸리티가 매우 적다. 만약 당신이 설정 스냅샷을 찍기위한 도구가 없다면, 필자는 수동 작업을 하라고 권장한다. 특히, 파일의 체크섬과 프로세스(현재 로딩된 모듈 포함), 서비스, 장치 드라이버, 레지스트리 엔트리, 열린 포트, 이벤트 로그, 그리고 실행하는 응용 프로그램에 해당하는 증거 스냅샷을 찍자. 파일의 체크섬을 확인과 OS 설정의 스냅샷을 찍기 위한 유틸리티를 Sysinternals와 같은 쉐어웨어 웹사이트나 마이크로소프트 시큐리티 리소스킷 CD-ROM에서 찾을 수 있다. 일정 시간 후, 스크립트를 생성하여 이러한 프로세스를 자동화할 수 있다. 필자는 작동하는 시스템에 대한 많은 정보를 저장할 뿐아니라, 두가지 스냅샷의 차이점을 찾아내는 Snapshot이라고 부르는 명령어-라인 유틸리티를 작성하였다. (예를 들어 시스템이 보안위협을 받기 전과 후) 잠시 후, Snapshot에 대해 조금더 알아보겠다.

실제 상황으로 가기 전, 마지막 단계는 호스트에서 증거 수집을 시작하는 것이다. 최소, 당신은 네트워크 모니터와 IDS를 시작해야한다. 필자는 실제 상황으로 가기전, 먼저 실행된 허니팟에 대한 특정 증거를 리뷰하고 파일링하기 위해 만들어 놓은 패킷 추적 모니터링과 IDS 로그를 지운다. 이제, 당신의 호스트를 DMZ에 연결하고 허니팟을 실제 상황에 올릴 시간이 되었다.
  • - 본 정보의 저작권은 (주)하우리에 있으므로 허가없이 전체 또는 일부를 사용 시 저작권 침해로 간주될 수 있습니다.
  • - 상업적인 목적이나 단체에서 사용할 경우, 별도로 허가를 받으셔야 합니다. (정보 이용 문의 skim@hauri.co.kr)

Top