Webサイトにアクセスするだけでウイルスを取得するにはどうすればよいですか?[複製]


47

重複の可能性:
Webブラウザーを介してコンピューターをマルウェアに感染させることはできますか?

Webサイトにアクセスするだけでウイルスに感染することはよく知られています。しかしこれはどのように可能ですか?

これらのウイルスはWindows、Mac、Linuxユーザーを攻撃しますか、それともMac / Linuxユーザーは免疫がありますか?

Windowsで.exeをダウンロードして実行することでウイルスを取得できることは明らかですが、Webサイトにアクセスするだけでウイルスを取得する方法はありますか?

ウイルスはJavaScriptでプログラムされていますか?(ローカルで実行されるプログラミング言語であるため、意味があります。)その場合、一般的に使用されるJavaScript関数は何ですか?


2
ほとんどの場合、さまざまな技術とブラウザのセキュリティリークの組み合わせです。
パエロエベルマン

良い質問です。私見ですが、これはWebであり、HTTPに依存しており、OSの影響を受けなくなっているため、ブラウザはOSよりも重要です。
ケナンD

非常に広範なトピックであるブラウザーの脆弱性は、発見されるたびに変わる可能性があり、ブラウザーごとに異なります。
モアブ


@LordCover:初期の恐怖戦術はhttpかもしれませんが、ペイロードは特定のシステムを標的とした実行可能ファイルである必要があり、単純な迷惑を超えて真のウイルスになります。LinuxとMacはexeを実行できず(とにかくヘルプなしで)、Winは他のOS向けに作成された実行可能ファイルを実行できないため、OS依存のシステムのままです。最近のハックフェストは、Win7がセキュリティに関してMacおよびLinuxに匹敵する(ある意味ではより優れている)ことを示しています。現在、ほとんどの人がWindowsを実行しているという事実が、Windowsを人気のあるターゲットにしています。
music2myear

回答:


24

Webサイトにアクセスするだけでウイルスに感染することはよく知られています。誰もこれがどのように可能であるか説明できますか?

括弧の例。ブラウザ(IE)、javascriptインタープリター、またはプラグイン(flashやjavaなど)にバグがあります。このバグはコードの実行につながります-その部分は非常に複雑になる可能性がありますが、多くの場合、解放後使用のバグとヒープ操作が伴います

次に、シェルコードを実行しています。シェルコードは、ブラウザーが持つあらゆる保護をエスケープする必要があります。V8/ Chromeのバグの場合は、クロムのサンドボックスをエスケープし、DEPとASLRを倒す必要があります。IEの場合、DEPとASLRを破ってから、低整合性モードから抜け出す必要があります。Javaの場合、何もしなくてはなりません-あなたはすべて黄金です。(だからJavaのバグが続出しています。)

あなたがマシン上で任意のコードを実行しているので、管理者として実行していないのですか?)、インターネットからファイルをダウンロードして実行し、マルウェアをマシンにドロップします。

ウイルスはJavaScriptでプログラムされていますか?(ローカルで実行されるプログラミング言語であるため、意味があります。)その場合、一般的に使用されるJavaScript関数は何ですか?

特に-いいえ。Javascriptは、ブラウザーのバグを見つけるために人々が使用する攻撃ベクトルです。また、攻撃ベクトルとしてFlash、Java、またはSilverlightを使用することもできます。javascriptの場合、ブラウザのバグを引き起こすためにjavascriptを記述し、最終的にインターネットからウイルスが引き落とされます。


4
これは不正確です。ウイルスはしばしばそれを行いますが、必須ではありません(追加のコードをダウンロードする)。JavaScriptベースのエクスプロイトにペイロードが埋め込まれている場合があります。そのペイロードはアセンブリコードになりますが、javascriptとして表示されます。それはすべてバグと特定のエクスプロイトの実装に依存します。
マーリンモーガングラハム

2
Javaにはサンドボックスがないことを書いただけですか?私が知っているすべてのブラウザで本当にそれができるからです。
CarlF

4
@CarlF:いいえ、これはJavaサンドボックス(まだ存在しています)についてのものではありません。これはJavaのバグに関するものです。サンドボックスから抜け出すことができる場合、攻撃者を止めるための追加のセキュリティ(DEPなど)はほとんどありません。
-sleske

3
Javaは大きな悪用の穴であり、二度とかまれました。私は今、宗教的にそれを無効にしますsuperuser.com/questions/201613/...
ジェフ・アトウッド

