find
のアクションには,直接影響するものがあります.これには
-exec
と-delete
が含まれます.しかし,-print
の明示的
または暗黙の使用も一般的で,find
は間違ったファイル名のリストを生
成し,セキュリティの問題になり得ます.例えば,ファイルを削除するために
find
が生成したファイルのリストを考えてみてください.
我々は通常,find
のコマンドラインはファイルの選択の基準と,ユーザ
が考えているアクションを表現していると仮定します – つまり,コマンドラ
インは“信用できる”データだということです.
セキュリティの分析の観点から,find
の外部は正しくありません.つま
り,出力にはユーザがコマンドラインで指定した基準にマッチしたファイルの
名前だけが含まれているべきです.これを,-exec
と-delete
ア
クションに適用します.これらも出力の一部だと考える人もいます.
一方,ファイルシステムの内容は他の人も操作可能なので,我々はこれを“信
用できない”データだとみなします.つまり,find
コマンドラインは,
信用できないファイルシステムの内容を,出力ファイルの正しいリストに変換
するフィルタであることを暗示しています.
ファイルシステムは,一般的に,find
の検索中に変更されます.実際に,
find
がセキュリティの問題となる可能性のほとんどは,この問題にある
程度関連します.
競合状態は,(例えば) find
に渡されるアクションの順番に関連するセ
キュリティの問題に分類され,それ以外が重要です1.
一般的に,普通は影響するはずがないファイルに対して,攻撃者が期待するア
クションでファイルやディレクトリの移動や削除を行います.また,このよう
なの攻撃は,find
に,普通は検索されない(例えば,-prune
アク
ションで抑止)ファイルシステムの一部を検索するようにしむけます.