execveシステムコールパラメータを定義するLinux監査標準の正規表現はまだ使用されていますか?

execveシステムコールパラメータを定義するLinux監査標準の正規表現はまだ使用されていますか?

~によるとフィールド辞書[1]一部のフィールドには、次の正規表現で定義された名前があります。

a[[:digit:]+]\[.*\]

a4andのようなフィールドの例が見つかりましたa5(参照2) しかし、正規表現では動作しません。角かっこのペアが必要なようです(したがって、またはでなければa4なりません)。 Linux Auditのソースコードに参照が見つかりません。a4[]a4[foo]

私の質問は

  1. この正規表現は有効で最新ですか?それとも、もはや適用されない古いルールですか?
  2. execveシステムコールのこれらのパラメータがどのように処理されるかを確認するためにどこを見ることができるかを提案できますか?
  3. 正規表現に適したフィールドを含むレコードの例を公開できますか(正規表現が機能すると仮定)。

リンク

  1. https://github.com/linux-audit/audit-documentation/blob/master/specs/fields/field-dictionary.csv#L3
  2. https://www.redhat.com/archives/linux-audit/2012-October/msg00090.html

注:この質問はLinux Auditメーリングリストでも要求されましたが、まだフィードバックを受けていません。

答え1

以下は、Steve GrubbとPaul Mooreから私が受け取った答えをまとめたものです。最終メッセージは関連スレッドで見ることができます。ここ(リンク)


  1. この正規表現(a[[:digit:]+]\[.*\])は有効で最新ですか?それとも、もはや適用されない古いルールですか?

    この正規表現は古いものではありません。パラメータが長すぎて単一のフィールドに収まらない場合(例:)を使用してくださいa4。代わりに、パラメータはフィールドに分割されるため、最終的には次のようになります。

    a4_len=4 a4[0]=l a4[1]=o a4[2]=n a4[3]=g
    

    変える

    a4=long
    

    実際、正規表現は次のように定義することができますが、現在の正規表現a[[:digit:]+]\[[:digit:]+\]はすでにそのアクションを実行しているため、変更する必要はありません。

  2. execveシステムコールのこれらのパラメータがどのように処理されるかを確認するためにどこを見ることができるかを提案できますか?

    バラよりkernel/auditsc.c:audit_log_single_execve_arg 詳細 (リンク)

  3. 正規表現に適したフィールドを含むレコードの例を公開できますか(正規表現が機能すると仮定)。

    以下を使用して例を生成できます。Linux監査テストスイート(リンク)またはここを参照してくださいLinux監査アーカイブの古い電子メール(リンク)

    ポール・ムーアの言葉を引用するには:

    カーネルはEXECVEレコードを生成し、 kernel/auditsc.c:audit_log_execve_info()次にEXECVEレコードのテストを見つけることができます。監査テストスイート(exec_execve).

関連情報