Search

'Instrusion Prevention System'에 해당되는 글 1건

  1. 2017.01.09 IPS vs IDS

IPS vs IDS

네트워크 보안 이야기 2017. 1. 9. 08:45 Posted by 낭만이삘삘

대표적 네트워크 보안장비 중에 IDS와 IPS를 빼놓을 수 없죠. 이 둘은 거의 동일한 탐지엔진을 가지고 있지만 용도에 따라 활용이 조금 다르고, 용도가 다르기 때문에 주의할 점도 조금 다릅니다. 오늘은 IDS와 IPS의 주요기능을 살펴보고 어떻게 다른지 알아보겠습니다.


시기적으로 보면 침입탐지시스템이라고 하는 IDS(Instrusion Detction System)가 먼저 나왔다가 엔진이 안정화되고 장비성능이 안정화되면서, 탐지가 아니라 아예 사전에 방지하자는 침입방지시스템인 IPS(Intrusion Protection System)로 진화했다고 할 수 있습니다. 하지만 장단점이 있어서 둘 다 현재 많이 사용되고 있지요.


IDS나 IPS는 호스트기반 IDS/IPS, 네트워크 기반 IDS/IPS가 있지만 자주사용하는 네트워크 기반 유형만 설명하겠습니다.


설치 위치


ips 네트워크에 대한 이미지 검색결과

<출처: www.kumkang21.co.kr>


보통 방화벽 뒤에 내부망(또는 DMZ)에 설치합니다. 그 이유를 간단히 설명하겠습니다.

  • 거의 최전방에 위치하는 이유 : 내부망으로 들어오는 모든 패킷을 검사하기 위해서입니다. IDS/IPS는 모니터링하고 있는 네트워크를 지나가는 모든 패킷을 검사할 수 있습니다. 
  • 하지만 방화벽 뒤에 주로 위치하는 이유 : 성능입니다. IDS/IPS는 패킷의 헤더부터 페이로드 내 데이터까지 모두 Deep Inspection을 하기 때문에 주로 패킷의 헤더정보만 검사하는 방화벽보다 많은 성능을 필요로 하기 때문입니다. 즉, 방화벽에서 쓸데없는 패킷들을 우선 필터링 해주고 방화벽에서 허용해준 트래픽에 대해서만 IDS/IPS가 고급정보까지 심도있게 분석하여 공격을 탐지 및 차단하겠다는 것입니다. 경우에 따라서는 방화벽 앞에 가기도 합니다. 방화벽에서 차단할 것이지만, 어떤 공격들이 우리 네트워크에 인입되려는 시도가 있었는지도 궁금하다면 그럴 수 있겠죠. 예를 들면, 관제목적으로 사용되는 경우 그럴 수 있습니다. 하지만, 성능이 충분히 보장되어야 합니다.


진단 룰

IDS/IPS를 만드는 벤더들은 대부분 리눅스 기반에 snort엔진을 많이 수정하여 사용합니다. 최근에는 성능을 고도로 높이기 위해 전용하드웨어를 도입하여 하기도 하지만 원리는 크게 변하지 않을 것입니다.


