웹사이트 검색

Ubuntu 16.04에서 Tripwire IDS를 사용하여 수정된 파일을 모니터링하고 감지하는 방법


이 페이지에서

  1. 우리가 할 일\n
  2. 전제 조건
  3. 1단계 - Tripwire 설치
  4. 2단계 - Ubuntu 시스템용 Tripwire 정책 구성
  5. 3단계 - 시스템 파일의 무결성 확인\n
  6. 4단계 - Tripwire에 새 규칙 추가
  7. 5단계 - Tripwire 알림 및 cron 설정
  8. 참조

Tripwire는 무료 오픈 소스 침입 탐지 시스템(IDS)입니다. 시스템의 파일 변경 사항을 모니터링하고 경고하는 보안 도구입니다. Tripwire는 원치 않는 변경으로부터 시스템을 보호하는 강력한 IDS입니다. 웹 사이트 파일을 포함하여 시스템 파일을 모니터링할 수 있습니다. 따라서 모니터링 중인 파일에 원치 않는 파일 변경이 있으면 tripwire가 시스템을 확인하고 경고합니다(해당 설정이 있는 경우).

이 튜토리얼에서는 Ubuntu 16.04에서 Tripwire 호스트 기반 IDS를 설치하고 구성하는 방법을 보여줍니다. 또한 시스템에서 수정된 파일을 모니터링하고 감지하도록 트립와이어를 구성하는 방법도 보여줍니다.

우리가 할 일

  1. Tripwire 설치
  2. Ubuntu 시스템용 Tripwire 정책 구성
  3. Tripwire 구성 확인\n
  4. Tripwire 정책에 새 규칙 세트 추가
  5. Tripwire 알림 및 cron 설정

전제 조건

  • 우분투 16.04 서버
  • 루트 권한\n

1단계 - 트립와이어 설치

첫 번째 단계는 트립와이어를 시스템에 설치하는 것입니다. 이 도구는 공식 Ubuntu 저장소에서 사용할 수 있습니다. Ubuntu 저장소를 업데이트하고 다음 명령을 사용하여 Tripwire를 설치하기만 하면 됩니다.

sudo apt update
sudo apt install -y tripwire

설치하는 동안 Postfix SMTP 구성에 대한 질문을 받게 됩니다. 인터넷 사이트를 선택하고 확인을 클릭하여 설치를 계속하십시오.

메일 시스템 이름의 경우 기본값(아래 표시된 대로)을 그대로 두고 확인을 선택하여 계속합니다.

다음으로 Tripwire 구성에 대한 질문을 받게 됩니다.

Tripwire용 새 사이트 키 생성 - 예를 선택하고 Enter 키를 눌러 계속합니다.

이제 로컬 키에 대해 Yes를 선택하고 Enter 키를 다시 누릅니다.

Rebuild Tripwire 구성 옵션에 대해 예를 선택합니다.

Rebuild Tripwire Policy 옵션과 동일 - 예를 선택합니다.

이제 사이트 키 암호를 입력하라는 메시지가 표시됩니다. 암호를 입력하고 확인을 선택합니다.

사이트 키 암호를 반복합니다.

그런 다음 로컬 키 암호에 암호를 입력하고 확인을 선택합니다.

로컬 키 암호를 반복합니다.

이제 Ubuntu 16.04에 트립와이어 설치가 완료되었습니다.

2단계 - Ubuntu 시스템에 대한 Tripwire 정책 구성

이 단계에서는 Ubuntu 시스템용 Tripwire를 구성합니다. 모든 Tripwire 관련 구성은 /etc/tripwire 디렉토리에 있습니다.

Tripwire 설치 후 데이터베이스 시스템을 초기화해야 합니다. 다음 명령을 실행하십시오.

sudo tripwire --init

로컬 키 암호에 대해 묻는 메시지가 표시됩니다. 로컬 키 암호를 입력하고 Enter 키를 누릅니다.

그리고 아래와 같이 No such directory 오류가 발생할 수 있습니다.

이 오류를 해결하려면 Tripwire 구성 파일을 편집하고 구성을 다시 생성해야 합니다.

Tripwire 구성을 편집하기 전에 어떤 디렉토리가 존재하지 않는지 확인해야 합니다. 이는 다음 명령을 사용하여 수행할 수 있습니다.

sudo sh -c "tripwire --check | grep Filename > no-directory.txt"

이제 다음과 같은 방법으로 존재하지 않는 모든 디렉토리와 파일을 볼 수 있습니다.

cat no-directory.txt

다음으로 Tripwire 구성 디렉토리로 이동하여 구성 파일 twpol.txt를 편집합니다.

cd /etc/tripwire/
vim twpol.txt

Boot Scripts 규칙에서 아래와 같이 줄을 주석 처리합니다.

