AIDE/ko

AIDE (Advanced Intrusion Detection Environment) is a host-based intrusion detection system. AIDE scans files and other resources and stores information about these files in a database. Stored information includes key file attributes such as file hash output, file size, ownership, modification time, creation time, and more. After the initial database has been created, AIDE then rescans the system and compares new scan results with previously stored values. If values differ then the file has been changed and the change will be reported. The idea behind using AIDE is to create a snapshot of a system then compare the snapshot to another created snapshot to find compromised files.

USE 플래그
다음 항목과 같이 USE 플래그를 설정하고 나면 aide를 설치하는 일은 참 쉽습니다.

USE flag changes specific to a certain package should be defined in the file, or a text file inside a directory called. For example, when using a file:

Emerge
USE 플래그를 설정했으면, 프로그램을 설치하십시오:

설정
The configuration file for aide is not as daunting as it might seem at first sight. The default file is stored at but administrators can easily create multiple configuration files if necessary. Besides a few variables, the configuration file contains short-hand notations for what aspects of files to scan for (only hashes, or also inode information, etc.) and which files to scan.

일단 database 변수를 들여다보도록 하겠습니다:

상단 예제의 첫번째 줄에서는 알려진 값을 보관하는 데이터베이스의 위치를 설정합니다. 두번째 줄 다른 데이터베이스를 이미 만들었을 경우 새 데이터베이스를 저장할 위치를 설정합니다. 보통 동일한 데이터베이스를 가리키도록 두 변수의 값을 설정(두 변수에 동일한 경로를 설정)하는 것이 좋습니다. 어떤 데이터베이스가 다른 데이터베이스에 덮어쓰기를 한다면, 가장 좋은 방법이 있다면, 한 위치에서 다른 위치로 이미 만든 데이터베이스에 "직접 복사"하는 방법이 있습니다. 예를 들어 앞의 데이터베이스를 그 다음 데이터베이스로 덮어쓰려면, 다음 명령을 사용할 수 있습니다:

For now, leave the database variables as they are; they will be covered in more detail later in the article.

The next file to consider is the file. The values of the variable are short-hand notations for what information to record in the database.

The letters are described in the default file, but for convenience the following table provides an overview of the most common options:

다음은 어떤 디렉터리를 검사할 지, 어떤 항목을 검사할 지 간략하게 보여줍니다. 여기 예제 세 줄을 따라 살펴보면, AIDE는 과 디렉터리를  로 줄여 표기한 변수에 지정한 방식대로 검사하라고 지시를 받습니다. 파일에서는 상단에 설정한  변수의 내용대로 검사 내용을 보여줍니다.

AIDE에는 정규표현식을 지원하며 일치하는 요소를 "제거" 할 수 있습니다. 예를 들어, 를 검사하지만 를 검사하지 않으려면, 다음과 같이 제외 경로 앞에 (느낌표)를 붙여 제외 항목을 설정하십시오:

초기화 및 잦은 검사
For a basic AIDE setup, a database must be initialized. This is performed using the  option. To make sure AIDE uses the configuration settings defined in the sections before, be sure to pass the  option pointed to the correct configuration file:

Once initialized, any pre-existing database files can be copied over:

With a new database available, the entries can be scanned again (now or at a later date) using the  option. This will create another database containing any modifications that have made to the file system since the first database has been created. Be sure to use the  option pointed to the same configuration file that the first database was created with:

파일 수정이 발생하면, 다음 알림을 내보냅니다:

검사 대상을 확실히 설정 하십시오
기본 AIDE 설정은 유용하지만, 사용자의 요구에 맞추려면 세밀하게 조절해야 합니다. 어떤 파일을 왜 검사해야 하는지 아는 것이 중요합니다.

예를 들어, 인증 관련 파일만을 모두 검사하지만, 다른 파일에 대해서는 검사하지 않는다면, 다음처럼 설정을 사용할 수 있습니다:

데이터베이스를 오프라인 상태 및 읽기 전용으로 유지하십시오
두번째로 중요한 양상은, 필요하지 않을 때는 데이터베이스를 오프라인에 저장해야하며, 필요할 때는 읽기 전용 방식으로 사용하려 하는 점입니다. 이러한 방식을 통해 타협 숙주를 지니고 데이터베이스를 멋대로 수정하는 악의적인 사용자로부터 보호할 수 있습니다. 예를 들어 읽기 전용 NFS 마운트(서버) 또는 CD/DVD 또는 읽기 전용 USB 메모리같은 읽기 전용 매체(머신에 직접 접근할 수 있을 경우)를 통해 결과 데이터베이스를 제공할 수 있습니다.

각각의 읽기전용 위치에 데이터베이스를 저장한 후, 파일을 업데이트 하여  가 새 위치를 가리키도록 하십시오.

오프라인 상태에서 검사하십시오
가능하다면, 시스템에 대해 오프라인 검사 방법을 사용해보십시오. 가상 플랫폼의 경우 시스템의 스냅샷을 취할 수 있고 이 스냅샷을 마운트(읽기 전용) 할 수 있으며 마운트한 파일 시스템에 대해 AIDE 검사를 수행할 수 있습니다.

위의 접근 방식에서는 chroot를 사용했습니다. 실제 시스템에서 초기 파일 시스템을 검사할 경우에만 필요하며, 관리자는 오프라인 방식 검사를 원합니다. 초기 오프라인 검사가 끝나면, 파일은 마운트 지점을 가리키며, 데이터베이스는 이 경로를 즉시 사용합니다. 따라서 chroot를 할 필요가 없습니다.

추가 참조

 * Integrity/Concepts 에서는 시스템 무결성과 관련한 개념을 다룹니다

외부 자료

 * Tutorial on how to use AIDE (Linux.com)
 * Securing Linux with AIDE article (Symantec.com)