+ All Categories
Home > Documents > 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분...

정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분...

Date post: 12-May-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
29
영동대학교 스마트IT학부: 컴퓨터와 해킹 이호준 [email protected] 침입 탐지 시스템
Transcript
Page 1: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

영동대학교 스마트IT학부: 컴퓨터와 해킹

이호준 [email protected]

침입 탐지 시스템

Page 2: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

2/29

Contents

학습목표

침입 탐지 시스템과 침입 차단 시스템의 기능과 목적을 이해한다.

네트워크에서 침입 탐지 시스템의 위치와 구조를 이해한다.

침입 탐지 시스템을 설치하고 운용할 수 있다.

내용

침입 탐지 시스템의 기능과 목적

침입 탐지 시스템의 구조

침입 차단 시스템의 기능과 목적

Page 3: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

3/29

DISA에서 발표한 미 국방성에 대한 해킹 통계 자료 총 38,000여 회 공격을 시도하는 동안 방화벽 등으로 차단이 가능했던 공격은 13,000

여 회로 1/3 가량

1997년 자료로, IDS의 공격에 대한 탐지 능력이 그다지 좋은 편은 아니었음

침입 탐지 시스템의 기능과 목적

Page 4: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

4/29

침입 탐지 시스템(IDS, Intrusion Detection System) 근래 들어 중요성이 강조되면서 많이 발전했지만 아직 부족한 부분이 많음

크게 다음 네 가지 요소와 기능으로 이루어져 있음

• 데이터 수집(Raw Data Collection)

• 데이터 필터링과 축약(Data Reduction and Filtering)

• 침입 탐지(Analysis and Intrusion Detection)

• 책임 추적성과 대응(Reporting and Response)

침입 탐지 시스템의 기능과 목적

Page 5: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

5/29

데이터 수집 IDS는 설치 위치와 목적에 호스트 기반 IDS와 네트워크 기반 IDS로 나뉨

호스트 기반 IDS(Host-Based IDS, HIDS)

• 윈도우나 유닉스 등의 운영체제에 부가적으로 설치되어 운용되거나 일반 클라이언트에 설치됨

• 운영체제에 설정된 사용자 계정에 따라 어떤 사용자가 어떤 접근을 시도하고, 어떤 작업을 했는지에 대한 기록을 남기고 추적하며, 스위칭 환경과는 전혀 상관이 없음

• 전체 네트워크에 대한 침입 탐지는 불가능. 스스로가 공격 대상이 될 때만 침입 탐지 가능

• 운영체제의 취약점은 HIDS를 손상시킬 수 있으며, 다른IDS에 비해 비용이 많이 드는 편

네트워크 기반 IDS(Network-Based IDS, NIDS)

• NIDS는 감사와 로깅을 할 때 네트워크 자원이 손실되거나 데이터가 변조되지 않음

• HIDS로는 할 수 없는 네트워크 전반의 감시를 할 수 있으며, 감시 영역이 상대적으로 아주 넓음

• IP 주소를 소유하지 않기 때문에 해커의 직접적인 공격에는 거의 완벽하게 방어할 수 있으며, 존재 사실도 숨길 수 있음

• 당한 시스템의 공격에 대한 결과를 알 수 없으며, 암호화된 내용을 검사할 수 없음

• 스위칭 환경에서 NIDS를 설치하려면 부가 장비가 필요하며, 1Gbps 이상의 네트워크에서는 정상적으로 작동하기 힘듦

침입 탐지 시스템의 기능과 목적

Page 6: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

6/29

데이터 필터링과 축약 HIDS와 NIDS를 통해 쌓인 로그에서 유효성을 확인하는 작업을 보안 감사라 함

• 보안 감사를 실시하는 입장에서는 필요에 따라 세밀하고 자세한 데이터가 필요한 경우 도 있지만, 보통은 정확하고 빠른 시간에 파악할 수 있는 데이터가 더 유용

클리핑 레벨(Clipping Level)을 설정

• 일정 수 이상 잘못된 패스워드로 접속을 요구할 때 로그를 남기도록 한함

• 관리자는 공격 의지가 있다고 생각하는 만큼의 숫자를 클리핑 레벨로 설정

침입 탐지 오용 탐지(Misuse Detection)와 이상 탐지(Anomaly Detection)로 나눔

