본문 바로가기
시스템(Linux)

리눅스 무결성 검사 도구인 AIDE(Advanced Intrusion Detection Environment)에 대해 알아보겠습니다.

by forward error correction Circle 2025. 6. 5.
반응형

Ⅰ. AIDE(Advanced Intrusion Detection Environment)란?

 시스템 파일과 디렉터리의 무결성을 모니터링하는 호스트 기반 침입 탐지 시스템(HIDS)입니다. 초기 데이터베이스를 생성한 후 주기적으로 시스템 상태를 비교하여 변조 사항을 탐지합니다. 이 도구는 MD5, SHA256, SHA512 등의 해시 알고리즘을 활용하며, 파일 권한, inode, 타임스탬프 등의 메타데이터 변화도 감지합니다. 레드햇 계열(RHEL/CentOS)에서의 설치 및 운영 방법을 중심으로 AIDE의 활용 방안을 상세히 설명합니다.

Ⅱ. AIDE의 핵심 기능과 동작 원리

ⅰ. 시스템 무결성 검사의 필요성
 침해 사고 발생 시 공격자는 주로 /bin, /sbin, /etc 디렉터리의 실행 파일이나 설정 파일을 변조합니다. AIDE는 이러한 변조를 실시간으로 탐지하여 관리자에게 알림을 전송하며, 포렌식 조사 시 변조 시점 추적에 기여합니다. 예를 들어, /etc/passwd 파일이 수정되면 AIDE는 해시값 불일치를 감지하고 보고서를 생성합니다.

ⅱ.  AIDE의 아키텍처
 초기화 단계에서 모니터링 대상 파일의 기준 데이터베이스를 생성합니다. 이후 --check 명령 실행 시 현재 시스템 상태와 데이터베이스를 비교하여 다음 사항을 검출합니다:
 1) 추가/삭제된 파일
 2) 내용 변경 발생 파일
 3) 메타데이터(소유자, 권한 등) 변경
데이터베이스는 기본적으로 /var/lib/aide/aide.db.gz에 저장되며, Gzip 압축을 지원합니다.

Ⅲ. 레드햇 계열 시스템에서의 AIDE 설치

ⅰ. 패키지 설치 및 초기 설정
EPEL 저장소가 활성화된 환경에서 다음 명령으로 설치를 진행합니다:

[root@feccle ~] # dnf install aide -y


초기 데이터베이스 생성 전 /etc/aide.conf 파일을 편집하여 모니터링 규칙을 정의합니다. 기본 구성에서는 시스템 핵심 디렉터리만 포함되므로, 필요 시 /var/www 등의 사용자 정의 경로를 추가합니다.

# /etc/aide.conf 예시
/etc            p+i+n+u+g+s+m+c+sha512
/bin            p+i+n+u+g+s+m+c+sha512
/var/log        p+i+n+u+g+s+m+c+sha512
!/tmp           # 제외 대상 디렉터리

데이터베이스 초기화 후 실제 운영을 위해 파일명을 변경합니다:

[root@feccle ~] # aide --init
[root@feccle ~] #  mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

초기화 실패 시 SELinux 컨텍스트 오류 가능성을 확인해야 합니다.

Ⅳ. AIDE 운영 방법 및 실전 활용 전략

ⅰ. 수동 무결성 검사 실행

[root@feccle ~] # aide --check


결과는 /var/lib/aide/aide.log에 저장되며, twprint 유틸리티로 가독성 있는 형식으로 변환 가능합니다. 변조 사항이 발견되면 다음과 유사한 출력이 생성됩니다:

Changed entries:
----------------
f ... /usr/bin/ssh
  SHA512: 7F83B165... (기존) → A3B9EF45... (현재)


ⅱ. 정책 업데이트 및 데이터베이스 갱신
시스템 업데이트 후 변경사항을 반영하려면:

[root@feccle ~] # aide --update
[root@feccle ~] # cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz


크론 작업을 통해 매일 02:00에 자동 검사를 수행하도록 설정할 수 있습니다:

# /etc/crontab 추가
0 2 * * * root /usr/sbin/aide --check | mail -s "AIDE Daily Report" admin@example.com


ⅲ. 고급 구성 기법
 1) 이메일 알림 통합: mutt 또는 sendmail을 활용하여 변조 발생 시 즉시 알림 전송
 2) 중앙 집중식 모니터링: 다중 서버의 AIDE 리포트를 로그 서버에 집계하는 쉘 스크립트 작성
 3) SELinux 연동: semanage로 AIDE 관련 정책 수정 시 SELinux 컨텍스트 일치 보장

Ⅴ. AIDE 운영 시 고려사항 및 문제 해결

ⅰ. 오탐(False Positive) 최소화 전략
  1) /tmp, /var/cache 등 임시 파일 디렉터리 제외
  2) 정규표현식을 활용한 동적 파일 경로 패턴 지정(예: /var/log/*.log)
  3) 주기적인 정책 파일 검토를 통한 모니터링 대상 최적화
ⅱ. 성능 관리
대규모 파일 시스템 검사 시 inode 기반 검색 옵션(-i) 사용으로 성능 향상

[root@feccle ~] # aide --check -i

Zlib 압축 활성화를 통해 데이터베이스 크기 40% 이상 절감 가능

Ⅵ. AIDE vs Tripwire 비교

비교 항목  AIDE
(Advanced Intrusion Detection Environment) 
Tripwire
(Open Source/Enterprise)
라이센스 GPL v3 기반 완전 오픈소스 오픈소스 버전: GPL v2
엔터프라이즈: 상용 라이센스
개발 현황  유지보수(GitHub 커밋 지속) 오픈소스 버전: 2015년 이후 업데이트 중단
엔터프라이즈: 정기적 패치
설치 복잡도 apt/yum 패키지 매니저로 1분 내 설치 가능  오픈소스: 소스 컴파일 필요
엔터프라이즈: 전용 설치 프로그램 제공
구성 파일 관리 단일 텍스트 설정 파일(/etc/aide.conf) 이중 키 시스템(site/local key) 기반 암호화 설정
해시 알고리즘 MD5, SHA1, SHA256, SHA512, Whirlpool 지원 SHA-1, SHA-256 기본 제공
엔터프라이즈: 사용자 정의 알고리즘 추가 가능
실시간 모니터링 Cron 기반 주기 검사만 지원 엔터프라이즈: inotify 기반 실시간 감시 기능
비용 완전 무료 오픈소스: 무료
엔터프라이즈: 서버당 연간 $1,500~$3,000

 

반응형