열려 있는
닫다

Linux에서 Snort 설치 및 구성. IDS SNORT를 사용해 연습해 보세요. Snort의 구조와 기능

오늘날 무선 네트워크의 보안은 종종 많이 이야기되지만 네트워크 해킹은 매우 먼 것으로 인식됩니다. 우리는 이미 출판된 자료 WEP 보안을 크랙하는 방법에 대해 알아보세요. 게다가 시간이 좀 지나서 나온건데 계속네트워크를 보호하는 방법에 대해 알아보세요. 오늘은 무선 네트워크 보안을 확인하는 도구에 대해 집중적으로 살펴보겠습니다. 또한 WLAN에 대한 일종의 "화재 경보"인 공격 탐지 시스템도 있습니다.

그건 그렇고, WLAN 해킹에 대해 이야기하면 가정 및 소규모 사무실 네트워크 사용자가 특히 취약한 것 같습니다. 이는 주로 무선 네트워크를 보호하는 것 외에 다른 작업이 있기 때문입니다. 그리고 대기업과 달리 전문가를 채용할 기회도 없습니다.

그러나 모든 것이 보이는 것만큼 슬픈 것은 아닙니다. 본질적으로 "보안"과 "무선 네트워크"라는 단어의 조합이 터무니 없어 보이지만 무선 네트워크의 보안을 평가하는 방법이 있습니다. 침입 감지 시스템(IDS)은 적군이 틈을 찾고 있는 동안 잠재적인 침입을 미리 감지할 수 있습니다. 물론 이러한 시스템은 완전한 보안을 보장할 수는 없지만(그런데 무엇을 할 수 있습니까?) 방화벽 및 기타 보안 조치와 결합하면 매우 유용할 수 있습니다. IDS는 일종의 보안 경보라는 것이 일반적으로 인정됩니다. 즉, 공격에 대해서만 알리고 공격자와의 작업은 다른 시스템 및 수단(물리적 시스템 포함)에 맡깁니다.

쌀. 1. 스노트 IDS.


쌀. 3. 링크시스 WRT54G.

아래에서는 펌웨어가 포함된 WRT54G를 기반으로 한 예를 제공합니다. 오픈WRT RC 2(코드 명 "화이트 러시안"). 실제로 무선 라우터용 Linux 배포판은 많이 있지만 OpenWRT 펌웨어는 간단하고 가벼우며 Debian Linux처럼 패키지되어 있기 때문에 선택했습니다.


쌀. 4. 직장에서 OpenWRT를 사용하세요.

경고. OpenWRT, Snort Wireless 또는 기타 대체 펌웨어 버전을 WRT54G에 로드하면 보증이 무효화됩니다. 대체 펌웨어 버전 플래싱을 시작하기 전에 다음을 권장합니다. 다운로드현재 펌웨어 버전의 복사본

OpenWRT 설치에 대해서는 자세히 설명하지 않겠습니다. 훌륭한 설치 가이드. 설치가 완료되면 Telnet()을 사용하여 라우터에 연결하고 결과를 즐길 수 있습니다.

라우터에 OpenWRT를 설치한 후 프로그램을 다운로드하여 설치할 수 있습니다. 스노트 무선. 이 모든 작업은 언급된 OpenWRT 패키지 시스템을 통해 수행할 수 있습니다. 다음 명령을 실행하세요. IPkg다음 매개변수를 사용합니다.

ipkg 설치 http://nthill.free.fr/openwrt/ipkg/testing/20041204/snort-wireless_2.1.1-1_mipsel.ipk

어떤 사람들은 이 패키지가 1년이 넘었다는 점을 좋아하지 않을 수도 있습니다. 하지만 여기에는 필요한 모든 IDS 기능이 있고 이후의 모든 Snort 규칙도 ipkg를 통해 다운로드할 수 있으므로 문제가 없습니다(자세한 내용: OpenWRT 추적기 페이지). PC에서 액세스 포인트를 구성하기로 결정한 경우 Snort Wireless 소스 코드를 다운로드하여 컴퓨터에서 직접 컴파일할 수 있습니다. 플래그를 추가해야 합니다. --사용 가능한 무선그렇지 않으면 Wi-Fi 전처리기가 작동하지 않습니다.

Snort Wireless는 일반 Snort처럼 작동하지만 무선 액세스 포인트용으로 특별히 설계되어 공격으로부터 효과적으로 보호할 수 있습니다. 특히 여기에는 다음과 같은 새로운 규칙 프로토콜이 포함되어 있습니다. 와이파이 IDS가 일반적인 WLAN 공격의 일반적인 무선 트래픽을 적절하게 격리할 수 있도록 합니다. 예를 들어 Netstumbler를 사용한 동일한 공격이나 WEP 크랙 시도 등이 있습니다. Snort Wireless에서 Wi-Fi 프로토콜을 사용하는 것은 Snort의 일반 규칙을 설정하는 것과 매우 유사합니다. 한 가지 예외는 첫 번째와 두 번째 노드의 IP 주소와 포트를 입력하는 대신 해당 MAC 주소를 사용해야 한다는 것입니다.

이 시점에서 작동하는 Snort Wireless가 있습니다. 선택한 네트워크에서 사용하도록 설정하는 단계로 넘어갑니다. ipkg를 실행하면 Snort가 해당 디렉터리에 설치됩니다. /etc/코골이라우터에서. 다른 Unix 프로그램과 마찬가지로 Snort는 네트워크 환경에 대한 정보와 모니터링하려는 다양한 공격 패턴을 지정할 수 있는 편집 가능한 구성 파일을 사용합니다. 파일 이름은 다음과 같습니다. snort.conf (쌀. 5) 디렉토리에 위치합니다. /etc/코골이. 텍스트 편집기에서 열어야 합니다(라우터에 없으면 ipkg를 사용하여 다운로드하세요).


쌀. 5. Snort.conf 구성 파일.

이제 IDS가 실행 중인 액세스 포인트의 이름과 모니터링하려는 클라이언트의 MAC 주소를 포함하여 필요한 모든 네트워크 매개변수를 구성할 수 있습니다. 여기에서 구성할 수 있는 설정이 많이 있으므로 모든 설정을 주의 깊게 검토하여 누락된 항목이 없는지 확인하세요.

특히 Snort Wireless의 Wi-Fi 전용 전처리기를 살펴보세요. 여기에는 NetStumbler 및 MAC 주소 스푸핑 시도와 같은 프로그램에 의한 수동 네트워크 검색을 탐지하는 전처리기가 포함되어 있습니다. 우리는 중요한 전처리기를 별도로 고려하기로 결정했습니다.


쌀. 6. AntiStumbler 전처리기를 사용하면 정찰 공격에 대해 알릴 수 있습니다.

  • 안티스텀블러. NetStumbler 및 MacStumbler와 같은 프로그램( 쌀. 6), null SSID를 사용하여 액세스 포인트를 감지합니다. 이러한 SSID는 브로드캐스트 역할을 하며 다른 액세스 포인트가 해당 SSID를 요청 노드에 보내도록 합니다. 이 기능은 사용 가능한 무선 네트워크를 검색할 때 유용합니다. AntiStumbler 전처리기는 하나의 MAC 주소에서 너무 많은 null SSID가 전송되고 있음을 인식하여 경보를 울릴 수 있습니다.
    메모. 이 전처리기는 다음과 같은 프로그램의 정의를 허용하지 않습니다. 키즈멧, 이는 802.11 프레임을 수동적으로 수신하고 요청을 보내지 않기 때문입니다.
  • 사망홍수. 이 공격은 우리의 문서에 자세히 설명되어 있습니다. WEP 해킹에 관한 자료. 액세스 포인트에서 호스트 연결을 끊고 WEP 크래킹 중에 분석을 위한 추가 패킷을 제공하는 재연결 시도를 강제하는 데 사용됩니다. 또한 이 공격은 액세스 포인트의 "서비스 거부"(DoS)에도 사용될 수 있습니다. DeauthFlood 전처리기는 단위 시간당 인증 해제 프레임 수를 계산하여 이러한 유형의 공격을 인식하고 필요한 경우 경보를 발생시킵니다.
  • 승인 홍수. 공격은 이전 공격과 유사하지만 AuthFlood 전처리기는 너무 많은 인증 시도, 즉 클라이언트가 무선 네트워크에 연결하려는 시도를 감지하여 액세스 포인트에 대한 DoS 공격으로 사용될 수 있습니다.
  • 맥스푸프. 액세스 포인트에 대한 액세스를 제한하는 가장 효과적인 방법 중 하나는 허용된 클라이언트의 MAC 주소 목록을 만드는 것입니다. 불행하게도 공격자는 자신의 컴퓨터의 MAC 주소를 스푸핑하여 액세스 포인트에 연결할 수 있습니다. MacSpoof 전처리기는 패킷 번호를 확인하고, MAC 주소 스푸핑 가능성을 나타내는 불일치가 감지되면 경보를 발생시킵니다.
  • RogueAP. 외계인(“적”) 액세스 포인트는 사용자가 실수로 접속하여 개인 데이터를 전송할 수 있도록 일반 액세스 포인트로 위장합니다. 이 전처리기 아직 구현되지 않았습니다그러나 향후 릴리스에서는 다른 사람의 액세스 포인트에 대한 근접성을 보고할 수 있을 것입니다.