오용 탐지 기법

• Signature Base나 Knowledge Base라고 함

• 이미 발견되고 정립된 공격 패턴을 미리 입력해두고, 해당 패턴을 탐지했을 때 이를 알려주는 것

• 탐지 오판 확률이 낮고 비교적 효율적이지만 알려진 공격 외에는 탐지할 수 없으며, 많은 데이터를 분석하는 데는 부적합

• 공격을 실시한 순서에 관한 정보는 얻기 힘듦

• 전문가 시스템(Expert System)을 이용한IDS도 이를 기반으로 함

• 상태 전이(State Transition)에 따른 탐지 방법이 있음 : 각 공격 상황에 대한 시나리오를 작성하여, 각 상태에 따른 공격을 분석

침입 탐지 시스템의 기능과 목적

Page 7: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

7/29

이상 탐지 기법

• Behavior나 Statistical Detection이라고 함

• 정상적이고 평균적인 상태를 기준으로 하여, 이에 상대적으로 급격한 변화를 일으키거나 확률이 낮은 일이 발생할 경우 침입 탐지를 알리는 것

• 정량적인 분석, 통계적인 분석, 비특성 통계 분석 등이 있음

• 인공 지능 IDS는 공격 에 대해 스스로 판단하고 결정을 내려 알려주지만 판단의 근거가 확실하지 않고 오판 확률도 높음

• 면역 시스템은 새로운 공격을 당할 경우 그에 대한 학습을 스스로 하게 되어 해당 공격이 다시 일어날 때 대응하도록 한 것. 재설치 시 최초 설치 시의 초기 상태 로 돌아가는 큰 단점이 있음

• 인공 지능과 면역 시스템은 아직 많은 상품이 개발 중이고 일부 상품이 나와 있으나 다른IDS 시스템과 공존하는 형태로만 운용

침입 탐지 시스템의 기능과 목적

Page 8: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

8/29

책임 추적성과 대응 능동적인 기능을 많이 탑재한 IDS를 침입 차단 시스템(IPS)이라고도 함

IDS가 실행할 수 있는 능동적인 기능

• 공격자로 확인된 연결에 TCP Reset 패킷을 보내 연결을 끊는다.

• 공격자의 IP 주소나 사이트를 확인하여 라우터나 방화벽을 통해 이를 차단한다. 방화벽과 IDS는 점점 서로 연동해서 작동하도록 변하고 있으며, 이 연동이 점점 중요해져 방화벽과 IDS가 결국 하나로 통합될 것이라는 의견도 있다.

• 공격 포트를 확인하여 라우터와 방화벽을 설정한다. 공격자가 일정 포트를 이용한 공격을 하고 있을 때 포트를 막는 방법도 있다. 웜과 같이 정해진 포트로 급격하게 전송되는 공격을 막을 때 유용하다.

• 심각한 사태에 이르렀을 때는 네트워크 구조 자체를 임시로 바꾸는 경우도 있다.

침입 탐지 시스템의 기능과 목적

Page 9: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

9/29

【WinPcap 설치】

Wireshark를 설치했다면 WinPcap이 자동 설치됨

【MySQL 설치】

CD를 넣고 설치 마법사로 설치. 설치 유형은 ‘Typical’선택

설치 완료와 설정 수준 선택

2

실습 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

실습환경

1

3

Page 10: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

10/29

서버 유형과 데이터베이스 용도 선택 : 서버 유형은 일반 PC에 설치한다면 ‘Developer Machine’을 선택, 서버 수준 시스템이라면‘Server Machine’ 선택. 데이터베이스 용도로는‘Multifunctional Database’ 선택

데이터베이스 저장 공간 설정

최대 가용 사용자 수 선택 : 기본 값인‘Decision Support (DSS) / OLAP’나 Manual Setting으로 임의 값 선택

실습 15-1 Snort 설치하고 운용하기

4

5

6

Page 11: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

11/29

서비스 포트 설정 : MySQL 기본 포트는 3306번

서버의 인스턴스에 대해 설정 : ‘Best Support For Multilingualism’ 선택

윈도우 서비스 및 PATH 설정

실습 15-1 Snort 설치하고 운용하기

7

8

9

Page 12: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

12/29

관리자 패스워드를 설정

MySQL의 동작 여부 확인

