Skip to main content

네트워크 침입자 유인을 위한 거짓 긍정반응 기법 분석

거짓 긍정반응(false positive response)[1]은 설정된 모의 호스트의 IP주소에 대한 침입자의 정탐활동에 대해 모의 호스트가 거짓 긍정 신호를 보내는 것을 의미한다. 거짓 반응으로 인해 실제 호스트와 침입자 유인용 호스트와의 구별이 어려워 지도록 할 수 있다. 거짓 긍정반응에 선택되는 기법들의 특징은 모의 호스트를 연결하여 모의 네트워크를 구성해 잠재적 정탐에 대해 긍정적 신호를 전송할 수 있다. 고려되는 평가 요소는 모의 중, 대규모 네트워크의 용도 변경의 용이성, 적절한 반응을 대리 실행하기 위한 필요한 네트워크 구성에 관한 효율성, 비용과 지원 측면에서의 가능성 그리고 침입자가 유인 호스트를 탐지할 가능성이다.


Potential Targets

잠재적 공격 대상에 대한 이상적인 IP주소 설정은 모의 호스트 수가 많고 그 호스트 개별에 대해 통제 가능한 설정이다. IP 주소 위조 기법(IP Aliasing)에 의해 한 대의 호스트에 기본 IP주소뿐만 아니라 가상의 여러 IP를 할당할 수 있다. 단점은 침입자가 호스트들의 특정 세그먼트(segment)에 기록된 하드웨어 주소를 조사하면 그 주소가 모두 동일하여 한대의 호스트를 여러 차례 침입하고 있다는 사실을 쉽게 알 수 있다는 것이다. 가상화 기술에 의해 실제 호스트 위에서 개별적인 IP주소가 부여된 여러 대의 가상기계(Virtual Machine)를 운영해 가상의 네트워크(A network in virtual)를 구성할 수 있다. 가상 기계는 모두 동일한 IP 및 MAC 주소가 할당돼있기 때문에 공격에 대한 감시가 용이하다. 가상화 기술을 제공하는 VMWare같은 소프트웨어를 이용해 구성할 수 있다. 하지만 가상 네트워크는 침입자가 MAC주소 분석 및 에코(echo)의 시차 분석 방법을 이용해 가상 기계를 확인할 수 있다는 단점이 있다.

침입자를 유인하고 그들의 탐침과 시스템 불법이용의 시도를 감시할 수 있는 꿀단지(Honeypots) 방법이 존재한다. 꿀단지의 방법으로 실제 호스트 또는 가상 기계들로 구성된 고수준 대화 꿀단지(High-Interaction Honeypot)와 모의 시스템과 서비스로 구성된 저 수준 대화 꿀단지(Low-Interaction Honeypot)으로 나눌 수 있다. 저 수준 대화 꿀단지는 필요한 자원과 성능 사이에 조절이 가능하다는 장점을 가지지만 가상 호스트를 판별하는 기법이 존재한다는 단점이 있다.


Emulating Response

침입자의 정탐신호에 대한 반응 기법은 운영체제, 취약한 서비스, 다른 호스트 또는 네트워크 서비스에 의해 결정된다. 실제 서비스(Real response)가 운영되는 호스트에 의한 반응은 호스트 탐지 및 Port 정탐에 대해 타당한 반응을 낼 수 있으며 침입자가 속을 확률이 높다는 장점과 관리와 네트워크 구성에 많은 비용이 든다는 단점이 있다. 운영체제와 하드웨어 프로파일(profile)이 온전히 구성된 가상 기계(Virtual machines)들에 의한 반응 방법은 각각 선택된 운영체제와 서비스를 운영할 수 있고 실제 호스트의 네트워크 스택 수준의 프로토콜 실행을 가장할 수 있다. 내포한 서비스 운영 및 TCP/IP 스택 실행이 가능하고 침입자가 올리는 악성 코드를 잡아낼 수 있으나 가상 기계 운영에 과다한 메모리 소요와 운영 기계에 제한이 있다. 가상 꿀단지(Virtual Honeypots)의 방법은 침입자 유인 모의실험과 스택 수준과 선택된 취약점을 내포한 서비스를 복제하는 시스템이다. S/W에 의해 한대의 실제 수천대의 가상 호스트를 운영할 수 있고 가상 호스트들은 일련의 스택 수준 행위를 모방해 특정 서비스를 운영할 수 있다. 이는 공개 S/W에 의해 구현이 가능하지만 결함과 고장에 대한 지원이 제한적이다.


