외로운 Nova의 작업실

정보보안기사 필기 - 27(IDS/IPS) 본문

Certification/정보보안기사

정보보안기사 필기 - 27(IDS/IPS)

Nova_ 2022. 12. 15. 11:49

- 침입탐지시스템(IDS)

IDS(intrusion detction system)은 자원의 무결설, 비밀성, 가용성 저해하는 비정상적인 사용과 오용, 남용 등의 행위를 실시간으로 탐지하여 관리자에게 경고메시지를 보내주고 대응하는 시스템을 말합니다.

 

<IDS의 실행 단계>

1. 데이터 수집 : 탐지 대상으로부터 데이터를 수집합니다.

2. 데이터 가공 및 축약 : 수집된 감사 데이터를 침입 판정이 용이하도록 의미 있는 정보로 전환시킵니다.

3. 침입분석 및 탐지 단계 : 데이터를 분석하여 침입여부를 판단하는 침입탐지시스템의 핵심 단계로 여러가지 탐지 기법이 있습니다. 

4. 보고 및 대응 : 침입으로 판정된 경우 이에대한 적절한 대응을 자동으로 취하거나 보안 관리자에게 침입사실을 보고 하여 보안관리자가 조치를 취하게됩니다.

 

<탐지방법에의한 분류 - 규칙,기반 침입탐지(오용 탐지)>

오용 탐지는 기존의 침입 방법(시스템 로그, 네트워크 입력정보, 알려진 침입방법, 비정상적인 행위패턴)을 데이터베이스에 저장해두었다가 사용자 행동 패턴이 기존의 침입 패턴과 일치하거나 유사한 경우에 침입이라고 판단합니다.새로운 공격이나 침입 방법이 출현하였을경우에는 그에 맞는 공격 패턴을 생성하여 추가합니다. 시그니처의 예시로는 루트 사용자이름으로 telnet 로그인 시도, 시스템 프로그램 복제 시도 등이 있습니다. 아래는 이에 따른 탐지방법 종류입니다.

  • 전문가 시스템 : 침입 또는 오용의 패턴을 실시간으로 입력되는 감사정보와 비교하여 침입을 탐지하는방법으로 비정상적인 패턴과 일치하는 경우에는 정해진 규칙에따라 행동을 수행합니다.
  • 상태 전이 모델 : 공격 패턴에 따라 시스템의 상태 변화를 미리 상태전이도로 표현하고 시스템의 상태 변화를 계속 추적하여 침입 상태로 전이하는지를 감시하는 방법입니다.
  • 패턴 매칭 : 알려진 공격 패턴을 시나리오 형태로 데이터베이스에 저장한 후 발생하는 사건들의 패턴을 데이터베이스의 시나리오와 비교하여 판단하는 방법입니다. 

<탐지방법에의한 분류 - 통계적 변형 탐지(비정상 침입탐지)>

비정상 침입탐지는 정상적인 행위 패턴을 프로파일로 생성하고 실제 시스템상에서의 행위가 프로파일 범위를 벗어날 경우를 탐지하는 방법입니다. 오용 탐지방법보다 데이터베이스 관리가 용이하고 알려지지않은 공격도 탐지가 가능하며 침입 이외의 시스템 운용상의 문제점도 발견할 수 있습니다. 반면 실제 입력정보를 비교하는 시간이 오래걸리므로 실시간 탐지가 어렵고 탐지 정확성을 높이기 위한 기준 조정이 어렵습니다. 프로파일의 예시로는 오전 9시부터 5시까지만 컴퓨터 사용이가능함이 있습니다. 아래는 이에 따른 탐지 방법 종류입니다.

  • 통계적 분석 방법 : 정상적인 사용자 또는 시스템 행위에대한 이전 정보를 기반으로 정상행위로 판단되는 통계적인 프로파일을 생성하고 주기적으로 갱신합니다. 
  • 예측 가능한 패턴 생성 방법 : 정상적인 특정 행위를 이루는 사건의 순서가 불규칙하지않고 일정한 패턴이라는 것에 가설을  두고 현재 사건과 정상적인 패턴간의 상호관계와 순서를 비교하여 정상적인 패턴 범위를 벗어났을 경우에 비정상적인 행위로 판단합니다.
  • 신경망 모델 : 적응학습 기술을 사용하여 비정상적인 행위를 탐지하는 방법으로 첫번째 단곙에는 사용자 행위 정보를 학습하며 두번째로는 입력된 사건 정보를 학습된 사용자 행위 정보와 비교하여 비정상적인 행위를 탐지합니다.

