jyamethyst21 님의 블로그
네트워크 보안 본문
네트워크 보안 솔루션
1. 방화벽 (Firewall)
1) 정의
: IP 주소와 Port 번호를 기반으로 사전에 정의된 방화벽 Rule Set에 따라 네트워크 패킷의 허용 / 차단을 수행하는 보안 장비
2) 주요 기능
- 접근 제어 (Access Control)
- 패킷 필터링 (Packet Filtering)
- NAT (Network Address Translation)
- 접속 및 액세스 기록(Log) 관리
- 사용자 인증(Authentication)
- 암호화 및 터널링 기능 지원
3) 방화벽 정책(Rule Set) 구성 요소
- 트래픽 방향 (외부→내부, 내부→외부, DMZ 등)
- 송신지 IP / 수신지 IP
- 사용자
- 허용 포트(서비스)
- 시간대
4) 방화벽의 한계
- 내부 네트워크에서 발생하는 공격 탐지 불가
- 방화벽을 경유하지 않는 공격 차단 불가
- Rule에 정의되지 않은 공격 차단 불가
- 데이터 내부의 악성코드/바이러스 탐지 불가
- 메일 첨부 악성코드 탐지 불가
- DoS / DDoS 공격 방어 한계
- 열린 포트를 이용한 공격 차단 불가
2. 침입 탐지 시스템 (IDS : Intrusion Detection System)
1) 정의
: 네트워크 또는 시스템에서 발생하는 침입 행위를 탐지하고 관리자에게 경고를 제공하는 보안 시스템
2) 주요 특징
- 패킷 내용 및 로그 분석을 통해 공격 여부 판단
- 악성코드 탐지 가능
- 차단 기능은 없음 (탐지 전용)
3) IDS 유형
(1) HIDS (Host-based IDS)
- 서버(호스트)에 직접 설치
- 네트워크 구조와 무관
- 주요 기능
- 로그 분석
- 자원 사용 분석
- 무결성 검사(Integrity Check)
- 방식
- 초기 설치 시 중요 파일 해시값 저장
- 주기적으로 해시값 변조 여부 검사
- 대표 오픈소스
- Tripwire
(2) NIDS (Network-based IDS)
- 네트워크 상의 공격 탐지
- 네트워크 세그먼트 단위 설치 가능
- 패킷 수집 방식
- 스위치 미러링 포트 사용
- TAP 장비 이용
- 패킷 처리 과정
- 필터링(Filter) : 불필요 데이터 제거
- 축약(Reduction) : 반복 데이터 감소
- 대표 오픈소스
- Snort
4) IDS 탐지 오류 유형
- 미탐지(False Negative)
- 공격을 탐지하지 못하는 경우
- 시그니처 기반 탐지에서 빈번
- 오탐지(False Positive)
- 정상 행위를 공격으로 판단
- 이상 탐지 기반에서 빈번
5) IDS 탐지 방식
(1) 오용 탐지 (Misuse Detection)
- 시그니처 기반
- 알려진 공격 패턴과 비교
- 장점
- 오탐률 낮음
- 단점
- 신규 공격 탐지 불가
- 지속적인 패턴 업데이트 필요
- 미탐률이 높음
(2) 이상 탐지 (Anomaly Detection)
- 행동 기반
- 정상 범위(normal)에서 벗어난 행위 탐지
- 통계적·정량적 분석 사용
- 장점
- 신규 공격 탐지 가능
- 미탐률이 낮음
- 단점
- 오탐률 높음
- 임계치 설정 어려움
6) IDS 한계
- 오탐/미탐 문제 지속 발생
- 실시간 공격 차단 불가
- 암호화·난독화·단편화 공격 탐지 어려움
3. 침입 방지 시스템 (IPS : Intrusion Prevention System)
1) 정의
: IDS의 탐지 기능 + 방화벽의 차단 기능을 결합한 능동형 보안 솔루션
2) 주요 특징
- In-line 방식 설치
- 실시간 공격 차단 가능
- 알려지지 않은 공격 패턴 대응 가능
- 웜, 악성코드, 해킹 트래픽 차단
3) IDS vs IPS
- IDS : 탐지 후 사후 대응
- IPS : 사전 예방 및 실시간 차단
4) IPS 필터 종류
- 방화벽 필터 (IP, Port 기반 제어)
- 트래픽 모니터링 및 QoS 필터
- 프로토콜 무결성 검사 필터
- 시그니처 기반 공격 탐지 필터
- DoS / DDoS 탐지 필터
- L7 필터 (웹 우회 공격, 단편화 탐지)
- 콘텐츠 기반 필터
4. 웹 방화벽 (WAF : Web Application Firewall)
1) 정의
: HTTP/HTTPS 웹 트래픽을 분석하여 웹 애플리케이션 공격을 탐지·차단하는 보안 장비
2) 주요 특징
- OWASP Top 10 기반 공격 탐지
- 요청 파라미터 분석
- 웹 서버 및 애플리케이션 보호
5. NAC (Network Access Control)
1) 정의
: 네트워크 접근 시 단말 및 사용자 상태를 점검하여 접근 허용 여부를 결정하는 보안 시스템
2) 점검 항목
- 정상 사용자/장비 인증 여부
- 백신 설치 여부
- 보안 패치 적용 여부
6. VPN (Virtual Private Network)
1) 정의
: 공중망(인터넷)을 이용하여 사설망처럼 안전하게 통신할 수 있도록 암호화된 터널을 제공하는 기술
2) 핵심 개념
- 캡슐화 기술
- 터널링 기술
- 데이터 암호화
3) VPN 계층별 프로토콜
- L2 : PPTP, L2TP
- L3 : IPSec
- L4~7 : SSL, TLS, HTTPS
7. UTM (Universal Threat Management)
1) 정의
: 방화벽, IDS/IPS, VPN, 안티바이러스 등 여러 보안 기능을 하나의 장비로 통합한 솔루션
2) 특징
- 네트워크 구성 단순화
- 관리 용이
- 중소 규모 네트워크에 적합
Snort Rule 기반 침입 탐지
1. Snort (스노트)
1) 정의
: 시그니처 기반 오픈소스 네트워크 침입 탐지 시스템으로 네트워크 패킷을 수집하여 사전에 정의된 룰과 비교해 침입 여부를 판단하고 경고 또는 로그를 발생시키는 보안 솔루션
2) 특징
- 1998년 Martin Roesch가 개발
- 오픈소스 기반
- 시그니처(문자열) 기반 탐지
- 네트워크 트래픽 실시간 모니터링
- 오늘날 IDS의 대표 솔루션으로 사용됨
2. Suricata (수리카타)
1) 정의
: Snort의 단점을 보완하여 개발된 오픈소스 NIDS/IPS
2) 특징
- 멀티코어 / 멀티스레드 지원 (고성능)
- Snort Rule 완전 호환
- 하드웨어 가속 지원
- Lua 스크립트 지원
3. Snort 동작 구조
1) 처리 흐름
- Sniffer
- 네트워크 패킷 수집
- Packet Decoder
- 패킷 정규화 및 전처리
- Preprocessor
- 특정 행위 탐지 후 탐지 엔진으로 전달
- Detection Engine
- Snort Rule과 패킷 비교
- Alert / Log
- 매칭 시 경고 또는 로그 출력
4. Snort Rule 개요
1) Snort Rule 정의
: 패킷의 Payload 및 헤더 정보를 기준으로 정의된 탐지 규칙
2) Rule 기반 탐지 특징
- Payload 검사 기반
- 문자열 비교 방식
- 정규표현식 사용 가능
- DDoS는 단위 시간당 패킷 발생량 기준 탐지
5. Snort Rule 기본 구조
Action Protocol Src_IP Src_Port Direction Dst_IP Dst_Port ( Rule Option )
예시:
alert tcp any any -> any 80 (msg:"TestAttack"; content:"Test"; sid:12345;)
6. Snort Rule Header
1) Action (동작)
| Action | 설명 |
| alert | 경고 발생 |
| log | 로그만 저장 |
| pass | 무시 |
| drop | 패킷 차단 + 로그 |
| reject | 차단 + 세션 종료(RST/ICMP) |
| sdrop | 차단만 수행 (로그 없음) |
2) Protocol
- tcp
- udp
- icmp
- ip
3) IP / Port 지정 방식
- IP
- any : 모든 IP
- 1.1.1.1 : 단일 IP
- [1.1.1.1,2.2.2.2] : 복수 IP
- 1.1.1.0/24 : 대역
- Port
- 80 : 단일 포트
- 1:1024 : 범위
- !80 : 80 제외
- 방향
- -> : 단방향
- <> : 양방향
7. Rule Option (규칙 옵션)
1) 일반 옵션 (정보 제공용)
옵션설명
| 옵션 | 설명 |
| msg | 탐지 시 출력 메시지 |
| sid | 규칙 식별자 (Local: 3,000,000 이상) |
| rev | 규칙 수정 버전 |
| classtype | 공격 유형 분류 |
| priority | 우선순위 (1이 가장 높음) |
2) Payload 옵션 (핵심 탐지 옵션)
| 옵션 | 설명 |
| content | 탐지 문자열 |
| nocase | 대소문자 구분 없음 |
| pcre | 정규표현식 |
| offset | 검색 시작 위치 |
| depth | 검색 범위 |
| distance | 이전 패턴 이후 위치 |
| within | distance 기준 검색 범위 |
| rawbytes | 디코딩 없이 Hex 검사 |
3) HTTP 관련 옵션
- http_method
- http_uri
- http_header
- http_cookie
- http_client_body
- http_state_code
- http_state_msg
→ HTTP 특정 영역만 제한적으로 검사하여 성능 향상
8. Header 관련 옵션
- fragbits / fragoffset : IP 단편화 검사
- ttl / tos / id : IP 헤더 값 검사
- flow : 패킷 흐름 방향 정의
- seq / ack / window : TCP 상태 검사
- sameip : 출발지·목적지 동일 여부
9. Threshold (임계값) 옵션
1) 목적
: 과도한 Alert 발생 방지
2) 유형
- threshold : 이벤트 횟수 비례 로그
- limit : 일정 시간 1회만 로그
- both : IP 기준 제한
10. Detection Rule 예제 해석
예시 1) 문자열 패턴 탐지
alert tcp any any -> any 80 (content:"/administrator";)
→ 웹 관리자 페이지 스캔 탐지
예시 2) HTTP Flooding 탐지
threshold:type threshold, count 10, seconds 1;
→ 1초에 10회 이상 요청 시 경고
예시 3) 비정상 TCP 플래그 탐지
flags:SF;
→ SYN + FIN 동시 설정 (비정상 패킷)
예시 4) XSS 공격 탐지
content:"<script>";
예시 5) Heartbleed 취약점 탐지
- SSL Heartbeat 패턴 기반 탐지
- depth / distance / within 조합 사용
예시 6) Detection Rule
alert tcp $EXTERNAL_NET any ⟶ $HOME_NET any (msg: “ TEST”; content: “S”; offset:3; depth:2; content: “R”; distance:3; within:2; sid:1000001;)
• 4번째 byte부터(0부터 시작) 2byte 범위에 S 패턴이 있는 지 검사, 패턴이 검사된 이 후 3byte 떨어진 위치에서 2byte 범위 내에서 R이라는 문자가 있는지 검색