의견

꿀단지(Honeypots)[2]를 이용해 실제 서비스하는 호스트인 것처럼 속이거나 공격자나 침입자를 유인할 수 있다. 하지만 이 방법으로 구성하기 위해서는 침입자가 꿀단지 호스트를 통해 실제 서비스에 영향을 줄 수 있지 않도록 네트워크 구성을 분리해야 하고 안전한 망 구축을 위해 스위치 및 방화벽 장비의 추가 투입이 불가피한 것으로 보인다. 인적 자원 및 물적 자원의 투자가 불가피 함에 따라 구성에 있어서 상당한 규모의 서비스 및 기업에서만 가능한 방법이라고 생각한다.

가상 기계(Virtual Machines)또는 가상 꿀단지(Virtual Honeypots)의 방법도 물리적인 네트워크를 구성해야 하는 부담은 적지만 침입자를 온전히 속이기 위해서는 가상화를 지원하는 VMWare[3], MS의 Virtual PC[4], Sun의 VirtualBox[5]같은 소프트웨어(Windows 2008의 가상화 기능도 마찬가지 이다.)를 사용해야 하므로 해당 호스트의 성능에 따라 가용성의 차이가 커지므로 제대로 된 침입자 유인 서비스를 구성하기 위해서는 고 가용성의 호스트 장비가 필요하게 될 것이다.

이와 같은 이유 때문에 중소 기업에서 꿀단지 기법을 이용해 다수 또는 가상의 침입자를 유인하는 시스템을 구성하여 침입자를 유인하고 지속적으로 살핀다는 것은 실제적인 여건상 힘들 수 있다. 실제 서비스에 대해 침입자를 유인하여 분석하는 대신 실제 서비스 네트워크와 분리된 내부 네트워크에서 일어나는 정보유출에 오히려 더 신경 쓰는것이 더 효율적이다. 이런 기업들은 작은 정보 유출에도 회사 존립에 문제가 될 수 있기 때문에 내부자료 보안에 더 신경쓰는 것이 현명할 것이다.

Honeynet[6]은 공격자가 시스템에 침입하기 위해 사용하는 방법으로 침입 도구에 대해 연구하기 위해사용 되고 있다. 이는 일부러 공격 당하도록 구성된 시스템들로 이루어진 네트워크를 말하는데 방화벽 시스템(Firewall)이나 모든 모든 incoming/outgoing 연결을 로깅하기 위한 NAT 서비스를 제공할 수 도 있고 침입탐지 시스템(IDS)[7]을 이용해 때로는 방화벽이 설치된 시스템에 함께 설치하기도 한다. 모든 네트워크 트래 픽을 로깅하며, 알려진 공격을 감시할 수도 있다.

기존의 Honeynet은 꿀단지를 이용해 침입자를 유인하는 쪽에 치중해 있다고 한다면 거꾸로 꿀단지를 이용해 사내 또는 비밀이나 보안이 필요한 네트워크에 비밀자료 유출방지 및 사용패턴의 시스템 분석을 위한 꿀단지의 운영할 것을 제안하고 싶다.

기존 구성된 내부 네트워크에 설치된 웹서비스나 SMTP[8] (Simple Mail Transfer Protocol), FTP[9] (File Transfer Protocol)나 방화벽 등을 꿀단지 기법으로 구현해 내부 직원에게는 비밀하에 설치하며 실제 서비스 처럼 운영해 볼 수 있을 것이다. 꿀단지의 로그 데이터 분석을 통해 사내 네트워크에 취약점 및 자료 유출 실태를 분석할 수 있을 뿐만 아니라 나아가 서는 취약점 보완에 기여할 수 있을 것이다.


References

