ディレクトリトラバーサルとは何ですか?

公開: 2023-05-09

Web サーバーをだまして制限されている情報を公開させることで、攻撃者はシステムを侵害し、重大な損害を引き起こす強力なツールを入手できます。 ディレクトリ トラバーサルは、これを実現するために使用される一般的な方法です。 特定の Web サイト用に予約されたファイル システムの領域の外に移動しようとすると、データの盗難や任意のコードの実行につながる可能性があります。

通常、Web サーバーは、Web サイトのファイルをルート ディレクトリ (ドキュメント ルート フォルダーとも呼ばれます) 内に制限することで、ファイル システムへのアクセスを制限します。 ただし、サイバー犯罪者はこれらのセキュリティ制御を回避し、安全でないファイルのアクセス許可を悪用する可能性があります。 このようにして、被害者のサーバーの別の場所に保存されている重要な情報に不正にアクセスできるようになります。

ファイルインクルードの脆弱性はプラグインやテーマで定期的に確認されているため、WordPress Web サイトはディレクトリトラバーサルを伴う攻撃の優先度の高い標的となっています。 また、安全なコーディング慣行の実装はプラグインとテーマの開発者の仕事ですが、適切なセキュリティ慣行の実装は Web サイト所有者の責任です。

このディレクトリ トラバーサル ガイドでは、ハッカーが Web サイトのルート ディレクトリを突破して制限されたデータにアクセスするために使用するこの一般的な方法について説明します。 パス トラバーサルにより、攻撃者がローカル ファイル インクルージョン (LFI) の脆弱性を悪用して損害を与える方法と、堅牢なセキュリティ対策を実装することで、WordPress Web サイトをこの種の攻撃から保護する方法を学びます。

まず、安全なサーバー運用の概念を詳しく見てみましょう。 より具体的には、さまざまな種類のデータがサーバー環境でどのように分離されるか、およびこのエコシステム内で Web サイトのデータがどのような位置にあるかです。

ディレクトリトラバーサル

データ パーティショニングがサーバーの安全な運用にどのように役立つか

Web サイトと Web アプリケーションは、サーバーにデータを保存します。 このデータは、Web サーバー、データベース サーバー、およびその他の特定のアプリケーションによって処理されてから、要求された Web ページとしてインターネット経由で訪問者のブラウザに配信されます。 基盤となるハードウェア コンポーネントとソフトウェア コンポーネントが連携して、この機能を強化する堅牢なインフラストラクチャを作成します。

ただし、このクライアント/サーバー アーキテクチャでは、サーバーのセキュリティに対する注意深いアプローチも必要です。 サーバーのオペレーティング システムの重要なサービスやその他のコンポーネントは、ユーザー ファイルや Web サイトのデータから完全に分離する必要があります。 ファイル システム上のこのデータの分離は、一般にデータ パーティショニングとして知られています。

データ パーティショニングは、さまざまな種類のデータを個別のパーティションに分離することで、サーバー操作の最も脆弱な側面を保護するのに役立ちます。 ファイル システムのパーティショニングやその他のセキュリティ メカニズムの実装は、機密情報への不正アクセスやシステム レベルの侵害からサーバーを保護するのに役立ちます。 さらに、データ パーティショニングにより、頻繁に変更されるデータを主に読み取り専用ファイルから分離し、システム データとユーザー データを分離することで、効率的なリソース管理が可能になり、サーバーのパフォーマンスが向上します。

Web サーバーのアクセス制御: ドキュメント ルートによる Web サイト データの制限

Web サイトのデータをシステム データから分離するために、Web サーバーはドキュメント ルートの概念を利用します。 これには、Web サイトのファイルを、Web サイトのルート ディレクトリと呼ばれるファイル システム上の指定されたディレクトリに制限することが含まれます。 ドキュメント ルートを定義すると、Web サーバーは Web サイトのコンテンツに対する受信リクエストを正しく送信し、応答することができます。 このルート ディレクトリは、その Web サイトに対する Web リクエストを処理する開始点となります。

この制限により、指定されたルート ディレクトリの外部に保存されているオペレーティング システム情報や主要な構成ファイルなどの重要なサーバー データへの不正アクセスを防ぐことができます。 これは、特定の Web サイトに関連するスクリプトやその他のコンテンツおよび機能は、ルート ディレクトリとそのサブディレクトリ内のデータにのみアクセスして変更できることを意味し、セキュリティ侵害が発生した場合にサーバーの残りの部分を保護します。