【Snort 설치】

데이터베이스 종류 선택

설치할 모듈과 경로 설정

실습 15-1 Snort 설치하고 운용하기

10

11

12

13

Page 13: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

13/29

【HSC(Honeynet Security Console) 설치】

라이선스 동의

【Snort 설정】

Snort 설치 디렉토리(기본 디렉토리는 C:\Snort) 아래에 있는 etc 디렉토리에 snort.conf 파일 열기

모니터링할 네트워크 대역 설정 : var HOME_NET 부분에 모니터링할 네트워크 범위를 192.168.0.0/24로 설정

실습 15-1 Snort 설치하고 운용하기

14

16

15

Page 14: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

14/29

주요 디렉토리 경로 설정

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

Snort 사이트(http://www.snort.org/pub-bin/downloads.cgi)에서 Snort 탐지 룰(Community Rules)을 다운로드해 압축을 품. 생성된 rules와 docs 디렉토리를 각각 C:\Snort\rules와 C:\Snort\doc\signature에 복사

실습 15-1 Snort 설치하고 운용하기

17

18

Page 15: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

15/29

Snort 탐지 룰에서‘/ ’문자를 윈도우 디렉토리 구분자인‘\ ’로 변경

【MySQL과 Snort 연동 부분 설정】

snort 데이터베이스 생성 mysqladmin -u root -p create snort

snort 데이터베이스 구조 생성 mysql -D snort -u root -p < create_mysql

실습 15-1 Snort 설치하고 운용하기

19

20

21

Page 16: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

16/29

snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드 삽입. dbname에는 데이터베이스 생성 시 사용한 데이터베이스 이름을 사용

output database: log, mysql, user=root password=[password] dbname=snort host=localhost

【Snort 설정 점검 】

Snort 적용 가능 인터페이스 확인 mysqladmin -u root -p create snort

실습 15-1 Snort 설치하고 운용하기

22

23

Page 17: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

17/29

Snort 설치 상태 점검 완료

snort -T -l c:\snort\log -c c:\snort\etc\snort.conf -i 2

-T : Snort 설정 파일 정상 여부 테스트

-l : 로그 파일 저장 위치

-c : Snort 설정 파일 위치

-i : 모니터링할 네트워크 카드의 번호

W : 결과를 통해 확인 후 지정

실습 15-1 Snort 설치하고 운용하기

24

Page 18: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

18/29

【 HSC와 MySQL의 연동 】

HSC가 사용할 데이터베이스 생성 mysqladmin -u root create aw_hsc

HSC가 사용할 데이터베이스 구조 생성 mysql -D aw_hsc -u root -p < hsc.v104.sql

HSC 실행

실습 15-1 Snort 설치하고 운용하기

25

26

27

Page 19: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

19/29

IDS 생성 HSC와 MySQL 접속 성공 후 IDS 항목 확인

【Snort 실행】

Snort 구동 snort -c c:\snort\etc\snort.conf -l c:\snort\log -i 2

실습 15-1 Snort 설치하고 운용하기

28 29

30

Page 20: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

20/29

HSC를 통한 Snort 증적 모니터링

실습 15-1 Snort 설치하고 운용하기

31

Page 21: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

21/29

NIDS(Network Intrusion Detection System)의 설치 위치

침입 탐지 시스템의 구조

Page 22: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

22/29

➊ 패킷이 라우터로 들어오기 전

• 실제로 네트워크에 실행되는 모든 공격을 탐지할 수 있다. 따라서 공격 의도가 있는 이들을 미연에 쉽게 파악할 수 있다. 그러나 너무 많은 공격에 대한 데이터를 수집하여, 정작 네트워크에 치명적인 공격에는 대처하기 어렵다.

➋ 라우터 뒤

• 라우터의 패킷 필터링을 거친 후의 패킷들을 검사한다. ➊의 경우보다는 좀 더 적은 수의 공격을 탐지하며 좀 더 강력한 의지가 있는 공격자를 탐지할 수 있다.

➌ 방화벽 뒤

• 방화벽 뒤에서 탐지되는 공격은 네트워크에 영향을 준다. 따라서 탐지되는 공격에 대한 정책과 방화벽과의 연동성이 가장 중요한 부분이다. 내부에서 외부를 향한 공격 역시 탐지 가능한 곳이므로 내부 공격자도 어느 정도 탐지가 가능하다. 네트워크 특성과 목적에 따라 조금 다른 경우도 있지만, 만약 침입 탐지 시스템을 한 대만 설치할 수 있다면 이곳에 설치해야 한다.

➍ 내부 네트워크

• 방화벽은 외부의 침입을 일차적으로 차단한다. 하지만 내부에 대해서는 거의 무방비 상태라고 할 수 있다. FBI의 통계 자료에 따르면 가장 치명적인 공격자는 내부 공격자며, 실제로 해킹으로 인한 손실의 75% 가량이 내부 공격자 때문에 발생한다고 한다. 사람 수나 사용하는 사람의 특성에 따라 관리하고자 하는 내부 클라이언트들을 신용할 수 없을 때, 내부 클라이언트에 의한 내부 네트워크 해킹을 감시하고자 할 때 설치할 수 있는 곳이다.

➎DMZ

• 아주 능력이 뛰어난 외부 공격자와 내부 공격자들에 의한 중요 데이터 손실이나 서비스의 중단을 막기 위함이다. 중요한 데이터와 자원을 보호하기 위해 별도의 IDS를 운영하기도 한다.

침입 탐지 시스템의 구조

Page 23: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

23/29

설치한 IDS들을 모두 개별적으로 관리하지는 않음. 정책에 따라 각 시스템을 통합해서

관리하거나 부분적으로 분할해서 운영

각 IDS 시스템이 외부에 있는 관리 시스템으로 로그 정보를 보내는 구성

IDS를 설치한 곳에서 설비 및 전문화된 인력의 부재로 중앙 집중화된 관리가 어려울 경

우 외부 침입 탐지 전문가에게 위임하는 형태다. 현재 많은 보안 업체가 제공하는 관제

서비스도 이와 비슷

침입 탐지 시스템의 구조

Page 24: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

24/29

침입 탐지 시스템의 구조

Page 25: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

25/29

침입 탐지 시스템의 구조

Page 26: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

26/29

침입 차단 시스템의 기능과 목적

침입 차단 시스템(IPS, Intrusion Prevention System) 침입 탐지 시스템에 방화벽의 차단 기능을 부가한 시스템

방화벽은 공격 차단이 가능하지만 새로운 패턴의 공격에 대한 적응력이 무척 낮으며, 대

부분 IP나 포트를 통한 차단만 가능. 실시간 대응을 불가능

침입 탐지 시스템은 실시간 탐지는 가능하지만, 그에 대한 대응책을 제시할 수 없음

속도 Eoansd에 현재 방화벽과 침입 탐지 시스템만으로는 해킹, 바이러스, 웜의 공격을

막을 수 없음

• 취약점이 발표된 후 웜, 바이러스, 해킹 공격으로 발전하는데, 과거에 일 년에서 반년의 시간이 걸리던 것이, 지금은 아침에 발표되면 저녁쯤에 세계의 네트워크에 해당 취약점을 공격하는 웜이 떠돌게 됨(Zero Day Attack)

이를 위한 대책이 IPS

패킷에 대한 검사 수준이 높아 방화벽 밖에 설치할 경우 방화벽보다 높은 수준의 성능이

필요해 일반적으로 방화벽 다음에 설치

성능이 충분이 강력하고 방화벽이 오히려 성능이 부족한 경우에는 IPS를 앞단에 두고,

그 뒤에 IPS를 설치하기도 함

• 이렇게 설치되는 IPS는 네트워크의 변형이 불필요하기 때문에 다른 보안 솔루션보다 설치가 무척 간편

높은 성능을 내기 위해서 소프트웨어를 하드웨어 칩으로 만든 ASIC를 많이 이용.

ASIC으로 만들어진 장비를 보통 어플라이언스(Appliance)라고 부름

Page 27: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

27/29

침입 차단 시스템의 기능과 목적

Page 28: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

28/29

침입 차단 시스템의 기능과 목적

Page 29: 정보보안 개론과 실습:네트워크 · 2012-11-16 · snort.conf 파일에서 다음 부분 주석(#)을 제거. 패스워드 부분에 앞서 설정한 MySQL 패스워드

영동대학교 스마트IT학부: 컴퓨터와 해킹


Recommended