[1] (2008). False-positive reaction - Dictionary.com - Reference.com. Retrieved July 6, 2013, from http://dictionary.reference.com/browse/false-positive+reaction.
[2] (2006). Honeypot (computing) - Wikipedia, the free encyclopedia. Retrieved July 6, 2013, from http://en.wikipedia.org/wiki/Honeypot_(computing).
[3] VMware Virtualization for Desktop & Server, Public & Private Clouds. Retrieved July 6, 2013, from http://www.vmware.com/.
[4] (2012). Download Virtual PC 2007 from Official Microsoft Download Center. Retrieved July 6, 2013, from http://www.microsoft.com/en-us/download/details.aspx?id=4580.
[5] (2011). Oracle VM VirtualBox. Retrieved July 6, 2013, from https://www.virtualbox.org/.
[6] (2006). Honeypot (computing) - Wikipedia, the free encyclopedia. Retrieved July 6, 2013, from http://en.wikipedia.org/wiki/Honeypot_(computing).
[7] (2003). Intrusion detection system - Wikipedia, the free encyclopedia. Retrieved July 6, 2013, from http://en.wikipedia.org/wiki/Intrusion_detection_system.
[8] (2003). Simple Mail Transfer Protocol - Wikipedia, the free encyclopedia. Retrieved July 6, 2013, from http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol.
[9] (2004). File Transfer Protocol - Wikipedia, the free encyclopedia. Retrieved July 6, 2013, from http://en.wikipedia.org/wiki/File_Transfer_Protocol.

Popular posts from this blog

클라우드 컴퓨팅(Cloud Computing) 기술 정리

1. 클라우드 컴퓨팅(Cloud Computing)이란?

클라우드 컴퓨팅에 대해서는 현재 매우 다양한 정의가 존재한다. 이 중 몇 가지를 정리하면 다음과 같다. 첫 번째 정으로 클라우드 컴퓨팅은 다양한 클라이언트 디바이스에서 필요할 때 언제든지 인터넷을 이용한 공유 풀에 있는 서버, 스토리지, 어플리케이션, 서비스 등과 같은 IT 리소스에 쉽게 접근할 수 있게하는 모델이다.

또 다른 정의로는 서로 다른 물리적 위치에 존재하는 컴퓨터들의 리소스를 가상화 기술로 통합해 제공하는 기술이라고도 생각할 수 있다. 개인적으로 클라우드 컴퓨팅의 개념을 이해는데 세일즈포스닷컴(www.salesforce.com)[1]이 만든 이 동영상[2]이 전반적인 이해를 돕는데 매우 유용하다. 아래 그림은 여러 대표적인 클라우드 서비스들의 사용 예를 보여주고 있다.



1.1. 클라우드 컴퓨팅의 장점[4]

사용자가 자신의 필요에 따라 무한정의 컴퓨팅 자원을 사용할 수 있다는 환상(Illusion)을 제공한다. 그러므로 사용자는 하드웨어와 소프트웨어 시스템을 제공하는 계획을 미리 세울 필요가 없다. 사용자는 작은 시스템으로부터 시작할 수 있고 시스템 자원에 대한 요구가 증가함에 따라 시스템 자원을 증가시키면 된다. 필요에 따라 짧은 시간을 단위로 (예를 들어 프로세서를 시간 당 또는 스토리지를 날짜 당) 사용하고 비용을 지불하면 되고 필요가 사라지면 자원을 더 사용하지 않을 수 있다.

1.2. 기존 클라우드 컴퓨팅 사례1.2.1. 아마존
EC2(컴퓨팅 서비스)Auto Scaling(자동으로 서버 생성 가능)Elastic Load Balancing(소프트웨어 로드벨런싱 기능)CloudWatch(모니터링 정보 제공)Amazon Elastic Block Store(EBS, 빠르고 안정적인 스토리지)Amazon Simple Storage Service(Amazon S3, 스토리지 서비스)SimpleDB(데이터베이스 서비스)
1.2.2. 구글
GFS(구글파일시스템, 대용량 파일 처리 가능 시스템)MapR…

규칙기반 전문가 시스템 (Rule-based expert system)

컴퓨터로 어떤 일을 시킬 때 보통은 명확한 규칙에 따라서 처리하게 된다. 그 이유는 아직 컴퓨터는 인공지능을 갖지 못하였다. 인간처럼 여러 가지 지식과 현상을 조합해 사고하지 못한다는 말이다. 그 때문에 사람이 컴퓨터의 능력을 이용해 어떤 일을 처리할 때는 일련의 규칙이 필요했다. 예를 들면 IF … Then … Else로 표현되는 규칙을 적용하는 것이다.

