ディレクトリ トラバーサル攻撃 (パス トラバーサル攻撃とも呼ばれる) は、Web セキュリティの領域で重大なリスクとなります。主に、サーバー上のファイルにアクセスする Web アプリケーションの機能におけるセキュリティの脆弱性を悪用します。これらの攻撃により、悪意のあるユーザーは、「ドット ドット スラッシュ (../)」シーケンスでファイルを参照する変数を操作することで、Web ルート フォルダー外に保存されているファイルやディレクトリにアクセスできるようになります。
ディレクトリトラバーサル攻撃の進化
ディレクトリ トラバーサル攻撃の起源は、Web アプリケーションがスクリプトを使用してサーバー側のファイルにアクセスし始めたインターネットの初期の頃にまで遡ります。テクノロジが進歩し、Web アプリケーションがより複雑になるにつれて、この種の脆弱性の可能性も高まりました。
ディレクトリ トラバーサル攻撃が初めて公に言及されたのは、この脆弱性の根本的な性質のため、やや特定が困難です。しかし、Web アプリケーションが一般的になり、安全でないファイル参照を悪用する機会が増えた 1990 年代後半から 2000 年代前半にかけて、セキュリティ上の懸念がさらに顕著になりました。
ディレクトリトラバーサル攻撃の拡大
ディレクトリ トラバーサル攻撃は、ハッカーが通常は公開されていないサーバーのディレクトリにアクセスする HTTP エクスプロイトの一種です。攻撃者は、ユーザーが指定した入力ファイル名の不十分なセキュリティ検証やサニタイズを悪用し、制約された環境から抜け出します。
ディレクトリ トラバーサル シーケンスは、URL ベースの攻撃で最もよく使用されますが、ヘッダー インジェクション、Cookie 操作、POST パラメータ内でも使用されることがあります。これにより、攻撃者は制限されたディレクトリを表示し、Web サーバーのルート ディレクトリ外でコマンドを実行し、機密情報に不正にアクセスすることができます。
ディレクトリトラバーサル攻撃の仕組み
ディレクトリ トラバーサル攻撃は、ユーザーが指定した入力ファイル名のセキュリティ検証/サニタイズが不十分なことを悪用して実行されるため、攻撃者はこれらを操作して制限された場所の外部に移動することができます。
非常に単純化した形で、アプリケーションがサーバーから画像ファイルにアクセスしようとしているシナリオを考えてみましょう。
アルドゥイーノhttp://example.com/app?file=logo.jpg
この場合、アプリケーションはファイルを開きます logo.jpg
画像ディレクトリから。ただし、攻撃者は「ドット・ドット・スラッシュ (../)」シーケンスを使用して親ディレクトリに移動し、許可されていないファイルにアクセスする可能性があります。例:
バッシュhttp://example.com/app?file=../../etc/passwd
これにより、アプリケーションが機密性の高いシステム ファイルを表示する可能性があります。
ディレクトリトラバーサル攻撃の主な特徴
-
変数の操作: ディレクトリ トラバーサル攻撃の基本的な特徴は、「ドット ドット スラッシュ (../)」シーケンスを使用してファイルを参照する変数を操作することです。
-
制約の解除: これにより、攻撃者はアプリケーションのルート ディレクトリから抜け出し、ファイル システムの他の部分にアクセスできるようになります。
-
弱い検証の悪用: ディレクトリ トラバーサル攻撃は、ユーザー入力の検証またはサニタイズの弱さを悪用します。
ディレクトリトラバーサル攻撃の種類
ディレクトリ トラバーサル攻撃の背後にある基本原理は同じですが、コンテキストと問題となっているアプリケーションに基づいて、さまざまな形で現れる可能性があります。
-
URL ベースの攻撃: これらには、ディレクトリをトラバースするために URL に悪意のある入力を挿入することが含まれます。
-
フォームベースの攻撃: 悪意のある入力がフォーム フィールドに挿入され、脆弱なサーバー側スクリプトが悪用されます。
-
Cookie ベースの攻撃: 攻撃者は Cookie を操作してディレクトリを横断し、許可されていないデータにアクセスします。
タイプ | 説明 |
---|---|
URLベースの攻撃 | ディレクトリをトラバースするために、URL に悪意のある入力を挿入します。 |
フォームベースの攻撃 | フォーム フィールドに悪意のある入力を挿入して、サーバー側スクリプトを悪用します。 |
クッキーベースの攻撃 | クッキーを操作してディレクトリを横断し、許可されていないデータにアクセスします。 |
ディレクトリトラバーサル攻撃に関連する問題と解決策
ディレクトリ トラバーサル攻撃の主な問題は、機密ファイルやデータへの不正アクセスです。これにより、データ漏洩、機密性の喪失、さらには攻撃者にさらなる攻撃ベクトル (構成ファイルからデータベース資格情報を取得するなど) を提供する可能性があります。
解決策をいくつか紹介します:
-
入力検証: ユーザーが入力した内容を確実に検証します。入力内容に「..」や「/」を使用しないでください。
-
アクセス制御: 適切なアクセス制御を実装します。ユーザーを認証するために、指定されたファイル パスのみに依存しないでください。
-
最小権限の原則: 必要最小限の権限でアプリケーションを実行し、ディレクトリ トラバーサル攻撃による潜在的な損害を軽減します。
ディレクトリトラバーサル攻撃および類似の用語
学期 | 説明 |
---|---|
ディレクトリトラバーサル攻撃 | ユーザー入力手順の脆弱性を悪用して、許可されていないファイルやディレクトリにアクセスします。 |
リモート ファイル インクルージョン (RFI) | 攻撃者は、ユーザー入力経路を利用して、悪意のあるスクリプトを Web サイトのサーバーにアップロードします。 |
ローカル ファイル インクルード (LFI) | 攻撃者は Web サイトを操作して、Web サーバー上のファイルの内容を実行したり公開したりします。 |
ディレクトリトラバーサル攻撃に関する今後の展望と技術
Web 開発環境が進化するにつれて、ディレクトリ トラバーサル攻撃を実行する方法とツールはより高度になる可能性があります。それでも、防御の基盤は、堅牢な入力検証と適切なシステム構成にあると考えられます。
Web アプリケーション ファイアウォール、異常検出システム、侵入検知システムの機械学習アルゴリズムは、このような攻撃に対する将来の緩和戦略において重要な役割を果たす可能性があります。
プロキシサーバーとディレクトリトラバーサル攻撃の関係
プロキシ サーバーは、ディレクトリ トラバーサル攻撃に対する追加のセキュリティ レイヤーとして機能します。クライアントとサーバー間の要求と応答をフィルタリングすることで、ディレクトリ トラバーサル攻撃の異常なパターンや兆候を検出し、サーバーに到達するのを防ぐことができます。
たとえば、OneProxy は、このような種類の攻撃に対する防御戦略において重要な役割を果たすことができる強力なプロキシ サーバー ソリューションを提供します。