또한 Snort Wireless에는 수많은 상황에 대해 미리 정의된 많은 규칙이 포함되어 있습니다. 네트워크 구성에 따라 일부 규칙은 매우 편리할 수 있습니다. 예를 들어 웹 서버가 네트워크에서 실행 중인 경우 모든 웹 규칙입니다. 규칙을 활성화하려면 Snort 구성 파일에서 해당 줄의 주석 처리를 제거하기만 하면 됩니다. 개별 규칙 세트는 기본적으로 디렉터리에 저장됩니다. /etc/snort/규칙, 그 중 하나는 텍스트 편집기를 사용하여 볼 수 있습니다. 세트의 규칙은 Snort 자체와 정확히 동일하게 설정됩니다. 그런데 예제를 따라하면 쉽게 규칙을 직접 작성할 수 있습니다.


쌀. 7. Snort 규칙이 포트 검색 시스템을 감지했습니다.

진행 중

파일이 snort.conf준비가 되면 Snort를 시작할 수 있습니다. 시작 시 출력부터 작동 모드까지 모든 것을 결정하는 많은 매개변수를 지정할 수 있습니다. 먼저 다음 매개변수(Telnet 옵션에서)를 사용하여 Snort를 실행해 보겠습니다.

snort -D -A 전체

이 명령은 Snort를 백그라운드 프로세스로 시작하므로 안심하고 셸 작업을 계속할 수 있습니다. 경보가 발생하면 완전한 정보가 로그에 기록됩니다.

이제 Snort가 작동하므로 무선 네트워크를 보호하는 추가 방법을 생각할 수 있습니다. 연락할 수 있다고 해보자 키즈멧- 추가 침입 탐지 시스템으로 배포할 수 있는 Snort와 유사한 유틸리티입니다. Snort는 OSI 모델의 세 번째 계층, 즉 IP 및 기타 트래픽을 담당하는 네트워크 계층에서만 작동합니다. Kismet은 두 번째 수준, 즉 이더넷 프레임을 담당하는 채널 수준에서 작동합니다. 따라서 두 시스템을 쌍으로 배포하면 전반적인 보안이 크게 향상됩니다.


쌀. 8. Kismet이 작동 중입니다.

데이터베이스에 로그를 기록하도록 Snort를 구성하면 추가 분석이 더 쉬워집니다. 다니엘 발터가 썼다 관리 MySQL 및 PostgreSQL 데이터베이스에서 녹화를 설정하는 방법에 대해 알아보세요. 액세스 포인트 역할을 하는 시스템에서 Gentoo Linux를 사용하는 경우 더 나아가서 Apache를 설치하고 웹을 통해 로그 표시를 구성할 수 있습니다. 그 자리에서 젠투 위키이러한 설정에 대한 자세한 설명을 찾을 수 있습니다.


쌀. 9. MySQL, ACID 및 Apache를 통해 Snort 로그를 봅니다.

결론

우리는 Snort 작동 방식의 기본 원칙만 다루었습니다. 원칙적으로 기사의 자료를 기반으로 액세스 포인트에서 시스템을 구성할 수 있습니다. 그러나 Snort에는 기사에 설명된 것보다 더 많은 기능이 있습니다. 특히 다음을 만들 수 있습니다. 독립적으로 규칙을 정하다, 이는 Snort를 네트워크에 더 깊이 통합하는 데 도움이 됩니다.

마지막으로, 무선 네트워크를 효과적으로 보호하려면 Snort와 규칙을 모두 최신 상태로 유지해야 한다는 점을 잊지 마십시오. 정기적으로 방문하는 것을 잊지 마세요 스노트 무선, 그리고 ipkg 패키지 추적기(OpenWRT 설치의 경우) 또는 Snort 규칙 페이지(다른 사람들을 위해).

다른 보안 도구와 마찬가지로 Snort는 네트워크 보호를 위한 만병통치약이 아닙니다. 이것은 요새의 요새 중 하나일 뿐입니다. 그러나 방어 단지에서는 매우 잘 작동합니다.


출판일: 2009년 9월 21일
번역: S.Vladimirsky
양도일 : 2009년 10월 2일

이 가이드에서는 Synaptic Ubuntu 패키지 관리자를 사용하여 Ubuntu 9.04에서 Snort, ACIDBASE(핵심 분석 및 보안 엔진), MySQL 및 Apache2 패키지가 포함된 침입 탐지 시스템(IDS)을 설치하고 구성하는 방법을 설명합니다. Snort는 네트워크를 모니터링하고 가능한 위협에 대해 경고하는 데 도움이 됩니다. 이 경우 Snort는 MySQL 데이터베이스에 대한 로그 파일을 생성하고 ACIDBASE를 사용하면 웹 브라우저의 그래픽 인터페이스에 해당 파일을 표시할 수 있습니다.

1. 시스템 준비 및 소프트웨어 설치.

1.1 설치.

여기에서 Desktop Ubuntu 9.04 32비트 또는 64비트를 다운로드하십시오: http://www.ubuntu.com/getubuntu/download

1.2 시스템 및 네트워크 설정

컴퓨터를 네트워크에 연결하십시오. 시스템은 다양한 설정으로 작동할 수 있지만 다음 구성이 선호됩니다.

  • 비무장지대(DMZ)에 위치하고 있습니다.
  • NAT를 사용하여 방화벽 뒤에 숨겨진 고정 IP 주소입니다.
  • 네트워크 스위치(SWITCH)의 모니터링 포트에 연결하세요.

이름이 새 관리자를 만듭니다. <ваше_имя> 그리고 비밀번호 <ваш_пароль> .

1.3 소프트웨어 설치.

설치가 완료된 후 가장 먼저 해야 할 일은 Ubuntu에서 권장하는 모든 업데이트를 설치하는 것입니다. 업데이트에 액세스하려면 시스템 > 관리 > 업데이트 관리자(시스템 > 관리 > 업데이트 관리자) 메뉴로 이동합니다. 비밀번호를 입력하고 확인을 선택하세요. 업데이트 설치를 선택합니다.

데스크탑에서 시스템 > 관리 > Synaptic Package Manager로 이동합니다. 비밀번호를 입력하고 검색을 선택하세요.

다음 패키지를 찾아 설치하십시오.

  • 모든 종속 패키지가 포함된 산성염기
  • 모든 종속 패키지가 포함된 Snort-MySQL
  • 모든 종속 패키지가 포함된 MySql-server-5.0
  • Libpcap0.8-dev
  • libmysqlclient15-dev
  • MySql-클라이언트-5.0
  • 바이슨
  • 아파치2
  • Libapache2-mod-php5
  • Php5-gd
  • Php5-mysql
  • libphp-adodb
  • Php-배

2. 슈퍼유저 권한 얻기

데스크탑에서 응용 프로그램\u003e 액세서리\u003e 터미널(응용 프로그램\u003e 추가 기능\u003e 터미널) 메뉴로 이동하여 다음 명령을 입력합니다.

$ sudo -i
$ 비밀번호를 입력하세요

3. 스노트 설정

사용자 정의 설정을 지정하려면 snort.conf 설정 파일을 편집해야 합니다.

텍스트 편집기(nano, vi, vim 등)를 사용하여 /etc/snort/snort.conf 파일을 엽니다.

# vim /etc/snort/snort.conf

var HOME_NET any 변수를 var HOME_NET 192.168.1.0/24로 변경합니다(홈 네트워크 주소는 192.168.1.0과 다를 수 있음). 여러 네트워크를 모니터링하는 경우 이러한 네트워크를 모두 다음과 같이 지정해야 합니다: var HOME_NET . var EXTERNAL_NET any를 var EXTERNAL_NET !$HOME_NET으로 변경합니다(외부 변수 HOME_NET을 제외한 모든 변수를 설정합니다).

var RULE_PATH ../rules를 var RULE_PATH /etc/snort/rules로 변경합니다. # 출력 데이터베이스: log, mysql, user= 행이 지정된 지점으로 스크롤하고 행 시작 부분에서 # 기호를 제거합니다.

예: 출력 데이터베이스: log, mysql, user= 비밀번호= dbname=snort 호스트=localhost

(위의 새 사용자가 생성된 경우 참조)

사용자 이름, 비밀번호 및 데이터베이스 이름(dbname)을 기록해 두십시오. MySQL 데이터베이스를 설치할 때 이 정보가 필요합니다. 변경 사항을 저장하고 종료합니다.

4. MySQL에 Snort 및 Archive 데이터베이스 설치