(
  rulename = "Boot Scripts",
  severity = $(SIG_HI)
)
{
        /etc/init.d             -> $(SEC_BIN) ;
        #/etc/rc.boot           -> $(SEC_BIN) ;
        /etc/rcS.d              -> $(SEC_BIN) ;

System Boot Changes 규칙에서 아래와 같이 설명합니다.

(
  rulename = "System boot changes",
  severity = $(SIG_HI)
)
{
        #/var/lock               -> $(SEC_CONFIG) ;
        #/var/run                -> $(SEC_CONFIG) ; # daemon PIDs
        /var/log                -> $(SEC_CONFIG) ;

루트 구성 파일 규칙에서 다음과 같이 변경합니다.

(
  rulename = "Root config files",
  severity = 100
)
{
        /root                           -> $(SEC_CRIT) ; # Catch all additions to /root
        #/root/mail                     -> $(SEC_CONFIG) ;
        #/root/Mail                     -> $(SEC_CONFIG) ;
        #/root/.xsession-errors         -> $(SEC_CONFIG) ;
        #/root/.xauth                   -> $(SEC_CONFIG) ;
        #/root/.tcshrc                  -> $(SEC_CONFIG) ;
        #/root/.sawfish                 -> $(SEC_CONFIG) ;
        #/root/.pinerc                  -> $(SEC_CONFIG) ;
        #/root/.mc                      -> $(SEC_CONFIG) ;
        #/root/.gnome_private           -> $(SEC_CONFIG) ;
        #/root/.gnome-desktop           -> $(SEC_CONFIG) ;
        #/root/.gnome                   -> $(SEC_CONFIG) ;
        #/root/.esd_auth                        -> $(SEC_CONFIG) ;
        #/root/.elm                     -> $(SEC_CONFIG) ;
        #/root/.cshrc                   -> $(SEC_CONFIG) ;
        /root/.bashrc                   -> $(SEC_CONFIG) ;
        #/root/.bash_profile            -> $(SEC_CONFIG) ;
        #/root/.bash_logout             -> $(SEC_CONFIG) ;
        /root/.bash_history             -> $(SEC_CONFIG) ;
        #/root/.amandahosts             -> $(SEC_CONFIG) ;
        #/root/.addressbook.lu          -> $(SEC_CONFIG) ;
        #/root/.addressbook             -> $(SEC_CONFIG) ;
        #/root/.Xresources              -> $(SEC_CONFIG) ;
        #/root/.Xauthority              -> $(SEC_CONFIG) -i ; # Changes Inode number on login
        #/root/.ICEauthority                -> $(SEC_CONFIG) ;

장치 및 커널 정보 규칙에서 아래와 같이 줄을 변경합니다.

(
  rulename = "Devices & Kernel information",
  severity = $(SIG_HI),
)
{
        /dev            -> $(Device) ;
        /dev/pts        -> $(Device);
        /dev/shm        -> $(Device);
        /dev/hugepages  -> $(Device);
        /dev/mqueue     -> $(Device);
        #/proc          -> $(Device) ;
        /proc/devices           -> $(Device) ;
        /proc/net               -> $(Device) ;
        /proc/tty               -> $(Device) ;
        /proc/cpuinfo           -> $(Device) ;
        /proc/modules           -> $(Device) ;
        /proc/mounts            -> $(Device) ;
        /proc/dma               -> $(Device) ;
        /proc/filesystems       -> $(Device) ;
        /proc/interrupts        -> $(Device) ;
        /proc/ioports           -> $(Device) ;
        /proc/scsi              -> $(Device) ;
        /proc/kcore             -> $(Device) ;
        /proc/self              -> $(Device) ;
        /proc/kmsg              -> $(Device) ;
        /proc/stat              -> $(Device) ;
        /proc/loadavg           -> $(Device) ;
        /proc/uptime            -> $(Device) ;
        /proc/locks             -> $(Device) ;
        /proc/meminfo           -> $(Device) ;
        /proc/misc              -> $(Device) ;
}

그게 다야. 변경 사항을 저장하고 편집기를 종료합니다.

구성 파일을 편집한 후 아래와 같이 twadmin 명령을 사용하여 암호화된 정책 파일을 다시 생성하여 모든 변경 사항을 구현합니다.

sudo twadmin -m P /etc/tripwire/twpol.txt

사이트 키 암호를 입력하고 Enter 키를 누릅니다.

이를 통해 새로운 Tripwire 정책이 생성됩니다. 이제 Tripwire 데이터베이스를 다시 초기화하십시오.

sudo tripwire --init

로컬 키 암호를 입력하고 이번에는 오류가 없는지 확인하십시오.

Tripwire 정책이 Ubuntu 시스템용으로 구성되었습니다.

3단계 - 시스템 파일의 무결성 확인

트립와이어가 설치되었으며 트립와이어 정책이 업데이트되고 다시 초기화되었습니다. 이 단계에서는 Tripwire를 사용하여 수동으로 시스템을 확인합니다.

다음 명령을 사용하여 모든 시스템 파일을 확인합니다.

sudo tripwire --check

그리고 결과/출력에 No Violation 및 No Error가 표시되어야 합니다.

그런 다음 루트 디렉토리에 새 파일을 추가한 다음 Tripwire를 사용하여 시스템을 다시 확인하십시오.

cd ~/
touch hakase-labs.txt
sudo tripwire --check

그리고 출력에서 파일 추가 및 파일이 상주하는 디렉토리 수정은 위반으로 표시되어야 합니다.

아래 결과를 참조하십시오.

4단계 - Tripwire에 새 규칙 추가

이 단계에서는 새 Tripwire 규칙을 구성에 추가하려고 합니다. 새 트립와이어 정책을 생성하려면 규칙 이름, 심각도 및 파일 유형을 정의해야 합니다. 이 단계에서는 심각도가 높음/SIG_HI인 Wordpress Data라는 새 규칙을 추가하려고 시도하며 해당 디렉터리의 모든 파일은 중요합니다. 변경할 수 없습니다.

Tripwire 구성 디렉토리로 이동하여 구성 파일 twpol.txt를 편집합니다.

cd /etc/tripwire/
vim twpol.txt

줄 끝으로 이동하여 아래 Tripwire 규칙 샘플을 붙여넣습니다.

# Ruleset for Wordpress
(
  rulename = "Wordpress Ruleset",
  severity= $(SIG_HI)
)
{
        /var/www        -> $(SEC_CRIT);
}

저장 및 종료.

이제 트립와이어 구성 파일을 재생성합니다.

sudo twadmin -m P /etc/tripwire/twpol.txt

사이트 키 암호를 입력합니다.

그리고 Tripwire 데이터베이스를 다시 초기화하십시오.

sudo tripwire --init

로컬 키 암호를 입력합니다.

이러한 모든 구성이 완료되면 새 파일을 만들거나 /var/www/ 디렉터리 아래의 파일을 수정할 수 있습니다.

/var/www/ 디렉토리로 이동하여 새 파일을 만들고 인덱스 파일을 수정합니다.

cd /var/www/
touch hakase-labs.txt
echo "<h1> Hakase-labs Tutorial</h1>" > html/index.nginx-debian.html

아래의 tripwire 명령을 사용하여 시스템을 확인하십시오.

sudo tripwire --check

그리고 아래와 같이 보안 수준 100의 시스템 위반에 대한 알림을 받게 됩니다.

새로운 트립와이어 규칙이 추가되었습니다.

5단계 - Tripwire 알림 및 cron 설정

이 단계에서는 특정 Tripwire 규칙 세트 정책에 대한 알림을 구성하고 자동 시스템 검사를 위해 크론을 구성합니다.

이메일 알림을 위해 Tripwire는 구성에서 emailto 기능을 제공합니다. Tripwire는 이메일 알림에 Postfix를 사용하며 도구 설치 중에 자동으로 설치됩니다.

이메일 알림을 구성하기 전에 아래 명령을 사용하여 Tripwire 알림을 테스트하십시오.

tripwire --test --email 

그리고 아래와 같이 서버에서 보낸 이메일이 있는지 확인하십시오.

이제 /etc/tripwire 디렉토리로 이동하여 twpol.txt 구성을 편집하십시오.

cd /etc/tripwire/
vim twpol.txt

아래와 같이 Wordpress 데이터 규칙 내에 새 줄을 추가합니다.

# Rules for Web-app
(
  rulename = "Wordpress Rule",
  severity = $(SIG_HI),
  emailto =
)

그게 다야. 저장 및 종료.

다음으로 구성을 재생성하고 Tripwire 데이터베이스를 다시 초기화합니다.

sudo twadmin -m P /etc/tripwire/twpol.txt
sudo tripwire --init

구성을 재생성하려면 사이트 키 암호를 입력하고 다시 초기화하려면 로컬 키 암호를 입력하십시오.

이제 /var/www/ 디렉토리에 새 파일을 다시 만들고 Tripwire를 사용하여 수동으로 시스템을 확인하고 보고서를 이메일로 보냅니다.

sudo tripwire --check --email-report

받은 편지함에 이메일 보고서가 있어야 합니다.

계속해서 cron 구성을 위해 우리는 tripwire 명령이 실행될 시간을 정의하기만 하면 됩니다. 우리는 매일 Tripwire 시스템 검사를 구성할 것입니다.

아래의 crontab 명령을 사용하여 새 cron을 만듭니다.

sudo crontab -e -u root

그리고 아래에 cron 구성을 붙여넣습니다.

0 0 * * * tripwire --check --email-report

저장하고 종료한 다음 cron을 다시 로드합니다.

systemctl restart cron

이제 시스템은 매일 확인을 수행하고 Wordpress 규칙 위반에 대한 알림을 이메일로 보냅니다.

Tripwire IDS는 Ubuntu 16.04에 설치 및 구성되었으며 시스템의 모든 파일과 디렉토리가 모니터링되었습니다. 4단계의 지침에 따라 고유한 규칙 세트를 추가할 수 있습니다.

참조

  • https://www-uxsup.csx.cam.ac.uk/