IDS/IPS의 원리와 활용 방법에 대한 학습 내용
0. 개요
네트워크 보안에서 가장 기본적인 장비는 방화벽이다.
방화벽은 IP 주소, 포트 번호, 프로토콜 등을 기준으로 트래픽을 허용하거나 차단한다.
예를 들어 회사 서버에서 웹 서비스를 운영한다면 방화벽은 보통 다음과 같이 설정된다.
1
2
3
4
80/tcp 허용
443/tcp 허용
22/tcp 관리자 IP만 허용
나머지 차단
이렇게 설정하면 외부에서 불필요한 포트로 접근하는 것은 막을 수 있다.
하지만 문제는 공격자가 항상 막혀 있는 포트로 공격하지 않는다는 것이다.
공격자는 오히려 정상적으로 열려 있는 웹 포트인 80번, 443번을 이용해 공격한다.
예를 들어 다음과 같은 요청은 겉보기에는 일반적인 HTTP 요청이다.
1
2
GET /login.php?id=' OR 1=1 -- HTTP/1.1
Host: example.com
방화벽 입장에서는 이 요청이 80번 포트로 들어온 정상 HTTP 트래픽처럼 보인다.
하지만 실제로는 SQL Injection 공격일 수 있다.
즉, 방화벽은 “접근을 허용할지 말지”를 판단하는 데 강하지만, 트래픽 내부에 담긴 공격 패턴까지 정밀하게 분석하는 데에는 한계가 있다.
이러한 한계를 보완하기 위해 사용하는 보안 장비가 IDS와 IPS이다.
IDS는 침입 탐지 시스템이고, IPS는 침입 방지 시스템이다.
IDS는 공격이나 이상 행위를 발견하면 관리자에게 알려주는 역할을 한다.
반면 IPS는 공격을 탐지하는 것에서 끝나지 않고 해당 트래픽을 직접 차단한다.
1
2
3
Firewall : 접근 제어
IDS : 공격 탐지
IPS : 공격 탐지 + 차단
1. IDS란 무엇인가
1-1. IDS의 개념
IDS는 Intrusion Detection System의 약자로, 침입 탐지 시스템이라고 한다.
IDS는 네트워크 또는 시스템에서 발생하는 이벤트를 감시하면서 공격으로 의심되는 행위를 탐지한다.
여기서 중요한 점은 IDS는 기본적으로 “차단”보다 “탐지와 알림”에 초점이 있다는 것이다.
예를 들어 IDS는 다음과 같은 행위를 감지할 수 있다.
1
2
3
4
5
6
- 짧은 시간 안에 여러 번 로그인 실패
- 특정 서버에 대한 포트 스캔
- SQL Injection 패턴이 포함된 HTTP 요청
- 악성코드 C2 서버와의 통신
- 비정상적으로 많은 트래픽 발생
- 시스템 중요 파일 변경
IDS가 이러한 행위를 발견하면 관리자에게 경고를 보낸다.
예시는 다음과 같다.
1
2
3
4
5
6
7
[ALERT]
탐지 유형: SQL Injection 시도
출발지 IP: 192.168.10.25
목적지 IP: 10.0.0.5
목적지 포트: 80
위험도: High
탐지 내용: ' OR 1=1 패턴 발견
관리자는 이 알림을 보고 공격 여부를 분석하고, 필요하면 방화벽 정책 수정, 계정 차단, 서버 점검 등의 대응을 수행한다.
2. IDS가 필요한 이유
2-1. 방화벽만으로는 부족한 이유
방화벽은 주로 다음과 같은 기준으로 트래픽을 제어한다.
1
2
3
4
5
- 출발지 IP
- 목적지 IP
- 포트 번호
- 프로토콜
- 접근 방향
하지만 실제 공격은 정상적인 통신처럼 위장되는 경우가 많다.
예를 들어 웹 서버는 외부 사용자에게 서비스를 제공해야 하므로 80번 또는 443번 포트를 열어두어야 한다.
공격자는 바로 이 허용된 통로를 이용한다.
대표적으로
1
2
3
4
SQL Injection → 웹 요청 안에 SQL 문법 삽입
XSS → 게시글, 검색창 등에 스크립트 삽입
Directory Traversal → URL에 ../ 삽입
Brute Force → 로그인 요청 반복
이 공격들은 대부분 정상적인 웹 요청 형식을 사용한다.
따라서 단순 방화벽은 이를 공격으로 판단하기 어렵다.
IDS는 패킷의 내용, 요청 패턴, 세션 흐름, 로그 등을 분석하여 이러한 공격을 탐지한다.
3. IDS의 동작 원리
IDS는 보통 다음 단계로 동작한다.
1
2
3
4
5
6
7
8
9
트래픽 수집
↓
패킷 분석 및 디코딩
↓
탐지 엔진에서 공격 여부 판단
↓
로그 저장
↓
관리자에게 알림
3-1. 트래픽 수집
IDS는 먼저 네트워크에서 오가는 트래픽을 수집한다.
네트워크 기반 IDS의 경우 스위치의 미러링 포트 또는 TAP 장비를 이용해 트래픽 복사본을 받는다.
중요한 점은 IDS는 실제 통신 경로에 직접 끼어들지 않는 경우가 많다는 것이다.
구조는 다음과 같다.
1
2
3
사용자 → 스위치 → 서버
│
└── IDS
이 구조에서 IDS는 트래픽의 복사본만 분석한다.
따라서 IDS가 장애가 나더라도 실제 서비스 트래픽에는 직접적인 영향이 적다.
3-2. 패킷 분석과 디코딩
수집된 패킷은 처음에는 단순한 바이너리 데이터이다.
IDS는 이를 여러 계층으로 나누어 해석한다.
1
2
3
4
Ethernet Header
IP Header
TCP/UDP Header
Application Data
예를 들어 HTTP 요청이 들어오면 IDS는 다음 정보를 분석한다.
1
2
3
4
5
- HTTP Method: GET, POST
- URI: /login.php
- Query String: id=' OR 1=1 --
- Header: Host, User-Agent, Cookie
- Body: POST 데이터
이렇게 해석해야 공격 패턴을 찾을 수 있다.
단순히 패킷을 보는 것이 아니라 “이 패킷이 어떤 프로토콜의 어떤 요청인지”를 이해하는 과정이 필요하다.
3-3. 탐지 엔진
IDS의 핵심은 탐지 엔진이다.
탐지 엔진은 수집한 데이터가 정상인지 공격인지 판단한다.
대표적인 탐지 방식은 다음 세 가지이다.
1
2
3
1. Signature 기반 탐지
2. Anomaly 기반 탐지
3. Stateful Protocol Analysis
4. Signature 기반 탐지
Signature 기반 탐지는 이미 알려진 공격 패턴과 비교하는 방식이다.
쉽게 말하면 백신 프로그램이 악성코드 시그니처를 이용해 탐지하는 것과 비슷하다.
예를 들어 SQL Injection 공격에서 자주 사용되는 패턴은 다음과 같다.
1
2
3
4
' OR 1=1 --
UNION SELECT
../
<script>
IDS는 이러한 패턴이 포함된 요청을 발견하면 공격으로 판단한다.
예를 들어 Snort 규칙은 다음과 같이 작성할 수 있다.
1
2
3
4
5
alert tcp any any -> any 80 (
msg:"SQL Injection Attempt";
content:"' OR 1=1";
sid:1000001;
)
이 규칙은 80번 포트로 들어오는 TCP 트래픽 중에서 ‘ OR 1=1 문자열이 포함되어 있으면 SQL Injection 시도로 탐지한다.
장점
Signature 기반 탐지는 알려진 공격에 대해 매우 효과적이다.
탐지 기준이 명확하기 때문에 비교적 정확도가 높고, 오탐이 적은 편이다.
단점
하지만 새로운 공격이나 변형된 공격에는 약하다.
예를 들어 공격자가 다음처럼 우회하면 단순 문자열 탐지가 실패할 수 있다.
1
2
3
'/**/OR/**/1=1--
%27%20OR%201%3D1--
UNION/**/SELECT
즉, Signature 기반 탐지는 규칙을 계속 업데이트해야 한다.
5. Anomaly 기반 탐지
Anomaly 기반 탐지는 정상적인 행동 기준을 먼저 정하고, 그 기준에서 벗어나는 행동을 탐지하는 방식이다.
예를 들어 어떤 웹 서버의 평소 트래픽이 다음과 같다고 하자.
1
2
3
평균 요청 수: 초당 100개
평균 로그인 실패: 분당 3회
평균 데이터 전송량: 초당 10MB
그런데 갑자기 다음과 같은 상황이 발생했다.
1
2
3
요청 수: 초당 50,000개
로그인 실패: 분당 5,000회
특정 IP에서 대량 요청 발생
IDS는 이를 비정상적인 행위로 판단할 수 있다.
이 방식은 꼭 알려진 공격 패턴이 아니더라도 평소와 다른 행동을 탐지할 수 있다.
장점
Anomaly 기반 탐지는 새로운 공격이나 Zero-day 공격을 탐지할 가능성이 있다.
공격 패턴을 미리 몰라도 “평소와 다르다”는 점을 기준으로 탐지하기 때문이다.
단점
오탐이 많을 수 있다.
예를 들어 쇼핑몰에서 이벤트를 진행해 정상 사용자가 갑자기 몰리는 경우에도 IDS는 이를 DDoS로 오해할 수 있다.
따라서 정상 기준을 잘 설정하고, 운영 환경에 맞게 튜닝하는 것이 중요하다.
6. Stateful Protocol Analysis
Stateful Protocol Analysis는 프로토콜의 정상적인 흐름을 기준으로 이상 여부를 판단하는 방식이다.
예를 들어 TCP 연결은 보통 다음 과정을 거친다.
1
2
3
1. Client → Server : SYN
2. Server → Client : SYN-ACK
3. Client → Server : ACK
이 과정을 3-way handshake라고 한다.
그런데 정상적인 연결 과정 없이 이상한 패킷이 들어오면 IDS는 이를 수상하게 볼 수 있다.
예를 들어:
1
2
3
- 연결이 없는 상태에서 ACK 패킷만 계속 전송
- 비정상적인 TCP Flag 조합 사용
- 프로토콜 규격에 맞지 않는 HTTP 요청
이 방식은 단순 문자열 탐지보다 더 깊은 분석이 가능하다.
하지만 프로토콜 상태를 계속 추적해야 하므로 시스템 자원을 많이 사용한다.
7. IDS의 유형
IDS는 설치 위치와 감시 대상에 따라 크게 NIDS와 HIDS로 나눌 수 있다.
7-1. NIDS
NIDS는 Network-based Intrusion Detection System이다.
네트워크 구간에 설치되어 네트워크 트래픽을 감시한다.
구조는 다음과 같다.
1
2
3
4
5
6
7
8
9
10
Internet
│
Router
│
Firewall
│
Switch ─── NIDS
│
Web Server
DB Server
NIDS는 서버 한 대만 보는 것이 아니라 네트워크 전체 흐름을 본다.
탐지 가능한 공격은 다음과 같다.
1
2
3
4
5
6
7
- 포트 스캔
- DDoS 공격
- SQL Injection
- XSS
- 악성코드 통신
- C2 서버 접속
- 비정상 프로토콜 사용
NIDS 장점
네트워크 전체를 한 번에 감시할 수 있다.
서버마다 에이전트를 설치하지 않아도 된다.
NIDS 단점
암호화된 HTTPS 트래픽은 내용을 분석하기 어렵다.
또한 트래픽 양이 많으면 패킷을 놓칠 수 있다.
7-2. HIDS
HIDS는 Host-based Intrusion Detection System이다.
개별 서버나 PC에 설치되어 내부 행위를 감시한다.
HIDS는 네트워크 패킷보다 시스템 내부 로그와 파일 변화를 주로 본다.
감시 대상은 다음과 같다.
1
2
3
4
5
6
- 로그인 성공/실패 로그
- 관리자 권한 상승
- 중요 파일 변경
- 새 프로세스 실행
- 악성 파일 생성
- 시스템 설정 변경
예를 들어 Linux 서버에서 /etc/passwd 파일이 변경되면 HIDS는 이를 탐지할 수 있다.
1
2
3
4
[ALERT]
파일 무결성 변경 감지
파일: /etc/passwd
위험도: High
HIDS 장점
서버 내부에서 발생하는 행위를 자세히 볼 수 있다.
네트워크 IDS가 보지 못하는 파일 변경, 권한 상승, 프로세스 실행 등을 탐지할 수 있다.
HIDS 단점
각 서버마다 설치해야 하므로 관리 부담이 있다.
또한 서버 자원을 일부 사용한다.
8. IPS란 무엇인가
IPS는 Intrusion Prevention System의 약자로 침입 방지 시스템이다.
IDS가 공격을 발견하고 알려주는 역할이라면, IPS는 공격을 발견한 뒤 바로 차단하는 역할까지 수행한다.
즉 IPS는 다음과 같은 기능을 한다.
1
2
3
4
5
- 악성 패킷 차단
- 공격 세션 종료
- 공격 IP 차단
- 연결 Reset
- Rate Limiting
IDS와 IPS의 가장 큰 차이는 배치 방식이다.
IDS는 보통 트래픽 복사본을 분석한다.
1
2
3
사용자 → 서버
│
└── IDS
IPS는 트래픽이 지나가는 경로에 직접 위치한다.
1
사용자 → IPS → 서버
이 구조를 Inline 구조라고 한다.
모든 트래픽이 IPS를 통과하기 때문에 IPS는 공격 패킷을 즉시 차단할 수 있다.
하지만 반대로 IPS에 문제가 생기면 서비스 트래픽에도 영향을 줄 수 있다.
9. IPS의 동작 예시
공격자가 다음과 같은 SQL Injection 요청을 보냈다고 하자.
1
2
GET /login.php?id=' OR 1=1 -- HTTP/1.1
Host: victim.com
IPS는 이 요청을 분석한 뒤 공격으로 판단한다.
그 후 다음 중 하나의 대응을 수행한다.
1
2
3
4
1. 해당 패킷 Drop
2. TCP 세션 종료
3. 공격자 IP 일정 시간 차단
4. 관리자에게 경고 전송
IDS라면 이 요청을 보고 경고만 남겼을 것이다.
하지만 IPS는 요청이 웹 서버에 도달하기 전에 차단한다.
10. IDS와 IPS 차이점
IDS
- 의미: 침입 탐지 시스템
- 목적: 공격 탐지 및 경고
- 배치 방식: Out-of-band
- 트래픽 영향: 직접 영향 적음
- 장점: 분석과 모니터링에 유리
- 단점: 직접 차단 불가
IPS
- 의미: 침입 방지 시스템
- 목적: 공격 탐지 및 차단
- 배치 방식: Inline
- 트래픽 영향: 직접 영향 있음
- 장점: 실시간 방어 가능
- 단점: 오탐 시 위험
정리하면 IDS는 “CCTV”에 가깝고, IPS는 “자동문 보안 게이트”에 가깝다.
IDS는 침입자를 발견하고 알려준다.
IPS는 침입자를 발견하면 문 앞에서 막는다.
11. IDS/IPS의 장단점
11-1. IDS 장점
IDS는 네트워크에 직접 끼어들지 않기 때문에 서비스 영향이 적다.
또한 탐지된 이벤트를 분석하면서 공격 흐름을 파악하기 좋다.
보안 관제 환경에서는 IDS 로그를 SIEM과 연동하여 여러 장비의 로그와 함께 분석한다.
예를 들어 IDS에서 SQL Injection 탐지가 발생하고,
동시에 웹 서버 로그에서 500 에러가 증가했다면 실제 공격 가능성이 높다고 판단할 수 있다.
11-2. IDS 단점
IDS는 공격을 직접 차단하지 않는다.
따라서 관리자가 알림을 확인하고 대응하기 전까지 공격이 진행될 수 있다.
또한 트래픽이 많거나 암호화되어 있으면 탐지 정확도가 떨어질 수 있다.
11-3. IPS 장점
IPS의 가장 큰 장점은 실시간 차단이다.
공격 트래픽이 서버에 도달하기 전에 막을 수 있다.
특히 다음과 같은 공격에 효과적이다.
1
2
3
4
5
- 알려진 취약점 공격
- SQL Injection
- 악성 URL 요청
- Exploit Payload 전송
- DDoS성 트래픽
11-4. IPS 단점
IPS는 Inline 구조이기 때문에 성능과 안정성이 중요하다.
트래픽을 잘못 판단하면 정상 요청도 차단할 수 있다.
예를 들어 정상 사용자의 검색어에 우연히 공격 패턴과 비슷한 문자열이 포함되면 IPS가 차단할 수 있다.
이러한 오탐은 서비스 장애로 이어질 수 있다.
따라서 IPS는 도입 후 바로 강력 차단 모드로 운영하기보다는 탐지 모드로 먼저 운영하면서 정책을 튜닝하는 경우가 많다.
12. 실제 보안 운영에서의 활용
실제 기업 환경에서는 IDS와 IPS를 단독으로 사용하지 않는다.
보통 다음과 같이 여러 보안 솔루션과 함께 사용한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
Internet
│
Firewall
│
IPS
│
WAF
│
Web Server
│
HIDS / EDR
│
SIEM
각 장비의 역할은 다르다.
1
2
3
4
5
6
Firewall : IP, 포트 기반 접근 제어
IPS : 네트워크 공격 실시간 차단
WAF : 웹 애플리케이션 공격 방어
HIDS : 서버 내부 행위 탐지
EDR : 엔드포인트 행위 탐지 및 대응
SIEM : 로그 통합 분석
즉 IDS/IPS는 전체 보안 체계 중 하나의 계층이다.
이를 계층형 방어, Defense in Depth라고 한다.
13. 대표적인 IDS/IPS 도구
13-1. Snort
Snort는 대표적인 오픈소스 IDS/IPS 도구이다.
Rule 기반으로 공격 패턴을 탐지한다.
간단한 Snort Rule 예시는 다음과 같다.
1
2
3
4
alert icmp any any -> any any (
msg:"ICMP Ping Detected";
sid:1000001;
)
이 규칙은 ICMP 패킷이 감지되면 알림을 발생시킨다.
Snort는 규칙을 직접 작성할 수 있기 때문에 학습용으로도 많이 사용된다.
13-2. Suricata
Suricata는 Snort와 비슷하지만 고성능 처리를 위해 멀티스레드를 지원한다.
대용량 트래픽 환경에서 많이 사용된다.
특징은 다음과 같다.
1
2
3
4
- 멀티스레드 지원
- IDS/IPS 모드 지원
- HTTP, TLS, DNS 등 프로토콜 분석
- EVE JSON 로그 출력
13-3. Zeek
Zeek는 전통적인 IDS라기보다는 네트워크 분석 도구에 가깝다.
패킷을 단순히 공격 여부로 판단하기보다 네트워크에서 어떤 일이 일어났는지를 로그로 남긴다.
예를 들어 다음과 같은 로그를 생성한다.
1
2
3
4
5
conn.log
http.log
dns.log
ssl.log
files.log
이 로그들은 사고 분석과 포렌식에 매우 유용하다.
13-4. Wazuh
Wazuh는 HIDS 계열 보안 플랫폼이다.
서버나 PC에 에이전트를 설치하고 다음과 같은 정보를 수집한다.
1
2
3
4
5
- 시스템 로그
- 파일 무결성
- 취약한 설정
- 보안 이벤트
- 악성 행위
Wazuh는 SIEM처럼 로그를 모아 대시보드로 확인할 수 있어 실무형 학습에 좋다.
14. IDS/IPS의 한계
IDS와 IPS가 있다고 해서 모든 공격을 막을 수 있는 것은 아니다.
14-1. 암호화 트래픽 문제
요즘 대부분의 웹 트래픽은 HTTPS를 사용한다.
HTTPS는 통신 내용을 암호화하기 때문에 IDS/IPS가 패킷 내부를 보기 어렵다.
예를 들어 공격자가 HTTPS로 SQL Injection 요청을 보내면 네트워크 장비 입장에서는 암호화된 데이터만 보인다.
이를 분석하려면 SSL/TLS 복호화 장비나 프록시 구조가 필요하다.
14-2. 우회 기법
공격자는 IDS/IPS 규칙을 우회하기 위해 다양한 변형을 사용한다.
예를 들어 단순히 다음 문자열을 탐지한다고 하자.
1
UNION SELECT
공격자는 다음처럼 바꿀 수 있다.
1
2
3
UNION/**/SELECT
UnIoN SeLeCt
%55%4e%49%4f%4e%20%53%45%4c%45%43%54
따라서 IDS/IPS는 단순 문자열 매칭만으로는 부족하다.
정규화, 디코딩, 프로토콜 분석이 함께 필요하다.
14-3. 오탐과 미탐
IDS/IPS에서는 두 가지 문제가 중요하다.
1
2
오탐(False Positive): 정상인데 공격으로 판단
미탐(False Negative): 공격인데 정상으로 판단
오탐이 많으면 관리자가 불필요한 알림에 지치게 된다.
이를 Alert Fatigue라고 한다.
반대로 미탐이 많으면 실제 공격을 놓치게 된다.
따라서 IDS/IPS 운영에서 가장 중요한 것은 탐지 정책을 환경에 맞게 튜닝하는 것이다.
15. IDS/IPS를 공부하면서 느낀 점
IDS와 IPS는 단순히 보안 장비 이름을 외우는 것이 아니라,
네트워크 트래픽을 어떻게 보고 공격을 어떻게 판단하는지 이해하는 것이 중요하다.
처음에는 IDS와 IPS가 비슷해 보였지만, 공부하면서 두 시스템의 목적과 배치 방식이 다르다는 것을 알 수 있었다.
IDS는 공격을 탐지하고 분석하는 데 적합하며, IPS는 공격을 실시간으로 차단하는 데 적합하다.
하지만 IPS는 오탐이 발생하면 정상 서비스까지 차단할 수 있으므로 신중한 정책 설정이 필요하다.
또한 IDS/IPS는 단독으로 완벽한 보안을 제공하지 않는다.
실제 보안 환경에서는 방화벽, WAF, EDR, SIEM과 함께 사용해야 효과적이다.
16. 결론
- IDS와 IPS는 네트워크 보안에서 중요한 역할을 하는 침입 탐지 및 방지 시스템이다.
- IDS는 네트워크나 시스템에서 발생하는 이상 행위를 탐지하고 관리자에게 알림을 제공한다.
- IPS는 IDS의 탐지 기능에 더해 공격 트래픽을 실시간으로 차단한다.
- IDS는 서비스 영향이 적고 분석에 유리하지만 직접적인 차단 기능은 부족하다.
- IPS는 실시간 방어가 가능하지만 오탐 발생 시 정상 트래픽까지 차단할 위험이 있다.
- 따라서 IDS와 IPS는 각각의 장단점을 이해하고, 운영 환경에 맞게 적절히 배치해야 한다.
최종적으로 IDS/IPS는 방화벽, WAF, EDR, SIEM 등과 함께 계층형 방어 체계를 구성할 때 가장 효과적으로 활용될 수 있다.