4.1 MySQL 설치

MySQL 서버에 로그인합니다.

# mysql -u 루트 -p

비밀번호가 설정되어 있지 않은 경우도 있으므로 "Enter" 키를 누르세요.

로그인할 수 없는 경우 위 명령을 다시 시도하고 YOUR_PASSWORD를 입력하세요.

비밀번호가 없는 경우 슈퍼유저 계정의 비밀번호를 설정해야 합니다.

참고: MySQL 서버를 사용하는 경우 프롬프트에 "#" 기호 대신 문자 그룹 "mysql>"이 표시됩니다.

mysql> 사용자 생성 @로컬호스트;
mysql> 비밀번호 설정 r@localhost=비밀번호( );
mysql> root@localhost에 대한 비밀번호 설정=PASSWORD( );

4.2 Snort 데이터베이스 생성

mysql> 데이터베이스 생성 snort; mysql> root.*에 대한 INSERT,SELECT 권한을 snort@localhost에 부여합니다. mysql> snort.*에 대해 CREATE,INSERT,SELECT,DELETE,UPDATE 권한을 부여합니다. @로컬호스트; mysql> snort에 CREATE,INSERT,SELECT,DELETE,UPDATE를 부여합니다.* snort;

4.3 아카이브 데이터베이스 생성

mysql> 데이터베이스 아카이브 생성; mysql> 아카이브에 CREATE,INSERT,SELECT,DELETE,UPDATE 권한을 부여합니다.* @로컬호스트; mysql> archive.*에 대해 CREATE,INSERT,SELECT,DELETE,UPDATE를 부여하여 아카이브합니다. mysql> 종료

4.4 Snort 및 Archive 데이터베이스에 테이블 생성

Snort 스키마를 사용하여 Snort 및 Archive 데이터베이스를 레이아웃합니다.

# cd /usr/share/doc/snort-mysql # zcat create_mysql.gz | mysql -u -h localhost -p snort # zcat create_mysql.gz | mysql -u -h localhost -p 아카이브

4.5 데이터베이스 및 새로 생성된 테이블 생성을 확인합니다.

MySQL 서버에 로그인하여 방금 생성한 데이터베이스와 해당 데이터베이스에서 호스팅되는 테이블을 확인하세요. 모든 것이 성공적으로 생성되면 mysql 데이터베이스에 4개의 데이터베이스(mysql, test, snort 및 archive)와 각 데이터베이스에 약 16개의 테이블이 표시됩니다.

# mysql -u root -p mysql> 데이터베이스 표시; mysql> snort를 사용한다; mysql> 테이블 표시; mysql> 아카이브 사용; mysql> 테이블 표시; mysql> 종료

4.6 스노트 테스트

터미널 모드에서 다음 명령을 입력합니다: # snort -c /etc/snort/snort.conf

모든 것이 잘 진행되었다면 ASCII 코드로 응답을 볼 수 있을 것입니다.

테스트를 종료하려면 ctrl + c를 누르세요.

5. Apache2 구성

Apache2 패키지가 컴퓨터에 이미 설치되어 있어야 합니다.

즐겨 사용하는 텍스트 편집기를 사용하여 /var/www/ 폴더에 test.php라는 파일을 만듭니다.

# vim /var/www/test.php

그것에 쓰십시오 :

변경 사항을 저장하고 이 파일을 닫습니다.

/etc/php5/apache2/php.ini 파일을 편집합니다.

# vim /etc/php5/apache2/php.ini

"동적 확장" 줄 아래에 다음을 추가합니다.

확장자=mysql.so 확장자=gd.so

Apache2를 다시 시작하십시오.

# /etc/init.d/apache2 재시작

업무용 컴퓨터의 IP 주소를 알아보세요.

# ifconfig -a

웹 브라우저를 열고 http://YOUR_IP_ADDRESS/test.php로 이동합니다.

모든 것이 제대로 진행되면 PHP 정보가 표시됩니다.

6. 폴더 구성

ADOdb를 /var/www 폴더로 이동합니다.

# mv /usr/share/php/adodb /var/www/

www에 web이라는 폴더를 만들고 ACIDBASE를 그 폴더로 옮깁니다.

# mkdir /var/www/web # mv /usr/share/acidbase /var/www/web/

설치하려면 일시적으로 acidbase 데이터베이스 폴더에 쓰기를 허용하세요.

# chmod 777 /var/www/web/acidbase

# cd /var/www/web/acidbase # mv base_conf.php base_conf.old

ACIDBASE에서 작업하려면 다음 명령을 실행하십시오.

#배 설치 이미지_색상

7. Snort 및 Archive 데이터베이스용 ACIDBASE 설치

7.1 웹 브라우저를 통해 Snort 데이터베이스 설치

5단계 중 1단계:

ADODB 경로를 입력하세요. 이것은 /var/www/adodb입니다.

5단계 중 2단계:

기본 데이터베이스 유형 = MySQL
데이터베이스 이름 = snort
데이터베이스 호스트 = localhost(Snort 데이터베이스의 로컬 위치),
데이터베이스 사용자 이름 =<ваше_имя_пользователя>(Snort 데이터베이스 사용자 이름)
데이터베이스 비밀번호 =<ваш_пароль>(Snort 데이터베이스의 비밀번호)

아카이브 데이터베이스 유형 = MySQL(아카이브 데이터베이스 유형),


데이터베이스 사용자 이름 =<ваше_имя_пользователя>
데이터베이스 비밀번호 =<ваш_пароль>

5단계 중 3단계:

인증을 사용하려면 사용자 이름과 비밀번호를 입력하세요(사용자:<ваше_имя>, 비밀번호:<ваш_пароль>).

5단계 중 4단계:

BASE AG 생성을 클릭합니다.

5단계 중 5단계:

4단계가 완료되면 하단에서 다음을 클릭하세요. 이제 5단계로 진행하세요.

이 페이지를 북마크에 추가하세요.

7.2 아카이브 ACIDBASE 데이터베이스용 폴더 생성

보관 데이터베이스가 올바르게 작동하려면 ACIDBASE 폴더에 보관 폴더를 생성해야 합니다.

# mkdir /var/www/web/acidbase/archive # cd /var/www/web/acidbase # cp -R * /var/www/web/acidbase/archive # chmod 777 /var/www/web/acidbase/archive

기존 base_conf.php 파일의 이름을 base_conf.old 로 바꿉니다.

# cd /var/www/web/acidbase/archive # mv base_conf.php base_conf.old

7.3 웹 브라우저를 통해 아카이브 데이터베이스 설치.

웹 브라우저를 열고 http://YOUR_IP_ADDRESS/web/acidbase/archive/setup으로 이동합니다.

첫 번째 페이지에서 계속을 클릭합니다.

5단계 중 1단계:

ADODB 경로를 입력하세요. 이것은 /var/www/adodb입니다. >

5단계 중 2단계:

아카이브 데이터베이스 유형 = MySQL
데이터베이스 이름 = 아카이브(Database Archive),
데이터베이스 호스트 = localhost(아카이브 데이터베이스의 로컬 위치),
데이터베이스 사용자 이름 =<ваше_имя_пользователя>(아카이브 데이터베이스 사용자 이름),
데이터베이스 비밀번호 =<ваш_пароль>(아카이브 데이터베이스의 비밀번호)

5단계 중 3단계:

인증을 사용하려면 사용자 이름과 비밀번호(사용자:<ваше_имя_пользователя>, 비밀번호:<ваш_пароль>).

5단계 중 4단계:

BASE AG 생성을 클릭하세요.

5단계 중 5단계:

4단계가 완료되면 하단의 아이콘을 클릭하세요. 이제 5단계로 진행하세요(이제 5단계로 이동하세요).

8. Snort를 실행하고 서비스 상태를 확인합니다.

Snort를 실행하려면 터미널 모드에서 다음을 입력하세요.

# snort -c /etc/snort/snort.conf -i eth0 -D

이 명령은 데모 모드에서 eth0 인터페이스를 사용하여 snort를 시작합니다.

다음 명령을 사용하여 서비스가 실행 중인지 확인할 수 있습니다.

# PS 보조 | 그렙 코웃음

서비스가 실행 중이면 다음과 유사한 내용이 표시됩니다 snort -c /etc/snort/snort.conf -i eth0 -D .

다음 명령을 실행하여 필요한 모든 서비스가 실행되고 있는지 확인합니다.

# /etc/init.d/mysql 상태 # /etc/init.d/apache2 상태 # /etc/init.d/snort 상태

서비스가 실행 중이면 응답 메시지가 표시됩니다. .

필요한 경우 명령을 실행하십시오.
# /etc/init.d/ 재시작
다시 시작해야 하는 각 서비스에 대해

소개