<대응 방법에따른 분류>

아직까지 대부분의 침입탐지 시스템이 수동적 대응방법을 선택하고 있습니다.

  • 수동적 대응방법 : 대량의 정보를 수집하고 탐지하여 보안 관리자에게 보고합니다.
  • 능동적 대응방법 : 탐지를 했다면 빨리 실행할 수 있는 행동으로 침입에 의한 손실을 줄입니다. 신중한 고려와 정확한 검증이 없다면 혼란을 발생하거나 오경보를 발생시킬수 있습니다.

<데이터 수집원에 의한 분류>

네트워크 기반 IDS(N-IDS) : 네트워크의 패킷 헤더, 데이터 및 트래픽 양, 응용프로그램 로그 등을 분석하여 침입여부를 판단합니다. 즉, 시스템의 감사 자료가 아닌 네트워크를 통해 전송되는 패킷 정보를 수집,분석하여 침입을 탐지하는 시스템입니다. 감지기를 이용하며 보통은 promiscuous mode에서 동작하는 NIC에 설치되어있습니다. 저렴하고 구현 및 관리가 쉬워서 가장 널리 사용되는 침입탐지 시스템입니다. 아래는 이에따른 장단점입니다.

  • 장점 : 구축비용이 저렴하고 os와 독립적이므로 구현 및 관리가 쉽고 침입자가 흔적을 제거하기 어렵습니다. 
  • 단점 : 암호화된 패킷을 분석할 수 없고 스위칭환경에서는 돈이 많이들고 기가비트에서는 패킷 손실이 많습니다. 

호스트 기반 IDS(H-IDS) : 호스트 시스템으로부터 생성되고 수집된 감사 자료를 침입 탐지에 사용하는 시스템입니다. 여러 호스트로부터 수집된 감사자료를 이용할 경우에는 다중 호스트 기반이라고 말합니다. 호스트 기반 침입탐지시스템은 네트워크 기반 침입 탐지시슽메이 탐지할 수 없는 침입을 탐지하며, 시스템 이벤트 감시를 통한 정확한 침입 탐지가 가능합니다. 아래는 이에따른 장단점입니다.

  • 장점 : 정확한 탐지가 가능하며 암호화 및 스위칭 환경에 적합하며 추가적인 하드웨어가 필요하지않습니다.
  • 단점 : OS에 종속적이므로 각각 설치해야하고 구현이 용이하지않으며  시스템에 추가적인 부하가 걸립니다.

<탐지시점에따른 분류>

  • 사후분석 시스템 : 정해진 시간에만 분석하여 침입 여부를 판정하는 시스템으로 침입이 발생하더라도 즉시 대응하지 못합니다.
  • 실시간 탐지 시스템 : 실시간 정보수집과 동시에 침입탐지가 이루어지고 이에 대응하는 대비책을 실행시킵니다.

<IDS의 위치>

보통 기업의 네트워크는 인터넷에 접한 첫번째 라우터가 있고, 그 다음에 방화벽, 라우터가 있으며 두번째 라우터는 내부 클라이언트를 위한 네트워크와 서버를 위한 네트워크(DMZ)로 다시 나뉩니다. 또한, 일반적으로 DMZ에서 별도로 운영되는 방화벽이 존재합니다.

1번 : 패킷이 라우터에 들어오기전으로 이곳에 IDS를 설치하면 실제 네트워크에 실행되는 모든 공격을 탐지할 수 있습니다. 그러나 너무 많은 공격에 대한 데이터를 수집하기땜누에 정작 네트워크에 치명적인 공격에는 대처하기 어렵습니다.

2번 : 라우터 뒤에 위치로 1번의 경우보다 라우터가 필터링을 하므로 적은 수의 공격을 탐지하며 종 더 강력한 의지가 있는 공격자를 탐지할 수 있습니다.

