ch15_침입 탐지 시스템

Download Report

Transcript ch15_침입 탐지 시스템

침입 탐지 시스템
IT CookBook, 정보 보안 개론과 실습 : 네트워크 해킹과 보안(개정
판)
Contents
 학습목표
 침입 탐지 시스템과 침입 차단 시스템의 기능과 목적을 이해한다.
 네트워크에서 침입 탐지 시스템의 위치와 구조를 이해한다.
 침입 탐지 시스템을 설치하고 운용할 수 있다.
 내용
 침입 탐지 시스템의 기능과 목적
 침입 탐지 시스템의 구조
 침입 차단 시스템의 기능과 목적
2/29
침입 탐지 시스템의 기능과 목적
 DISA에서 발표한 미 국방성에 대한 해킹 통계 자료
 총 38,000여 회 공격을 시도하는 동안 방화벽 등으로 차단이 가능했던 공격은 13,000
여 회로 1/3 가량
 1997년 자료로, IDS의 공격에 대한 탐지 능력이 그다지 좋은 편은 아니었음
3/29
침입 탐지 시스템의 기능과 목적
 침입 탐지 시스템(IDS, Intrusion Detection System)
 근래 들어 중요성이 강조되면서 많이 발전했지만 아직 부족한 부분이 많음
 크게 다음 네 가지 요소와 기능으로 이루어져 있음
• 데이터 수집(Raw Data Collection)
• 데이터 필터링과 축약(Data Reduction and Filtering)
• 침입 탐지(Analysis and Intrusion Detection)
• 책임 추적성과 대응(Reporting and Response)
4/29
침입 탐지 시스템의 기능과 목적
 데이터 수집
 IDS는 설치 위치와 목적에 호스트 기반 IDS와 네트워크 기반 IDS로 나뉨
 호스트 기반 IDS(Host-Based IDS, HIDS)
• 윈도우나 유닉스 등의 운영체제에 부가적으로 설치되어 운용되거나 일반 클라이언트에 설치됨
• 운영체제에 설정된 사용자 계정에 따라 어떤 사용자가 어떤 접근을 시도하고, 어떤 작업을 했는지
에 대한 기록을 남기고 추적하며, 스위칭 환경과는 전혀 상관이 없음
• 전체 네트워크에 대한 침입 탐지는 불가능. 스스로가 공격 대상이 될 때만 침입 탐지 가능
• 운영체제의 취약점은 HIDS를 손상시킬 수 있으며, 다른IDS에 비해 비용이 많이 드는 편
 네트워크 기반 IDS(Network-Based IDS, NIDS)
• NIDS는 감사와 로깅을 할 때 네트워크 자원이 손실되거나 데이터가 변조되지 않음
• HIDS로는 할 수 없는 네트워크 전반의 감시를 할 수 있으며, 감시 영역이 상대적으로 아주 넓음
• IP 주소를 소유하지 않기 때문에 해커의 직접적인 공격에는 거의 완벽하게 방어할 수 있으며, 존재
사실도 숨길 수 있음
• 당한 시스템의 공격에 대한 결과를 알 수 없으며, 암호화된 내용을 검사할 수 없음
• 스위칭 환경에서 NIDS를 설치하려면 부가 장비가 필요하며, 1Gbps 이상의 네트워크에서는 정상
적으로 작동하기 힘듦
5/29
침입 탐지 시스템의 기능과 목적
 데이터 필터링과 축약
 HIDS와 NIDS를 통해 쌓인 로그에서 유효성을 확인하는 작업을 보안 감사라 함
• 보안 감사를 실시하는 입장에서는 필요에 따라 세밀하고 자세한 데이터가 필요한 경우 도 있지만,
보통은 정확하고 빠른 시간에 파악할 수 있는 데이터가 더 유용
 클리핑 레벨(Clipping Level)을 설정
• 일정 수 이상 잘못된 패스워드로 접속을 요구할 때 로그를 남기도록 한함
• 관리자는 공격 의지가 있다고 생각하는 만큼의 숫자를 클리핑 레벨로 설정
 침입 탐지
 오용 탐지(Misuse Detection)와 이상 탐지(Anomaly Detection)로 나눔
 오용 탐지 기법
