본문 바로가기
보안

호스트 기반 침입방지 시스템에 대해 알아보자

by Sweeny 2008. 7. 28.
반응형

호스트 기반 침입 방지 시스템(Host-Based Intrusion Prevention System, HIPS)

일명 HIPS라 불리는 이것에 대해 알아보고자 합니다.

전문지식을 갖고 있지 않고도 일반 사용자들이 손쉽게 사용할 수 있는 HIPS를 탑재한 소프트웨어로는 가장 무난한 COMODO 소프트웨어로써 유명 블로거인 여름하늘님(skysummer.com)의 COMODO 소프트웨어 리뷰
(리뷰 바로가기)를 참고하시고 다운받아 사용하시기 바랍니다.

이 HIPS는 휴리스틱과 더불어 소프트웨어의 악성적인 코드 매커니즘을 분석 및 파악하고 이를 사전에 방역해주는 사전방역 시스템에 속합니다.

HIPS는 현재 공개된 멀웨어
탐지/방어 기법중 가장 강력한 것이라고 볼 수 있습니다.

HIPS는 호스트들의 보호를 위해 새로 개발된 침입방지/탐지 기술중 하나로써 "호스트 침입 탐지 시스템(
Host-based Intrusion Detection System, HIDS)과 침입 방지 시스템(Intrusion Prevention System, IPS)"을 그 근본으로 구성되었습니다.

HIPS는 IPS의 기반으로 구성되어 있기 때문에 IPS에 탑재되어 있는 패킷 플로우 공격(Packet Flow-Based Attack)과 규칙 기반 공격(Rule Based Attack)에 대한 감지 및 방어가 가능하며 포트 스캔(Port Scan) 탐지 방법 등과 같이 여러 방어 기법이 있습니다. 패킷 플로우 공격의 방어기법은 프로토콜과 예외 트래픽(Traffic Anomaly)을 기반으로 하고 있으며 정상 트래픽은 허용하되 분산서비스거부공격(DDOS)와 같은 공격을 탐지하고 패킷이 목표 네트워크 호스트에 도달하지 못하도록 하였습니다.

사용자 삽입 이미지

IPS 보안 모듈


IPS 기반 보안모듈의 모습입니다.

패킷을 받은 IPS매니저는 서비스 패킷을 프로토콜 단위로 분리하여 각각의 Firwall/IDS Manger에 정상여부를 판단하고 한번 분류된 패킷은 데이터베이스에 관리가 되며 각 프로세스 관리자에서 상태 파악 및 감시하는 형태로써 트래픽 분석기(Traffic Analyzer)로부터 정상적인 패킷을 받아 세션 매니저(Session manager)에게 전달하게 됩니다. 여기에서 세션 매니저(Session Manager)는 단계별로 SLM 정책에 위배되는 세션들의 Pass 및 Drop 여부를 결정하는 권한을 갖고 있으며 IPS Manager와 통신하고 IPS DB에 정상 세션만 제공/생성 합니다.

이제까지 IPS의 기능을 살펴보았고 HIDS에 대해 좀 더 알아보도록 하겠습니다.

HIDS의 정의는 하기와 같습니다.


동작 감시
많은 컴퓨터 사용자들이 안티 바이러스 패키지의 형태로 시스템의 동작을 감시하는 툴들과 마주하고 있다. 안티 바이러스 프로그램들은 시스템의 상태를 감시하기는 하지만, 대부분의 실행시간을 누가 어떤 일을 하고 있는지와 프로그램이 리소스에 접근할 수 있는지 없는지 여부를 조사하는데 사용한다.

상태 감시
침입에 성공한 크래커들은 일반적으로 그들이 한 행동에 대한 흔적을 남긴다. (사실 그러한 침입자들은 종종 자신이 공격한 시스템을 소유하고 싶어하며, 시스템에 다시 접근할 수 있게 하는 백도어 및 루트킷을 설치한다.) HIDS는 이 원리를 이용한다. 이론적으로 컴퓨터 사용자는 그러한 어떠한 변경사항도 탐지가 가능하며, HIDS는 단지 이 작업을 수행하여 결과를 보고하는 것이다.
아이러니컬하게도 컴퓨터에 성공적으로 침투한 침입자들은 그들이 침입한 시스템을 보호하기 위해 최고의 보안 기술을 바로 시스템에 적용한다. 오직 그들이 설치한 백도어만 열려있게 된다. 그래서 다른 침입자들이 컴퓨터에 침입할 수 없도록 한다. 다시 또 누군가는 그러한 변경 사항을 발견할 수 있다.

