AuditD를 사용하여 다음 작업을 완료하려고 합니다.
cat을 사용하든 sudo cat을 사용하든 /etc/passwd에 대한 모든 액세스를 모니터링해야 합니다. 음, 간단합니다. 하지만 또한 auditd가 /etc/passwd에 액세스하는 데 사용되지 않은 다른 sudo 명령을 기록하지 못하도록 해야 합니다.
나는 이제 완전히 길을 잃었습니다. -S execve를 통해 모든 sudo 명령을 기록하는 것은 쉽지만 sudo /etc/passwd만 사용하면 머리가 아플 수 있습니다.
답변1
감사 로그의 필드는 auid
이를 정확하게 보여줍니다. execve
이를 위해 통화를 검토할 필요는 없습니다 .
~에서RHEL 감사 시스템 참조:
auid - 감사 사용자 ID를 기록합니다. 이 ID는 사용자가 로그인할 때 사용자에게 할당되며 사용자의 ID가 변경되더라도(예: su -john을 사용하여 사용자 계정을 전환하여) 각 프로세스에서 상속됩니다.
예를 들어 아래 줄에서는 uid가 루트이지만오에드(sudo를 실행하는 원래 사용자)는 john입니다.
$ ausearch -i -k passwd |grep cat
type=SYSCALL msg=audit(10/25/22 14:49:05.149:376) : arch=x86_64 syscall=openat success=yes exit=3 a0=0xffffff9c a1=0x7fffffffe268 a2=O_RDONLY a3=0x0 items=1 ppid=10413 pid=10418 auid=john uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=pts8 ses=21750 comm=cat exe=/usr/bin/cat subj==unconfined key=passwd
놓친 경우 관련 부분은 다음과 같습니다.auid=john uid=root