3번 : 방화벽 뒤의 위치로 네트워크의 특성과 목적에따라 조금 다른경우도 있지만 만약 침입탐지시스템을 한대만 설치할 수 있다면 이곳에 설치해야합니다.

4번 : 내부 네트워크 위치로 기업의 클라이언트들을 탐지하는 위치입니다. 중요한 자료가 있는 서버보다는 덜 중요합니다.

5번 : DMZ 서버 네트워크로 기업의 중요정보가 들어있는 서버를 탐지하는 위치입니다. 여기에 IDS를 설치하는 것은 아주 능력이 뛰어난 외부 공격자와 내부공격자에 의한 중요 데이터 손실이나 서비스의 중단을 막기 위함입니다.

따라서 침입 탐지 시스템의 설치 우선순위는 3 - 5 - 4 - 2 - 1로 볼 수 있습니다.

 

<IDS 응용>

IDS를 잘 사용하기위해서는 긍정오류와 부정오류를 절충하는 기술의 요소를 적절히 사용해야합니다. 왜냐하면, 비록 전형적 침입자의 행동이 합법적 사용자의 전형적인 행동과 다르기는 하지만 상당 부분 겹치는 곳이 있습니다. 따라서 침입자의 행동을 넓게 잡다보면 더많은 침입자를 찾아낼 수 있지만 어떤 경우에는 긍정오류를 발생시킵니다. 긍정 오류는 적법한 사용자인데 탐지하는 오류입니다. 한편으로 이러한 피해를 줄이기위해 침입자의 행동을 너무 좁게 잡으면 부정오류를 유발하게됩니다. 부정오류는 불법적인 사용자인데 탐지하지 않는 오류입니다. 

<허니팟>

허니팟(honeypot)은 곰을 사냥할때 쓰곤하는 꿀단지로 해커를 진짜 중요한 시스템으로부터 유인해서 정보를 얻거나 잡으려고 설치합니다. 이는 유인책이지 함정이 아닙니다.(유인은 증거를 잡아내기위해 범인으로 하여금 범죄의 순간을 충분히 오래 유지하도록 하는 것이고 함정은 의사가 없던 사람에게 범죄를 저지르도록 이끄는 것입니다.) 따라서 허니팟은 방화벽이나 침입탐지시스템처럼 특정한 보안 문제를 해결하거나 다른 보안시스템을 대체하는 역할을 수행하지않는 취약점을 고의적으로 가져갑니다. 따라서 고성능의 시스템을 사용할 필요가 없습니다. 허니팟의 목적은 다음과 같습니다.

  • 중요한 시스템에 접근하는 공격자를 다른 방향으로 돌립니다.
  • 공격자의 동작에 관한 정보를 수집합니다.
  • 관리자가 반응할 수 있도록 충분히 오랜시간 동안 머무르기를 유도합니다.

허니팟은 자신에게 오는 패킷만 수집하므로 다른 네트워크에대한 침입정보를 분석하지않으며 공격자가 허니팟을 알아차릴 경우에는 허니팟을 우회하거나 마비시키는 공격을 가할 수 있다는 단점이 있습니다.

 

<스노트(snort)>

스노트(snort)는 일종의 침입탐지시스템으로 실시간 트래픽 분석, 프로토콜 분석, 내용검색/매칭, 침입탐지 Rule에 의거하여 오버플로우, 포트스캔, CGI 공격, OS확인 시도등의 다양한 공격과 스캔을 탐지할 수 있습니다. 침입탐지 Rule은 보안 커뮤니티를 통해 지속적으로 업데이트되고 사용자가 직접 작성할 수 있도록 설계되어 최신 공격에대한 적응에 빨리 대처할 수 있습니다.

 

<snort - 룰(시그니처) 형식>

snort의 룰은 크게 헤더 부분과 바디부분으로 구성되어 있습니다. 헤더부분은 처리방식, 프로토콜, IP주소등 처리할 패킷을 판단하는 기준을 명시하고 바디 부분은 alert message나 패킷을 조사하기위한 내용을 기술합니다.

 

