Linuxシグナルロガー

Linuxシグナルロガー

カーネルにパッチを適用せずにLinuxカーネル用のシグナルロガーを探しています。

ティンカリングに関する記事をたくさん見つけましたが、興味はありません。

私はデフォルトのUbuntu 13.04を実行しています。

# uname -a
Linux bt 3.8.0-26-lowlatency #18-Ubuntu SMP PREEMPT Tue Jun 25 22:36:04 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

必要なもの:pid、comm(発信者) - >信号(番号0-31) - > pid、comm(キャッチャー)

またよいです:

  pidtree of sender ----- - - - - - receiver(cmd) ---- child1 of receiver, etc
              /                     \----child2---child1 of child2(cmd)
             ppid(+cmd)               ----child3(+cmd)
            /                          \__child4(+cmd)
           ppid of ppid(cmd)
          ....
         /
        init

キャッチャーも同じだ。 +タイムスタンプ。

私が見つけたもの:

superfrink.net:Chad ClarkのLinux UserSpace Signal Loggingパッチ(ユーザー空間プログラムから送信された信号のロギング)(バージョン2003年3月10日)

grsecurityパッチも同様の実装を持っています。

Ubuntuでこれを達成するには、簡単で簡単な方法が必要です。

ベストアンサー1

部分的な解決策を提供します。

使用審査Linuxカーネルのサブシステム。監査サブシステムはコアダンプ信号を記録します。コアダンプ信号は次のとおりです。

  1. ABRT
  2. FPE
  3. 病気
  4. 辞める
  5. SEGV
  6. システム
  7. 最初の反応者
  8. バス
  9. XCPU
  10. シンヒューズ

監査ログは /var/log/audit.log にあります。コアダンプ信号の監査ログは次のとおりです。

type=ANOM_ABEND msg=audit(1386433952.455:141): auid=1000 uid=1000 gid=1000 ses=2 pid=6664 comm="bash" reason="memory violation" sig=24

上記は、ユーザ UID 1000 の 6664 を処理するために SIGXCPU 信号を記録する例です。このログで「catcher」のcommとpidの詳細を確認できます。ログの理由フィールドが破損しています。このログを持っていても、私たちはまだ発信者について何も知りません。

構成の詳細を確認できます。ここ

おすすめ記事