시스템(Linux)

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

forward error correction Circle 2025. 6. 5. 08:02
반응형

Ⅰ. 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

 

반응형