• Signature Base나 Knowledge Base라고 함
• 이미 발견되고 정립된 공격 패턴을 미리 입력해두고, 해당 패턴을 탐지했을 때 이를 알려주는 것
• 탐지 오판 확률이 낮고 비교적 효율적이지만 알려진 공격 외에는 탐지할 수 없으며, 많은 데이터를
분석하는 데는 부적합
• 공격을 실시한 순서에 관한 정보는 얻기 힘듦
• 전문가 시스템(Expert System)을 이용한IDS도 이를 기반으로 함
• 상태 전이(State Transition)에 따른 탐지 방법이 있음 : 각 공격 상황에 대한 시나리오를 작성하여
, 각 상태에 따른 공격을 분석
6/29
침입 탐지 시스템의 기능과 목적
 이상 탐지 기법
• Behavior나 Statistical Detection이라고 함
• 정상적이고 평균적인 상태를 기준으로 하여, 이에 상대적으로 급격한 변화를 일으키거나 확률이
낮은 일이 발생할 경우 침입 탐지를 알리는 것
• 정량적인 분석, 통계적인 분석, 비특성 통계 분석 등이 있음
• 인공 지능 IDS는 공격 에 대해 스스로 판단하고 결정을 내려 알려주지만 판단의 근거가 확실하지
않고 오판 확률도 높음
• 면역 시스템은 새로운 공격을 당할 경우 그에 대한 학습을 스스로 하게 되어 해당 공격이 다시 일
어날 때 대응하도록 한 것. 재설치 시 최초 설치 시의 초기 상태 로 돌아가는 큰 단점이 있음
• 인공 지능과 면역 시스템은 아직 많은 상품이 개발 중이고 일부 상품이 나와 있으나 다른IDS 시스
템과 공존하는 형태로만 운용
7/29
침입 탐지 시스템의 기능과 목적
 책임 추적성과 대응
 능동적인 기능을 많이 탑재한 IDS를 침입 차단 시스템(IPS)이라고도 함
 IDS가 실행할 수 있는 능동적인 기능
• 공격자로 확인된 연결에 TCP Reset 패킷을 보내 연결을 끊는다.
• 공격자의 IP 주소나 사이트를 확인하여 라우터나 방화벽을 통해 이를 차단한다. 방화벽과 IDS는
점점 서로 연동해서 작동하도록 변하고 있으며, 이 연동이 점점 중요해져 방화벽과 IDS가 결국 하
나로 통합될 것이라는 의견도 있다.
• 공격 포트를 확인하여 라우터와 방화벽을 설정한다. 공격자가 일정 포트를 이용한 공격을 하고 있
을 때 포트를 막는 방법도 있다. 웜과 같이 정해진 포트로 급격하게 전송되는 공격을 막을 때 유용
하다.
• 심각한 사태에 이르렀을 때는 네트워크 구조 자체를 임시로 바꾸는 경우도 있다.
8/29
실습 15-1 Snort 설치하고 운용하기
실습환경
• 실습 대상 시스템 : 윈도우 XP
• 필요 프로그램 : WinPcap(WinPcap 4.0.2)
MySQL(mysql-essential-5.0.67-win32)
Snort(Snort_2_8_3_1_Installer)
HSC(hsc.v2.6.0.4)
.Net Framework 1.1
【WinPcap 설치】
1 Wireshark를 설치했다면 WinPcap이 자동 설치됨

【MySQL 설치】
2 CD를 넣고 설치 마법사로 설치. 설치 유형은 ‘Typical’선택

3 설치 완료와 설정 수준 선택

9/29
실습 15-1 Snort 설치하고 운용하기
4 서버 유형과 데이터베이스 용도 선택 : 서버 유형은 일반 PC에 설치한다면 ‘Developer

Machine’을 선택, 서버 수준 시스템이라면‘Server Machine’ 선택. 데이터베이스 용도로는
‘Multifunctional Database’ 선택

5 데이터베이스 저장 공간 설정
6 최대 가용 사용자 수 선택 : 기본 값인‘Decision Support (DSS) / OLAP’나 Manual

Setting으로 임의 값 선택
10/29
실습 15-1 Snort 설치하고 운용하기
7 서비스 포트 설정 : MySQL 기본 포트는 3306번

8 서버의 인스턴스에 대해 설정 : ‘Best Support For Multilingualism’ 선택

9 윈도우 서비스 및 PATH 설정

11/29
실습 15-1 Snort 설치하고 운용하기
10
 관리자 패스워드를 설정
11
 MySQL의 동작 여부 확인
