Coders Conquer Security:シェアして学ぶシリーズ - ローカルファイルの取り込みとパストラバーサル
多くの脆弱性とは異なり、ローカルでのファイルの取り込みやパス・トラバーサル処理を悪用するには、十分に熟練した攻撃者とそれなりの時間、そしておそらく少しの運が必要です。しかし、この脆弱性を無視できるというわけではありません。熟練した攻撃者は、この脆弱性を利用して、組織の内部ファイルを敵に回したり、ディレクトリ構造をマッピングしたり、さらには、危険な二次攻撃に利用できるパスワードやユーザー情報を盗むこともできます。
このエピソードでは、以下のことを学びます。
- ハッカーがローカルファイルの取り込みやパストラバーサルの脆弱性を利用する方法
- 無制限にローカルファイルの取り込みやパストラバーサルを許可することが危険な理由
- この問題を発見し、解決するために採用できる方針と技術。
攻撃者はどのようにしてローカルファイルインクルージョンやパストラバーサルを利用するのか?
テレビの名探偵コロンボは、事件を解決するための貴重な情報を提供する前に、必ず「もうひとつだけ」と言っていた。その時は、取るに足らないことのように思え、容疑者はほとんどの場合無視していましたが、いつも破滅を招くことになりました。ローカルファイルの取り込みやパス・トラバーサルの脆弱性は、それとよく似ています。
ローカルファイルインクルードおよびパストラバーサルの脆弱性は、ASP、JSP、PHPスクリプトなど、ほとんどのプログラミングフレームワークに存在する動的ファイルインクルードの仕組みを利用しています。ローカル・ファイル・インクルードでは、攻撃者はローカル・サーバ上に存在するファイル名を、ヘッダやフォーム入力領域などのウェブ・アプリケーション内の領域に挿入します。アプリケーションは、通常通りメインの入力を処理しますが、include(page)などのコマンドも処理します。パストラバーサルでは、攻撃者は疑いのあるファイルへのパスを定義し、通常はドット、ドット、スラッシュ(../)の文字を変数として使用します。これはコロンボのようなもので、ハッカーは最初の部分の議論を本当に気にしません。これは、ハッカーが最後に「もうひとつだけ」を追加するための手段に過ぎません。
いずれの場合も、攻撃者は通常、かなりの量の試行錯誤を行う必要があります。サイトの構造を熟知していない限り、パス構成やファイル名を推測するのには長い時間がかかります。とはいえ、ほとんどのサイトは特定のパターンに従っており、多かれ少なかれ似たようなディレクトリやファイル名を持っています。そのため、思ったほど時間はかからないかもしれません。また、報酬が非常に高額になる可能性があることを考えると、ハッカーにとっては、ローカルファイルの取り込みやパストラバーサルの脆弱性が見つかった場合、それを利用しようとするインセンティブが大きくなります。
ローカルファイルインクルードやパストラバーサルの脆弱性はなぜ危険なのか?
ローカル・ファイル・インクルージョンやパス・トラバーサルの脆弱性は、攻撃者が機密ファイルや重要なファイルへのアクセスを許してしまう危険性があります。データファイルの場合、ハッカーがユーザーのパスワードやその他の個人情報などの貴重な情報を入手する危険性があります。主な標的は、パスワードやユーザ設定ファイルであることが多く、これによってサイトの他の部分にアクセスできるようになります。データベースも主要なターゲットです。ローカル・ファイル・インクルードやパス・トラバーサルの脆弱性により、最悪の場合、攻撃者はデータベースの内容全体を盗むことができます。
実行ファイルの場合、そのファイルにアクセスすることで、サイトの一部を破壊したり、システムリソースを浪費してある種の内部サービス拒否攻撃を行うなど、悪意のある活動が可能になる危険性があります。しかし、その危険性の範囲は、攻撃者の創意工夫と技術、そして攻撃対象のサーバーにすでに存在するファイルにアクセスできるかどうかによってのみ制限されます。
ローカルファイルインクルージョンとパストラバーサルによる脅威の除去
ローカルファイルのインクルードやパストラバーサルの脆弱性がもたらす危険性は、サイバーセキュリティの適切な実践によって排除することができます。最も重要なことは、「ファイルインクルード」や同様の機能を持つ他のコマンドでユーザーの入力を決して許可しないことです。もしアプリケーションがそれを許可しなければならない場合は、それを直接渡さないでください。代わりに、間接参照マップを使用します。間接参照マップは、ユーザーの入力をハードコードされた信頼できる値にマッピングし、それを安全に使用することができます。
他の多くの脆弱性と同様に、クッキー、HTTPヘッダ、フォームパラメータなど、ユーザが制御するすべての入力領域に特に注意してください。許可される入力はホワイトリスト化し、それ以外は明示的に拒否します。それができない場合は、入力検証を使って、数字や英数字など、許可される値を厳しく管理してください。
ローカルファイルのインクルードとパストラバーサルに関する詳細情報
さらに詳しく知りたい方は、ローカルファイルのインクルードとパストラバーサルのエクスプロイトに関するOWASPテストガイドをご覧ください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御知識を試すこともできます。この脆弱性やその他の脅威への対策について詳しくは、Secure Code Warrior ブログをご覧ください。
Jaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。

Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。
デモを予約するJaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。