ドキュメント ルートに加えて、Web サーバーは他のアクセス制御メカニズムを利用して、Web サイト データへのアクセスをさらに制限します。 最も注目すべきメカニズムの 1 つはファイルのアクセス許可です。 ファイル権限は、最小特権の原則を適用するのに役立ちます。つまり、システム ユーザーまたはプロセスには、意図した機能を実行するために必要な最小限のアクセス権のみが付与されます。

このアプローチの堅牢なセキュリティにもかかわらず、ハッカーはこれをバイパスするために多くの悪意のある手法を使用する可能性があります。 そのような方法の 1 つはディレクトリ トラバーサルです。 ディレクトリ トラバーサル攻撃は、Web サイトのコードと安全なアクセス許可の実装の弱点を利用して、Web サーバーをだましてブラウザからアクセスできない制限された情報を明らかにさせます。

ディレクトリトラバーサルとは何ですか?

パス トラバーサルとも呼ばれるディレクトリ トラバーサルは、対象となる Web サイトまたは Web アプリケーションのドキュメント ルートの外側にある制限されたファイルやディレクトリへのアクセスを許可することを目的とした悪意のある手法です。 パス トラバーサルにより、攻撃者はブラウザを通じてサーバーのファイル システムを経由してルート ディレクトリやその他の制限されたフォルダーに到達することができます。これは通常の状況では不可能な種類の動作です。

ディレクトリ トラバーサルは、パス トラバーサル シーケンスと呼ばれる特殊文字を使用してファイルを参照する変数を操作することによって実行されます。 ドット、ドット、スラッシュ「../」などのシーケンスは Web サーバーによって解釈され、Web サーバーはファイル システム階層のディレクトリを 1 つ上に移動し、Web サイトのドキュメント ルートから離れることになります。

Web サイトが /home/user/public_html に保存されている場合、「../../../etc」のディレクトリ トラバーサル シーケンスを指定すると、攻撃者は Linux 上の重要なシステム構成が保存されている /etc ディレクトリに移動できます。サーバー。

Web サーバー構成でディレクトリの一覧表示が無効になっている場合、サイバー犯罪者は要求されたディレクトリの内容を表示できません。 これにより、システムのセキュリティが部分的に向上し、攻撃者がブラウザに表示したいファイルを正確に指定する必要があるため、ディレクトリ トラバーサル攻撃によって引き起こされる潜在的な損害を制限できます。 しかし、ほとんどの場合、ハッカーは自分が探している情報を正確に知っているため、ディレクトリのリストを無効にしても、ハッカーがその情報にアクセスできなくなるわけではありません。

/etc/passwd ファイルは、ディレクトリ トラバーサル攻撃の一般的なターゲットの 1 つです。 Linux サーバーでは、/etc/passwd ファイルにはサーバー上で作成されたユーザーのリストが含まれています。 これは、ハッカーにとって、ユーザーの資格情報に対するブルート フォース攻撃の良い開始点となる可能性があります。 /etc/passwd のファイル権限は 644 なので、Web サーバーを実行しているユーザーを含む、システム上のすべてのユーザーが読み取り可能であることを意味します。 このようにして、Web サーバーはブラウザを通じてファイルのコンテンツをレンダリングできます。

ディレクトリトラバーサルはどのように機能しますか?

悪意のある手法であるディレクトリ トラバーサルが、被害者のサーバー上の機密情報にアクセスする唯一の手段として使用されることはほとんどありません。 まず、攻撃者は対象の Web サイトの脆弱性を悪用して、要求された情報をブラウザに表示させる方法を見つける必要があります。 その場合にのみ、ディレクトリ トラバーサルを使用して、被害者のサーバーのファイル システムを移動して、制限されたディレクトリに到達します。

ファイルインクルードの脆弱性により、ディレクトリトラバーサルの使用が可能になります。 ディレクトリ トラバーサルの脆弱性は、動的ファイル インクルードを使用して提供されるファイル パスなど、Web サイトがユーザー入力を適切にサニタイズしない場合に発生します。 ローカル ファイル インクルージョン (LFI) とディレクトリ トラバーサルの脆弱性が組み合わさっているため、ハッカーが標的の Web サイトのドキュメント ルートの外部にあるデータにアクセスし、サーバーの機密情報が漏洩する可能性があります。

ディレクトリトラバーサルの例

ローカル ファイル インクルードとディレクトリ トラバーサルの脆弱性が悪用される方法をより深く理解するために、次の例を見てみましょう。 この例は、ファイル インクルードの欠陥を介してディレクトリ トラバーサルがどのように使用されるかを簡略化して示しています。

Web 開発者は、Web ページ content.php を追加します。これは、Web サイトがユーザーのリクエストに基づいてさまざまなページまたはコンポーネントを動的にロードできるようにするために使用されます。 たとえば、Web サイトの訪問者が「お問い合わせ」ページを表示したい場合、そのリクエストはブラウザのアドレス バーに「https://website.com/content.php?page=contact_us」として表示されます。

