web-dev-qa-db-ja.com

完璧なねずみ取り-サンドボックスシステムは、実際のコンピューターと同じになるように設計できますか?

マルウェアの疑わしいファイルをテストする際の一般的な方法は、既知の悪意のあるコードを検索することです。これが、ゼロデイマルウェア攻撃が非常に危険である理由です。その悪意のあるコードは、以前はウイルス対策ソフトウェアには知られていませんでした。理想的な解決策は、使用する前にサンドボックス内のすべてのファイルとプログラムをテストすることです。これは試されましたが、私の知る限りでは、通常、十分に賢いマウスで検出できる異常なプロセスが表示されます。マルウェアは、サンドボックス化されていることを検出し、悪意のある動作を阻止して、発見されないようにします。

問題は、実際のコンピューターと同じであるサンドボックスを構築し、それを使用するソフトウェアを今日のオペレーティングシステム(Windows、OS X、Linux、iOS、Android)に実装することは可能であり、より重要なことに実用的であるかどうかです。それが実行される前にすべてをテストするために、あるいはそれ以上に、それをそのファイルの実行環境として使用しますか?

17

はい、(理論的には)すべての「コンピューティングデバイス」は他のすべてのコンピューティングデバイスと計算上同等であるため、実行できます。興味がある場合は Church-Turing論文 を検索してください。

しかし、あなたの質問は実際には根拠があり、この場合の答えは「はい、しかしそれはコストがかかりすぎるでしょう」です。今日の仮想化の取り組みは、仮想環境を かなり から まで可能な限り高速化することを目的としています)detect 仮想マシンで実行している場合。つまり、100%「ネイティブ」で実行されているシステムを複製するための労力は、同じ関心を持つ人々の数によって制限されます。

言い換えれば、あなたが目指していることを行うことに商業的関心はほとんどなく、ROIは問題に精通した少数の愛好家や企業にのみ限定されます。あなたはそのようなシステムにいくら支払うでしょうか?どのくらいの時間を費やすことができますか?このプロジェクトに何年も費やす気のある人は何人いますか?

研究 への取り組みがありますが、これは、完全に動作するシステムで、それほど遅くないことをまだ確認していません。たとえば、Skypeはスローダウンを検出するアンチデバッグ技術を採用しています(このプレゼンテーションの スライド30を参照してください )。マルウェアが同様のトリックを実行して、固定タイムサーバーに対する実行を測定し、それが(必然的に遅い)エミュレーターで実行されていることを検出できると思います。

実際のマシンでマルウェアのサンプルを実行して、何が起こるかを観察するという別のアプローチの方が経済的に健全だと思います。次に、ディスクとメモリを「ゴースト化」して、同一の「クリーン」なサンプルで違いを確認します。全体として、思い描いたようなシミュレーターを開発するよりも時間がかかりません。

17
lorenzog

実際、ロレンソの答えはそれを完全にカットしていません。 Church-Turingの論文はコンピューティングのモデルを提供するだけであり、仮想化についてはマシンの他の側面とは関係がないため、仮想化について何も説明できません。

しかし、Popekらによって仮想化されるマシンの能力についての理論的な分析があります: http://cs.nyu.edu/courses/fall14/CSCI-GA.3033-010/popek-goldberg.pdf

つまり、現在のアーキテクチャ、そして最も重要なのはx86-64はこれらの要件を満たしていません。したがって、結論は、現在使用中のCPUアーキテクチャでは残念ながら不可能です。しかし、常に新しいCPUアーキテクチャについて考えることができます...

7
Tobias Würfl

実際のコンピューターを物理的なサンドボックス環境に配置します。コンピュータ自体はサンドボックスではなく、何も仮想化しません。

Active Directoryが必要ですか?サンドボックス環境にActive Directoryを配置します。

テストを行い、変更内容を確認し、コンピューターとネットワークのログを確認します。

これは、通常のハードウェア機能を制限するサンドボックスOSを構築するよりも実用的です。

3
ponsfonze

...実用的、実際のコンピューターと同じサンドボックスを構築する...使用する前に、サンドボックス内のすべてのファイルとプログラムをテストします...

これは間違った質問だと思います。実際の課題は、実際のコンピューターのように動作するサンドボックスを構築することではなく、実際のコンピューターのように動作するサンドボックスを作成することですターゲットユーザーが使用

マルウェアは実際には、特定のユーザー(標的型攻撃)の存在を検出するための手法を使用します。ウェブベースのドライブバイダウンロードのいくつかの可能な技術は

  • ページ上の特定の位置がクリックされるかどうかを確認するか、何らかのキャプチャを表示して入力を待ちます。
  • キャッシュされているリソースとキャッシュされていないリソースがあるかどうかを確認し、実際に人間がしばらく使用しているブラウザの存在を確認します。
  • ユーザーがFacebookにログインしているか、特定の内部Webサイト、リソースなどにアクセスできるかどうかを確認します。
1
Steffen Ullrich

この質問をもう一度見てみましょう:動作のみでマルウェアを検出することは非常に困難です---マルウェアは仮想化環境で実行されているかどうかを検出できるだけでなく、(たとえば)悪意のある動作をアクティブにする前にしばらく待つことができます(a関連する種類の例:しばらく前にchrome悪意のある活動をアクティブにする前に7日間待機した拡張機能がGoogleのスクリーニングに合格しました process for chrome extensions )。

アンチウイルスのほとんどはすでに何らかの動作のマルウェア検出を行っています。マルウェアプログラムがワイプを試みる前に5分間待機するとします/パーティション。動作分析を行うアンチウイルスは、次のいずれかを実行できます。

  • サンドボックスでこのプログラムを数秒間実行し、問題がないことを確認します。
  • このプログラムを実行すると、時間が非常に速く(リアルタイムよりも速く)通過する超高速サンドボックスです---しかし、このサンドボックスは、タイムサーバーに連絡することで簡単に検出できます。
  • このプログラム(およびその他すべて!)をサンドボックスで5分間実行してから、実際のP​​Cで実行すると、コンピューターが使用できなくなります。
0
jb.