IDS/IPS에 대해 알아보자. 이름 그대로 외부의 침입을 탐지하거나 차단하는 시스템이다.
KISA에서는 IDS/IPS를 이렇게 정의한다.
사용자 및 외부침입자가 컴퓨터 시스템, 네트워크 자원을 권한 없이 불법으로 사용하기 위한 시도
또는 내부사용자가 권한을 오용하여 권한 이외의 자원을 사용하기 위한 시도를 탐지하여 그 피해를
최소화하는 시스템.
라고 한다.. 보통은 방화벽과 함께 사용한다.
방화벽과의 가장 큰 차이점은, 방화벽은 일정한 규칙에 의해 아예 접근을 차단하는 것이고
IDS는 직접 차단하는 기능이 없고 탐지하여 경고를 해주는 기능을 한다.
IPS 같은 경우는 차단을 하지만 L7까지 볼 수 있다.
IPS는 능동적인 기능을 많이 탑재한 IDS라고 볼 수 있다.
구성을 어떻게 하냐, 기능을 쓰냐 안쓰냐 차이지, IDS와 IPS는 거의 차이가 없다고 보며 된다.
IDS/IPS의 기능을 살펴보자면,
1. 시스템 자원의 보호 및 정보 유출 방지
2. 공격대응 및 복구, 증거 수집 및 역추적 가능
3. 기록 및 통계적인 상황 분석 보고
4. 보안 정책에 대한 검증 제공
위 기능들이 크게 4가지 단계로 이루어진다.
정보수집 -> 정보가공 및 축약 -> 침입분석 및 탐지 -> 보고 및 조치
IDS/IPS는 목적, 대응 방법 등에 따라 여러가지 종류로 나뉜다.
* 데이터 소스 기준 시스템 분류
1. 호스트 기반 IDS/IPS
각 호스트 내에서 OS 감사자료와 시스템 로그 분석, 프로세스 모니터링을 통해 침입탐지하는 시스템.
시스템 로그보다 자세하지만 가독성이 떨어진다.
요즘은 HIDS같은 경우 사용되지 않는다. 제품으로 나오지도 않고.
- 장점 : 암호화 세션, 스위치 환경에서도 식별 가능 / 로컬BOF 탐지 가능 / 하드웨어가 필요없어 비용싸다.
- 단점 : CUP 점유 / 네트워크 스캔은 탐지못함 / OS 자체가 취약하면 무결성 보장 안됨.
2. 네트워크 기반 IDS/IPS
Promiscuous mode 로 동작하는 NIC를 통해 패킷 캡쳐 후, 분석을 통해 침입탐지하는 시스템.
네트워크 세그먼트의 모든 패킷을 감시하고 독립된 서버에 설치한다.
이게 보통 많이 쓰는 IDS. 스위치에 포트 미러링으로 달아놓는다.
- 장점 : 호스트의 성능에 영향X / OS 독립적 / 실시간 대응이 가능 / 기존 네트워크 환경 변화시킬 필요없음
- 단점 : 트래픽에 영향 받음 / 암호화 세션 분석 불가능 / 공격의 성공, 실패여부 식별 못함.
3. 하이브리드 IDS/IPS
호스트와 네트워크 IDS를 결합시킨 형태다.
* 침입탐지 방법에 따른 분류
1. 오용 탐지
알려진 침입행위를 탐지하는 것. 즉, 정해진 공격 모델과 일치하면 침입으로 간주하는 방법.
시그니쳐 베이스라고 보면된다.
Expert system / State transition analysis / Key stroke Monitoring / Model Based Approach 등이 있다.
- 장점 : 오탐률 낮음 / 침입에 사용된 도구, 기술 분석 가능 / 신속함.
- 단점 : 다양한 우회가능성 / 새로운 유형 탐지 못함 / 안티바이러스와 유사 / 오탐을 줄이기 위해 세밀한 정의
2. 비정상행위 탐지
비정상적인 행위나 CPU를 사용하는 것을 탐지하는 방법. 정해진 모델을 벗어나는 경우 침입으로 간주.
Statistical approach / Predictive pattern modeling AI / neural network 등이 있다.
- 장점 : 새로운 침입유형 탐지 가능 / 특정침입이 아닌 '정상이 아님' 으로 탐지
- 단점 : 정상적인 행위를 예측 힘들어 / 방대한 사용자 네트워크에 대한 학습 필요 / 오탐율 높음
대표적으로 사용되는 룰 기반의 IPS인 Snort에 대하여 간단하게 알아보자.
오픈소스니까 http://www.snort.org 여기 가면 쉽게 구할 수 있다.
스노트에 대해 자세히 공부하려면 또 책한권 가까이 나오니까.
자주 사용되는 명령어 및 활용에 대해서만 간단하게 알아봅시다.
룰 기반이라고 하였는데, 내가 정한 룰대로 snort가 탐지 활동을 하는 것이다.
iptables 와 비슷하다고 생각해도 무방하다.
이 룰(rule)은 'rule header' 와 'rule option' 으로 구성돼있다. 하나씩 알아보자.
1. 룰 헤더 (Rule header)
헤더 부분은 '어떻게?', '뭘?', '어디서 어디로?' 이 항목들이 들어가 있다.
즉, 처리방법(Action), 프로토콜(Protocol), 송신지/수신지 주소 로 이루어졌다 이말이야.
e.g.) alert tcp 1.1.1.1/24 any -> 2.2.2.2/24 any
대충 저렇게 쓰인다고 생각하면 된다. (ip 뒤에는 포트)
맨 앞 alert 부분이 처리방법인데, 몇가지 종류가 있으니 표로 정리해보자..
앞 부분에 위와 같은 처리방법(action)이 올 수 있다.
그 뒤에는 그냥 프로토콜, 주소, 패킷 방향 등이니 따로 설명이 필요 없을 듯 하다.
2. 룰 옵션 (Rule Option)
룰 옵션은 룰 헤더 뒤에 ( ) 안에 정의된 내용이다. ;(세미콜론)으로 옵션 내용을 구분한다.
e.g.) alert tcp 1.1.1.1/24 any -> 2.2.2.2/24 any (msg : "HTTP GET FLOODING"; content: "GET / HTTP/1."; nocase;)
뒤에 빨간색 색칠돼있는 부분이 옵션부분이다. 뭐 알 수 없는 msg, content 이런 말들이 나오는데
아래 표에 사용되는 옵션에 대해 알아보자.
기본 옵션은 위와 같은 것들이 있고, Event Thresholding (이벤트 제한) 을 위한 옵션이 있다.
사실 이벤트 제한 옵션이 snort의 핵심이라고 할 수 있음.
특정 시간동안 발생되는 이벤트의 수를 제한하는 것이다.
format은 이러하다.
threshold type <limit | threshold | both>, track <by_src | by_dst> count <s>, seconds <m>
* type
- limit : 매 m초 동안 s번째 이벤트까지 action 수행
- threshold : 매 m초 동안 s번째 이벤트마다 action 수행
- both : 매 m초 동안 s번째 이벤트 시 한번 action 수행
* track
- by_src : 송신 ip 기준으로 추적
- by_dst : 수신 ip 기준으로 추적
* count / seconds : 횟수/시간
이제 다 알아봤으니까 예를 하나 들어서 마무리 짓자.
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg: "HTTP GET FLOODING"; content: "GET / HTTP/1."; nocase;
depth : 13; sid:1000003; threshold:type threshold, track by_dst, count 10, seconds 1;)
이벤트 이름은 "HTTP GET FLOODING" 이다.
"외부에서 내부로 들어오는 패킷들 중 *GET/HTTP/1." 문자열을 포함하는 페이로드를 대소문자 구분없이 13만큼 검색하여 이 패킷이 1초에 10번일어난다면 ALERT 액션을 수행하는 것이다.
'IT 그리고 정보보안 > Knowledge base' 카테고리의 다른 글
AWS (Amazon Web Service) 개요 (0) | 2021.05.02 |
---|---|
Switch Jamming (스위치 재밍) (0) | 2021.04.19 |
DS (Dual Signature) / SET (Secure Electronic Transactions) (0) | 2021.04.19 |
DoS(Denial of Service) 공격 개념과 종류 (0) | 2021.04.19 |
iptables 에서의 TCP 응답 (0) | 2021.04.19 |