HIDS의 기법
일반적으로 HIDS는 감시해야 하는 시스템 오브젝트들에 대한 데이터베이스(오브젝트 데이터베이스)를 사용한다. 보편적으로 파일 시스템 오브젝트들에 대한 데이터베이스가 된다. HIDS는 또한 메모리의 적절한 영역이 변경되지 않았는지를 검사할 수 있다. 예를 들어 리눅스에서의 시스템 콜 테이블이나, 윈도우즈에서의 다양한 vtable 구조체를 검사할 수 있다.
HIDS는 보통 감시해야 하는 오브젝트들의 속성(권한, 크기, 변경된 날짜)을 기억한다. 만약 오브젝트들에 내용이 있다면 아마도 특정 형식(MD5, Hash 또는 기타 유사한 해쉬)의 체크섬을 만들 것이다. 이 정보는 나중에 비교되기 위해 데이터베이스(체크섬 데이터베이스)에 저장된다. MD5 해쉬가 일치한다고 해서 해당 파일이 침입자 또는 권한 없는 사용자에 의해 변경되지 않았다는 것을 완전하게 보장하지 않는다는 사실에 주의해야 한다.

HIDS의 실행형태
프로그램이 설치될 때 또는 감시되는 오브젝트들이 정당하게 변경될 때마다 HIDS는 관련된 오브젝트들을 스캐닝하여 체크섬 데이터베이스를 반드시 초기화해야 한다. 컴퓨터 보안 담당자들은 이 과정을 엄격하게 통제해야 하는데, 이는 칩입자들에 의해 해당 데이터베이스가 무단으로 수정되는 상황을 예방한다. 그러한 초기화는 따라서 매우 많은 시간이 걸리며 암호화의 방법으로 각각의 감시되는 오브젝트와 체크섬 데이터베이스 또는 그 이상의 것을 잠그는 작업이 포함된다. 이런 이유로, HIDS 제작사들은 보통 체크섬 데이터베이스가 자주 업데이트되지 않도록 오브젝트 데이터베이스를 구축한다. 컴퓨터 시스템은 일반적으로 수시로 변경되는 많은 오브젝트들을 갖고 있다. 그러한 오브젝트를 침입자가 조작하려고 시도할 수 있으며, 따라서 HIDS는 그러한 오브젝트를 감시해야 한다. 그러나 수시로 변경되는 오브젝트에 체크섬을 사용하는 것은 적합하지 않다. 이 문제를 극복하기 위해 HIDS는 수정되는 파일의 속성을 감시하거나, 마지막으로 확인하였을 때보다 크기가 줄어든 로그 파일을 검사하는 등의 다양한 탐지 기술을 도입하여 사용하고 있다. 시스템 관리자가 적합한 오브젝트 데이터베이스를 구축하고, 체크섬 데이터베이스를 초기화하였다면, HIDS는 감시되는 오브젝트들을 정기적으로 스캔하여 문제있는 것으로 보이는 모든 사항을 보고하게 된다. 보고는 로그 파일이나 이메일, 기타 유사한 형식이 될 수 있다.


위에서 정의하는 HIDS의 문제점을 보완한 것이 HIPS입니다.

HIDS의 문제점은 무엇일까요?

첫번째. 즉각적인 대응이 어렵다는 점입니다.
HIDS는 Log analyzer와 System drive analyzer로 구성되어 있습니다. 데이터베이스를 기록하거나 꺼낼때 로그에 대한 기록이 있어야 하며 이를 근거로 시스템 드라이버 분석기는 기타 하드웨어들간의 데이터베이스를 생성하고 저장한후 변동사항이 발생했을 경우 이를 분석합니다. 로그 분석기는 실시간으로 시스템의 로그 파일을 분석하고 시스템을 모니터링 할수 있긴 하나 취약점이 발견되거나 크래커로부터의 침입 발생 탐지시 즉시 방어조치를 취할 수 없습니다.