【Snort 설치】
12
 데이터베이스 종류 선택
13
 설치할 모듈과 경로 설정
12/29
실습 15-1 Snort 설치하고 운용하기
【HSC(Honeynet Security Console) 설치】
14
 라이선스 동의
【Snort 설정】
 Snort 설치 디렉토리(기본 디렉토리는 C:\Snort) 아래에 있는 etc 디렉토리에 snort.conf
15
파일 열기
16
 모니터링할 네트워크 대역 설정 : var HOME_NET 부분에 모니터링할 네트워크 범위를
192.168.0.0/24로 설정
13/29
실습 15-1 Snort 설치하고 운용하기
17
 주요 디렉토리 경로 설정
 var RULE_PATH 부분에 Snort 탐지를 위한 디렉토리를 절대 경로로 설정한다.
var RULE_PATH C:\Snort\rules
 classification.conf를 Snort 절대 경로를 포함하도록 수정한다.
include C:\Snort\etc\classification.conf
 reference.conf를 Snort 절대 경로를 포함하도록 수정한다.
include C:\Snort\etc\reference.config
 dynamicengine를 Snort 절대 경로를 포함하도록 수정한다.
dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll
 dynamicpreprocessor directory를 Snort 절대 경로를 포함하도록 수정한다.
dynamicpreprocessor directory C:\Snort\lib\snort_dynamicpreprocessor