多くの脆弱性とは異なり、ローカルでのファイルの取り込みやパス・トラバーサル処理を悪用するには、十分に熟練した攻撃者とそれなりの時間、そしておそらく少しの運が必要です。しかし、この脆弱性を無視できるというわけではありません。熟練した攻撃者は、この脆弱性を利用して、組織の内部ファイルを敵に回したり、ディレクトリ構造をマッピングしたり、さらには、危険な二次攻撃に利用できるパスワードやユーザー情報を盗むこともできます。
このエピソードでは、以下のことを学びます。
- ハッカーがローカルファイルの取り込みやパストラバーサルの脆弱性を利用する方法
- 無制限にローカルファイルの取り込みやパストラバーサルを許可することが危険な理由
- この問題を発見し、解決するために採用できる方針と技術。
攻撃者はどのようにしてローカルファイルインクルージョンやパストラバーサルを利用するのか?
テレビの名探偵コロンボは、事件を解決するための貴重な情報を提供する前に、必ず「もうひとつだけ」と言っていた。その時は、取るに足らないことのように思え、容疑者はほとんどの場合無視していましたが、いつも破滅を招くことになりました。ローカルファイルの取り込みやパス・トラバーサルの脆弱性は、それとよく似ています。
ローカルファイルインクルードおよびパストラバーサルの脆弱性は、ASP、JSP、PHPスクリプトなど、ほとんどのプログラミングフレームワークに存在する動的ファイルインクルードの仕組みを利用しています。ローカル・ファイル・インクルードでは、攻撃者はローカル・サーバ上に存在するファイル名を、ヘッダやフォーム入力領域などのウェブ・アプリケーション内の領域に挿入します。アプリケーションは、通常通りメインの入力を処理しますが、include(page)などのコマンドも処理します。パストラバーサルでは、攻撃者は疑いのあるファイルへのパスを定義し、通常はドット、ドット、スラッシュ(../)の文字を変数として使用します。これはコロンボのようなもので、ハッカーは最初の部分の議論を本当に気にしません。これは、ハッカーが最後に「もうひとつだけ」を追加するための手段に過ぎません。
いずれの場合も、攻撃者は通常、かなりの量の試行錯誤を行う必要があります。サイトの構造を熟知していない限り、パス構成やファイル名を推測するのには長い時間がかかります。とはいえ、ほとんどのサイトは特定のパターンに従っており、多かれ少なかれ似たようなディレクトリやファイル名を持っています。そのため、思ったほど時間はかからないかもしれません。また、報酬が非常に高額になる可能性があることを考えると、ハッカーにとっては、ローカルファイルの取り込みやパストラバーサルの脆弱性が見つかった場合、それを利用しようとするインセンティブが大きくなります。
ローカルファイルインクルードやパストラバーサルの脆弱性はなぜ危険なのか?
ローカル・ファイル・インクルージョンやパス・トラバーサルの脆弱性は、攻撃者が機密ファイルや重要なファイルへのアクセスを許してしまう危険性があります。データファイルの場合、ハッカーがユーザーのパスワードやその他の個人情報などの貴重な情報を入手する危険性があります。主な標的は、パスワードやユーザ設定ファイルであることが多く、これによってサイトの他の部分にアクセスできるようになります。データベースも主要なターゲットです。ローカル・ファイル・インクルードやパス・トラバーサルの脆弱性により、最悪の場合、攻撃者はデータベースの内容全体を盗むことができます。
実行ファイルの場合、そのファイルにアクセスすることで、サイトの一部を破壊したり、システムリソースを浪費してある種の内部サービス拒否攻撃を行うなど、悪意のある活動が可能になる危険性があります。しかし、その危険性の範囲は、攻撃者の創意工夫と技術、そして攻撃対象のサーバーにすでに存在するファイルにアクセスできるかどうかによってのみ制限されます。
ローカルファイルインクルージョンとパストラバーサルによる脅威の除去
ローカルファイルのインクルードやパストラバーサルの脆弱性がもたらす危険性は、サイバーセキュリティの適切な実践によって排除することができます。最も重要なことは、「ファイルインクルード」や同様の機能を持つ他のコマンドでユーザーの入力を決して許可しないことです。もしアプリケーションがそれを許可しなければならない場合は、それを直接渡さないでください。代わりに、間接参照マップを使用します。間接参照マップは、ユーザーの入力をハードコードされた信頼できる値にマッピングし、それを安全に使用することができます。
他の多くの脆弱性と同様に、クッキー、HTTPヘッダ、フォームパラメータなど、ユーザが制御するすべての入力領域に特に注意してください。許可される入力はホワイトリスト化し、それ以外は明示的に拒否します。それができない場合は、入力検証を使って、数字や英数字など、許可される値を厳しく管理してください。
ローカルファイルのインクルードとパストラバーサルに関する詳細情報
さらに詳しく知りたい方は、ローカルファイルのインクルードとパストラバーサルのエクスプロイトに関するOWASPテストガイドをご覧ください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御知識を試すこともできます。この脆弱性やその他の脅威への対策について詳しくは、Secure Code Warrior ブログをご覧ください。

