Windows

DLLハイジャック脆弱性攻撃、予防および検出

Sweet Tart Dough Recipe - LeGourmetTV

Sweet Tart Dough Recipe - LeGourmetTV

目次:

Anonim

DLLはDynamic Link Librariesの略で、Windowsやその他のオペレーティングシステム上で動作するアプリケーションの外部部分です。ほとんどのアプリケーションは、それ自体では完全ではなく、異なるファイルにコードを格納します。コードが必要な場合は、関連するファイルをメモリにロードして使用します。これにより、アプリケーションファイルのサイズが縮小され、RAMの使用が最適化されます。この記事では、 DLLのハイジャック とそれを検出および防止する方法について説明します。

DLLファイルまたはダイナミックリンクライブラリとは

DLLファイルはダイナミックリンクライブラリであり、異なるアプリケーションの当社が使用するアプリケーションは、特定のコードを使用する場合と使用しない場合があります。このようなコードは、異なるファイルに格納され、関連するコードが必要な場合にのみ起動され、RAMにロードされます。したがって、アプリケーションファイルが大きくなりすぎるのを防ぎ、アプリケーションによるリソースのホギングを防ぐことができます。

DLLファイルのパスは、Windowsオペレーティングシステムによって設定されます。パスは地球環境変数を使用して設定されます。デフォルトでは、アプリケーションがDLLファイルを要求すると、オペレーティングシステムはアプリケーションが格納されているのと同じフォルダを探します。そこに見つからない場合は、グローバル変数で設定された別のフォルダに移動します。パスには優先順位が付いており、DLLを探すフォルダをWindowsが判断するのに役立ちます。

DLLハイジャックとは

DLLは拡張機能であり、マシン上のほぼすべてのアプリケーションを使用するために必要であるため、説明されているようにさまざまなフォルダに存在します。元のDLLファイルが悪意のあるコードを含む偽のDLLファイルに置き換えられた場合、 DLLハイジャック と呼ばれます。

前述のように、オペレーティングシステムがDLLファイルを探す場所が優先されます。まず、アプリケーションフォルダと同じフォルダを探し、オペレーティングシステムの環境変数で設定された優先順位に基づいて検索します。したがって、good.dllファイルがSysWOW64フォルダにあり、誰かがbad.dllをSysWOW64フォルダと比較して優先度の高いフォルダに配置すると、オペレーティングシステムはbad.dllファイルを使用します。これはDLLと同じ名前ですアプリケーションによって要求される。 RAMに入ると、ファイルに含まれる悪質なコードが実行され、コンピュータやネットワークが侵害される可能性があります。

DLLのハイジャックの検出方法

DLLのハイジャックを検出して防止する最も簡単な方法は、サードパーティのツールを使用することです。市場では、DLLのハックの試みを検出して防止するのに役立ついくつかの優れたツールがあります。

DLL Hijack Auditorがありますが、32ビットアプリケーションのみをサポートしています。あなたのコンピュータにインストールしてすべてのWindowsアプリケーションをスキャンして、すべてのアプリケーションがDLLハイジャックに対して脆弱であるかどうかを調べることができます。インターフェースは簡単で自明です。このアプリケーションの唯一の欠点は、64ビットアプリケーションをスキャンできないことです。

DLLハイジャッキングDLL_HIJACK_DETECTを検出する別のプログラムは、GitHub経由で利用できます。このプログラムは、アプリケーションがDLLハイジャックに対して脆弱かどうかを調べます。そうであれば、プログラムはユーザに知らせる。アプリケーションにはx86とx64という2つのバージョンがあり、それぞれを使って32ビットと64ビットの両方のアプリケーションをスキャンできます。

上記のプログラムはWindowsプラットフォーム上のアプリケーションをスキャンして脆弱性を検出します。 DLLファイルのハイジャックを防ぐ

DLLのハイジャックを防ぐ方法

セキュリティシステムを強化する以外にはあまりできないことが多いため、プログラマはまず問題に取り組まなければなりません。相対パスの代わりに、プログラマが絶対パスを使用し始めると、脆弱性が軽減されます。絶対パスを読むと、Windowsやその他のオペレーティングシステムは、パスのシステム変数に依存せず、意図したDLLに対してまっすぐに進みます。これにより、同じ名前のDLLを優先順位の高いパスに読み込む可能性がなくなります。システムが危険にさらされ、サイバー犯罪者がDLLの正確なパスを知っている場合、元のDLLを偽のDLLに置き換えるため、この方法もフェイルセーフではありません。これは、元のDLLが悪質なコードに変更されるようにファイルを上書きすることです。しかし、サイバー犯罪者は、DLLを要求するアプリケーションで言及されている正確な絶対パスを知る必要があります。このプロセスはサイバー犯罪者にとって厳しいものであり、そのために数えることができます。

できることに戻って、セキュリティシステムをスケールアップして、Windowsシステムのセキュリティを強化してください。良いファイアウォールを使用してください。可能であれば、ハードウェアファイアウォールを使用するか、ルータファイアウォールをオンにします。

コンピュータのトラブルシューティングを行う場合は、セキュリティを強化するために以下を実行することもできます。

  1. リモートネットワーク共有からのDLL読み込みを無効にする
  2. WebDAVからのDLLファイルの読み込みを無効にする
  3. WebClientサービスを完全に無効にするか、手動に設定する
  4. TCPポート445および139をコンピュータの侵害に最も使用されているようにブロックする
  5. システムおよびセキュリティソフトウェア

Microsoft はDLL負荷ハイジャック攻撃をブロックするツールをリリースしました。このツールは、アプリケーションがDLLファイルからコードを安全にロードできないようにすることで、DLLハイジャック攻撃のリスクを軽減します。

記事に何か追加したい場合は、下記のようにコメントしてください。