18 Snort 사이트(http://www.snort.org/pub-bin/downloads.cgi)에서 Snort 탐지 룰
(Community Rules)을 다운로드해 압축을 품. 생성된 rules와 docs 디렉토리를 각각
C:\Snort\rules와 C:\Snort\doc\signature에 복사
14/29
실습 15-1 Snort 설치하고 운용하기
19
 Snort 탐지 룰에서‘/ ’문자를 윈도우 디렉토리 구분자인‘\ ’로 변경
【MySQL과 Snort 연동 부분 설정】
 snort 데이터베이스 생성 mysqladmin -u root -p create snort
20
21
 snort 데이터베이스 구조 생성 mysql -D snort -u root -p < create_mysql
15/29
실습 15-1 Snort 설치하고 운용하기
 snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패
22
스워드 삽입. dbname에는 데이터베이스 생성 시 사용한 데이터베이스 이름을 사용
output database: log, mysql, user=root password=[password]
dbname=snort host=localhost
【Snort 설정 점검 】
23
 Snort 적용 가능 인터페이스 확인 mysqladmin -u root -p create snort
16/29
실습 15-1 Snort 설치하고 운용하기
24
 Snort 설치 상태 점검 완료
snort -T -l c:\snort\log -c c:\snort\etc\snort.conf -i 2
 -T : Snort 설정 파일 정상 여부 테스트
 -l : 로그 파일 저장 위치
 -c : Snort 설정 파일 위치
 -i : 모니터링할 네트워크 카드의 번호
 W : 결과를 통해 확인 후 지정
17/29
실습 15-1 Snort 설치하고 운용하기
【 HSC와 MySQL의 연동 】
25 HSC가 사용할 데이터베이스 생성

mysqladmin -u root create aw_hsc
26
 HSC가 사용할 데이터베이스 구조 생성 mysql -D aw_hsc -u root -p < hsc.v104.sql
27
 HSC 실행
18/29
실습 15-1 Snort 설치하고 운용하기
28
 IDS 생성
29 HSC와 MySQL 접속 성공 후 IDS 항목 확인
【Snort 실행】
30
 Snort 구동 snort -c c:\snort\etc\snort.conf -l c:\snort\log -i 2
19/29
실습 15-1 Snort 설치하고 운용하기
31
 HSC를 통한 Snort 증적 모니터링
20/29
침입 탐지 시스템의 구조
 NIDS(Network Intrusion Detection System)의 설치 위치
21/29
침입 탐지 시스템의 구조
➊ 패킷이 라우터로 들어오기 전
• 실제로 네트워크에 실행되는 모든 공격을 탐지할 수 있다. 따라서 공격 의도가 있는 이들을 미연에
쉽게 파악할 수 있다. 그러나 너무 많은 공격에 대한 데이터를 수집하여, 정작 네트워크에 치명적
인 공격에는 대처하기 어렵다.
➋ 라우터 뒤
• 라우터의 패킷 필터링을 거친 후의 패킷들을 검사한다. ➊의 경우보다는 좀 더 적은 수의 공격을 탐
지하며 좀 더 강력한 의지가 있는 공격자를 탐지할 수 있다.
➌ 방화벽 뒤
• 방화벽 뒤에서 탐지되는 공격은 네트워크에 영향을 준다. 따라서 탐지되는 공격에 대한 정책과 방
화벽과의 연동성이 가장 중요한 부분이다. 내부에서 외부를 향한 공격 역시 탐지 가능한 곳이므로
내부 공격자도 어느 정도 탐지가 가능하다. 네트워크 특성과 목적에 따라 조금 다른 경우도 있지만
, 만약 침입 탐지 시스템을 한 대만 설치할 수 있다면 이곳에 설치해야 한다.
➍ 내부 네트워크
• 방화벽은 외부의 침입을 일차적으로 차단한다. 하지만 내부에 대해서는 거의 무방비 상태라고 할
수 있다. FBI의 통계 자료에 따르면 가장 치명적인 공격자는 내부 공격자며, 실제로 해킹으로 인한
손실의 75% 가량이 내부 공격자 때문에 발생한다고 한다. 사람 수나 사용하는 사람의 특성에 따라
관리하고자 하는 내부 클라이언트들을 신용할 수 없을 때, 내부 클라이언트에 의한 내부 네트워크
해킹을 감시하고자 할 때 설치할 수 있는 곳이다.
➎DMZ
• 아주 능력이 뛰어난 외부 공격자와 내부 공격자들에 의한 중요 데이터 손실이나 서비스의 중단을
막기 위함이다. 중요한 데이터와 자원을 보호하기 위해 별도의 IDS를 운영하기도 한다.
22/29
침입 탐지 시스템의 구조
 설치한 IDS들을 모두 개별적으로 관리하지는 않음. 정책에 따라 각 시스템을 통합해서
관리하거나 부분적으로 분할해서 운영
 각 IDS 시스템이 외부에 있는 관리 시스템으로 로그 정보를 보내는 구성
 IDS를 설치한 곳에서 설비 및 전문화된 인력의 부재로 중앙 집중화된 관리가 어려울 경
우 외부 침입 탐지 전문가에게 위임하는 형태다. 현재 많은 보안 업체가 제공하는 관제
서비스도 이와 비슷
23/29
침입 탐지 시스템의 구조
24/29
침입 탐지 시스템의 구조
25/29
침입 차단 시스템의 기능과 목적
 침입 차단 시스템(IPS, Intrusion Prevention System)
 침입 탐지 시스템에 방화벽의 차단 기능을 부가한 시스템
 방화벽은 공격 차단이 가능하지만 새로운 패턴의 공격에 대한 적응력이 무척 낮으며, 대
부분 IP나 포트를 통한 차단만 가능. 실시간 대응을 불가능
 침입 탐지 시스템은 실시간 탐지는 가능하지만, 그에 대한 대응책을 제시할 수 없음
 속도 Eoansd에 현재 방화벽과 침입 탐지 시스템만으로는 해킹, 바이러스, 웜의 공격을
막을 수 없음
• 취약점이 발표된 후 웜, 바이러스, 해킹 공격으로 발전하는데, 과거에 일 년에서 반년의 시간이 걸
리던 것이, 지금은 아침에 발표되면 저녁쯤에 세계의 네트워크에 해당 취약점을 공격하는 웜이 떠
돌게 됨(Zero Day Attack)
 이를 위한 대책이 IPS
 패킷에 대한 검사 수준이 높아 방화벽 밖에 설치할 경우 방화벽보다 높은 수준의 성능이
필요해 일반적으로 방화벽 다음에 설치
 성능이 충분이 강력하고 방화벽이 오히려 성능이 부족한 경우에는 IPS를 앞단에 두고,
그 뒤에 IPS를 설치하기도 함
• 이렇게 설치되는 IPS는 네트워크의 변형이 불필요하기 때문에 다른 보안 솔루션보다 설치가 무척
간편
 높은 성능을 내기 위해서 소프트웨어를 하드웨어 칩으로 만든 ASIC를 많이 이용. ASIC
으로 만들어진 장비를 보통 어플라이언스(Appliance)라고 부름
26/29
침입 차단 시스템의 기능과 목적
27/29
침입 차단 시스템의 기능과 목적
28/29
IT CookBook, 정보 보안 개론과 실습 : 네트워크 해킹과 보안(개정
판)