![見出し画像](https://assets.st-note.com/production/uploads/images/171229513/rectangle_large_type_2_838fa3a16ac0653db9cebb534f6a29b1.png?width=1200)
Falcoで使い分ける「fd.name」と「fd.filename」の違いとは?
システム監視ツール「Falco」を使っていると、設定中に「fd.name」や「fd.filename」といったフィールドを目にすることがあるかと思います。これらはどちらもファイルやリソースを指していますが、実は扱う対象に違いがあります。この違いを知っておくと、目的に応じた正確な監視設定ができるようになります。
日常の例えで考えてみる
想像してみてください。あなたが大きな図書館にいるとして、何か特定の情報を探すとします。
fd.name は、図書館内の「すべての情報源(本、雑誌、オンラインリソースなど)」を探す方法に近いです。幅広く、いろいろな種類の情報が対象です。
fd.filename は、その中でも「物理的な本」にだけ注目する方法。オンラインリソースや雑誌は関係なく、本だけをピンポイントで扱います。
こんな感じで、それぞれのフィールドがどのような対象をカバーしているかを意識するだけで使い分けがしやすくなります。
fd.name: 幅広いリソースをカバーするフィールド
何を表しているのか
ファイルディスクリプタ(File Descriptor)が参照しているリソース全般を対象にします。ファイルだけでなく、ソケットやパイプなども含まれます。こんな場合に使える
ネットワーク通信を監視したいときや、プロセス間通信の状況を追跡したいとき。例
/etc/passwd(ファイルの場合)
127.0.0.1:443(ネットワークソケットの場合)
パイプやデバイスなどの特殊リソース
fd.filename: ファイル専用のフィールド
何を表しているのか
ファイルディスクリプタが「ファイル」を指している場合のみに適用されます。他のリソース(ソケットやパイプ)は含まれません。こんな場合に使える
特定のファイル(例: システム設定ファイルやログファイル)の動きだけを追跡したいとき。例
/var/log/syslog
/etc/passwd
どちらを使うべき?
選び方のポイントは、監視したいリソースの種類です。
幅広く監視したいなら
例: ネットワーク通信や特殊デバイスを含むすべてのリソース → fd.nameファイルに絞りたいなら
例: 特定のログファイルや設定ファイル → fd.filename
まとめ
fd.name と fd.filename は、監視する対象の範囲が異なります。
fd.name → リソース全般(ファイル、ソケット、パイプ)
fd.filename → ファイル限定
たとえば、「システム設定ファイル /etc/passwd の変更を監視する」のが目的なら fd.filename を使うべきです。一方、「特定のIPアドレスへの通信を監視する」なら fd.name が適しています。
用途に合わせてこれらを使い分けることで、必要な情報だけを効率的にキャッチできるようになります!