Ⅰ. 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 |
'시스템(Linux)' 카테고리의 다른 글
SSH 서비스가 비정상 종료 되었을 때 원인 분석 및 조치 방법에 대해 알아보겠습니다. (0) | 2025.07.04 |
---|---|
Linux 커널 매개변수를 실시간으로 조회 및 수정하는 sysctl 명령어에 대해 알아보겠습니다. (0) | 2025.07.03 |
리눅스 보안 로그(/var/log/secure)에 대해 알아보겠습니다. (0) | 2025.06.03 |
트립와이어(Tripwire) 에 대해 알아보겠습니다. (0) | 2025.06.02 |
BPF Door(Berkeley Packet Filter) 에 대해 알아보겠습니다. (1) | 2025.05.26 |