Coders Conquer Security: Share & Learnシリーズ - ローカルファイルインクルードとパストラバーサル

多くの脆弱性とは異なり、ローカルファイルインクルードやパストラバーサルを悪用するには、十分なスキルを持つ攻撃者とかなりの時間、そして多少の運が必要となります。しかし、だからといってこの脆弱性を無視してよいわけではありません。熟練した攻撃者はこれを利用して組織内のファイルを悪用したり、ディレクトリ構造を把握したり、さらにはパスワードやユーザー情報を盗み出して、より危険な二次攻撃に利用したりする可能性があります。
本エピソードでは、以下の内容を学びます。
- ハッカーはどのようにローカルファイルインクルードやパストラバーサルの脆弱性を悪用するのか
- ローカルファイルインクルードやパストラバーサルを制限なく許可することがなぜ危険なのか
- この問題を特定し修正するために採用できるポリシーと手法
攻撃者はどのようにローカルファイルインクルードやパストラバーサルを悪用するのか?
往年の刑事ドラマの主人公コロンボは、事件を解決に導く重要な情報を口にする直前、いつも「あ、もう一つだけ」と言っていました。その時は些細なことに思え、容疑者もほとんど無視していましたが、それが常に彼らの破滅を招くことになりました。ローカルファイルインクルードやパストラバーサルの脆弱性も、これとよく似ています。
ローカルファイルインクルードやパストラバーサルの脆弱性は、ASP、JSP、PHPスクリプトなど、ほとんどのプログラミングフレームワークに存在する動的ファイルインクルード機能を利用します。ローカルファイルインクルードの場合、攻撃者はヘッダーやフォーム入力エリアなど、Webアプリケーション内の入力箇所に、ローカルサーバー上に存在するファイル名を紛れ込ませます。アプリケーションはメインの入力を通常通り処理しますが、同時にinclude(page)などのコマンドも実行してしまいます。パストラバーサルでは、攻撃者は通常「../」というドットとスラッシュの文字を変数として使い、ターゲットとなるファイルのパスを指定します。ハッカーにとって最初の部分は重要ではなく、最後に「もう一つだけ」を追加するための手段に過ぎないという点で、コロンボの手法と非常によく似ています。
いずれの場合も、攻撃者は通常、かなりの試行錯誤を繰り返す必要があります。サイトの構造を熟知していない限り、パス構成やファイル名を推測するには時間がかかる可能性があります。とはいえ、ほとんどのサイトは特定のパターンに従っており、ディレクトリやファイル名も似通っているため、予想以上に時間はかからないかもしれません。また、得られる利益が非常に大きいため、一度脆弱性が見つかれば、ハッカーがそれを悪用しようとする動機は十分にあります。
ローカルファイルインクルードやパストラバーサルの脆弱性が危険な理由とは?
ローカルファイルインクルードやパストラバーサルの脆弱性が危険なのは、攻撃者が機密ファイルや重要なファイルにアクセスできるようになるためです。データファイルの場合、ハッカーがユーザーのパスワードやその他の個人情報といった価値ある情報を入手できる恐れがあります。多くの場合、パスワードやユーザー設定ファイルが標的となります。これらを入手できれば、サイトの他の部分にもアクセスできるようになるからです。データベースも主要な標的です。最悪の場合、ローカルファイルインクルードやパストラバーサルの脆弱性を利用して、データベースの内容をすべて盗み出される可能性があります。
実行ファイルの場合、アクセスされるとサイトの一部を破壊されたり、システムリソースを浪費させて内部的なサービス拒否攻撃(DoS攻撃)を仕掛けられたりする危険があります。しかし、その危険性の範囲は、攻撃者の創意工夫やスキル、そしてターゲットサーバー上に存在するアクセス可能なファイルによってのみ制限されます。
ローカルファイルインクルードとパストラバーサルによる脅威の排除
ローカルファイルインクルードやパストラバーサルの脆弱性による危険は、適切なサイバーセキュリティ対策によって排除できます。最も重要なのは、「ファイルインクルード」や同様の機能を持つコマンドにおいて、ユーザー入力を決して許可しないことです。どうしても許可する必要がある場合は、直接渡すのではなく、間接参照マップを使用してください。間接参照マップは、ユーザー入力をハードコードされた信頼できる値のセットにマッピングするため、安全に使用できます。
他の多くの脆弱性と同様に、Cookie、HTTPヘッダー、フォームパラメータなど、ユーザーが制御可能なすべての入力エリアに細心の注意を払ってください。許可する入力はホワイトリストで管理し、それ以外はすべて明示的に拒否します。それが不可能な場合は、入力バリデーションを使用して、数値や英数字など、許可される値を厳密に制限してください。
ローカルファイルインクルードとパストラバーサルに関する詳細情報
詳細については、OWASPのテストガイドでローカルファイルインクルードやパストラバーサルの悪用手法を確認できます。また、サイバーセキュリティチームを究極のサイバー戦士へと育成するSecure Code Warriorプラットフォームの無料デモで、学んだ防御知識を試すことも可能です。この脆弱性やその他の脅威を撃退する方法については、Secure Code Warriorブログをご覧ください。
AI主導の開発をリリース前にガバナンスする
AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。
他のブログ記事を見る
セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
AIを活用した開発をリリース前にセキュアに
開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。



.avif)