
모범 사례 Auditd 구성
___ ___ __ __
/ | __ ______/ (_) /_____/ /
/ /| |/ / / / __ / / __/ __ /
/ ___ / /_/ / /_/ / / /_/ /_/ /
/_/ |_\__,_/\__,_/_/\__/\__,_/
Best Practice Auditd 구성
이 auditd 구성의 목표는 다음과 같은 모범 사례 기준선을 제공하는 것입니다.
단순화된 규칙 세트는 의도적으로 일부 고가치이지만 잠재적으로 대량의 텔레메트리, 특히 프로세스 생성, 소켓 생성 및 파일 접근 실패 이벤트를 유지합니다. 필요한 경우 이러한 섹션을 환경에 맞게 조정하세요.
현재 구성은 다음 적용 범위에 중점을 둡니다.
ptrace, memfd_create, bpf, 네임스페이스, io_uring 및 userfaultfd와 같은 특수 프리미티브execve, execveat, 소켓 생성, 파일 삭제 및 32비트 ABI 사용과 같은 대량 텔레메트리이 규칙 세트는 다운스트림 탐지 로직에 대해 중립적으로 유지됩니다. 이는 광범위하게 유용한 감사 텔레메트리를 수집하는 데 중점을 두며, 이후 Sigma 기반 도구나 SIEM 쿼리와 같은 다양한 방식으로 분석될 수 있습니다.
이 감사 데이터를 활용할 수 있는 오픈 소스 프로젝트 중 하나는 Aurora Linux로, eBPF 기반 텔레메트리와 사용자 공간 강화 및 Sigma 규칙 매칭을 결합한 가볍고 사용자 정의 가능한 Sigma 기반 Linux 에이전트입니다.
이 규칙 세트는 의도적으로 -i를 포함하여 선택적 배포판별 경로가 일부 바이너리나 디렉터리가 없는 시스템에서 로드를 중단하지 않도록 합니다. 이렇게 하면 기본 배포가 간단하지만 규칙 로드 오류가 무시됩니다.
배포 전 엄격한 검증을 원한다면 -i 줄을 제거한 임시 복사본을 테스트하세요. 예를 들어:
grep -v '^-i$' audit.rules > /tmp/audit.rules.strict
auditctl -R /tmp/audit.rules.strict
저장소에는 규칙을 린트하고 이식 가능한 CI 복사본과 엄격한 복사본이 모두 Ubuntu에서 로드될 수 있는지 확인하는 GitHub Actions 검사도 포함되어 있습니다.
audit.rules의 여러 규칙은 auid>=1000 -F auid!=unset을 사용하여 대화형 사용자 활동에 초점을 맞추고 설정되지 않은 로그인 세션을 제외합니다.
1000은 많은 Linux 배포판에서 일반적인 UID_MIN이지만 보편적이지는 않습니다. 호스트에서 다른 UID_MIN을 사용하는 경우 /etc/login.defs를 확인하고 배포 전에 audit.rules에서 1000을 교체하세요:
awk '$1=="UID_MIN" { print $2 }' /etc/login.defs
2026년 4월 29일, Xint는 Copy Fail (CVE-2026-31431)을 발표했습니다. 이는 커널 암호화 사용자 공간 인터페이스(AF_ALG)와 splice()를 함께 악용하여 메모리 내 페이지 캐시 백업 파일을 손상시키는 로컬 권한 상승 기술입니다.
이 규칙 세트는 속성 가능한 사용자 세션에서 해당 설정의 안정적이고 노이즈가 적은 부분을 수집하기 위해 작은 af_alg 블록을 포함합니다:
socket(AF_ALG, ...)struct sockaddr_alg를 사용하는 bind()setsockopt(..., SOL_ALG, ...)이는 authencesn(hmac(sha256),cbc(aes))와 같은 일회성 서명보다 의도적으로 더 일반적입니다. 감사 시스템 호출 필터는 문자열 인수를 일치시킬 수 없기 때문입니다. 실제로 알고리즘 이름은 bind()가 방출하는 SOCKADDR 레코드에 있으므로 권장되는 다운스트림 탐지는 다음과 같습니다:
key=af_alg로 필터링SOCKADDR.saddr / SADDR={ saddr_fam=alg ... } 검사salg_type=aead와 salg_name에 authencesn( 포함 여부 플래그 지정pid, exe 또는 auid가 짧은 시간 내에 많은 바인드를 방출할 경우 심각도 상향Xint가 설명한 개념 증명은 또한 반복적인 splice() 작업에 의존합니다. 이러한 시스템 호출은 많은 시스템에서 기본 규칙 세트에 포함하기에는 너무 시끄럽습니다. 따라서 저장소에는 audit.rules에 주석 처리된 splice_user 오버레이만 포함되어 있습니다. 사용자 환경에서 splice / vmsplice가 드물고 동일한 프로세스 또는 사용자 세션의 최근 af_alg 활동과 상관 관계가 있는 경우에만 활성화하세요.
이 구성은 다음 출처와 기본 규칙 세트에 대한 수년간의 병합된 개선 사항을 기반으로 합니다.
Gov.uk auditd 규칙 https://github.com/gds-operations/puppet-auditd/pull/1
CentOS 7 강화 https://highon.coffee/blog/security-harden-centos-7/#auditd---audit-daemon
Linux audit 저장소 https://github.com/linux-audit/audit-userspace/tree/master/rules
Auditd 고성능 Linux 감사 https://linux-audit.com/tuning-auditd-high-performance-linux-auditing/
Copy Fail: 모든 주요 Linux 배포판에서 732바이트로 루트 권한 획득 https://xint.io/blog/copy-fail-linux-distributions
Linux 커널 암호화 사용자 공간 인터페이스 (AF_ALG) https://docs.kernel.org/crypto/userspace-if.html
이러한 규칙이 모두 포함된 것은 아닙니다.
PCI DSS 준수에 대해서는 다음을 참조하세요: https://github.com/linux-audit/audit-userspace/blob/master/rules/30-pci-dss-v31.rules
NISPOM 준수에 대해서는 다음을 참조하세요: https://github.com/linux-audit/audit-userspace/blob/master/rules/30-nispom.rules
IppSec은 auditd를 사용하여 OMIGOD 취약점 악용을 탐지하는 방법을 설명하는 동영상을 촬영했습니다. 해당 동영상의 핵심 auditd 개념은 여전히 유용하지만, 이 저장소의 규칙 세트는 이후 크게 단순화되었습니다. 동영상을 역사적 배경 및 auditd 기반 탐지 아이디어 소개로 취급하고, 현재 audit.rules의 줄별 문서로 취급하지 마십시오.
https://www.youtube.com/watch?v=lc1i9h1GyMA
변경 사항은 풀 리퀘스트로 기여해 주세요.