<snort - 헤더 형식>

[action] [protocol] [source ip] [source port] [direction] [destination ip] [destination port]

action : 룰 매칭시 처리방법을 의미합니다. 아래는 action에 들어갈 수 있는 것들입니다.

  • alert : alert를 발생시키고 로그를 남깁니다.
  • log : 패킷을 로그에 남깁니다.
  • pass : 패킷을 무시합니다.
  • activate : alert를 발생시키고 대응하는 dynamic rule을 활성화합니다.
  • dynamic : active rule에의해 활성화되고 log rule과 동일하게 동작합니다.
  • drop : 패킷을 차단하고 로그에남깁니다.
  • reject : 패킷을 차단하고 르그에 남긴후 TCP일경우 TCP reset, UDP의 경우 ICMP port unreachable을 전송합니다.
  • sdrop : 패킷을 차단하지만 로그에 남기지 않습니다.

protocol : TCP, UDP, ICMP, IP 중에서 선택합니다.

IP address : 출발지/ 목적지 IP이며 복수개 표현은 CIDR 표현으로 하며 부정연산자 !10.10.10.0/24(10.10.10.0/24을 제외한 모든 IP)를 사용할 수 있으며 any(모든 IP)를 사용할 수 있습니다.

Port : 출발지 목적지 Port이며, :1024: 표현은 1024이하 포트를 의미하며 1024::표현은 1024이상의 포트를 의미합니다.

dirction : 방향 지시자로 아래는 direction의 종류입니다.

-> : 단방향으로 왼쪽의 출발지 정보, 오른쪽에는 목적지 정보를 나타냅니다.

<> : 양방향으로 출발지와 목적지 사이에 오가는 모든 패킷을 나타냅니다.

 

<snort - 바디 옵션>

msg : alert나 로그 출력시 이벤트 명으로 사용합니다.

content : 패킷의 payload 내부를 검색하는 문자열입니다.

offset : content로 지정한 문자열의 검색 시작 오프셋을 의미합니다.

depth : offset부터 검사할 바이트수를 지정합니다.

nocase : 대소문자를 구분하지 않습니다.

sid : 룰을 식별하기위한 식별자로 100미만은 예약, 100~100만 사이는 www.snort.org에서  서 배포하는 룰이며 100만 초과는 커스텀 룰입니다.

flow : TCP계층의 reassembly시 함께 동작하며 established일경우 established 된 패킷만 대비하며 stateless면 상태 상관없이 대비합니다.

rev : rule 버전번호로 수정 횟수를 표기합니다.

 

<snort 예시>

alert tcp any any -> 10.10.10.0/24 21(msg: "FTP root user access";
	contents: "User root"; nocase; sid: 100100;)

FTP서버에 root 계정의 직접 접속을 제한하여 root 계정의 패스워드가 노출되지 않게합니다. 21번 포트로 목저지로하고 FTP 클라이언트로부터 요청 데이터를 탐지하기위ㅏ한것이며 content 옵션을 통해 root 계정 로그인시 요청 데이터에 포함되는 USER root 문자열을 검사하고 있습니다.

alert tcp any any -> 10.10.10-.0/24 21 (msg "NULL scan detect"; flags: !UAPRSF; sid : 100100;)

NULL스캔을 탐지하며 플래그가 설정되지않은 패킷을 NULL 패킷이라고합니다. flags 옵션으롵해 UGR,ACK,PSH,RST,SYN,FIN이 모두 설정되지 않은 패킷을 탐지하고 있습니다.

 

- 침입방지시스템(IPS)

IPS(intrusion prevention system)은 침입탐지가 목적인 IDS의 기능을 넘어 침입을 탐지했을 경우에대한 대처까지 수행합니다. 즉, IPS는 예방적이고 사전에 조치를 취하는 기술입니다. firewall, IDS, secure-os 등의 보안기술에 기반을 둔 IPS는 취약점을 능동적으로 사전에 보완하고 웜이나 버퍼 오버플로우, 특히 비정상적인 트래픽이나 알려지지않은 공격까지 차단함으로써 한층 높은 보안을 제공합니다.

Comments