이 작업의 주요 목표는 인기 있는 IDS 애플리케이션인 Snort를 설명하고 연구하는 것입니다. Snort는 많은 네트워크 관리자가 악성 서명을 캡처하고 네트워크가 공격을 받을 때 경고하기 위해 사용하는 대규모 오픈 소스 프로젝트입니다. Snort는 네트워크 인터페이스의 모든 트래픽을 가로채서 패킷에서 의심스러운 요청과 침입 시도를 확인합니다.

주요 장점은 접근성과 특정 작업 네트워크에 맞게 작업을 편집할 수 있는 기능입니다. 이 프로그램은 소규모 조직과 대규모 조직 모두에서 작동하도록 설계되었습니다. 또한 특정 조직의 보안 요구 사항(예: 직원의 소셜 네트워크 액세스 금지)에 따라 고유한 규칙을 편집할 수 있는 기능도 중요합니다.

단점에는 일부 운영 체제(예: Windows)에서 설정 및 설치가 불편하다는 점, 설정에 대한 완전하고 자세한 단일 설명이 부족하다는 점, 자체 규칙 세트를 개발한다는 점 등이 있습니다.

또한 기업마다 제한 사항이 다르고 규칙을 상당히 미세 조정해야 하기 때문에 허위 경보를 차단하는 것이 매우 어렵습니다. 대소문자를 구분하는 키를 사용하여 애플리케이션을 시작하는 많은 모드는 기억하기가 매우 어려우며 잘못된 출력이 발생할 수 있습니다.

이 작업의 주요 임무는 IDS Snort의 기능적 특징을 이해하고 애플리케이션에 대한 다양한 유형의 네트워크 공격을 수행하여 애플리케이션의 작동을 확인하는 것입니다. 보다 편리한 형식으로 유사한 IDS가 있는지 알아보세요. Snort가 데이터베이스와 상호 작용하는 방법. 몇 가지 고유한 규칙을 개발하고 기능을 테스트합니다.

IDS Snort 설치 및 구성

Snort: Windows XP에 설치

Windows 운영 체제에 Snort를 설치할 때 몇 가지 어려움이 발생할 수 있습니다. 따라서 이 작업에서는 설치 및 구성 옵션의 상당히 세부적인 부분에 중점을 둡니다. 먼저 업무용 컴퓨터에 필요한 프로그램을 다운로드해야 합니다.

Snort에 대한 규칙.

위의 모든 항목은 해당 애플리케이션의 공식 웹사이트에서 다운로드됩니다.

Winpcap은 커널 수준에서 패킷을 캡처하고 필터링하는 응용 프로그램입니다. 이는 내장된 Unix libpcap 드라이버와 유사합니다. 설치는 특별한 불편을 초래하지 않으며 일반 설치 프로그램을 통해 시작됩니다. 그런 다음 공식 웹사이트에서 IDS 자체를 다운로드해야 하며, 그런 다음 거기에서 규칙이 포함된 최신 아카이브를 다운로드해야 합니다. 다음 단계는 규칙과 함께 아카이브에 있던 모든 폴더를 애플리케이션의 루트 디렉터리에 완전히 복사하고 필요한 경우 내용을 완전히 바꾸는 것입니다. 그런 다음 프로그램이 올바르게 작동하려면 구성 파일에 중요한 변경 사항을 적용해야 합니다.

var RULE_PATH c:snort 파일

var SO_RULE_PATH c:snortso_rules

var PREPROC_RULE_PATH c:snortpreproc_rules

동적 전처리기 디렉터리 c:snortlibsnort_dynamicpreprocessor

동적엔진 c:snortlibsnort_dynamicenginesf_engine.dll

#동적 감지 디렉터리 /usr/local/lib/snort_dynamicrules

구성 파일에서 유사한 줄을 찾아 위에 제공된 줄로 바꿉니다. 그런 다음 애플리케이션을 테스트해 보겠습니다. 명령줄을 실행하고 "bin" 섹션의 애플리케이션 디렉터리로 이동합니다. "snort -W" 명령을 입력하세요.

쌀. 1.1.

이 명령을 사용하면 애플리케이션의 기능을 확인하여 인터페이스를 볼 수 있습니다. 그 중 하나 이상이 있는지 확인한 후 작업 네트워크에 연결된 것을 선택하여 패킷 가로채기와 IDS 작동 모니터링을 시작합니다.

C:Snortinsnort -i 3 -c C:snortetcsnort.conf -l C:snortlog -A 콘솔

이제 우리가 입력한 명령을 살펴보겠습니다. "- i 3"은 인터페이스 목록에서 ID= 3인 인터페이스를 살펴보겠다는 의미입니다. 그런 다음 구성 파일의 경로와 가로채는 패킷의 "로그"가 기록되어야 하는 디렉터리의 경로를 지정했습니다. "-A console"은 콘솔에서 경보 패킷이 감지됨을 의미합니다. 처리 중에 문제가 발생하면 문제가 확인되는 대로 제거합니다. Snort는 빌드 오류의 문자열과 유형을 나타냅니다. 모든 것이 제대로 작동했다면 실행 중인 규칙 중 하나가 트리거될 때까지 아무 것도 볼 수 없습니다. 그 중 하나를 사용하기 위해 네트워크 공격을 시뮬레이션하고 로컬 네트워크를 통해 의심스러운 패킷을 실행해 보겠습니다. 예를 들어 이렇게 하려면 명령줄을 열고 "Ping 192.168.1.16"을 입력합니다. Snort는 192.168.1.1624에서 호스트를 수신하려는 시도를 가로채고 네트워크의 의심스러운 활동에 대한 메시지와 정보를 표시합니다. 불행하게도 이러한 IDS 시스템에는 오탐(false positive)이라는 심각한 단점이 있습니다. 이와 관련하여 Snort가 유용하고 오해의 소지가 없도록 하려면 규칙을 충분하고 명확하게 정의하고 이러한 오탐을 방지하기 위해 보고 있는 네트워크를 차별화하는 것이 필요합니다.


쌀. 1.2.

이제 IDS가 실행되는 콘솔에 "듣기"와 유사한 의심스러운 패킷에 대한 메시지가 나타납니다. 관련된 이 규칙은 Snort가 완벽하게 기능한다는 것을 보여주었습니다. 추가 작업을 위한 작동 모드와 규칙 구문을 고려해 보겠습니다.

매일 수십억 개의 데이터 패킷이 기업 네트워크를 통해 전송됩니다. 그들 중 일부는 위험합니다. 이러한 패키지의 작성자는 방화벽을 우회하고 네트워크 경계를 따라 방어선을 돌파하여 도중에 만나는 모든 시스템의 작동을 방해하는 특별한 조치를 취했습니다. Code Red, Nimda, SQL Slammer 및 MSBlaster와 같은 패키지 공격의 파괴적인 효과는 잘 알려져 있습니다. 이러한 맬웨어는 모두 Microsoft 시스템의 신뢰할 수 있는 프로토콜(예: HTTP) 또는 네트워크 트래픽을 악용합니다. 이러한 프로토콜은 단순히 탈취하고 차단할 수 없기 때문에 관리자는 일반적으로 위협에 적시에 대응하기 위해 무단 접근 탐지 시스템인 NIDS(Network Intrusion Protection System)를 사용하여 가능한 한 빨리 위험한 트래픽을 캡처하려고 노력합니다.

기능과 비용이 다양한 여러 가지 NIDS가 상업적으로 이용 가능합니다. 일반적으로 모두 성공적으로 작동합니다. 내가 만난 모든 상용 패키지는 훌륭했습니다. 하지만 침입 탐지가 우선순위가 아닌 경우 적당한 예산을 가진 조직은 어떻게 해야 합니까? 이러한 경우에는 강력한 무료 NIDS 패키지인 Snort가 있습니다. 많은 오픈 소스 패키지와 달리 Windows와 호환됩니다.

스노트 알아보기

Snort의 원래 개발자인 Martin Resch는 GNU General Public License(GPL)의 조건에 따라 공개 커뮤니티에 프로그램을 제공했습니다. 이 패키지의 역사는 1998년에 시작되었으며 그 이후로 여러 번 신뢰성이 입증되었습니다. 전 세계 오픈 커뮤니티 회원과 네트워크 관리자의 기여 덕분에 Snort는 매우 강력한 제품이 되었습니다. 현재 버전은 고속 이더넷 및 기가비트 이더넷 속도로 실시간 네트워크 트래픽 분석 및 IP 트래픽 로깅을 제공합니다.

Michael Davis는 Snort 1.7을 Win32 플랫폼으로 포팅하여 Windows 커뮤니티에서 사용할 수 있도록 했습니다. 그런 다음 Chris Reid는 Snort의 새 버전을 Windows 환경에 쉽게 배포할 수 있는 기성 실행 파일로 컴파일하는 작업을 맡았습니다.

