ausearchの結果から、そのスクリプトをどのように見つけることができますか?

ausearchの結果から、そのスクリプトをどのように見つけることができますか?

だから私のルートディレクトリに "]"ディレクトリを作成するプロセスを知りたいです。私はこれがいくつかのスクリプトのタイプミスであると仮定します。したがって、上記のものと非常によく似たように、そのディレクトリに対する監査を設定しました。この問題

翌日、ログを確認してみると、そのディレクトリが再生成され、監査と記録になっていたことがわかりました。しかし、この出力で私が見ることができるのはそれを作りました。

出力:

type=SYSCALL msg=audit(26.04.2013 06:25:20.275:85) : arch=i386 syscall=mkdir success=yes exit=0 a0=bfd02ea5 a1=1ed a2=bfd02ea5 a3=bfd025b8 items=2 ppid=24114 pid=24115 auid=unset uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=(none) ses=4294967295 comm=mkdir exe=/bin/mkdir key=weird 

改行:

type=SYSCALL 
msg=audit(26.04.2013 06:25:20.275:85) : 
arch=i386 
syscall=mkdir 
success=yes 
exit=0 a0=bfd02ea5 
a1=1ed a2=bfd02ea5 a3=bfd025b8 
items=2 ppid=24114 pid=24115 
auid=unset 
uid=root 
gid=root 
euid=root 
suid=root 
fsuid=root 
egid=root 
sgid=root 
fsgid=root 
tty=(none) 
ses=4294967295 
comm=mkdir 
exe=/bin/mkdir 
key=weird 

このコマンドをrootとして実行するスクリプトを知りたいです。それは可能ですか?このPPIDを使用するプロセスは実行されなくなりました。

答え1

これがcron実行スクリプトによって引き起こされたと仮定すると、すべてのcrond-childrenを追跡できます。

strace -p $CRONPID -f -o /path/to/cron-strace.log -e trace=mkdir

結果は次のとおりです。

Process 3584 attached
Process 18227 attached
[pid 18227] execve("./testscript", ["./testscript"], [/* 100 vars */]) = 0
Process 18228 attached
[pid 18228] execve("/usr/bin/mkdir", ["mkdir", "/home/hl/tmp/strace-testdir"], ...) = 0
[pid 18228] mkdir("/home/hl/tmp/strace-testdir", 0777) = 0

もちろん、straceはスクリプトの実行を遅くしますが、これは通常問題ではありません。

答え2

この出力だけでは、どのプログラムがmkdirコマンドを呼び出したのかわかりません。

お持ちの場合BSDプロセス会計、次のコマンドは、PID 24114を持つプログラムを表示します。

dump-acct /var/log/account/pacct | awk -F '|' '$10 ~ / 24114 / {print}'

おそらくそうですsh。列10(|区切り文字を含む)には、記録されたプロセスのPIDとPPIDが含まれているので、PPIDを使用して検索を繰り返して、どのプログラムが呼び出されたかを確認しshてください。また、プロセスの開始時期を確認することができ、これがどのようなクローン操作であるかを判断するのに役立ちます。

mkdirauditdのみを使用すると、呼び出しだけでなくディレクトリへのすべてのアクセスを記録する必要があるため、それを変更したりディレクトリ内のファイルにアクセスしたりするコマンドが記録されます。ディレクトリが作成されたが他の人がここにアクセスしていない場合、auditdだけでは問題を解決するのに十分ではないと思います。

関連情報