content.php ページは、ローカル ファイル インクルード手法を使用して、「contact_us」パラメータに対応するファイルを参照します。このファイルには、要求された「お問い合わせ」ページの PHP コードと HTML コードが含まれる可能性があります。 この例では、content.php Web ページがコントローラーとして機能し、ユーザーの入力に基づいてコンテンツを動的に生成する適切なファイルを読み込みます。

ただし、ユーザーの入力が適切に検証またはサニタイズされていない場合、ファイル インクルードおよびディレクトリ トラバーサルの脆弱性が攻撃者によって悪用され、任意のファイルがインクルードされ、ブラウザに表示される可能性があります。

たとえば、ハッカーはページ クエリ パラメータの値として「../../../../../var/log/apache2/access.log」を渡すことができます。これは、一連のディレクトリ トラバーサル シーケンスの後に続きます。ファイル システム内の Apache Web サーバーのメイン アクセス ログのアドレス。 このようにして、攻撃者は、IP アドレス、ユーザー エージェント文字列、Web サイト訪問者が要求した URL などの機密情報を含むログ ファイルの内容を閲覧できます。

ファイルのアクセス許可によってディレクトリ トラバーサルがどのように促進または軽減されるか

ファイルのアクセス許可は、サーバーと Web サイトのセキュリティを確保する上で大きな役割を果たします。 ファイルへのアクセスを特定のシステム ユーザーおよびグループのみに制限することにより、アクセス許可によってディレクトリのトラバーサルが容易になったり軽減されたりすることができます。

ディレクトリ トラバーサルを使用したファイル インクルード攻撃では、攻撃者が要求したファイルのコンテンツは、そのファイルのアクセス許可で Web サーバーを使用するシステムがファイルを読み取ることができる場合にのみブラウザに表示されます。 /etc/password などの一部の制限されたファイルには 644 の権限があり、すべてのシステム ユーザーが読み取り可能になりますが、その他のファイルは root ユーザーのみがアクセスできるままになります。

/etc/shadow ファイルには、Linux サーバー上のすべてのユーザーの暗号化されたパスワードが含まれており、ファイル権限は 640 なので、root 以外のユーザーはアクセスできません。 これにより、ハッカーがディレクトリ トラバーサルを介してブラウザ経由でファイルにアクセスすることができなくなります。

WordPress サイトのディレクトリ トラバーサルの脆弱性を検出するにはどうすればよいですか?

WordPress コアは高レベルのセキュリティを維持し、ファイルインクルードの脆弱性やディレクトリトラバーサルから完全に保護されています。 ただし、プラットフォームが提供する高度なカスタマイズ オプションにより、WordPress サイトにこれらの脆弱性が存在する可能性が高くなります。 最も評判の高い WordPress プラグインやテーマでも、定期的に発見されるセキュリティ上の欠陥が含まれている可能性があります。

iThemes の毎週の WordPress 脆弱性レポートは、ディレクトリ トラバーサルを含む、WordPress プラグインやテーマで新たに明らかになった脆弱性を迅速に特定し、パッチを適用するのに役立ちます。 脆弱性レポートをチェックして、WordPress サイトやアクティブなテーマで使用しているプラ​​グインにセキュリティ上の弱点が最近見つかったかどうかを確認し、パッチがリリースされているかどうかを確認してください。

iThemes Security Pro は、WordPress Web サイトの脆弱性をスキャンするプロセスを自動化し、ユーザーに代わって特定された欠陥に迅速にパッチを適用できます。 iThemes Security Pro は、高度な脆弱性スキャンを 1 日 2 回実行し、脆弱性が検出された場合は電子メールで通知し、セキュリティ修正が利用可能な場合は自動的にアップデートをインストールします。

ディレクトリトラバーサルを防ぐには?

プラグインやテーマで見つかった脆弱性の悪用は、ハッカーが不正アクセスを取得し、機密データを盗み、バックドア シェルを含むマルウェアを WordPress Web サイトにアップロードするために使用する最大の攻撃ベクトルの 1 つです。 また、安全なコーディング慣行に従うことはプラグインとテーマの開発者の責任の範囲内ですが、WordPress Web サイトの所有者はローカルで保護措置を実装する責任があります。 WordPress セキュリティに対する多面的なアプローチのみが、最新の高度なサイバー攻撃の犠牲になるリスクを軽減できます。

すべてのソフトウェアを最新の状態に保つ