NIDS에 익숙하지 않은 관리자는 이 도구를 특별한 유형의 네트워크 분석기로 생각할 수 있습니다. NIDS는 인터페이스를 통과하는 모든 패킷을 검사하여 페이로드에서 일반적으로 악성 코드가 숨겨져 있는 알려진 패턴을 찾습니다. Snort를 사용하면 조직의 네트워크를 통과하는 모든 패킷에 대해 검색 및 일치 작업을 수행하고 다양한 유형의 공격과 불법 트래픽을 실시간으로 탐지할 수 있습니다.

코웃음 요구 사항

Snort를 실행하려면 하나 이상의 네트워크 어댑터가 장착된 Windows 컴퓨터가 필요합니다. 두 개의 네트워크 어댑터를 사용하는 것이 좋습니다. 하나는 제어된 네트워크에 연결되고 다른 하나는 프로덕션 네트워크에 연결됩니다. 후자는 보고서를 전달합니다. Snort는 Windows 2000 Server 이상 버전뿐만 아니라 Windows XP Professional Edition, XP Home Edition 및 Windows 2000 Professional과도 호환됩니다. 서버 라이센스가 필요하지 않습니다. 나는 XP Pro 노트북을 매일 많은 클라이언트 네트워크에 연결하고 일반적으로 Snort를 서비스로 실행합니다. 이런 방식으로 프로그램은 백그라운드에서 실행되어 해당 클라이언트 네트워크에서 내 시스템에 대한 모든 공격을 감지합니다. 저는 Snort를 휴대용 센서로 사용합니다. 이 프로그램은 노트북이 연결된 모든 포트에 대해 NIDS 역할을 합니다.

소규모 네트워크에서는 Snort를 보급형 서버에 배포할 수 있습니다. 무단 액세스 시도를 감지하기 위해 전용 고전력 시스템이 필요하지 않습니다. 예를 들어, 1GHz 프로세서와 1GB RAM을 갖춘 FreeBSD 기반 Snort 노드가 15,000명의 사용자와 여러 T-3 WAN 링크가 있는 네트워크를 성공적으로 서비스하고 있다는 이야기를 들었습니다. Snort 소스 코드의 효율성 덕분에 프로그램을 실행하는 데 매우 강력한 기계가 필요하지 않습니다.

네트워크에서 NIDS를 찾는 가장 좋은 위치는 어디입니까? 첫 번째 생각은 장치를 방화벽 앞에 배치하는 것입니다. 여기서 NIDS는 가장 많은 공격을 감지하지만 오탐(false positive) 수도 가장 높으며 관리자는 위험에 대해 쓸모없는 경고를 많이 받게 됩니다. 방화벽으로 인해 차단되는 위협에 대해 걱정할 필요가 없습니다. 방화벽 뒤에 숨어 있는 위험한 프로그램을 탐지하는 것이 더 중요합니다. 따라서 어쨌든 Snort를 방화벽 뒤에 배치하는 것이 좋습니다.

그러나 사용자가 VPN 연결(인터넷 또는 무선 링크를 통해)을 통해 네트워크에 연결하는 경우 NIDS를 방화벽 뒤(예: VPN 서버 또는 집중 장치 뒤)에 배치하는 것이 합리적입니다. 여기서 패킷이 나갈 때 암호가 해독됩니다. VPN 터널. 그렇지 않으면 분석된 패킷이 암호화되므로 NIDS는 VPN 트래픽에 포함된 맬웨어에 대응할 수 없습니다. 암호화된 SMTP 트래픽, 이메일 메시지에 첨부된 암호화된 .zip 파일 및 기타 암호화된 데이터 유형에도 동일하게 적용됩니다.

이상적으로 NIDS는 트래픽을 암호화하는 구성 요소 뒤에 충분히 멀리 배치하고 가능한 한 많은 세그먼트와 서브넷의 트래픽을 분석할 수 있도록 네트워크 경계에 충분히 가깝게 배치해야 합니다. 스위치 네트워크 환경에서 스위치는 일반적으로 네트워크를 통과하는 모든 패킷을 수집하기 위해 진단 포트가 필요합니다. 결과적으로 NIDS는 모든 네트워크 트래픽에 편리하게 액세스할 수 있습니다.

이제 Snort에 익숙하고 호스팅 요구 사항을 알았으므로 NIDS를 설치하고 테스트할 수 있습니다. Snort에 대한 자세한 내용은 "웹 리소스" 사이드바에 링크된 문서를 참조하세요. 이 프로세스는 7단계로 구성됩니다.

  1. WinPcap 설치
  2. 스노트 설치
  3. 코웃음 테스트하기
  4. 스노트 설정
  5. 규칙 설정
  6. 알림 및 로그 설정
  7. 서비스로 실행

1단계. WinPcap 설치

Snort는 기본적으로 무차별 모드 네트워크 분석기이므로 드라이버 지원이 필요합니다. 이 지원은 WinPcap에서 제공됩니다. Loris Digioanni는 Unix 사용자들 사이에서 널리 사용되는 libpcap 패킷 캡처 드라이버를 Windows 환경에 이식하여 WinPcap을 만들었습니다. WinPcap에는 커널 수준 패킷 필터, 저수준 DLL(packet.dll) 및 고수준 시스템 독립적 라이브러리(wpcap.dll, libpcap 0.6.2 기반)가 포함되어 있습니다.

WinPcap은 다음에서 다운로드할 수 있습니다. http://winpcap.polito.it. 이 드라이버는 Windows Server 2003, XP, Windows 2000, Windows NT, Windows Me 및 Windows 9x와 호환됩니다. WinPcap은 또한 에서 얻을 수 있는 오픈 소스 Ethereal 패킷 스니퍼를 지원합니다. Ethereal을 사용하면 Snort가 올바르게 설치되었는지 확인할 수 있습니다.

네트워크에서 WinPcap 설치 파일을 다운로드한 후 설치 절차의 여러 화면을 거치면 됩니다. 라이센스 약관에 동의해야 하는 화면은 사용자 입장에서 가장 큰 노력이 필요한 부분입니다.

2단계: Snort 설치

