13.13. AIDE를 사용한 침입 탐지
AIDE(Advanced Intrusion Detection Environment)는 파일 및 디렉터리 무결성 검사기입니다. 무단 파일 변조 또는 변경 사항을 감지하는 데 사용됩니다. 예를 들어 AIDE에서는 시스템 암호 파일이 변경되는 경우 이를 경고할 수 있습니다.
AIDE는 시스템 파일을 분석한 다음 파일 해시의 무결성 데이터베이스를 컴파일하여 작동합니다. 그런 다음 데이터베이스는 파일 및 디렉터리의 무결성을 확인하고 변경 사항을 감지하기 위한 비교 지점 역할을 합니다.
director에는 AIDE 서비스가 포함되어 있으므로 AIDE 구성에 항목을 추가할 수 있으며, AIDE 서비스에서 무결성 데이터베이스를 생성하는 데 사용됩니다. 예를 들면 다음과 같습니다.
resource_registry: OS::TripleO::Services::Aide: /usr/share/openstack-tripleo-heat-templates/deployment/aide/aide-baremetal-ansible.yaml parameter_defaults: AideRules: 'TripleORules': content: 'TripleORules = p+sha256' order: 1 'etc': content: '/etc/ TripleORules' order: 2 'boot': content: '/boot/ TripleORules' order: 3 'sbin': content: '/sbin/ TripleORules' order: 4 'var': content: '/var/ TripleORules' order: 5 'not var/log': content: '!/var/log.*' order: 6 'not var/spool': content: '!/var/spool.*' order: 7 'not nova instances': content: '!/var/lib/nova/instances.*' order: 8
위의 예제는 적극적으로 유지 관리되거나 벤치마킹되지 않으므로 요구 사항에 맞는 AIDE 값을 선택해야 합니다.
-
매번 동일한 속성을 반복적으로 사용하지 않도록
TripleORules
라는 별칭이 선언됩니다. -
별칭은
p+sha256
의 속성을 수신합니다. AIDE 용어로 다음과 같은 지침이 표시됩니다.sha256
의 무결성 체크섬을 사용하여 모든 파일 권한p
를 모니터링합니다.
AIDE의 구성 파일에 사용 가능한 전체 속성 목록은 https://aide.github.io/ 에서 AIDE MAN 페이지를 참조하십시오.
배포에 변경 사항을 적용하려면 다음을 완료합니다.
-
설정을
/home/stack/templates/
디렉터리에aide.yaml
이라는 파일로 저장합니다. -
aide.yaml
환경 파일을 편집하여 환경에 적합한 매개변수와 값을 지정합니다. 환경과 관련된 기타 필요한 모든 heat 템플릿 및 환경 파일과 함께
openstack overcloud deploy
명령에/home/stack/templates/aide.yaml
환경 파일을 포함합니다.openstack overcloud deploy --templates ... -e /home/stack/templates/aide.yaml
13.13.1. 복잡한 AIDE 규칙 사용
이전에 설명한 형식을 사용하여 복잡한 규칙을 생성할 수 있습니다. 예를 들면 다음과 같습니다.
MyAlias = p+i+n+u+g+s+b+m+c+sha512
이 명령은 체크섬 생성에 sha256을 사용하여 권한, inode, 링크 수, 사용자, 그룹, 크기, 블록 수, mtime, ctime 등의 명령어로 변환됩니다.
별칭에는 항상 1
의 순서 위치가 있어야 합니다. 즉, AIDE 규칙 상단에 배치되고 아래의 모든 값에 재귀적으로 적용됩니다.
별칭 뒤에는 모니터링할 디렉터리가 있습니다. 정규 표현식을 사용할 수 있습니다. 예를 들어 var
디렉토리에 대한 모니터링을 설정했지만 '
및 !
/var/log.*''!/var/spool.*'
!를 사용하여 not 절으로 덮어씁니다.
13.13.2. 추가 AIDE 값
다음 AIDE 값도 사용할 수 있습니다.
AideConfPath
: aide 구성 파일의 전체 POSIX 경로이며 기본값은 /etc/aide.conf
입니다. 파일 위치를 변경할 필요가 없는 경우 기본 경로를 사용하는 것이 좋습니다.
AideDBPath
: AIDE 무결성 데이터베이스의 전체 POSIX 경로입니다. AIDE 데이터베이스 파일은 노드에서 읽기 전용 파일 마운트에 저장되므로 Operator가 자체 전체 경로를 선언할 수 있도록 이 값을 구성할 수 있습니다.
AideDBTempPath
: AIDE 무결성 임시 데이터베이스의 전체 POSIX 경로입니다. 이 임시 파일은 AIDE에서 새 데이터베이스를 초기화할 때 생성됩니다.
AideHour
: 이 값은 hour 속성을 AIDE cron 구성의 일부로 설정하는 것입니다.
AideMinute
: 이 값은 minute 속성을 AIDE cron 구성의 일부로 설정하는 것입니다.
AideCronUser
: 이 값은 linux 사용자를 AIDE cron 구성의 일부로 설정하는 것입니다.
AideEmail
: 이 값은 cron 실행이 수행될 때마다 AIDE를 수신하는 이메일 주소를 설정합니다.
AideMuaPath
: 이 값은 AIDE 보고서를 AideEmail
내에 설정된 이메일 주소로 보내는 데 사용되는 메일 사용자 에이전트의 경로를 설정합니다.
13.13.3. AIDE의 Cron 구성
AIDE director 서비스를 사용하면 cron 작업을 구성할 수 있습니다. 기본적으로 보고서를 /var/log/audit/
로 보냅니다. 이메일 경고를 사용하려는 경우 AideEmail
매개변수를 활성화하여 구성된 이메일 주소로 경고를 보냅니다. 중요한 경고에 대한 이메일에 대한 의존은 시스템 중단 및 의도하지 않은 메시지 필터링에 취약할 수 있습니다.
13.13.4. 시스템 업그레이드의 영향 고려
업그레이드가 완료되면 AIDE 서비스가 새 무결성 데이터베이스를 자동으로 다시 생성하여 업그레이드된 모든 파일이 업데이트된 체크섬을 보유하도록 올바르게 다시 계산되도록 합니다.
openstack overcloud deploy
를 초기 배포에 대한 후속 실행으로 호출하고 AIDE 구성 규칙이 변경되면 director AIDE 서비스에서 새 구성 속성이 무결성 데이터베이스에 캡슐화되도록 데이터베이스를 다시 빌드합니다.