두번째. 알려지지 않은 공격.. 즉, 변종된 웜이나 트래픽 공격에 대해 탐지가 힘듭니다. 안티 바이러스 프로그램의 패턴분석방식과 같이 데이터베이스에 저장된 패턴과 다른 패턴으로 크래커 및 멀웨어가 침입할 경우 이를 전혀 탐지해내지 못합니다. 따라서 공격자가 알려지지 않은 방법으로 시스템에 침입을 시도할 경우 이를 탐지해내지도 못하여 이미 시스템은 공격자에 의해 장악되고 HIDS는 무용지물이 된 후 일수도 있습니다. 또한, 공격자의 정교한 세션 공격에 대해서도 무용지물입니다.

세번째. HIDS는 인공지능을 갖고 있지 않아 침입방지/형식에 대해 수동적입니다.
즉, 시스템 사용자(사람)가 있어야만 도움을 주는 시스템이고 사용자가 없을때에 침입을 탐지하게 되면 탐지된 사실만을 사용자에게 알려줄 뿐. 능동적이지 못한 코드로 설계 되었습니다.

이를 보완한 HIPS는 스테틱 시스템 파일(static system file) 및 실행 파일의 변조 및 실행을 방지하고 레지스트리 컴포넌트(Registry component)를 바꾸려는 시도에 대해 블러킹(Blocking)하거나 경고(Alert)하는 기능을 제공하며, 포트 제어(Port Contrl)와 IP 제어를 통해 트래픽의 행동을 감시하고 판단. 탐지하여 정상 트래픽과 악성 트래픽을 구분합니다.

또, 일반적으로 호스트 발(發)로 향하는 행동 기반의 움직임과 파일 시스템 및 레지스트리 변경 조작 방어 모듈, 어플리케이션의 버퍼 오버플로우(Buffer Overflow)처럼 소프트웨어 코드 로직을 변경시키는 행위 및 어플리케이션의 코드 취약점을 공격하여 OS내의 취약점을 만들어내는 등의 공격을 방어하는 멀티 계층 방어(Multi-Layer Protection) 구조를 갖추고 있어 루트킷(리뷰 준비중)의 천적이라 불릴만한 방어 시스템입니다.

그리고 System Call을 이용하여 시그너처(Signature), 행동 기반(루트킷), 버퍼 오버플로우처럼 알려지지 않은 공격에 대해 대응이 가능합니다.

HIDS에 비해 HIPS의 개선점은 하기와 같습니다.

첫번째. 실시간 탐지와 즉시 능동적인 방어를 할 수 있습니다.
두번째. 내부 리소스 시스템의 접근을 방지합니다.
세번째. 즉시 방어할 수 있기에 데이터 손실 및 피해를 줄일 수 있습니다.
네번째. 알려지지 않은 공격에 대해서도 방어가 가능합니다.
다섯번째. 독립적인 에이전트(Agent)로 운영합니다.


HIPS의 행동기반 탐지 원리로는 하이브리드 시스템(Hybrid System)이 이용되는데 하이브리드 시스템 방식은 시그너처 기반의 패턴 데이터베이스를 주방어책으로 사용하고 웹서버와 웹어플리케이션으로부터 알려지지 않은 공격을 차단하기 위해 웹 쉴드(Web Sheid) 방식을 사용합니다. 웹 쉴드는 행동기반의 호스트가 탐지되면 이를 분석하여 자동 패턴 데이터베이스에 기록하고 다음 공격의 패턴까지도 분석 및 기록 업데이트를 합니다. 하지만 웹 실드 방식의 동작은 매우 한정적이어서 웹 서버에 접근하는 전형적인 리소스 패턴과 정상적인 접근과 비정상적인 접근을 정확하게 가려내는 것이 가능하며, 비정상적인 패킷에 대하여 Session Kill Manager에 의해 모든 공격이 차단되며 해당 비정상 세션에 대한 Drop이 아닌 완전히 제거함으로써 네트워크 트래픽 과부하를 발생시키지 않는 것이 또 한가지의 장점이라 볼 수 있겠습니다.

다음 시간에는 루트킷의 의미와 루트킷의 동작 원리. 또 다양한 후킹기법과 루트킷의 은닉채널에 대한 탐지기법을 포스팅해볼까 합니다.

감사합니다.

반응형