웹사이트 검색

Linux에서 "AIDE"를 사용하여 파일 및 디렉터리의 무결성을 확인하는 방법


CentOS 7 강화 및 보안에 대한 메가 가이드의 "내부적으로 시스템 보호" 섹션에 있는 이 도구는 바이러스, 루트킷, 맬웨어로부터 내부 시스템을 보호하고 무단 침입 탐지를 위해 나열한 유용한 보안 도구 중 하나입니다. 활동은 AIDE입니다.

AIDE(고급 침입 탐지 환경)는 작지만 강력한 무료 오픈 소스 침입 탐지 도구로, 사전 정의된 규칙을 사용하여 Unix 계열 운영 체제에서 파일 및 디렉터리 무결성을 확인합니다. 리눅스 같은. 단순화된 클라이언트/서버 모니터링 구성을 위한 독립적인 정적 바이너리입니다.

기능이 풍부합니다. 일반 텍스트 구성 파일과 데이터베이스를 사용하여 사용하기 쉽습니다. md5, sha1, rmd160, Tiger를 포함하되 이에 국한되지 않는 여러 메시지 다이제스트 알고리즘을 지원합니다. 공통 파일 속성을 지원합니다. 또한 검사할 파일과 디렉터리를 선택적으로 포함하거나 제외하는 강력한 정규식을 지원합니다.

또한 Gzip 압축, Posix ACL, SELinux, XAttrs 및 확장 파일 시스템 속성에 대한 탁월한 지원을 통해 컴파일할 수 있습니다.

Aide는 구성 파일에 정의된 정규식 규칙에서 데이터베이스(단순히 파일 시스템의 선택된 부분에 대한 스냅샷)를 생성하는 방식으로 작동합니다. 이 데이터베이스가 초기화되면 이에 대한 시스템 파일의 무결성을 확인할 수 있습니다. 이 가이드에서는 Linux에서 aide를 설치하고 사용하는 방법을 보여줍니다.

Linux에 AIDE를 설치하는 방법

Aide는 주류 Linux 배포판의 공식 리포지토리에 패키지되어 있으며, 설치하려면 패키지 관리자를 사용하여 배포판에 대한 명령을 실행하세요.

apt install aide 	   [On Debian/Ubuntu]
yum install aide	   [On RHEL/CentOS] 	
dnf install aide	   [On Fedora 22+]
zypper install aide	   [On openSUSE]
emerge aide 	           [On Gentoo]

설치 후 주요 구성 파일은 /etc/aide.conf입니다. 설치된 버전과 컴파일 시간 매개변수를 보려면 터미널에서 아래 명령을 실행하세요.

aide -v
샘플 출력
Aide 0.14

Compiled with the following options:

WITH_MMAP
WITH_POSIX_ACL
WITH_SELINUX
WITH_PRELINK
WITH_XATTR
WITH_LSTAT64
WITH_READDIR64
WITH_ZLIB
WITH_GCRYPT
WITH_AUDIT
CONFIG_FILE = "/etc/aide.conf"

선호하는 편집기를 사용하여 구성을 열 수 있습니다.

vi /etc/aide.conf

여기에는 데이터베이스 위치, 보고서 위치, 기본 규칙, 데이터베이스에 포함될 디렉터리/파일을 정의하는 지시어가 있습니다.

기본 보좌관 규칙 이해

예를 들어 위의 기본 규칙을 사용하여 aide.conf 파일에 새로운 사용자 정의 규칙을 정의할 수 있습니다.

PERMS = p+u+g+acl+selinux+xattrs

PERMS 규칙은 액세스 제어에만 사용되며 파일/디렉터리 권한, 사용자, 그룹, 액세스 제어 권한, SELinux 컨텍스트 및 파일 속성을 기반으로 파일 또는 디렉터리에 대한 변경 사항을 감지합니다.

파일 내용과 파일 형식만 확인합니다.

CONTENT = sha256+ftype

이는 이전 규칙의 확장 버전으로, 확장된 콘텐츠, 파일 형식 및 액세스를 확인합니다.

CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs

아래의 DATAONLY 규칙은 모든 파일/디렉터리 내부의 데이터 변경 사항을 감지하는 데 도움이 됩니다.