2
@Merlynはい、ペイロード全体をJavaScriptに入れて、追加のコードをダウンロードすることはできません(たとえば、「システムにユーザーを追加する」またはreverse_tcpなどのすべてのmetasploitモジュール)。しかし、洗練されたマルウェアは通常、JavaScriptのシェルコードをステージャーとして使用して、より複雑で洗練されたコードを取得します。 すべてはバグとエクスプロイトに依存します-すべてのロジックとシェルコードはイメージパーサーを破壊するイメージ内にある可能性があります-私はただ最も一般的なルートを言っています。
トムリッター

14

残念ながら、逆に、これが起こる可能性のある方法はいくつもあります。

ブラウザのような「読み取りデバイス」が自分のシステムを積極的に操作する(そして害を及ぼす)ことに驚かされるのは絶対に正しいことです。本を読んでもあなたの銀行口座が枯渇することはなく、新聞を開くことはあなたの子供を傷つけることはありません。ウェブサイトを開くことでそれ以上のことができるのはなぜですか?

この問題は、インターネットからの外部データ(常に最大限の悪意を持って作成されていると想定しなければならない)が何らかの形でシステムによって実行される可能性がある場合に必ず発生します。

コマンドラインに座ってを入力するだけwget http://evil.com/hitme.phpで、wget HTTPクライアントは単にリクエストのバイナリダンプをディスクに書き込みますが、何も悪いことは起こりません(おそらくディスクがいっぱいになる以外は)。ただし、ブラウザにアドレスを入力すると、ブラウザは自由にハードディスクをフォーマットしたり、クレジットカードの詳細を送信したりなど、何でも自由に実行できます。ブラウザがそれを行わないことを信頼するのはあなた次第です。実際、ほとんどのブラウザはこれらの悪いことをしようとはしませんが、私たち羊のユーザーは、ブラウザがこれまで以上に「巧妙なトリック」を行い、インターネットからの指示に基づいて自動動作示すことを要求しました。私たちの要求は、JavaScriptやFlashなどのクライアント側のコード実行テクノロジーの作成につながりました。これらは、私たちの喜びのために、任意の、外国の、信頼できない、悪意のあるコードをダウンロードして実行します。

それらの技術を思いついた人々がすぐにリンチされなかった理由は、a)それが私たちの画面上でバニーを踊らせたため、そしてb)彼らが任意の悪意のあるコードの操作を防ぐために十分な安全チェックを設計に入れたと主張したためですローカルシステム(ローカルディスクの読み取り/書き込み、クリップボードの読み取り/書き込み、他のタブのフォームフィールドの読み取り/書き込みを許可しないなど)。

残念ながら、「最初にすべてを許可し、次に考えられるいくつかの悪い箇所をパッチでカバーする」という設計アプローチは根本的に欠陥があり、クライアント側の便利な機能を使用できる新しい方法の終わりのないストリームに直面していますシステムを侵害するために使用されます。

適度に安全な唯一の方法は、ブラウザーでJavaScriptとプラグインを無効にすることです。1995年のように安全です。


6
Wgetは「安全」ではなく、マシンを実行するドライバーも、カーネルレベルのシステムでもありません。緩和策はありますが、最終的にはすべてのコードが潜在的に攻撃を受ける可能性があります。
マーリンモーガングラハム

@Meryll:私は問題の1つのクラス全体、つまり欠陥のあるコードに由来する問題を省略していました。はい、壊れた画像ライブラリやMP3ヘッダーパーサーなどからの脅威は間違いなくあります。行き過ぎたくありませんでした。最新のインターネット技術の設計から生じる問題は、OPの質問にはるかに関連していることがわかりました。
ケレックSB

1
@Kerrek:彼らの質問は「Webページにアクセスしてウイルスを取得できますか?」でしたが、あなたは彼ら wgetからウイルスを取得できないと言いました。信頼についても話します。しかし、問題は「どうやって自分を守るか」ではなく、「エクスプロイトがどのように機能するか」ということです。攻撃面はあなたの主要なポイントであるように思えますが、これは素晴らしいことですが、これらの不正確さと接線によって曇っています。
マーリンモーガングラハム

3
ええ、私は少し単純化していました...詳細な「原則として、wgetには予期せぬ振る舞いを引き起こす障害があるかもしれません」という議論を散らかしたくありませんでした。もちろんです。OPはこの分野では新しいように見え、技術的欠陥による問題ではなく、IT社会のより根本的かつ概念的な問題に焦点を当てたいと考えました。
ケレックSB