다음 단계는 Snort를 설치하는 것입니다. 최신 버전은 CodeCraft Consultants 웹 사이트( http://www.codecraftconsultants.com/snort.aspx) 또는 Snort.org( http://www.snort.org). CodeCraft Consultants에서 Snort를 다운로드하는 것이 좋습니다. 해당 사이트에서 자동 추출 실행 파일을 얻을 수 있기 때문입니다. 이 프로그램은 컴퓨터에 Snort를 설치하는 기본 단계까지 사용자에게 안내합니다. 이 기사를 준비하는 데 Snort 2.1.1의 최신 버전인 빌드 18이 사용되었습니다. 이후 업데이트된 버전이 출시되었습니다.

설치 프로그램을 실행할 때 첫 번째 대화 상자에서 결과를 저장할 데이터베이스 구성 모드를 선택해야 합니다. MySQL 또는 ODBC 호환 데이터베이스를 사용하는 경우 기본 모드를 적용할 수 있습니다(그림 1). 그러나 Microsoft SQL Server 또는 Oracle 데이터베이스에 프로토콜을 저장하려는 경우 적절한 모드를 선택하고 필요한 클라이언트 프로그램을 시스템에서 사용할 수 있는지 확인해야 합니다. 이 기사를 준비하는 데에는 기본 모드가 사용되었습니다.

다음 단계는 설치하려는 Snort 구성요소를 식별하는 것입니다. 표준 세트(화면 2)는 괜찮으므로 수락하고 다음을 클릭하는 것이 좋습니다. 설치 위치 선택 대화 상자에서 Snort가 배포될 디렉터리를 지정해야 합니다. 디렉터리 이름을 입력한 후 다음을 클릭하여 설치 과정을 완료합니다.

화면 2: 설치 구성 요소 선택

3단계: Snort 설치 테스트

설치 프로세스를 완료한 후 Snort를 테스트해야 합니다. 기본적으로 Snort 실행 파일에는 로그를 작성할 위치와 구성 파일(snort.conf)을 찾을 수 있는 위치라는 두 위치를 알려주어야 합니다. 이 정보는 각각 -l 및 -c 스위치를 사용하여 명령줄에서 Snort를 실행할 때 사용자가 제공합니다. 예를 들어 다음 명령은

Snort -l F:snortlog -c F:snortetcsnort.conf -A 콘솔

로그가 F:snortlog 디렉토리에 기록되어야 하고 snort.conf가 F:snortetc 디렉토리에 위치함을 프로그램에 알려줍니다. -A 스위치는 프로그램에서 생성된 경고를 전송하는 방법을 지정합니다. 이 예에서는 관리자가 Snort가 올바르게 작동하는지 확인할 수 있도록 콘솔 화면에 경고가 표시됩니다. 기사에서는 명령이 여러 줄에 인쇄되어 있지만 명령 창에서는 한 줄에 입력해야 합니다. 이 문서의 다른 여러 줄 명령에도 동일하게 적용됩니다. 많은 Snort 명령줄 스위치는 대소문자를 구분하므로 입력한 대로 정확하게 명령을 입력해야 합니다.

시스템에 여러 네트워크 인터페이스가 있는 경우 기본적으로 Snort는 발견한 첫 번째 인터페이스를 수신합니다. 시스템의 네트워크 인터페이스 순서를 알 수 없는 경우 단일 -W 스위치를 사용하여 Snort 명령을 실행할 수 있습니다. Snort는 프로그램이 감지한 순서대로 네트워크 인터페이스의 이름과 번호를 나열합니다. Snort가 특정 네트워크 인터페이스를 사용하도록 강제하려면 Snort를 시작할 때 인터페이스 번호와 함께 -i 스위치를 입력해야 합니다. Snort를 실행하면 화면에 표시된 것과 유사한 정보가 표시됩니다. 화면 3 .

Snort를 실행하면 특별히 준비된 트래픽을 NIDS로 보내 민감도를 테스트할 수 있습니다. 경고를 발생시키는 가장 쉬운 방법 중 하나는 HTTP URL 요청(Code Red 및 Nimda 웜에 대한 일반적인 기술)의 일부로 원격 시스템에서 명령 해석기(cmd.exe)를 호출하는 것입니다. 이 공격 단계를 시뮬레이션하려면 URL에 액세스하고 요청 끝에 /cmd.exe 문자를 추가하세요. 예를 들어, http://www.a-website-that-I-can-trust.com/cmd.exe에 대한 호출에 대한 응답으로 Snort는 명령 창에 처음 세 가지 경고와 유사한 경고를 표시해야 합니다. ~에 화면 4. 이러한 메시지는 F:snortlog 로그에 기록됩니다.

테스트할 대상 웹 사이트는 신중하게 선택해야 합니다. 기술적인 관점에서 보면 대부분의 웹 사이트 관리자는 이러한 행위를 해킹 시도로 간주합니다. 이 시도는 성공하지 못할 것입니다(서버 구성에 심각한 오류가 있지 않는 한). 하지만 자신의 서버나 관리자가 테스트를 알고 있는 신뢰할 수 있는 서버에서만 테스트하는 것이 좋습니다.

테스트가 불가능한 경우 Snort를 테스트하는 또 다른 방법은 네트워크를 통해 Snort가 실행 중인 서버나 컴퓨터에 비정상적으로 긴 에코 요청을 보내는 것입니다. 예를 들어 Ping 명령을 사용할 수 있습니다.

핑 -l 32767 ip_address

여기서 ip_address는 대상 서버 또는 Snort 컴퓨터의 IP 주소입니다. 이 명령은 매우 긴 패킷(정확한 길이 - 32KB)을 보내야 하는데, 이는 Ping 명령에서는 확실히 이례적인 일입니다. Snort는 아래의 8개 경고에 표시된 대로 이 패키지를 감지해야 합니다. 화면 4 .

경고를 받으면 특정 조건에 맞게 Snort 구성을 시작할 수 있습니다. 그렇지 않으면 설치 절차로 돌아가서 건너뛴 단계가 있는지 확인해야 합니다.

4단계: Snort 설정

기본 Snort 구성 데이터는 기본적으로 %systemdrive%snortetc 디렉터리에 있는 snort.conf 파일에 저장됩니다. 명령줄에서 프로그램 경로를 지정하면 파일을 이 폴더에 남겨두거나 다른 폴더로 이동할 수 있습니다.

Snort.conf에 있는 모든 매개변수에 대한 자세한 설명은 잡지 전체를 채울 수 있습니다. Snort는 놀랍도록 강력한 프로그램이기 때문입니다. 지금은 주요 매개변수만 고려하겠습니다.

들어오는 트래픽과 나가는 트래픽을 구별하려면 Snort에 기업 네트워크의 호스트와 IP 주소를 알려야 합니다. 이 정보를 입력하려면 snort.conf 파일에 HOME_NET 변수를 설정해야 합니다. 선을 찾아야 해

다양한 HOME_NET

이를 IP 주소 범위로 바꿉니다. 예를 들어 하나의 범위를 지정할 수 있습니다.

다양한 HOME_NET 192.168.0.1/24

또는 여러 범위. 여러 범위를 지정하는 경우 범위 집합을 대괄호로 묶고 각 범위를 쉼표로 구분해야 합니다. IP 주소 범위 사이에는 공백을 입력할 수 없습니다. 예를 들어, 라인

다양한 HOME_NET

Snort에게 서브넷 10.0.1.0/24, 10.0.2.0/24 및 10.0.3.0/24가 엔터프라이즈 네트워크에 속한다고 알려줍니다. 기본적으로 Snort는 다른 모든 주소를 외부 주소로 처리합니다. EXTERNAL_NET 변수를 설정하여 외부 네트워크로 간주해야 하는 네트워크를 명시적으로 지정할 수 있습니다. snort.config 파일에서 다음 줄을 찾아야 합니다.

다양한 EXTERNAL_NET

이를 외부로 간주되어야 하는 네트워크의 IP 주소로 바꿉니다. 그러나 일반적으로 처음에는 EXTERNAL_NET 변수를 any로 설정하는 것이 가장 좋습니다.

시간이 좀 지나면 기업이 보유하고 있는 서버 유형과 위치를 확인할 수 있습니다. 이 정보는 snort.conf 파일의 다음 줄에 있는 DNS_SERVERS, SMTP_SERVERS, HTTP_SERVERS, SQL_SERVERS 및 TELNET_SERVERS 변수에 포함되어 있습니다.

Var DNS_SERVERS $HOME_NET var SMTP_SERVERS $HOME_NET var HTTP_SERVERS $HOME_NET var SQL_SERVERS $HOME_NET var TELNET_SERVERS $HOME_NET var SNMP_SERVERS $HOME_NET

기본적으로 6개의 서버 변수는 모두 $HOME_NET으로 설정됩니다. 이는 Snort가 HOME_NET 범위의 모든 시스템에 대한 모든 유형의 공격을 모니터링한다는 것을 의미합니다. 이 구성은 관리자가 일정 수의 잘못된 경고를 허용하는 소규모 네트워크에 적합합니다. 그러나 트래픽이 많은 것을 모니터링하려면 Snort를 미세 조정하여 특정 노드의 서명 중 일부만 확인하는 것이 좋습니다. SQL 버퍼 오버플로 공격으로부터 Microsoft IIS만 실행하는 웹 서버를 보호하는 것은 의미가 없습니다. 특정 호스트 클래스를 정의하려면 $HOME_NET을 HOME_NET 변수에 사용된 형식에 따라 대상 서버 IP 주소 범위로 바꿔야 합니다. 예를 들어, DNS_SERVERS 변수의 경우 $HOME_NET 대신 DNS 서버의 IP 주소 범위를 대체해야 합니다.

특정 애플리케이션용 서버에서 사용하는 포트를 식별하면 튜닝 정확도가 향상될 수 있습니다. 예를 들어 웹 서버가 HTTP 트래픽에 포트 80(이 포트는 일반적으로 웹 서버 및 브라우저에 사용됨) 대신 특수 포트 8080을 사용하는 경우 HTTP_PORTS 변수를 변경하여 포트 8080을 모니터링하도록 Snort를 구성할 수 있습니다. snort.conf에서 다음 줄을 찾아야 합니다.

다양한 HTTP_PORTS 80

그리고 그것을 라인으로 교체하십시오

다양한 HTTP_PORTS 8080

마찬가지로 Oracle(ORACLE_PORTS 변수로 정의됨) 및 기타 애플리케이션에 대한 포트를 변경할 수 있습니다. HTTP_PORTS 변수와 마찬가지로 ORACLE_PORTS의 기본값은 80입니다. 서버가 대신 포트 1521을 사용하는 경우 문자열은 다음과 같습니다.

다양한 ORACLE_PORTS 1521

따라서 snort.conf 파일에는 많은 설정을 구성할 수 있습니다. snort.conf를 검토하여 특정 환경에 가장 중요한 설정을 찾고 그에 따라 구성해야 합니다.

5단계. 규칙 설정

snort.conf의 행 중 하나에는 RULE_PATH 변수가 포함되어 있습니다. 이 줄의 예:

Var RULE_PATH ../rules

../rules 옵션은 디렉터리 구조의 Snort 바이너리와 동일한 수준에 있는 규칙 디렉터리에서 규칙(즉, 서명)을 찾을 수 있음을 지정합니다. 따라서 예를 들어 일반 폴더 F:snort에 Snort를 설치하는 경우 Snort 바이너리는 F:snortin에 있고 규칙은 F:snort 파일에 있습니다. 원하는 경우 RULE_PATH 변수를 변경할 수 있지만 기본 옵션을 사용해도 됩니다.

규칙은 Snort의 기초입니다. 이는 일련의 바이트, 공격 서명 및 감지 시 경고를 생성하는 기타 유형의 데이터입니다. Snort에는 1,500개 이상의 기성 서명이 있습니다.

규칙은 어떻게 생겼나요? Snort 테스트 중에 위반된 cmd.exe에 대한 규칙은 다음과 같습니다: Alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-IIS cmd.exe access"; flow:to_server, 확립됨; content: " cmd.exe"; 클래스 유형:웹-응용 프로그램-공격; sid:1002;). 규칙의 주요 구성요소를 살펴보겠습니다. $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS 링크는 외부에서 네트워크로 들어오는 트래픽(EXTERNAL_NET 변수로 정의됨)만 분석하도록 지정합니다. content: 매개변수는 데이터 스트림에서 일련의 cmd.exe 문자 검색을 지정합니다. Snort가 이러한 시퀀스를 감지하면 msg: 매개변수에 지정된 경고를 생성합니다.

cmd.exe 예제에서 볼 수 있듯이 규칙은 대부분 간단합니다. 모든 유형의 트래픽에 대해 자신만의 규칙을 만들 수 있습니다. 예를 들어 명령 해석기를 통해 시스템의 디렉터리에 원격으로 액세스하려는 무단 시도를 탐지하려는 경우 드라이브의 볼륨 또는 아웃바운드 포트와 같이 거의 발견되지 않는 포트의 볼륨 일련 번호를 검색할 수 있습니다. 규칙 할당에 대한 유연한 접근 방식 덕분에 관리자에게는 Snort에 대한 광범위한 구성 옵션이 제공됩니다.

Snort의 1,500개 규칙은 분석되는 데이터 유형에 따라 서로 다른 파일에 저장됩니다. 예를 들어 cmd.exe에 대한 규칙은 web-iis.rules 파일에 있습니다. 기업이 IIS를 사용하지 않는 경우 프로그램은 IIS 공격을 탐지할 필요가 없습니다. web-iis.rules 파일은 해당 행을 찾아 주석을 달아 구성 전체에서 쉽게 제거할 수 있습니다.

$RULE_PATH/web-iis.rules 포함

snort.conf 파일에 있습니다. 줄을 주석으로 만들려면 앞에 (#) 기호를 붙입니다.

# $RULE_PATH/web-iis.rules를 포함합니다.

기본적으로 일부 유형의 규칙 파일(예: icmp-info.rules, chat.rules)은 snort.conf의 주석으로 표시됩니다. snort.conf의 기본 규칙 구성은 매우 좋습니다. 차단된 규칙을 활성화한 후 프로그램은 일반적으로 불필요한 경고를 많이 생성합니다.

일부 파일에는 유용한 규칙이 많이 포함되어 있지만 일부 규칙은 불필요한 경고를 너무 많이 생성합니다. 특정 규칙을 비활성화하려면 규칙 파일의 해당 줄을 주석으로 표시해야 합니다. 앞으로 Snort는 파일 작업 시 이 규칙을 무시할 것입니다.

새로운 위협 소스가 나타나면 규칙 파일을 업데이트해야 합니다. 새로운 규칙에 대한 가장 좋은 리소스는 Snort.org입니다. 이 웹 사이트에는 자동 업데이트 서비스가 없으므로 관리자는 새로운 위협이 발생할 때 정기적으로 업데이트를 확인해야 합니다.

6단계: 경고 및 로그 구성

언급한 바와 같이 Snort는 MySQL, SQL Server, Oracle 및 ODBC 호환 데이터베이스에 정보 기록을 제공합니다. Snort 설치 프로세스 중에 적절한 데이터베이스 유형을 선택하기만 하면 됩니다. 기사의 길이를 과도하게 늘리지 않기 위해 텍스트 파일을 사용하는 표준 로깅 모드와 Windows 이벤트 로그에 메시지를 쓰는 기능을 고려해 보겠습니다.

Snort 명령을 사용하여 NIDS를 실행할 때 -A 콘솔 스위치를 사용하면 화면에 경고가 표시됩니다. 메시지를 텍스트 파일로 전달하려면 선호하는 로깅 모드에 따라 이 스위치를 -A fast 또는 -A full로 바꿔야 합니다. 전체 매개변수는 -l 스위치에 의해 지정된 경로인 디렉터리에 있는 Alerts.ids라는 텍스트 파일의 여러 줄에 위협에 대한 자세한 설명을 표시합니다. 이러한 유형의 로깅은 포괄적인 세부 정보를 제공하지만 네트워크에 기록되는 이벤트가 많으면 이해하기 어려울 수 있습니다. 이러한 "시끄러운" 네트워크에서는 빠른 모드를 사용하여 의심스러운 트래픽의 주요 특성이 포함된 Alerts.ids에 한 줄 항목을 추가하는 것이 좋습니다. 제 생각에는 전체 모드보다 빠른 모드에서 텍스트 파일 작업이 더 쉽습니다.

Snort의 현재 버전은 Windows 이벤트 로그에 대한 로깅을 제공합니다. 많은 조직에서 이미 중앙 집중식 이벤트 모니터링, 로깅 및 데이터 수집 도구를 구입했으며 이 기능은 Windows 환경에 큰 도움이 될 것입니다.

Snort가 실행 중인 시스템의 응용 프로그램 이벤트 로그에 경고를 기록하려면 -A 스위치 대신 -E 스위치를 사용하십시오(매개 변수는 선택 사항임). 그림 5는 애플리케이션 로그에 게시된 Snort 이벤트(이 경우 cmd.exe 액세스 시도)를 보여줍니다. Windows 이벤트는 콘솔 화면과 동일한 세부 정보를 제공합니다.

관리자가 일주일에 한 번씩 이벤트 로그(또는 텍스트 로그)를 보면 NIDS는 쓸모가 없습니다. 네트워크에 무슨 일이 생기면 관리자는 즉시 그 사실을 알아야 합니다. 중앙 집중식 모니터링 및 이벤트 처리 시스템은 이메일, 호출기 및 기타 통신 장치를 통해 메시지를 보낼 수 있습니다. 그러나 그러한 시스템이 없다면 걱정할 필요는 없습니다. NETIKUS.NET은 경고를 보내는 데 사용할 수 있는 무료 EventSentry Light 패키지를 제공합니다.

EventSentry Light는 EventSentry의 평가판이며 다음에서 다운로드할 수 있습니다. http://www.netikus.net/products_downloads.html. EventSentry Light를 사용하면 이벤트 로그를 모니터링하고 로그에 기록된 모든 Snort 이벤트에 대한 자세한 이메일 메시지를 자동으로 보내도록 시스템을 구성할 수 있습니다. ~에 화면 6 cmd.exe 공격 시도에 대한 이메일 메시지를 표시합니다. 공격이 발생한 지 몇 초 후에 EventSentry Light로부터 이 메시지를 받았습니다.

위에서 언급한 것처럼 Snort는 일반적으로 이벤트 로그를 빠르게 채우는 수많은 불필요한 메시지를 생성합니다. 이는 이벤트 로그의 파일 크기와 회전 방법을 선택할 때 염두에 두어야 할 사항입니다. EventSentry Light가 사소한 이벤트에 대한 메시지로 받은 편지함을 가득 채우는 것을 방지하려면 필터를 생성하여 키 문자열을 검색할 수 있습니다. 예를 들어 메시지 텍스트의 문자열에 대한 검색 필터를 구성했습니다.

7단계: 서비스로 실행

작업이 완료되면 프로그램을 실행할 때마다 데스크톱 컴퓨터에 로그인할 필요 없이 Snort를 서비스로 실행할 수 있습니다. /SERVICE 및 /INSTALL 옵션(다른 명령줄 옵션과 함께)을 사용하여 Snort를 실행하는 경우 Snort는 Windows 서비스로 실행되도록 구성되며 사용자 개입 없이 Windows에서 자동으로 시작됩니다.

다음 레벨: 확장 모듈

Snort는 모든 기능을 갖춘 애플리케이션입니다. 그러나 어떤 경우에는 프로그램을 확장해야 합니다. 예를 들어 여러 NIDS가 네트워크의 서로 다른 부분에 배포된 경우 그래픽 인터페이스에서 Snort를 관리하는 것이 편리합니다. 이러한 기능은 Engage Security의 IDScenter 확장 모듈과 Activeworx의 IDS Policy Manager에서 구현됩니다. 때로는 메시지에 포함된 정보를 분석해야 할 때도 있습니다. 카네기멜론대학교에서 개발한 ACID(Analysion Console for Intrusion Databases) 모듈을 사용하여 저장된 데이터를 확인하고 분석할 수 있습니다.

안정적인 보호

Snort는 회사의 예산에 해를 끼치지 않는 모든 기능을 갖춘 프로그램입니다. Snort를 EventSentry Light와 같은 강력한 이벤트 모니터링 애플리케이션과 결합하면 네트워크에 대한 공격을 사전에 예방할 수 있습니다.

러시아 연방 교육 과학부

고등 전문 교육을 받는 주립 교육 기관

"상트페테르부르크 주립대학교
항공우주기기공학과

코스 작업(프로젝트)
우수 등급으로 보호됨

감독자

부교수, 기술 과학 후보자, 부교수

지위, 학문 학위, 계급

서명 날짜

이니셜, 성

수업 과정(프로젝트)에 대한 설명 노트

IDS SNORT 사용 연습

분야: 엔지니어링 및 기술 정보 보안

작업 완료)

학생(KA) GR.

서명 날짜

이니셜, 성

2011년 상트페테르부르크

1.. 스노트란 무엇인가?. 2

2. 스니퍼 모드: 2

3. 패킷 로깅 모드. 6

4. 네트워크 침입 감지 모드. 6

1. 스노트란 무엇인가요?

Snort는 가벼운 침입 탐지 시스템입니다. Snort는 주로 소규모 네트워크용으로 설계되었기 때문에 일반적으로 "경량" NIDS/해독, 번역/이라고 합니다. 이 프로그램은 프로토콜 분석을 수행할 수 있으며 다양한 공격을 탐지하는 데 사용될 수 있습니다.

Snort는 "규칙"("규칙" 파일에 지정됨)을 사용하여 허용할 트래픽과 차단할 트래픽을 파악합니다. 이 도구는 유연하므로 새로운 규칙을 작성하고 따를 수 있습니다.

Snort는 3가지 주요 모드로 작동할 수 있습니다.

· 스니퍼 모드: 간단히 네트워크에서 패킷을 포착하여 화면(보통 콘솔)에 표시할 수 있습니다.

· 패킷 로깅 모드: 패키지를 하드 드라이브에 저장할 수 있습니다.


· NIDS(침입 감지 시스템) 모드는 사용자 정의 규칙 집합을 기반으로 네트워크 트래픽을 분석할 수 있는 가장 정교하고 사용자 정의 가능한 구성입니다.

2. 스니퍼 모드:

패킷 스니핑 모드에서 Snort는 단순히 네트워크에서 들어오는 패킷을 읽고 이를 화면에 표시합니다. TCP/IP 패킷 헤더를 표시하려면 다음을 실행해야 합니다.

코웃음 -v

이 명령은 IP 및 TCP/UDP/ICMP 패킷 헤더를 표시합니다. 패킷이 어디서 전송되었는지, 어디서 몇 개의 /addresses?/로 전송되었는지 확인할 수 있습니다. 그림/도면에는 참조용으로 번호가 매겨져 있어야 합니다. 링크가 없습니다. 이는 사진이 필요하지 않음을 의미합니다. / 두 개의 발신 주소가 있음이 분명합니다. / 어디에서 볼 수 있습니까? 그림의 항목 형식을 해독하거나 최소한 줄 번호를 참조하십시오.

이 주소가 무엇인지 이해하려면 다음 명령을 실행하십시오.

시스템 정보


사진에서 / 이미 - 사진. 그림은 아니고? 문서 내에서는 통일성을 유지해야 합니다! 아니면 다른 것인가요?/ 이 나가는 주소가 무엇인지 분명해집니다. /음, 그것들을 나열하거나 적어도 표시하십시오. 해당 숫자는 대괄호 안에 표시됩니다/

패키지에 포함된 데이터를 보려면 다음을 입력해야 합니다.

snort-vd

https://pandia.ru/text/78/320/images/image004_112.jpg" alt=" trendy_output.jpg" width="589" height="338">!}

스위치는 "snort - vde", "snort - d - ev" 및 "snort - e - v -d"와 같이 임의의 형식으로 제공될 수 있습니다.

Snort는 중단될 때까지 계속해서 정보를 수집합니다. 패킷 캡처를 완료하려면 Ctrl-C를 눌러야 합니다. Ctrl-C를 누르면 캡처된 패킷에 대한 보고서가 표시됩니다. 아래는 Snort를 약 1분간 실행한 후의 리포트입니다.

스냅샷을 보면 분석된 패킷의 대부분이 TCP/IP 패킷임을 알 수 있습니다. UDP 패킷도 캡처되었습니다.

3. 패킷 로깅 모드

패킷 로깅 모드를 사용하면 정보 스트림을 디스크에 쓸 수 있습니다. 이는 일정 기간 동안 분석을 수행하거나 설정 및 보안 정책의 변경 사항을 확인할 때 유용합니다.
로그용 디렉터리를 생성하고 지정해야 하며 Snort는 자동으로 패킷 로깅 모드로 전환합니다.

예: 디렉터리 생성 로그 그리고 다음을 실행하세요:

snort - dev - l../log

작업의 결과 /어디에서 찾을지, 원하는 위치를 표시하는 방법은 무엇입니까?/파일이 snort됩니다. log.. 새 파일 이름 끝에 있는 숫자는 타임스탬프이므로 파일 생성 시 충돌을 방지하는 데 도움이 됩니다. /로그 파일의 예가 바람직합니다/

4. 네트워크 침입 감지 모드

Snort의 세 번째 모드는 NIDS(네트워크 침입 감지) 모드입니다.

기본 형식에서 Snort 규칙은 /어디에 저장되어 있습니까?/ 헤더와 매개변수라는 두 부분으로 구성됩니다. 아래는 규칙의 예입니다.

경고 tcp any any -> any any (content: "www."; msg: "누군가 지금 YouTube를 방문 중입니다."; sid:1000002; rev:1)

규칙 구조 모델을 표현할 수 있습니까? 하드 코딩되어 있습니까? 아니면 변경할 수 있습니까? 대괄호 안의 요소는 선택사항이기를 바랍니다. 모두 다 아는. 하지만 그들 사이에 특별한 구분 기호가 있습니까? / 다음 구성표에 따르면:

<действие_правила> <протокол> <порт> <оператор_направления>


<порт>([메타_데이터] [패키지_콘텐츠_데이터]

[data_in_header] [action_after_Detection])

규칙 작업은 다음 범주로 구분됩니다.

1. 알리다 - 선택한 방법으로 경보를 생성하고 해당 정보를 로깅 시스템에 보고합니다.

2. 통나무 - 로깅 시스템을 사용하여 패키지 정보를 기록합니다.

3. 통과하다 - 패키지를 무시하세요.

4. 활성화하다 - 다른 동적 규칙을 사용하세요.

5. 동적 - 활성 규칙이 실행된 후 로깅 절차가 포함된 규칙이 활성화됩니다.

6. 떨어지다 - 소프트웨어 방화벽을 사용하여 패킷을 삭제하고 해당 정보를 로깅 시스템에 보고합니다.

7. 물방울 - 소프트웨어 방화벽을 사용하여 패킷을 삭제하고 로깅 시스템을 사용하지 마십시오.

8. 거부하다 - 방화벽을 사용하여 프로토콜이 TCP인 경우 패킷을 삭제하거나 로그 파일에 메시지를 작성합니다. 패킷이 UDP 프로토콜을 통해 도착하면 ICMP 포트를 사용할 수 없습니다.

Snort 규칙의 두 번째 부분은 탐지된 트래픽의 추가 세부 정보를 지정하는 옵션입니다. TCP/ 헤더의 필드 집합이나 패킷 페이로드를 기준으로 검색할 수 있습니다. 각 옵션 뒤에는 따옴표와 검색할 값이 와야 합니다. 세미콜론으로 구분하여 여러 옵션을 추가할 수 있습니다. 다음은 유효한 옵션입니다.

시드 – 규칙을 식별하는 고유 레이블입니다. 이 옵션은 옵션과 함께 사용해야 합니다. 신부님 .

<100 зарезервировано для дальнейшего использования

100-999,999개의 이미 예약된 규칙

>=1,000,000개의 사용자 정의 규칙

신부님- 규칙 버전의 값입니다. rev 규칙 해석기 사용

Snort는 작성된 규칙의 버전을 결정합니다.

다음 명령을 사용하여 IDS 모드에서 Snort를 실행할 수 있습니다.

snort - c "D:\Program Files\Snort\etc\snort.conf" - l " D:\Program Files\Snort\log" - 콘솔 - i 1

열쇠 -와 함께 IDS 모드가 활성화되었음을 의미합니다.

열쇠 파일 경로를 나타내는 하드 디스크에 녹음 모드를 활성화합니다.

열쇠 모든 경고가 콘솔 출력에 의해 복제됨을 보여줍니다.

열쇠 관심 있는 인터페이스의 인덱스 번호를 나타냅니다.

지원되는 인터페이스를 찾으려면 다음 명령을 실행해야 합니다.

흡입

파일 내용 흡입. conf

파일 내용 *****파일:

파일에서 snort. conf에서는 키워드를 사용하여 규칙을 연결할 수 있습니다 포함하다 .

명령 결과:

Snort가 "위험한" 사이트에 접근하려는 시도를 감지한 것을 볼 수 있습니다.

배포본을 가져온 출처나 연구가 수행된 OS에 대한 정보가 없습니다.

전체적으로 작품은 매우 흥미롭습니다. /