DATAONLY =  p+n+u+g+s+acl+selinux+xattrs+sha256

파일 및 디렉터리 감시 규칙 정의

규칙을 정의한 후에는 감시할 파일과 디렉터리를 지정할 수 있습니다. 위의 PERMS 규칙을 고려하면 이 정의는 루트 디렉터리의 모든 파일에 대한 권한을 확인합니다.

/root/\..*  PERMS

그러면 /root 디렉토리의 모든 파일에 변경 사항이 있는지 확인합니다.

/root/   CONTENT_EX

/etc/ 아래의 모든 파일/디렉토리 내부의 데이터 변경 사항을 감지하려면 이를 사용하세요.

/etc/   DATAONLY 

AIDE를 사용하여 Linux에서 파일 및 디렉터리 무결성 확인

--init 플래그를 사용하여 수행될 검사에 대해 데이터베이스를 구축하는 것부터 시작하세요. 이는 시스템이 네트워크에 연결되기 전에 완료되어야 합니다.

아래 명령은 구성 파일에서 선택한 모든 파일을 포함하는 데이터베이스를 생성합니다.

aide --init

그런 다음 계속하기 전에 이 명령을 사용하여 데이터베이스 이름을 /var/lib/aide/aide.db.gz로 바꾸세요.

mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

데이터베이스를 읽기 전용 미디어나 다른 머신의 안전한 위치로 이동하는 것이 좋지만 해당 위치에서 읽을 수 있도록 구성 파일을 업데이트해야 합니다.

데이터베이스가 생성된 후 이제 --check 플래그를 사용하여 파일과 디렉터리의 무결성을 확인할 수 있습니다.

aide --check

데이터베이스의 스냅샷을 읽고 이를 시스템 디스크에서 찾은 파일/디렉터리와 비교합니다. 예상치 못한 장소에서 변경 사항이 발견되면 검토할 수 있는 보고서가 생성됩니다.

파일 시스템이 변경되지 않았으므로 위와 유사한 출력만 얻게 됩니다. 이제 구성 파일에 정의된 영역의 파일 시스템에서 일부 파일을 생성해 보십시오.

vi /etc/script.sh
touch all.txt

그런 다음 검사를 한 번 더 실행하면 위에 추가된 파일이 보고됩니다. 이 명령의 출력은 검사를 위해 구성한 파일 시스템 부분에 따라 다르며 초과 작업 시간이 길어질 수 있습니다.

aide --check

정기적으로 보조 검사를 실행해야 하며, 이미 선택한 파일이 변경되거나 구성 파일에 새 파일 정의가 추가되는 경우 항상 --update 옵션을 사용하여 데이터베이스를 업데이트하세요.

aide --update

데이터베이스 업데이트를 실행한 후 향후 스캔에 새 데이터베이스를 사용하려면 항상 이름을 /var/lib/aide/aide.db.gz로 바꾸세요.

mv /var/lib/aide/aide.db.new.gz  /var/lib/aide/aide.db.gz

지금은 여기까지입니다! 하지만 다음과 같은 중요한 사항에 유의하세요.

  • AIDE를 포함한 대부분의 침입 탐지 시스템의 한 가지 특징은 시스템의 대부분의 보안 허점에 대한 솔루션을 제공하지 않는다는 것입니다. 그러나 시스템 관리자가 시스템 파일/디렉터리의 변경 사항을 검사하는 데 도움을 줌으로써 침입 대응 프로세스를 쉽게 만드는 데 도움이 됩니다. 따라서 항상 경계하고 현재 보안 조치를 계속 업데이트해야 합니다.
  • 새로 생성된 데이터베이스, 구성 파일 및 AIDE 바이너리를 읽기 전용 미디어(소스에서 설치하는 경우 가능)와 같은 안전한 위치에 보관하는 것이 좋습니다.
  • 추가 보안을 위해 구성 및/또는 데이터베이스에 서명하는 것을 고려하십시오.

추가 정보 및 구성에 대해서는 매뉴얼 페이지를 참조하거나 AIDE 홈페이지(http://aide.sourceforge.net/)를 확인하십시오.