WordPress コア、アクティブなプラグイン、選択したテーマを利用可能な最新バージョンに更新し続けることは、ディレクトリ トラバーサルやその他のアプリケーション レベルの重大な脆弱性を排除するための第一歩です。 WordPress サイトを動かしているソフトウェアに新たなセキュリティ上の欠陥が発見されたため、セキュリティ パッチが入手可能になったらすぐにインストールすることが最も重要です。 プラグインまたはテーマの開発者が発見された脆弱性に対処する前に、影響を受けるソフトウェアを無効にして攻撃対象領域を減らすことができます。

プラグインやテーマの更新を追跡するのは困難な作業ですが、iThemes Security Pro を使用すると、Web サイト所有者はプロセスを簡素化し、Web サイトを最新の状態に保ち、セキュリティの脆弱性から保護できる包括的なソリューションにアクセスできるようになります。 バージョン管理機能は、WordPress サイトを保護するための自動ソフトウェア更新を提供します。

安全なファイル権限を構成する

安全な WordPress ファイル権限は、機密性の高い Web サイトやサーバー情報へのアクセスを目的とした攻撃に対する追加の防御層を提供します。 また、重要なシステム構成ファイルやその他の制限されたサーバー データのファイル権限を変更する必要はほとんどありませんが、Web サイトのファイルに安全な権限を設定する責任は Web サイトの所有者にあることがよくあります。

wp-config.php ファイルなどの重要な WordPress 情報を保持すると、ディレクトリ トラバーサルの脆弱性を悪用したファイル インクルード攻撃のシンボリック リンクによるクロスアカウントの侵害を効果的に防ぐことができます。 iThemes Security Pro のファイル許可チェックは、Web サイト所有者がこの重要なセキュリティ メカニズムが WordPress サイトに正しく実装されていることを確認するのに役立ちます。

Web アプリケーション ファイアウォールを実装する

ファイアウォールは、既知のパターンに一致する、または異常なパターンを示す悪意のある Web リクエストを Web サーバーに渡される前にフィルタリングすることによって機能します。 サービス拒否 (Dos) や分散型サービス拒否 (DDoS) などの膨大な数のボット主導のサイバー攻撃や、クロスサイト スクリプティング (XSS) や SQL などのデータ インジェクション攻撃に対する堅牢な防御の第一線としてインジェクション (SQLi)。

Web アプリケーション ファイアウォール (WAF) を実装するか、ホストベースとクラウドベースの侵入防御ソリューションを組み合わせて実装すると、侵入が成功する可能性を大幅に減らすことができます。 Web アプリケーション ファイアウォールは、ファイル インクルードやディレクトリ トラバーサルの脆弱性に対する 2 番目の防御層として機能し、パッチが適用されていないバージョンのプラグインやテーマにあるセキュリティ上の弱点をハッカーが悪用できるようにします。

IThemes Security Pro を使用すると、ブルート フォース保護と組み込みのボット管理ソリューションにより、悪質なボットを阻止し、Web サイトに到達する悪意のある Web リクエストをフィルタリングできます。 生体認証ログインによるパスキーによる多要素認証を追加したこの包括的なセキュリティ スイートは、さまざまな種類のセキュリティ脅威から Web サイトを防御するための多面的なアプローチを提供します。

iThemes Security Pro で WordPress ウェブサイトを保護する

ファイルインクルードとディレクトリトラバーサルの脆弱性は、機密データへの不正アクセスや被害者のサーバー上で悪意のあるコードの実行を狙うハッカーによって頻繁に悪用されるため、Web サイトのセキュリティに重大な脅威をもたらします。 攻撃者は、ディレクトリ トラバーサル シーケンスを使用し、脆弱な Web サイトに特定のデータへのパスを提供することで、Web サーバーをだまして、制限されているサーバーおよび Web サイトの情報を公開させることができます。

ディレクトリトラバーサルは、広く研究され認識されているにもかかわらず、古いソフトウェアに依存し、適切なセキュリティ対策が欠如している WordPress Web サイトにとって依然として大きな懸念事項です。 WordPress コア、テーマ、プラグインの更新をタイムリーに実行し、安全なファイル権限を構成し、Web アプリケーション ファイアウォールを実装すると、Web サイトがディレクトリ トラバーサルを利用したファイル インクルード攻撃の影響を受けやすくなるリスクを大幅に軽減できます。

iThemes Security Pro は、Web サイトのセキュリティに対する包括的かつ多面的なアプローチを提供することで、膨大な数のサイバー脅威から WordPress Web サイトを防御するのに役立ちます。 高度な脆弱性スキャン、自動ソフトウェア更新、強力なボット管理ソリューションが組み込まれている iThemes Security Pro は、個人のセキュリティ アドバイザーとして機能し、WordPress Web サイトを常に安全に保ちます。