-1この答えは問題を理解していません:「私たちの要求により、JavaScriptやFlashのようなクライアント側のコード実行テクノロジーが作成されました。これらは、私たちの喜びのために、任意の、外国の、信頼できない、悪意のあるコードをダウンロードして実行します」-意図は、任意のコードをダウンロードすることではありません。これらがなくても、インターネットからウイルスが発生します。ペイントで.jpgを開いたり、VLCで映画を見たりすることでウイルスを取得できます。それは一般的ではありませんが、それは以前に起こりました。
BlueRaja-ダニーPflughoeft

11

これらの回答で本当に避けられている点は、私が本当に家に打ち負かしたいということですWebページからウイルスを取得できる理由は、実行している一部のソフトウェアにバグ-セキュリティ脆弱性があることです

ソフトウェアの作成プロセスのすべてのステップで、Flashの作成者。ブラウザの オペレーティングシステムの一部は、インターネットからのランダムで悪意のあるコードが、自分自身を実行する方法を見つけ出せないことを確認しようとしました。残念ながら、これを行うのは難しいです。 本当に難しい

したがって、すべての人間と同様に、このソフトウェアの開発者は間違いを犯します。HTMLをで終了すると、HTMLパーサーがスタックの1バイトを誤って上書きし</pます。彼らは誤ってのsigned int代わりにを使用しましたunsigned int。javascript JITコンパイラは、誤ってarray-indexをnullポインタに逆参照しようとします。これらの脆弱性のすべてに加えて、セキュリティの知識の欠如、見落とし、または単なる単純なミスのいずれかが原因で、何百万ものソフトウェアが常に発生しています。ソフトウェアは、単ににそれらすべてをキャッチするためには複雑すぎます。

このため、オペレーティングシステムには、脆弱性が見つかった場合でもシステムへの損傷を防ぐためのメカニズムが組み込まれています。OSにはおそらくDEPASLRがあります。プログラムには、コンパイラによってさまざまな保護を追加できます。ブラウザは低い権限で実行されます。プログラムは、これらの脆弱性の多くをキャッチできる自動分析テストを実行します

私のポイントは、誰もこれを起こさないことですが、完全に安全な金庫を設計することは不可能であるように、完全に安全なソフトウェアを設計することは不可能です。十分な時間、知識、お金、およびインセンティブを持つ人は、常にそれを解く方法を見つけます。そして、この金庫の問題は、一部のハッカーがコピーをクラックすると、部屋を離れることなく世界中の他のコピーを簡単に開くことができることです。


しかし、多くの場合、バグはユーザーが「要求」したために存在します。つまり、HTML3.14159の仕様は、本質的に危険な動作を許可するという点で欠陥があります。また、サイト設計者はこれらの動作を引き起こす特定の機能を使用するため、ブラウザ設計者が「フェーチャー」(または「ブラウザー戦争」で取り残されるリスク)を実装する必要があります。ブラウザーの設計者は、おそらく危険な動作を何らかの方法で軽減しようとし、ウイルス対策の実装者は追加のチェックを山積みしますが、常に何かが通り抜けます。
ダニエルRヒックス

@DanH:ユーザーが要求したため、すべてのブラウザーに意図的に残されたセキュリティホールの具体例はありますか?
BlueRaja-ダニーPflughoeft

意図的にそこに穴が残っていると言っているのではありません。むしろ、貧弱な仕様は「危険な」実装につながります。また、セキュリティの観点から、実装があまりに多くの場合(明らかに)証明できるほど正確ではありません。(そして、仕様がそれを有効にしないので、それは証明できるほど正確ではありません。)
ダニエルRヒックス

ああ、コンピューターサイエンス...半分の時間、一方通行の道路で間違った方向に車を運転し、残りの半分を反対側にテレポートする世界の科学。
ブレークスルー

8

特定の質問

Windowsで.exeをダウンロードして実行することで明らかにウイルスを取得できることを理解していますが、Webサイトにアクセスするだけでウイルスを取得する方法はありますか?

ブラウザは常にコードを実行しています(コードで構成されています)。Webページをダウンロードすると、そのコードは任意のデータ(ピクセル、文字など)をダウンロードして表示します。

コードもデータです(プロセッサレベル)。

コードはデータであるため、ブラウザーが(ファイルの拡張子や形式に関係なく)データを実行しようとすると、実際に実行される可能性があります(正しく作成された場合)。

通常、ブラウザは、ダウンロードしたランダムなデータを実行しようとするほど愚かではありません。ただし、これは発生する可能性があります。

