침입탐지시스템(IDS) / Intrusion Detection System
침입탐지시스템은 네트워크에서 사용되는 자원의 무결성, 비밀성, 가용성을 저해하는 비정상적인 사용과 오용, 남용 등의 행위를 가능한 한 실시간으로 탐지하여 관리자에게 경고 메시지를 보내주고 대응하는 시스템을 말한다.
- 특징
내·외부망의 접속점에 위치하여 방화벽의 부족한 부분을 보강하기 위해 사용되는 것이 IDS다.
IDS 도구의 기본 목적은 네트워크상에서 발생하는 의심스러운 행동을 발견하고 네트워크 관리자의 스크린으로 깜빡이는 메시지를 전달하며 경고음을 발생시키거나 방화벽의 ACL값을 변경시키는 재설정 파일을 전송하는 것이다.
전통적 IDS는 공격의 증거를 찾기 위한 네트워크 트래픽분석의 역할을 수행했으나 점차 시스템의 침해여부를 보기 위해 액세스 로그들을 조사하여 파일을 분석하는 것으로 변하였으며 허니팟 개념으로 점차 확장/변화하고 있다.
- IDS의 실행 단계
① 데이터 수집 단계 : 탐지대상으로부터 생성되는 데이터를 수집하는 감사 데이터 수집단계이다.
② 데이터 가공 및 축약 단계 : 수집된 감사 데이터를 침입 판정이 가능하도록 의미 있는 정보로 전환시키는 단계이다.
③ 침입분석 및 탐지 단계 : 데이터를 분석하여 침입 여부를 판단하는 침입탐지시스템의 핵심 단계로 여러 가지의 탐지기법이 있다. 시스템의 비정상적인 사용을 탐지하는 비정상적 행위 탐지 기법과 시스템의 취약점, 응용 프로그램의 버그 등을 탐지하는 오용 탐지 기법이 있다. 최근에는 이 둘을 혼합한 하이브리드형 탐지기법이 많다.
④ 보고 및 대응 단계 : 시스템의 침입 여부가 침입으로 판정된 경우 이에 대한 적절한 대응을 자동으로 취하거나 보안관리자에게 침입사실을 보고하여 보안관리자가 조치를 취하게 한다.
IDS의 종류
- 규칙 기반 침입탐지(오용 침입탐지)
시스템 로그, 네트워크 입력정보, 알려진 침입방법, 비정상적인 행위 패턴 등의 특징을 비교하여 탐지하는 방법이다.
즉, 기존의 침입방법을 데이터베이스에 저장해 두었다가 사용자 행동 패턴이 기존의 침입 패턴과 일치하거나 유사한 경우에 침입이라 판단한다.
데이터베이스는 기존의 공격이나 침입 시에 나타났던 패턴의 특징을 저장하고 새로운 공격이나 침입 방법이 출현하였을 경우 그에 맞는 공격 패턴을 생성하여 추가한다.
오용 침입 탐지방법은 데이터베이스에 저장되어 있는 기존의 공격 패턴을 정확하게 유지하고 있다면 비정상 침입 탐지 방법보다 False-Positive 확률을 감소시킬 수 있다.
· 시그니처의 예시들
루트 사용자 이름으로 Telnet 로그인 시도
시스템 프로그램 복제 시도
패스워드 파일 복제 시도
· 종류
전문가 시스템 : 침입 또는 오용의 패턴을 실시간으로 입력되는 감사정보와 비교하여 침입을 탐지하는 방법으로 if-then-rule에서 공격 패턴들을 정의하고 일치하는 경우에는 정해진 규칙에 따라 행동을 수행한다.
상태전이 모델 : 공격 패턴에 따라 시스템의 상태 변화를 미리 상태전이도로 표현하고 실시간으로 발생하는 사건에 대해 시스템의 상태 변화를 계속 추적하여 침입상태로 전이하는지를 감시하는 방법이다.
패턴 매칭 : 알려진 공격 패턴을 시나리오 형태로 데이터베이스에 저장한 후 발생하는 사건들의 패턴을 데이터베이스의 시나리오와 비교하여 판단하는 방법이다.
- 통계적 변형 탐지(비정상 침입탐지)
관찰된 사건들을 정상적인 행위에 대한 정의들과 비교하여 심각한 수준의 일탈 행위를 식별하는 과정이다.
시스템과 사용자의 정상적인 행위 패턴을 프로파일로 생성하고 실제 시스템상에서의 행위가 프로파일 범위를 벗어날 경우를 탐지하는 방법이다.
오용 탐지방법보다 DB 관리가 용이하고 제로데이 공격도 탐지가 가능하며 침입 이외의 시스템 운용상의 문제점도 발견할 수 있다.
반면에 프로파일과 실제 입력정보를 비교하는 시간의 지연으로 실시간 탐지가 어렵고 탐지 정확성을 높이기 위한 기준 조정이 어렵다.
· 종류
통계적 분석 방법 : 사용자 또는 시스템 행위에 대한 이전 정보를 기반으로 정상행위로 판단되는 통계적인 프로파일을 생성하고 주기적으로 갱신한다.
예측 가능한 패턴 생성 방법 : 일정기간 정상적인 특정 행위를 이루는 사건의 순서가 불규칙하지 않고 일정한 패턴이라는 가설을 근거로 한다. 기존의 정상적인 패턴과 현재 사건 간의 상호관계와 순서를 비교하여 정상적인 패턴 범위를 벗어났을 경우에 비정상적인 행위로 판단한다.
신경망 모델 : 적용학습 기술을 사용하여 비정상적 행위를 탐지하는 방법이다. 일반적으로 신경망 모델은 두 단계의 과정을 거쳐 침입을 탐지한다. 첫 번째 단계는 사용자 행위 정보를 학습하는 단계이며, 두 번째 단계는 입력된 사건 정보를 학습된 사용자 행위 정보와 비교하여 비정상적인 행위를 탐지하는 단계이다.
대응방법에 따른 분류
침입에 대한 대응방법은 수동적 대응과 능동적 대응방법으로 구분할 수 있는데 아직까지 대부분의 IDS가 수동적 대응방법을 선택하고 있다.
이는 능동적 대응방법으로 침입을 탐지할 시 많은 오경보를 발생시켜 시스템의 가용성을 저하시킬 수 있기 때문이다.
- 수동적 대응방법
수동적 대응방법은 가장 일반적인 방법으로 대량의 정보를 수집하는 형태를 취하거나 필요한 경우에 권한을 가진 사용자들에게 보다 엄격한 조치를 취할 수 있도록 통보하는 형태를 취한다.
주로 침입을 피하거나 무시하는 방법, 상세한 분석·조치를 취할 수 있도록 도움이 되는 정보를 수집하는 이벤트 기록방법 또는 전자우편, 전화, SNMP 트랩 등을 이용해 침입과 관련된 정보를 보안 관리자에게 보고하는 방법 등이 있다.
- 능동적 대응방법
능동적 대응방법은 침입에 대해 가장 빨리 실행할 수 있는 행동으로 침입에 의한 손실을 줄일 수 있게 한다.
그러나 행동의 결과에 대한 신중한 고려와 일련의 규칙들에 대해 정확한 검증이 없다면 혼란을 발생시키거나 합법적인 사용자에게 서비스를 제공할 수 없게 되는 오경보를 발생시킬 수 있다.
데이터 수집원에 의한 분류
- 네트워크 기반 IDS
네트워크에서 패킷 헤더, 데이터 및 트래픽 양, 응용프로그램 로그 등을 분석하여 침입 여부를 판단한다. 즉, 시스템의 감사 자료가 아닌 네트워크를 통해 전송되는 패킷 정보를 수집·분석하여 침입을 탐지하는 시스템이다.
NIDS는 감지기를 이용하며 이것은 필요한 소프트웨어가 설치된 컴퓨터이거나 전용 appliance 일 수 있는데, promiscuous 모드에서 동작하는 NIC에 설치되어 있다.(패킷 스니핑을 통해 수집)
· N-IDS의 장점
네트워크 기반의 침입 탐지 시스템은 트래픽을 감시할 수 있는 몇몇 위치에만 설치하므로 초기 구축 비용이 저렴하다.
운영체제에 독립적이므로 구현 및 관리가 쉽다.
캡쳐된 트래픽에 대해서는 침입자가 흔적을 제거하기 어렵다.
· N-IDS 단점
암호화된 패킷을 분석할 수 없다.
스위칭 환경에서는 호스트 기반 침입 탐지 시스템보다 구축비용이 오히려 더 많이 든다.
기가 비트 급의 고속 네트워크 환경에서는 패킷 손실이 많아 탐지율이 떨어진다.
일부 네트워크 기반 시스템은 호스트 상에서 무슨 일이 발생하고 있는지에 대해 네트워크 트래픽을 통해 추정이 가능하다. 그러나 세부 행위에 대해서는 탐지할 수 없다.
- 호스트 기반 IDS
호스트 시스템으로부터 생성되고 수집된 감사 자료를 침입 탐지에 사용하는 시스템이다. 여러 호스트로부터 수집된 감사 자료를 이용할 경우에는 다중 호스트 기반이라고 말한다.
호스트 기반의 침입 탐지 시스템은 네트워크 기반 침입 탐지 시스템이 탐지할 수 없는 침입을 탐지하며 시스템 이벤트 감시를 통한 정확한 침입 탐지가 가능하다.
· H-IDS 장점
정확한 탐지가 가능하며, 다양한 대응책을 수행할 수 있다.
암호화 및 스위칭 환경에 적합하다.
추가적인 하드웨어가 필요하지 않다.
· H-IDS 단점
각각의 시스템마다 설치해야 하므로 다양한 OS를 지원해야 한다.
침입 탐지 시스템으로 인해 시스템에 추가적인 부하가 생긴다.
구현이 용이하지 않다.
HIDS 시스템이 가지는 여러 장점에도 불구하고 단점, 특히 구현이 용이하지 않는 어려움으로 인해 상용 및 공개용 IDS에서는 HIDS 방식을 찾기 힘들다.
탐지시점에 따른 분류
- 사후분석 시스템 : 고전적인 형태의 IDS로 수집된 감사 데이터를 정해진 시간에만 분석하여 침입 여부를 판정하는 시스템이므로 침입이 발생하더라도 즉시 대응하지 못하는 한계가 있다.
- 실시간 탐지 시스템 : 실시간 정보수집과 동시에 감사 데이터 발생과 침입 탐지가 이루어지고 이에 대응하는 대비책을 실행시킨다.
IDS의 위치
IDS는 목적에 따라 여러 곳에 설치할 수 있다. 방화벽과 같이 외부와 내부의 경계선에 존재해야 하는 것이 아니라 네트워크의 어느 부분에나 설치할 수 있다.
- NIDS의 위치
위와 같은 환경에 추가로 방화벽 뒤에는 스위치가 아닌 라우터로 구성되며 라우터는 host들로 이루어진 내부 네트워크와 서버를 위한 네트워크(DMZ)를 연결해주는 환경이라고 가정한다. 일반적으로 DMZ에서는 별도로 운영되는 방화벽이 존재한다.
① 패킷이 인터넷에서 라우터로 들어오기 전 : 이곳에 IDS를 설치하면 실제로 네트워크에 실행되는 모든 공격을 탐지할 수 있다. 따라서 공격 의도가 있는 이들을 미연에 쉽게 파악할 수 있다. 그러나 너무 많은 공격에 대한 데이터를 수집하게 되어 정작 네트워크에 치명적인 공격에는 대처하기 어렵다.
② 라우터 뒤 : 라우터의 패킷 필터링을 거친 후의 패킷들을 검사한다. ①보다는 적은 수의 공격을 탐지하며 좀 더 강력한 의지가 있는 공격자를 탐지할 수 있다.
③ 방화벽 뒤 : 네트워크 특성과 목적에 따라 다른 경우도 있지만, 만약 IDS를 한 대만 설치할 수 있다면 이곳에 설치해야 한다.
④ 내부 네트워크 : 방화벽은 외부의 침입을 일차적으로 차단한다. 하지만 내부에 대해서는 거의 무방비라고 볼 수 있다.
⑤ DMZ : DMZ에 IDS를 설치하는 것은 아주 능력이 뛰어난 외부 공격자와 내부 공격자에 의한 중요 데이터 손실이나 서비스의 중단을 막기 위함이다.
HIDS의 경우에는 특별한 위치는 없으며 보통 중요한 시스템에 설치한다.
허니팟(Honeypot)
허니팟은 방화벽이나 침입탐지시스템처럼 특정한 보안문제를 해결하거나 다른 보안 시스템을 대체하는 역할은 수행하지 않는다. 다만 잠재적 공격자에 대한 조기 경보 제공, 보안 전략의 결점 파악 그리고 조직 전체의 보안의식 향상과 같이 전반적인 보안 메커니즘을 향상시키는 기능을 수행한다.
즉, 실제로 자료를 가진 호스트인 것처럼 인터넷상에 존재하면서 해커, 악의적인 내부자 등을 속여 그들로부터 침해당함으로써 그들의 행동, 공격기법, 목적 등을 분석하는데 사용된다.
- 설계목표
비교적 최근에 개발된 침입탐지 기술은 허니팟이다. 허니팟은 공격성향이 있는 사람을 중요한 시스템으로부터 다른 곳으로 끌어내도록 설계한 유도시스템이다.
- 특징
다른 보안 시스템처럼 성능이 시스템 자원에 영향을 받지 않는다. 허니팟은 단지 자신에게 보내진 패킷만 수집하기 때문에 데이터를 처리하기 위해 고성능의 시스템을 사용할 필요가 없다.
고의적으로 취약점을 내포하고 있어 제로 데이 공격을 사전에 탐지할 수 있는 예방통제 기술이다.
또한 외부로부터의 공격을 허니팟으로 유인하여 공격으로 인한 시스템 논리적인 파괴 및 손실을 방지하는데 목적을 두고 있다.
- 단점
허니팟은 미러링 포트에 설치되는 IDS와 달리 일반 포트에 설치되어 자신에게 오는 패킷만 수집하므로 네트워크 전반에 대한 침입정보를 분석할 수 없다.
또한, 공격자가 허니팟을 알아차릴 경우에는 허니팟을 우회하거나 마비시키는 공격을 가할 수 있는 단점을 가지고 있다.
+ 이상 금융거래 탐지시스템(FDS, Fraud Detection System)
FDS는 전자금융거래에 사용되는 단말기 정보·접속 정보·거래내용 등을 종합적으로 분석하여 의심거래를 탐지하고 이상금융거래를 차단하는 시스템을 의미한다.
스노트(Snort)
일종의 IDS로 실시간 트래픽 분석, 프로토콜 분석, 내용검색/매칭, 침입탐지 rule에 의거하여 오버플로우, 포트 스캔, CGI 공격, OS 확인 시도 등의 다양한 공격과 스캔을 탐지할 수 있다.
침입탐지 rule은 보안 커뮤니티를 통해 지속적으로 업데이트되고 또한 사용자가 직접 rule을 작성하여 추가할 수 있도록 설계되어 최신공격에 대한 적응에 빨리 대처할 수 있다.
- snort 룰(시그너처) 형식
snort 룰은 크게 헤더 부분과 바디 부분으로 구성되어 있다.
헤더 부분은 처리방식, 프로토콜, IP 주소, 포트번호 등 처리할 패킷을 판단하는 기준을 명시한다.
바디(옵션) 부분은 alert message나 패킷 데이터를 조사하기 위한 내용을 기술한다. 지정하지 않아도 상관 없음
· 룰 헤더 형식
action | protocol | source ip | source port | direction | destination ip | destination port |
alert | tcp | any | any | → | 192.168.159.0/24 | 80 |
alert 액션으로 탐지되었을 때 alert를 발생시키고 패킷을 로그에 남긴다. TCP 프로토콜에 대해서 출발지 IP, Port는 모든 IP, Port이고 목적지 IP는 192.168.159.0/24 대역에 목적지 Port가 80인 패킷을 탐지한다.
· 룰 헤더 필드
① Action : 룰 매칭 시 처리방법을 의미한다.
action | 의미 |
alert | 선택한 alert 방식을 이용해서 alert를 발생시키고 로그를 남긴다. |
log | 패킷을 로그에 남긴다. |
pass | 패킷을 무시한다. |
activate | alert를 발생시키고 대응하는 dynamic rule을 활성화한다. |
dynamic | activate rule에 의해 활성화 되고, log rule과 동일하게 동작한다. |
drop | 패킷을 차단하고 로그에 남긴다. |
reject | drop rule과 동일하게 패킷을 차단하고 로그에 남긴 후 TCP일 경우 TCP Reset을 전송하고 UDP의 경우 ICMP Port unreachable 메시지를 전송한다. |
sdrop | 패킷을 차단하지만 로그에 남기지 않는다. |
② Protocol : TCP, UDP, ICMP, IP 중에서 선택한다.
③ IP Address : 출발지/목적지 IP. 부정 연산자 사용 가능
④ port : 출발지/목적지 port
1:1023 > 1부터 1023까지 포트
:1023 > 1023이하 포트
1023: > 1023이상 포트
⑤ Direction Operator : 방향 지시자
→(단방향) : 왼쪽에 출발지 정보, 오른쪽에 목적지 정보를 나타냄
↔(양방향) : 출발지와 목적지 사이에 오가는 모든 패킷을 나타냄
· 주요 룰 바디(옵션) 설정
옵션 | 의미 |
msg | alert나 로그 출력 시 이벤트명으로 사용한다. |
content | 패킷의 payload 내부를 검색하는 문자열 |
offset | content로 지정한 문자열의 검색 시작 오프셋을 의미 |
depth | offset부터 검사할 바이트 수를 지정한다. |
nocase | 대소문자 구분 X |
sid | 룰을 식별하기 위한 식별자 |
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 서비스는 평문으로 송수신하기 때문에 아이디와 패스워드가 쉽게 노출될 수 있다. 따라서 FTP 서비스 사용을 제한하거나 불가피하게 사용할 경우에는 중요 계정인 root 계정의 직접 접속을 제한하여 root 계정의 패스워드가 노출되지 않도록 한다.
TCP 프로토콜을 이용하여 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 옵션을 통해 TCP 헤더 제어 플래그 중 URG,ACK,PSH,RST,SYN,FIN이 모두 설정되지 않은 패킷을 탐지한다.
침입방지시스템(IPS) / Intrusion Prevention System
다양하고 지능적인 침입기술에 대항해 다양한 방법의 보안기술을 이용하여 침입이 일어나기 전에 실시간으로 침입을 막으며 인터넷 웜, 악성코드 및 해킹에 기인한 유해 트래픽을 차단하기 위한 능동형 보안 솔루션이다.
침입탐지가 목적인 IDS의 기능을 넘어서 침입을 탐지했을 경우에 대한 대처까지 수행한다. 즉, IPS는 예방적이고 사전에 조치를 취하는 기술이다.
방화벽, IDS, Secure-OS 등의 보안기술에 기반을 둔 IPS는 취약점을 능동적으로 사전에 보완하고 웜이나 BOF, 특히 비정상적인 트래픽이나 알려지지 않은 공격까지 차단함으로써 한층 높은 보안을 제공한다.
IDS가 구축된 영역에는 다수의 호스트 기반 IPS와 네트워크 기반 IPS가 있다.
- IPS의 필요성
방화벽은 IP 주소 또는 포트에 의한 네트워크 공격을 차단할 수 있지만 응용 프로그램 수준의 공격과 새로운 패턴의 공격에 대한 적응력이 무척 낮고 실시간 대응을 할 수 없다.
IDS는 실시간 탐지는 가능하지만 대응책을 제시해 주지는 못했기 때문에 그 대안이 요구되었다.
IPS는 단순한 네트워크단에서 탐지를 제공할 수 없는 각종 서버를 위해 알려지지 않은 공격까지도 방어할 수 있는 실시간 침입방지시스템으로, OS 차원에서 실시간 방어와 탐지 기능을 제공하고 있다.
'정보보안기사' 카테고리의 다른 글
VPN (0) | 2023.04.29 |
---|---|
침입차단시스템(Firewall) (0) | 2023.04.27 |
네트워크 기반 공격에 이해 - 2 (2) | 2023.04.23 |
네트워크 기반 공격의 이해 - 1 (0) | 2023.04.21 |
네트워크 기반 프로그램 활용 (0) | 2023.04.20 |