web-dev-qa-db-ja.com

Javascriptマルウェア:それはどのように機能し、どのように軽減することができますか?

マルウェアがJavascriptを介してどのように提供されるのかと思います。一部の金融サイトにアクセスすると、いくつかの不正なポップアップが表示されます。マルウェアの悪用がアプリケーションに対してどのように機能するのか、およびポップアップがWebサイトからのものではなく、マルウェアからのものであることを少なくともアプリケーションにユーザーに通知するためにアプリケーションが実行できることは何ですか。

8
p_upadhyay

ドライブバイダウンロード は、JavaScriptがバイナリをユーザーのマシンに取得するための典型的なマルウェアベクトルです。 JSはContent-disposition:attachmentで応答するマルウェアバイナリのリクエストを開始するだけで、ユーザーにダウンロードを促します。

JSは、ユーザーがキャンセルした場合でもこれを続行し、ユーザーのブラウザーを事実上使用できなくし(プロセスを手動で強制終了する方法がわからない場合があります)、ダウンロードをウイルス対策ソフトウェアのように見せることがよくあります。

一部のユーザーは、ブラウザを元に戻すためにダウンロードを受け入れ、マルウェアベンダーはバイナリが実行されるのを待つ必要があります。


ウイルスとマルウェアの主な問題は、OSが現在のユーザーと実行するプログラムを混同することです。ソリティアを実行すると、そのプロセスには、コマンドラインまたはウィンドウシステムから実行できるすべてのファイルを編集する機能があります。そうではないはずです。

ソリティアまたはWebからダウンロードしたスクリーンセーバーが税金ファイルへのアクセスを必要とする理由はないので、キューの組み合わせを使用して、必要な特権を把握できます。

  • ユーザーは、ファイルダイアログまたはドラッグアンドドロップなどのOSを介した他の指定方法で権限を付与しましたか? ( "Secure Interaction Design" )は、ユーザーインターフェイスとの対話方法を調べることにより、権限の付与を推測するさまざまな方法を説明しています。
  • アプリケーションバイナリのインストール中に作成されたため、ファイルはアプリケーションによって「所有」されていますか?
  • ファイルは、DLLまたは共有ライブラリのような一般的なシステムリソースですか?

他の特権は、ユーザーの指定または単純なルールに基づいて同様に付与できます。

ほとんどのオペレーティングシステムとアプリケーションはこれを考慮して書かれていないため、HPラボの Polaris のようなシステムは、Windowsで現在のユーザー権限よりも少ない権限でアプリを実行できるようにする方法を示しています。

人々は、POLAが同時に2つのことを意味することをしばしば忘れます。アプリケーションがユーザーのジョブを実行するのに必要な権限よりも多くの権限を持たないようにするだけでなく、アプリケーションにそのユーザーのジョブを実行するのに十分な権限があることを確認する必要もあります。権限の付与が多すぎることが、アプリケーションをハイジャックするウイルスが存在する理由です。権限が少なすぎると、アプリケーションが役に立たないことを意味します。たとえば、Webブラウザーのサンドボックスにあるスプレッドシートプログラムでは、結果をハードディスクに保存できません。 Polarisは、権限を多すぎたり少なすぎたりすることはありません。通常、分極したアプリケーションはコンピュータ上のファイルを破損または感染させることはできませんが、アプリケーションは、ファイルをダブルクリックするか選択することにより、ユーザーが明示的に指定したファイルに情報を保存できます。ダイアログボックス内のファイル。したがって、Polarisシステムはアプリケーションの権限を動的に調整して、ユーザーが望むことを実行します。

静的なサンドボックスとは異なり、Polarisはユーザーエクスペリエンスにそれほど影響を与えません。実際、あるHPの幹部は、自分のマシンにあることを知らずに、3日間、Alphaより前のバージョンのPolarisを使用していました。 Polarisは、アプリケーションやオペレーティングシステムを変更することなく、その魔法を発揮します。また、システムコールのインターセプトに依存しません。代わりに、ユーザーがアプリケーションを「偏光」すると、「偏光子」はそのアプリケーションに制限されたユーザーアカウントを作成します。ユーザーがアプリケーションを起動すると、Polarizerが作成したショートカットを介して明示的に、または適切なタイプのファイルを開いて暗黙的に、PolarisはWindows runAs機能のバリアントを使用してアカウントでプログラムを開きます。 Polarisソフトウェアの大部分は、この事実をユーザーから隠しています。

3
Mike Samuel

JavaScriptは、Webページの作成者に良い面と悪い面を提供し、ブラウザーがアクセスしたとき、またはページに移動したときに、必要なコードを実行できるようにします。さまざまなJavaScript実装には、JSコードがコンピューターに対して悪意のある行為を行わないようにするためのいくつかのセキュリティ機能がありますが、2つの問題が発生します。あからさまな敵対的でない場合、悪い結果につながる可能性があります(たとえば、支払い情報を要求するFakeAVからのポップアップ)。

非常に効果的な現在のJavaScript関連の攻撃手法の例は、非表示のiframeを使用して、他の侵害されたサイトからJSマルウェアをロードし、ブラウザで実行しようとします。これは、人気の高いサイトに含まれる広告だけでなく、トラフィックの少ないサイトにも見られます。成功した場合、ローカルシステムソフトウェアの悪用を続ける可能性があります。このように、ブラックホールエクスプロイトキットのさまざまなバージョンが、脆弱なバージョンのPDFおよびFlashソフトウェアを攻撃して、ボットネットクライアントをホストマシンに感染させます。

ブラウザやシステムメーカーが正当なメッセージを偽造しにくくすることは困難です。 Windowsユーザーアカウント制御は、タスクを完了するために特権が必要な場合に他のすべてのプログラムを中断する方法があるため、最良の手法の1つです。ほとんどのブラウザやソフトウェアのポップアップメッセージは簡単に偽造されるため、注意が必要です。

これを回避するには、ブラウザのアドオン、プラグイン、設定を使用して、信頼できるサイトまたは許可したサイトからのJavaScriptのみを許可します。 NoScript for Firefoxは、これらのリスクを減らすのに非常に効果的です。

2
adric

攻撃者は、ブラウザの脆弱性を利用して、クライアントのコンピュータでマルウェアコードを実行できます。私が見たほとんどのマルウェアは、Base64を使用してシェルコードを覆い隠し、JSファイル内で圧縮するか、HTMLに埋め込みました。 JSコードがクライアントコンピューターで実行されると、「deflate」と「eval」を使用して、文字列にエンコードされているコードを実行します。

このマルウェアは、ブラウザのバグを利用して、クライアントマシンでシェルコードを実行します。バッファオーバーフローは非常に一般的でしたが、最近の主要なブラウザは、その点に注意して書かれている傾向があります。使用後解放と二重解放は、まだかなり活発です。

正当なWebサイトから複数のランダムなポップアウトが表示される場合は、コンピューターが何かに感染している可能性があります。 AVおよびアンチスパイウェアソリューションが最新であり、正しく実行されていることを確認します。また、 プロセスエクスプローラーautoruns などのツールを使用して、コンピューターで実行されているものを確認します。

0
w.c