これを行う1つの方法は、読み取られたときに、ブラウザの実行可能プログラムを構成するデータを「リーク」して上書きするような方法でデータを形成することです。これには、ブラウザにバグがあることが必要です(この場合、最も一般的には、バッファオーバーランを許可します)。

また、ブラウザはWebページの上でプログラムを実行します。あなたが言ったように、Javascriptはそのようなタイプのコードの1つです。しかし、たくさんあります。ActiveX、Flash、アドオン、グリースモンキースクリプトなどはすべて、Webページにアクセスしているときに実行しているコードです。このコードには、セキュリティ違反を引き起こすバグが含まれる場合があります。

これらのウイルスはWindows、Mac、Linuxの両方のユーザーを攻撃しますか、それともMac / Linuxユーザーは免疫がありますか?

バグを完全に免れているプラ​​ットフォームはありません。すべてのバグは、データをコードとして扱うプロセッサーを使用しているためです。これは単に、既存のコンピューターアーキテクチャの仕組みです。

この神話の理由は、MacとLinuxの採用率がWindowsマシン(デスクトップレベル)に比べてずっと低いためです。そのため、これらのマシン上のデスクトップソフトウェアは、ウイルスメーカーにとって一般的なターゲットではありません。

ウイルスは、魔法や偶発的な進化によって発生することはありません(生物学的ウイルスのように)。これは、個人または開発者のチームによって作成されたソフトウェアです。そして、彼らは、通常のソフトウェアベンダーと同じように、最大​​の市場シェアをターゲットにしたいと考えています。

1つのウイルスが複数のプラットフォームをターゲットにできるかどうか。すべてのブラウザーは異なるコードを実行しているため、異なるバグがあります(異なるプラットフォームの同じブラウザーでも)。ただし、プラットフォーム間で共有されるコードライブラリがいくつかあります。そのようなライブラリにバグが含まれている場合、悪用が複数のプラットフォームに存在する可能性があります。

しかし、作られた攻撃の種類、非インテルMac用書かれたウイルスに依存かもしれないインテルMac上ではない作業、およびその逆、彼らは異なるプロセッサを持っているので。プロセッサごとに、コードを表すデータの形式は異なります。

ただし、仮想マシンまたはスクリプト言語について話している場合、攻撃はプラットフォームに依存しない可能性があります。それは次の質問につながります...

ウイルスはJavaScriptでプログラムされていますか?

一部のウイルスはそうです。上記の情報(バッファオーバーランエクスプロイトについて)は、通常、Javascript以外の攻撃として使用されますが、Javascriptインタープリターでエクスプロイトを攻撃するように作成されたウイルスにも同様に適用できます。

Javascriptには、バッファオーバーランを超える動作レベルで、独自のエクスプロイトセットもあります。あらゆるソフトウェアを攻撃する方法は多数あります。ソフトウェアが大きくなると(コードの行)、受信する可能性のあるユーザー入力(この場合はコードの種類)の種類が増え、バグを含めることができます。

また、実行中のソフトウェア(サーバーを実行しているソフトウェアなど)が公開されるほど、攻撃に対して脆弱になります。

一般的に、これは攻撃面と呼ばれます

一般的なエクスプロイト

マイクロソフトは、共通のニーモニックは、タイプを利用している、と彼らはすべて自分の興味ある特性を持っており、彼らは攻撃できるというソフトウェアの異なるレベル- STRIDEの略:

Spoofing (of user identity)
Tampering
Repudiation
Information disclosure (privacy breach or Data leak)
Denial of Service (D.o.S.)
Elevation of privilege

これらの一部は、他のサーバー、サーバー、データファイル(画像など)に比べて、Javascriptに基づく攻撃で使用される可能性が高くなります。

しかし、セキュリティは大きく進化している分野です。すべての質問に完全に答えるには情報が多すぎます。


インタプリタ(コンパイル済み)言語を扱う場合、通常、エクスプロイトはアーキテクチャに依存しません。別のプロセッサアーキテクチャ用にコンパイルされたアプリケーション(またはウイルス)は、実行されません(プロセッサに互換性レイヤーが含まれていない場合)。
ブレークスルー

@ブレークスルー:彼らは「彼らはJavaScriptでプログラムされていますか?」と尋ねます 「Webサイトにアクセスするだけでウイルスを取得する方法」に適用した場合は特に、私が言ったことをあまり真実にしない。彼らは複数の質問をしましたが、すべてではないにしても、私が説明したことが質問の一部に適用されました。
マーリンモーガングラハム

@Breakthrough:Javascriptと脅威全般に関する詳細情報を追加しました。
マーリンモーガングラハム

