xtermとfirefoxの両方がsyscall = socketcall(recvmsg)を呼び出す場合、どのように区別できますか?

xtermとfirefoxの両方がsyscall = socketcall(recvmsg)を呼び出す場合、どのように区別できますか?

---- type=PROCTITLE msg=audit(2017年9月3日日曜日^E.370:2020074) : proctitle=/usr/bin/xterm -fg White -bg black type=SOCKETCALL msg=audit(2017年9月日曜日、9月3日^E.370:2020074): nargs=3 a0=0x3 a1=0xbf9a8274 a2=0x0 type=SYSCALL msg=audit(2017年9月3日日曜日^E.370:2020ch74) =i386システムコール = ソケットコール (recvmsg) 成功 = 終了なし = EAGAIN (リソースを一時的に使用できません)a0=recvmsg a1=0xbf9a81f4 a2=0x0 a3=0x0項目=0 ppid=16776 pid=16777 auid=設定解除 uid=ルート gid=ルート euid=ルート suid=ルート fsuid=ルート egid=ルート sgid=ルート fsgid=ルート tty=(なし) ses=設定解除comm=xterm exe=/usr/bin/xterm 鍵=バカ

---- type=PROCTITLE msg=audit(2017年9月3日日曜日^E.638:2020105): proctitle=/usr/local/firefox/firefox type=SOCKETCALL msg=audit(2017年9月3日日曜日) ^E .638:2020105 ) : nargs=3 a0=0x4 a1=0xbfaf8854 a2=0x0 type=SYSCALL msg=audit (2017 年 9 月 3 日日曜日 ^E.638:2020105 ) : archシステムコール = ソケットコール (recvmsg)成功 = 終了なし = EAGAIN (リソースを一時的に使用できません)a0=recvmsg a1=0xbfaf87d4 a2=0x0 a3=0xb771f000items=0 ppid=22804 pid=22815 auid=unset uid=geek gid=geek euid=geek suid=geek fsuid=geek egid=geek sgid=geek fsgid=geek tty=(なし) ses=unset comm=firefoxexe=/usr/local/firefox/firefox 鍵=バカ

私は以下を使用しています:

auditctl -a 終了、常に -F arch=i686 -S ソケットコール -k jackass

これは役に立ちましたが、上記の例ではうまくいかないようです。 Suse 監査文書はい-Fa0=1

フィルタリングできますが、両方の通貨メッセージを受け取るこれはうまくいきません。使用するものを区別する方法が必要です。a1 a2 a3。 SUSE文書によると、

-F a1 = 10フィルタは、IPv6プロトコルファミリドメインパラメータ(PF_INET6)を渡すソケットシステムコールの一致を絞り込みます。

ただし、これらの呼び出しでは、a1 = 0xb5d12130は読めない横説説です。その呼び出しのパラメータ配列へのポインタのようです。x86の多重化システムコール

intソケットコール(int呼び出し、unsigned long * args);

args points to a block containing the actual arguments, which are passed
       through to the appropriate call.

ベストアンサー1

読む次から受信(2)マンページ。

このシステムコールではファイル記述子、他のプロセスではfdが異なる場合があります(そして他のいくつかのinodeを参照してください)。

また読んでください高度なLinuxプログラミング(無料でダウンロード可能)。

以下も使用できます/proc/(参照工程(5))。これらのファイル記述子に他の内容を伝えることもls -l /proc/$(pidof firefox)/fd/ できます。ls -l /proc/$(pidof xterm)/fd/

おすすめ記事