하지만, 실생활의 문제들은 이것들도 표현할 수 없는 것들이 너무 많다. 인간이 생각하는 거의 모든 것들이 이런 모호함의 집합이다. “오늘 날씨 너무 덥다. 시원하게 에러컨좀 틀어!”라고 했을 때 “너무 덥다.”, “시원하게” 등의 말들은 컴퓨터가 처리할 수 없는 것들이다. 몇 도로 온도를 유지했을 때 시원하다고 느끼는지 컴퓨터 자체만으로는 알 수가 없다. 컴퓨터는 정확히 수치화된 데이터만 가지고 처리하는 기계이기 때문이다. 이런 문제들을 처리하는 여러 방법의 하나인 규칙기반 전문가 시스템(Rule-based expert system)에 대해 얘기해 보겠다.

이처럼 컴퓨터가 처리해야 하는 문제들은 어떤 분야의 전문가가 처리하던 것을 컴퓨터가 대신하는데 의미가 있다. 나는 이것을 전문가의 지식을 처리한다고 정리한다. 그리고 전문가라고 불리는 사람들은 어떤 지식에 대해 규칙을 만들 수 있는 사람이고 규칙이란 앞서 얘기했던 대로 IF … Then … Else 형태로 표현할 수 있는 것을 말한다.

규칙기반 전문가 시스템은 관련주제에 지식이 풍부하고 관련 문제를 푸는데 능숙한 주제 전문가(domain expert), 전문가 시스템을 테스트하고 규칙을 추론할 수 있는 지식공학자(knowledge expert), 전문가 시스템의 개발 리더인 프로젝트 관리자(project manager), 프로그래머(programmer) 그리고 최종사용자(end-user)로 구성되어 있다.

또한, 규칙기반 전문가는 기반지식(knowledge base), 데이터베이스(Database), 추론 엔진(Interface engine), 해설설비…

인터넷이 우리 사회에 미치는 영향

믿기 어렵겠지만 몇 년 전만 해도 간단한 정보를 검색하기 위해선 백과사전이 필요했고 적은 분량의 백과사전에서 찾을 수 없을 땐 도서관에 가야 했고 또 작은 도서관에서 찾을 수 없을 땐 좀더 큰 도서관으로 가야 했었다. 과연 지금의 중학교, 고등학교 학생들은 과연 몇 명이나 이래야만 했던 사정을 이해해줄지 모르겠다.

하지만 이제는 사정이 달라졌다. 인터넷의 등장으로 예전처럼 정보검색에 수많은 시간과 노력을 쏟지 않아도 더 쉽게 더 좋은 자료를 검색할 수 있고 그를 여러 가지 형태의 미디어로 접할 수 있는 시대가 되었다. 예전에 ‘팀 버너스 리(Tim Berners-Lee)’ 가 처음으로 구체적으로 주장했던 하이퍼미디어(Hypermedia)와 그로 이루어진 인터넷으로 인해 우리 생활은 많이 변화했고 또 이제는 없어서는 안될 것으로 멀티미디어 환경으로 진화해 왔다는 사실은 아무도 부인하지 못할 것이다.

사실 인터넷의 등장만으로도 우리에겐 막대한 영향을 끼쳤다. 하지만 여기서 인터넷의 멀티미디어로서의 역할을 배제한다면 그 영향력을 전부 얘기하지는 못할 것이다. 멀티미디어로서의 인터넷은 위에서 얘기한 것처럼 빠른 정보검색은 물론이고 보다 효율적인 방법으로 정보전달의 기능을 가지고 있다.

대학교 1학년 때 처음 컴퓨터를 공부할 때 일이다. 네트웍에 대해 공부하고 있었는데 마침 네트웍을 설명하고 있는 동영상을 인터넷에서 발견했다. ‘The dawn of the Net’ 이라는 동영상 이였는데 네트웍 패킷이나 라우터, 라우터 스위치 등등 전체적인 네트웍에 대해서 알기 쉽게 설명한 동영상이었다. 이 동영상은 너무 쉽고 직관적이어서 누구라도 이것을 본 사람이라면 네트웍에 대해 모두 안 것 같은 착각을 하게 만들 정도였다. 하지만 대략적인 네트웍에 대해서 안다고 해서 전문가가 되었다고 말할 수는 없을 것이다. 간단해 보이는 현상 뒤에 숨겨져 있는 지식들을 모두 이해하고 설명할 수 있을 때 비로소 전문가라 부를 수 있을 것이다.

이런 멀티미디어적인 환경은 대부분에 사람들에게 보다…