多くの脆弱性とは異なり、ローカルでのファイルの取り込みやパス・トラバーサル処理を悪用するには、十分に熟練した攻撃者とそれなりの時間、そしておそらく少しの運が必要です。しかし、この脆弱性を無視できるというわけではありません。熟練した攻撃者は、この脆弱性を利用して、組織の内部ファイルを敵に回したり、ディレクトリ構造をマッピングしたり、さらには、危険な二次攻撃に利用できるパスワードやユーザー情報を盗むこともできます。
このエピソードでは、以下のことを学びます。
- ハッカーがローカルファイルの取り込みやパストラバーサルの脆弱性を利用する方法
- 無制限にローカルファイルの取り込みやパストラバーサルを許可することが危険な理由
- この問題を発見し、解決するために採用できる方針と技術。
攻撃者はどのようにしてローカルファイルインクルージョンやパストラバーサルを利用するのか?
テレビの名探偵コロンボは、事件を解決するための貴重な情報を提供する前に、必ず「もうひとつだけ」と言っていた。その時は、取るに足らないことのように思え、容疑者はほとんどの場合無視していましたが、いつも破滅を招くことになりました。ローカルファイルの取り込みやパス・トラバーサルの脆弱性は、それとよく似ています。
ローカルファイルインクルードおよびパストラバーサルの脆弱性は、ASP、JSP、PHPスクリプトなど、ほとんどのプログラミングフレームワークに存在する動的ファイルインクルードの仕組みを利用しています。ローカル・ファイル・インクルードでは、攻撃者はローカル・サーバ上に存在するファイル名を、ヘッダやフォーム入力領域などのウェブ・アプリケーション内の領域に挿入します。アプリケーションは、通常通りメインの入力を処理しますが、include(page)などのコマンドも処理します。パストラバーサルでは、攻撃者は疑いのあるファイルへのパスを定義し、通常はドット、ドット、スラッシュ(../)の文字を変数として使用します。これはコロンボのようなもので、ハッカーは最初の部分の議論を本当に気にしません。これは、ハッカーが最後に「もうひとつだけ」を追加するための手段に過ぎません。
いずれの場合も、攻撃者は通常、かなりの量の試行錯誤を行う必要があります。サイトの構造を熟知していない限り、パス構成やファイル名を推測するのには長い時間がかかります。とはいえ、ほとんどのサイトは特定のパターンに従っており、多かれ少なかれ似たようなディレクトリやファイル名を持っています。そのため、思ったほど時間はかからないかもしれません。また、報酬が非常に高額になる可能性があることを考えると、ハッカーにとっては、ローカルファイルの取り込みやパストラバーサルの脆弱性が見つかった場合、それを利用しようとするインセンティブが大きくなります。
ローカルファイルインクルードやパストラバーサルの脆弱性はなぜ危険なのか?
ローカル・ファイル・インクルージョンやパス・トラバーサルの脆弱性は、攻撃者が機密ファイルや重要なファイルへのアクセスを許してしまう危険性があります。データファイルの場合、ハッカーがユーザーのパスワードやその他の個人情報などの貴重な情報を入手する危険性があります。主な標的は、パスワードやユーザ設定ファイルであることが多く、これによってサイトの他の部分にアクセスできるようになります。データベースも主要なターゲットです。ローカル・ファイル・インクルードやパス・トラバーサルの脆弱性により、最悪の場合、攻撃者はデータベースの内容全体を盗むことができます。
実行ファイルの場合、そのファイルにアクセスすることで、サイトの一部を破壊したり、システムリソースを浪費してある種の内部サービス拒否攻撃を行うなど、悪意のある活動が可能になる危険性があります。しかし、その危険性の範囲は、攻撃者の創意工夫と技術、そして攻撃対象のサーバーにすでに存在するファイルにアクセスできるかどうかによってのみ制限されます。
ローカルファイルインクルージョンとパストラバーサルによる脅威の除去
ローカルファイルのインクルードやパストラバーサルの脆弱性がもたらす危険性は、サイバーセキュリティの適切な実践によって排除することができます。最も重要なことは、「ファイルインクルード」や同様の機能を持つ他のコマンドでユーザーの入力を決して許可しないことです。もしアプリケーションがそれを許可しなければならない場合は、それを直接渡さないでください。代わりに、間接参照マップを使用します。間接参照マップは、ユーザーの入力をハードコードされた信頼できる値にマッピングし、それを安全に使用することができます。
他の多くの脆弱性と同様に、クッキー、HTTPヘッダ、フォームパラメータなど、ユーザが制御するすべての入力領域に特に注意してください。許可される入力はホワイトリスト化し、それ以外は明示的に拒否します。それができない場合は、入力検証を使って、数字や英数字など、許可される値を厳しく管理してください。
ローカルファイルのインクルードとパストラバーサルに関する詳細情報
さらに詳しく知りたい方は、ローカルファイルのインクルードとパストラバーサルのエクスプロイトに関するOWASPテストガイドをご覧ください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御知識を試すこともできます。この脆弱性やその他の脅威への対策について詳しくは、Secure Code Warrior ブログをご覧ください。