@Merlyn Morgan-Graham、具体的には、「... Intel以外のMac向けに作成されたウイルスは、Intel Macでは動作しないかもしれませんし、プロセッサが異なるため、その逆もある」と言っていました。答え全体ではありません。
ブレークスルー

1
@Merlynモルガン・グラハム「この神話の理由は、MacとLinuxはWindowsマシンに比べてはるかに低い採用率を持っているということです」
Lincity

7

この用語は「Drive By Download」と呼ばれます

以下は、 Webサイトにアクセスする以外に何もせずにそれがどのように起こるかを示す良い例です

シュナイダー氏によると、同社の研究チームは、悪意のあるサイトを指すiframeを挿入しているJavaScriptの一部をページ上で発見したという。綿密な調査の結果、以前に知られていない(0日)IEのエクスプロイトを使用して、そのブラウザーの完全にパッチを当てたバージョンをクラッシュさせ、悪意のあるコードを実行できることが明らかになりました。しかし、Microsoftはこの脆弱性の詳細を間もなく公開したため、0日は短命でした。

シェルコードをさらに分析すると、既知の悪質なサーバーを指すクリアテキストURLが判明しました。これは、M86のリポジトリに、よく知られているiepeers.dllの脆弱性であるMS10-018を悪用したものとして保存されました。


適切な用語を使用するためのこれまでの唯一の答えであるため、+ 1。
ブレークスルー

3

秘makersは、ウイルス作成者/セキュリティの専門家がブラウザに抜け穴を見つけることです。簡単に言うと、彼らはブラウザのセキュリティに穴を見つけ、この穴を使用してシステムに何かをすることができます。Adobe Flashにホールがあり、特定のコードで悪用される可能性がある場合があります。これらのセキュリティホールを引き起こす可能性のあるJavaScript文字列もあります。

それでも、ブラウザを最新の状態に保つと、Webサイトにアクセスするだけで感染する可能性はほとんどありません(ファイルをダウンロードして実行することは別の話です!)


存在するすべてのソフトウェアにはセキュリティバグがあります。それらのすべてが見つかるわけではありません。たとえば、Microsoftペイントには長い間厄介なバグがありました。これは、「ファイル」->「開く」ダイアログでランダムに生成されたデータを「イメージ」として単純にスローするだけで簡単に再現可能です(数分以内)。
マーリンモーガングラハム

さて、セキュリティバグなしでどこかで書かれたソフトウェアが少しあるはずです。(自分で1つまたは2つ書いたと思います。)しかし、あなたには良い点があります。約35年前、誰かが単にシェルコマンドパーサーにランダムな文字を入力することで、Unixの多数のバグを実証しました。数分以内にマシンがクラッシュしました。
ダニエルRヒックス

2

Webサイトにアクセスして感染するようなウイルスは、訪問システムの欠陥を悪用します。たとえば、ブラウザまたはプラグインのプログラミングに欠陥があり、訪問先のコンピュータで画像が(偶然、ブラウザ開発者の観点から)任意のコマンドを実行できるようになる可能性があります。

そのため、すべてのオペレーティングシステムが潜在的な被害者であると考えられますが、ウイルス作成者は通常、規模の経済に基づいて攻撃を構成します。ユーザーが多いほど効果的です。そのため、WindowsとInternet Explorerがより頻繁にターゲットにされています。

ブラウザまたはプラグインの任意の部分がウイルスの標的になる可能性があります。上記のウイルスを引き起こすイメージは実際の例です。フラッシュは一般的なターゲットです。ブラウザのJavaScriptエンジンも同様です。間違っている可能性のあるものはたくさんあります。

最善の策は、高品質のウイルススキャナーを実行することです。Esetの NOD32を使用しました。また、それが本当であるにはあまりにも良い場合は、何かをクリックしないでください。使用NoScriptの Firefox、およびでAdBlockを


1

これらのウイルスはWindows、Mac、Linuxユーザーを攻撃しますか、それともMac / Linuxユーザーは免疫がありますか?

Webサイトがブラウザのセキュリティを侵害した場合、コンピューター上にあるあなたの所有物がすべて破壊される可能性があります。ただし、特権を昇格させて管理アクセスを取得できる場合は、システム上のすべてのものを悪用する可能性があります。

Unixマシン(Linux、Mac、またはBSDなど)では、Windowsよりも管理者権限を取得するのが難しいと長い間考えられてきました。ただし、Microsoftによる最近の(Windows Vistaの時点での)セキュリティ機能の刷新により、Windowsは以前よりもはるかに安全になった可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.