snort(https://snort.org)는 오픈소스의 네트워크 보안 소프트웨어 입니다. 사이트를 한 번 들어가보는 것도 추천합니다. snort룰은 거의 사실상 표준(defacto)이라고 보면 됩니다. 웬만한 네트워크 보안 장비들은 snort룰 형식을 사용합니다. 보안기사 시험에도 종종 나오죠. 룰의 세세한 옵션까지 자세히 이해하려면 많은 시간과 지식이 필요하구요, 개념만 살펴보겠습니다.



         [snort 룰 예]

<snort룰 예>

<출처 : 정보보안기사 예문사>



위의 내용과 같이, 패킷의 내용을 분석하여 특정 조건에 해당될 경우 drop하라는 등 탐지조건과 처리방법을 정의할 수 있습니다. 보통 IPS/IDS에는 이러한 룰들이 몇 천 개 이상 들어가고, 패킷을 하나 하나 검사할 때마다 들고 있는 모든 룰들에 해당하는지를 검사해야 합니다. 이것을 패턴매칭이라고 하고 이 패턴매칭 알고리즘이 장비의 성능을 좌우한다고 할 수 있습니다. 


또한 룰을 얼마나 잘 정의하느냐에 따라 외부 공격을 잘 탐지 및 차단하느냐를 결정합니다. 룰을 잘 못 정의하면 오탐 또는 미탐이 발생할 수 있습니다.

  • 오탐(False Positive) : 정상패킷을 공격으로 잘 못 탐지를 한 것입니다. 정상적인 서비스가 안될 수 있겠죠.
  • 미탐(False Negative) : 공격패킷을 정상으로 인지하여 탐지하지 못한 것입니다. 외부로부터 공격패킷을 내부로 그냥 보내게 되겠지요.
IDS/IPS는 성능도 중요하지만 이러한 룰이 얼마나 잘 만들어져 있고, 최신 공격에 대해 룰을 얼마나 신속하게 업데이트하여 대응하느냐가 굉장히 중요합니다.

IPS와 IDS의 비교

IPS는 보통 인라인(inline)장비라고 합니다. 네트워크 라인 내 중간에 삽입된 개념으로 IPS로 인입되는 패킷을 신속하게 처리하여 내보내줘야 서비스가 느려지지 않습니다. 인입된 패킷을 검사한 결과 공격이라고 탐지한 경우, 그 패킷을 내보지 않고 차단(drop)시킨다면 공격패킷을 내부로 들어가지 못하게 되는 것입니다. 이렇기 때문에 공격을 실시간으로 차단할 수 있습니다.


반면, IDS는 패킷을 미러링(Mirroring)합니다. 즉, 지나가는 패킷을 복사하여 검사를 합니다. 복사하여 검사는 하지만, 이미 그 패킷을 지나가버린 상태이죠. 그래서 내부로 공격패킷을 인입되는 것을 실시간으로 막을 수는 없고 사후에 탐지하는 개념으로 보면 됩니다.


그렇다면, IPS가 무조건 IDS보다 좋은걸까요? 장단점이 있습니다.

  • IPS : 실시간 공격차단 가능하지만, 처리할 트래픽이 많을 경우 네트워크 부하가 발생하여 서비스가 지연될 수 있고, 장비가 다운될 경우 네트워크에 장애가 발생합니다. 이래서 이중화가 중요하지요. 부하를 줄이기 위해서는 룰 최적화가 중요하고 그래도 부하가 있으면 룰을 줄여서 탐지를 다 못하더라도(Hit가 적은 룰부터 삭제 등) 네트워크 가용성을 확보해야 겠지요. 또한 오탐발생 시 아주 심각합니다. 예를 들어, 정상적인 인터넷뱅킹을 이용하는데도 공격으로 오인하여 서비스장애가 발생할 수 있기 때문입니다.
  • IDS : 네트워크 부하를 유발하지 않습니다. IDS장비가 소위 버벅거린다해서 실제 네트워크에는 영향을 주지 않아 부담이 적습니다. 하지만, 공격패킷을 실시간 차단할 수 없는 단점이 있습니다. 공격 탐지 시 방화벽과 연계하는 등의 조치가 필요합니다. 부담이 적다보니 오탐이 발생해도 둔감할 수 있어 룰최적화가 실질적으로 잘 안이루어질 수 있고 오탐에 의한 이벤트로그들이 다량으로 발생할 경우, 보안 담당자는 IDS의 로그를 신뢰하지 않고 귀찮게 여기는 경우도 비일비재합니다. 관리를 잘 해야겠지요.

요약표가 있으니 참고하시기 바랍니다.

<출처 : 정보보안기사 예문사>



보안 담당자 체크 포인트


설치 위치 및 성능

보호하고자 하는 네트워크 지점이 어디인지를 고려하여 적절하게 위치해야 합니다. 또한 장비의 성능을 고려하여 네트워크 트래픽이 과도하게 몰려 성능부하가 초래되지 않도록 설치 위치를 결정합니다. 예를 들어, 방화벽 앞에 있는 것과 뒤에 있는 것은 장비로 인입되는 트래픽이 많이 차이날 것입니다. 장비의 성능만 확실하다면 가장 최전방에 설치하는 것이 모든 트래픽을 검사할 수 있겠죠. 하지만 트래픽이 너무 많은 경우 장비의 가용성을 고려하여 분산시켜 위치할 수도 있습니다.

또한, VPN과 같이 암호화된 패킷이 존재하는 경우 복호화되는 시점 이후에 검사를 하느냐에 따라 암호화 패킷도 제대로 검사할 수 있는지도 결정됩니다.


룰 최적화 및 최신 업데이트

룰을 최적화하는 것이 오탐 및 미탐을 줄일 수 있으며 장비의 성능에도 영향을 줄 수 있습니다. 또한, 최신 공격에 얼마나 신속하게 대응하느냐도 중요한 요소입니다.


네트워크 이중화

특히 IPS의 경우 인라인장비로서 가용성이 매우 중요합니다. 반드시 이중화하여 장비가 다양한 이유로 다운 될 경우에도 네트워크 가용성이 확보될 수 있어야 합니다.

참고로, 장비가 다운될 경우 네트워크가 끊어진 것처럼(Fail close) 할 것인지 장비가 없는 것처럼 동작(Fail open)할 것인지를 보통 장비에서 선택가능합니다. Fail close는 장비 다운 시 네트워크가 단절이 되기 때문에 정상패킷과 공격패킷 모두 차단되겠죠. 반면, Fail open은 장비가 다운 시 네트워크 라인을 물리적으로 연결시켜주기 때문에 장비가 없는 것과 같이 정상 패킷, 공격 패킷 모두 허용됩니다. 공격패킷을 일부 허용하더라도 정상서비스 유지가 중요한지, 정상서비스를 못하더라도 혹시 모를 공격패킷은 절대 허용할 수 없는 상황인지에 따라 선택하겠죠.