以下のリンクをクリックし、この資料のPDFをダウンロードしてください。
Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。
レポートを見るデモを予約するJaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。
多くの脆弱性とは異なり、ローカルでのファイルの取り込みやパス・トラバーサル処理を悪用するには、十分に熟練した攻撃者とそれなりの時間、そしておそらく少しの運が必要です。しかし、この脆弱性を無視できるというわけではありません。熟練した攻撃者は、この脆弱性を利用して、組織の内部ファイルを敵に回したり、ディレクトリ構造をマッピングしたり、さらには、危険な二次攻撃に利用できるパスワードやユーザー情報を盗むこともできます。
このエピソードでは、以下のことを学びます。
- ハッカーがローカルファイルの取り込みやパストラバーサルの脆弱性を利用する方法
- 無制限にローカルファイルの取り込みやパストラバーサルを許可することが危険な理由
- この問題を発見し、解決するために採用できる方針と技術。
攻撃者はどのようにしてローカルファイルインクルージョンやパストラバーサルを利用するのか?
テレビの名探偵コロンボは、事件を解決するための貴重な情報を提供する前に、必ず「もうひとつだけ」と言っていた。その時は、取るに足らないことのように思え、容疑者はほとんどの場合無視していましたが、いつも破滅を招くことになりました。ローカルファイルの取り込みやパス・トラバーサルの脆弱性は、それとよく似ています。
ローカルファイルインクルードおよびパストラバーサルの脆弱性は、ASP、JSP、PHPスクリプトなど、ほとんどのプログラミングフレームワークに存在する動的ファイルインクルードの仕組みを利用しています。ローカル・ファイル・インクルードでは、攻撃者はローカル・サーバ上に存在するファイル名を、ヘッダやフォーム入力領域などのウェブ・アプリケーション内の領域に挿入します。アプリケーションは、通常通りメインの入力を処理しますが、include(page)などのコマンドも処理します。パストラバーサルでは、攻撃者は疑いのあるファイルへのパスを定義し、通常はドット、ドット、スラッシュ(../)の文字を変数として使用します。これはコロンボのようなもので、ハッカーは最初の部分の議論を本当に気にしません。これは、ハッカーが最後に「もうひとつだけ」を追加するための手段に過ぎません。
いずれの場合も、攻撃者は通常、かなりの量の試行錯誤を行う必要があります。サイトの構造を熟知していない限り、パス構成やファイル名を推測するのには長い時間がかかります。とはいえ、ほとんどのサイトは特定のパターンに従っており、多かれ少なかれ似たようなディレクトリやファイル名を持っています。そのため、思ったほど時間はかからないかもしれません。また、報酬が非常に高額になる可能性があることを考えると、ハッカーにとっては、ローカルファイルの取り込みやパストラバーサルの脆弱性が見つかった場合、それを利用しようとするインセンティブが大きくなります。
ローカルファイルインクルードやパストラバーサルの脆弱性はなぜ危険なのか?
ローカル・ファイル・インクルージョンやパス・トラバーサルの脆弱性は、攻撃者が機密ファイルや重要なファイルへのアクセスを許してしまう危険性があります。データファイルの場合、ハッカーがユーザーのパスワードやその他の個人情報などの貴重な情報を入手する危険性があります。主な標的は、パスワードやユーザ設定ファイルであることが多く、これによってサイトの他の部分にアクセスできるようになります。データベースも主要なターゲットです。ローカル・ファイル・インクルードやパス・トラバーサルの脆弱性により、最悪の場合、攻撃者はデータベースの内容全体を盗むことができます。
実行ファイルの場合、そのファイルにアクセスすることで、サイトの一部を破壊したり、システムリソースを浪費してある種の内部サービス拒否攻撃を行うなど、悪意のある活動が可能になる危険性があります。しかし、その危険性の範囲は、攻撃者の創意工夫と技術、そして攻撃対象のサーバーにすでに存在するファイルにアクセスできるかどうかによってのみ制限されます。
ローカルファイルインクルージョンとパストラバーサルによる脅威の除去
ローカルファイルのインクルードやパストラバーサルの脆弱性がもたらす危険性は、サイバーセキュリティの適切な実践によって排除することができます。最も重要なことは、「ファイルインクルード」や同様の機能を持つ他のコマンドでユーザーの入力を決して許可しないことです。もしアプリケーションがそれを許可しなければならない場合は、それを直接渡さないでください。代わりに、間接参照マップを使用します。間接参照マップは、ユーザーの入力をハードコードされた信頼できる値にマッピングし、それを安全に使用することができます。
他の多くの脆弱性と同様に、クッキー、HTTPヘッダ、フォームパラメータなど、ユーザが制御するすべての入力領域に特に注意してください。許可される入力はホワイトリスト化し、それ以外は明示的に拒否します。それができない場合は、入力検証を使って、数字や英数字など、許可される値を厳しく管理してください。
ローカルファイルのインクルードとパストラバーサルに関する詳細情報
さらに詳しく知りたい方は、ローカルファイルのインクルードとパストラバーサルのエクスプロイトに関するOWASPテストガイドをご覧ください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御知識を試すこともできます。この脆弱性やその他の脅威への対策について詳しくは、Secure Code Warrior ブログをご覧ください。
目次
始めるためのリソース
セキュア・バイ・デザインベストプラクティスの定義、開発者の能力向上、予防的セキュリティ成果のベンチマーク
このリサーチペーパーでは、Secure Code Warrior 共同設立者であるピーテル・ダニュー(Pieter Danhieux)氏とマティアス・マドゥ(Matias Madou)博士、そして専門家であるクリス・イングリス(Chris Inglis)氏(元米国サイバーディレクター、現パラディン・キャピタル・グループ戦略顧問)、デヴィン・リンチ(Devin Lynch)氏(パラディン・グローバル・インスティテュート・シニアディレクター)が、CISO、アプリケーション・セキュリティ担当副社長、ソフトウェア・セキュリティの専門家など、企業のセキュリティ・リーダー20人以上への詳細なインタビューから得られた主な知見を明らかにします。
セキュリティ スキルのベンチマーク: 企業におけるセキュアな設計の合理化
セキュアバイデザイン(SBD)構想の成功に関する有意義なデータを見つけることは、非常に困難である。CISO は、セキュリティプログラム活動の投資収益率(ROI)とビジネス価値を、従業員レベルと企業レベルの両方で証明しようとすると、しばしば困難に直面します。言うまでもなく、企業にとって、現在の業界標準に対して自社の組織がどのようにベンチマークされているかを把握することは特に困難です。大統領の国家サイバーセキュリティ戦略は、関係者に「デザインによるセキュリティとレジリエンスを受け入れる」ことを求めている。セキュアバイデザインの取り組みを成功させる鍵は、開発者にセキュアなコードを保証するスキルを与えるだけでなく、規制当局にそれらのスキルが整っていることを保証することである。本プレゼンテーションでは、25万人以上の開発者から収集した社内データ、データに基づく顧客の洞察、公的研究など、複数の一次ソースから得られた無数の定性的・定量的データを紹介します。こうしたデータ・ポイントの集積を活用することで、複数の業種におけるセキュア・バイ・デザイン・イニシアチブの現状をお伝えすることを目的としています。本レポートでは、この領域が現在十分に活用されていない理由、スキルアッププログラムの成功がサイバーセキュリティのリスク軽減に与える大きな影響、コードベースから脆弱性のカテゴリーを排除できる可能性について詳述しています。
始めるためのリソース
明らかになった:サイバー業界はセキュア・バイ・デザインをどのように定義しているか
最新のホワイトペーパーでは、当社の共同設立者であるピーテル・ダニュー(Pieter Danhieux)氏とマティアス・マドゥ(Matias Madou)博士が、CISO、AppSecリーダー、セキュリティ専門家を含む20人以上の企業セキュリティリーダーと対談し、このパズルの重要なピースを見つけ出し、Secure by Design運動の背後にある現実を明らかにしました。セキュア・バイ・デザインは、セキュリティ・チーム全体で共有された野心ですが、共有されたプレイブックはありません。