Linux監査レコードのフィールド名が一意であることを確認できますか?

Linux監査レコードのフィールド名が一意であることを確認できますか?

Linux監査形式でパーサー/コンバーターを作成しています。フォーマットを調べ、例を見て、ドキュメントを読んで問題を見つけました。


単一レコードのフィールド名が次のようになっていることを確認できます。ユニーク

たとえば、実際の実装では、これらの記録は正当であるか発生しますか?

type=TYPE msg=audit(1.002:3): msg="the first msg field" msg="the second msg field"

2番目の関連質問はpidイベントに1つしか持てませんか?です。たとえば、このイベントは実際の実装で合法的または発生しますか?

type=TYPE1 msg=audit(1.002:3): pid=0 msg="texthere"
type=TYPE2 msg=audit(1.002:3): pid=0 msg="differenttexthere"

答え1

公式メーリングリストにあるSteve Grubbの回答によると(メールリンク):

スティーブの答え:

レコードに重複したフィールドがありますか?

時々。これが発生した場合は、これらの問題を解決しようとしました。問題は、誰もがこのメーリングリストを介して監査コードを実行してフォーマットが正しいことを確認できないことです。私が行う計画は、イベントが正しい形式で構成されていること、および予測イベントが予想時間と予想順序で記録されていることを確認する監査イベント検証スイートを作成することです。これらのイベントをクリーンアップすることは私のやるべきことのリストの一番上にあります。

次のようなもの(明らかに意味がありません):

    type=CWD msg=audit(1464013682.961:409):  cwd="/root” cwd=“/usr”

このようなことは起こらず、auidとuidの周りで発生する可能性が高くなります。その理由は、信頼できる情報ソースであるため、カーネルが自動的に何かを追加するためです。ユーザー空間は矛盾する情報を書き込むことができます。たとえば、デーモンがユーザーの代わりに機能しているが、そのユーザーに対応するauidが設定されていない場合、このメッセージが表示されることがあります。

長すぎます。

これは可能ですが、一般的ではなく推奨されません。

関連情報