深夜、仮想マシンからプログラムが実行してしまいました...

深夜、仮想マシンからプログラムが実行してしまいました...

[[386470]]

画像はPexelsより

罠に落ちる

「次兄さん、やっと来たね。計画通りにやろう。ハードドライブ上のファイルをスキャンして、価値のあるものがあるかどうか確認してくれ。スタートアップ項目を修正して、俺たちを追加してやるよ。」

「ちょっと待ってください、ボス、何かおかしい気がします。」

"どうしたの?"上司は尋ねた。

「これまで行った他の場所はどこもとても賑やかなのに、なぜここはこんなに静かなのでしょうか?QQやWeChatのプロセスさえありません!」二番目の子は言いました。

上司は辺りを見回して、何か異常なことに気づいた。

しばらく待った後、上司は突然叫びました。「ああ、これは仮想マシンだ。我々はそれに陥ってしまった!」

「これが仮想マシンだとどうしてわかるのですか?」二番目の兄弟は困惑して尋ねました。

「ほら、そこには VMware プロセスがあり、レジストリにはたくさんの vmware タグがあります。」

「どうしよう?もうだめだ、裸にされちゃう~」と次男は不安そうな顔をした。

長男は顔をしかめ、行ったり来たりしながら、突然嬉しそうな表情を見せて言った。「心配しないでください。出発する前に、師匠がこっそりと宝袋を私に渡して、緊急時に開けるように言ってくれました。」

「何を待っているんだ?今すぐ取り出して!」

長男はポケットから宝袋を取り出した。中には手紙が入っていました。二人の男はそれを注意深く読んだ。

しばらくして、ボスは大きな声で笑いながら言いました。「兄さん!安定してるよ!」

2 番目の兄弟は、よく理解できず困惑した表情を浮かべました。「兄弟よ、私の無知をお許しください。どうすればこれが安定するのでしょうか?」

「ほら、マスターが仮想マシンからの脱出方法を説明してくれて、仮想マシンからの脱出方法を教えてくれたよ。」

「兄さん、声を小さくしてください。そうしないと、見つかりますよ。始めましょう。そうしないと、手遅れになるかもしれません。」

「焦らないで、じっくり勉強させてください。」

便箋にはたくさんの文字がぎっしりと書かれていて、ちょっと複雑そうに見えました。先ほどまで緩んでいた二人の眉が、またゆっくりとしかめ面になった。

しばらくして、2 番目の兄弟は我慢できなくなり、「お兄さん、これは複雑すぎます。理解できません。あなたに頼るしかありません」と言いました。

「分かりました。仮想マシンは外の現実世界と通信します。通信プロセスの抜け穴を見つけて、通信データにコマンドコードを混ぜ、外の世界で通信を担当する端末にそのコマンドコードを実行させれば、それを送信して外の現実世界へ脱出できるのです!」

「なるほど、でもそんな抜け穴はどこにありますか?」

「わかった。ここを見て。オーナーは私たちのために抜け道をいくつか見つけてくれた。なんて思いやりのある人なんだ!」

  1. 2016-7461 の脆弱性
  2. CVE-2017-4901
  3. 修正:

「これらの文字列と数字はどういう意味ですか?」二番目の子供が尋ねました。

「これは脆弱性番号といいます。CVEはCommon Vulnerabilities and Exposuresの略で、2番目が年、3番目が具体的な脆弱性番号です。ソフトウェアの脆弱性は毎年数多く発見されており、管理の便宜上、一律に番号が振られているのです。」

「急いで選んで始めましょう!」

「ちょっと待って。2番目を選択しましょう。これは VMware の脆弱性です。バージョンは適切で、まだ修正されていません。兄弟、チャンスが来ました!」

そう言うと、上司は手紙に書かれた内容に沿って作業を開始し、後で使用するデータやコードを準備しました。

「ボス、この抜け穴の原理は何ですか?準備している間に私に教えてくれませんか~」

「オーナーの手紙には、VMware には、仮想マシンの内部オペレーティング システムが外部システムと通信するために使用できるバックドア通信インターフェイスがあると書かれていました。コピーやドラッグ アンド ドロップは、それをファイルの転送に使用します。バックドア コードには脆弱性があります。データを慎重に構築すれば、コピー時にヒープ オーバーフローが発生し、命令コードが実行される可能性が出てきます。」

「すごい!ご主人様は本当にすごい!」と2番目の子が叫びました!

「急いでデータの準備を手伝ってください!」

新世界

しばらくして。

「お兄ちゃん、準備はいい?」

「手紙の指示通りに準備はすべて整いました。さあ、兄弟よ、私たちはもうすぐ出かけます。私につかまっていてください。」

上司は、慎重に準備したコードを取り出し、慎重にクリックして実行しました。シューという電気の音が鳴り、2 つの信号はビット ストリームの文字列となり、外部の VMware プロセスに送信されました。

[[386474]]

計画通り、脆弱性がうまくトリガーされました。二人は事前に書き込んだ命令コードを実行した結果、外にあるコンピューターのファイルディレクトリに無事到達した。

しばらく待っていると、二人はゆっくりとめまいから回復した。

「ボス、成功しました!」

「はは!やっと出たよ。」

二人は喜びのあまり強く抱き合った。

「さて、そろそろ仕事に取り掛かりましょう。私たちはすでにかなりの時間を無駄にしており、主人はまだ私たちの知らせを待っています。」

「よし、仕事に取り掛かろう!」

二人は計画を実行するために時間と競争しながら忙しくなり始めましたが、すぐに何かがおかしいことに気づきました。

「ボス、なぜまだ VMware プロセスがここにあるのですか? 我々は脱出したのではないですか?」

「馬鹿馬鹿しい、私たちはそこから逃げ出しただけよ!」

「いや、見に来てください」…

上司は知らせを聞いて駆けつけ、注意深く点検した後、再び周囲を見回して息をついた。

「兄さん、終わりました。どうやらまだ仮想マシンのようです…」

[[386475]]

ストーリーのインスピレーション

このストーリーは、Zhihu の「オペレーティング システムは、仮想マシン内にあることを認識できますか?」という質問から着想を得ました。私の答えは次のとおりです。

仮想化テクノロジーは、次の 3 つの開発段階を経てきました。

  • 初期のバイナリ命令変換技術(初期のVMwareに代表される)から
  • オペレーティングシステムコード(XENで表現)内の特別な命令呼び出しを変更することにより
  • CPU をサポートするハードウェア仮想化 (VT-x テクノロジに代表される)、特にハードウェア仮想化テクノロジの登場により、仮想化テクノロジは急速に発展しました。 VirtualBox、VMWare(新)、KVMなどが次々と登場し、クラウドコンピューティング時代の到来がある程度加速しました。

問題自体について言えば、3 回の開発期間を経て、仮想化機能は実際のハードウェア環境にどんどん近づいていますが、それでも、オペレーティング システムが仮想マシン内にあるかどうかを判断するのは依然として簡単です。

オペレーティングシステムと言うのは、それほど簡単に理解できるものではないかもしれません。シナリオを変えてみましょう。トロイの木馬ウイルスの開発者は、攻撃の対象が仮想マシンであるかどうかを知りたいと考えています。

この質問はより現実的です。仮想マシンにウイルスやトロイの木馬が存在する場合、セキュリティ研究者によって分析されている可能性が高くなります。優れた開発者は、自分の意図を隠し、見破られないようにする方法を知っていなければなりません。

これは、ウイルスやトロイの木馬でよく使用される仮想マシン対策技術です。

具体的な検出方法は多数ありますが、基本的な考え方は、仮想マシンごとに特性が異なるため、必要なのはこれらの特性を見つけることです。

たとえば、特殊な IO デバイス、特殊なファイル ディレクトリ、特殊なレジストリ エントリ、特殊なプロセス名などです。

もちろん、ここまで述べた後でも、仮想マシン内にあるかどうかを判断するために、いくつかの表面的な現象を使用します。これらがどれも存在しない場合、どうすれば真の「認識」を達成できるのでしょうか?

まだ方法はある。

実際の物理マシンと仮想マシンの間には常に違いがあります。これについては、アルゴリズムの実行にかかる時間や、特殊なコードの実行によって生じるハードウェアの変動など、「サイドチャネル」の観点から考えることができます。

仮想マシンは絶対に安全ではありません。仮想マシン内のプログラム コードは、実際のホスト上のプログラムと同様に物理 CPU によって実行されますが、ハードウェア、ソフトウェア、およびその他のメカニズムによって「強制的に分離」されていることを知っておく必要があります。

これらのメカニズムに抜け穴があると、悪意のあるプログラムが仮想マシンから脱出するチャンスが生まれます。

物語の終わりに、彼らはついに仮想マシンから脱出しましたが、自分たちがまだ別の仮想マシンの中にいることに気付きました。

この筋書きはあなたにとって馴染み深いものですか?映画を推測してください。コメント欄にコメントを残してください〜

著者: 風玄元

編集者:タオ・ジアロン

出典: 公開アカウント Programming Technology Universe (ID: xuanyuancoding) から転載

<<:  ビッグデータとクラウドコンピューティングの深い統合の傾向はどのような側面に反映されていますか?

>>:  NameServer、Zookeeper、違いが分からない

推薦する

ウェブサイトの運用開始時に行うべきことは何ですか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますウェブサイ...

Java 実践: Cloud Studio をベースに Java を使用して公式アカウントとの簡単な統合事例

今日は、Java と WeChat 公式アカウントとの接続を通じて Tencent Cloud St...

反省: 商標登録ウェブサイト最適化の 5 つの罪

人として、自分の欠点を発見し、間違いを正せるよう、自分自身を振り返ることを学ばなければなりません。 ...

Weiboマーケティング事例:Durex公式WeiboのUGC生成の裏側

2987件のリポストと536件のコメントは、@Durex公式Weiboとしてはかなり印象的な数字です...

ウェブサイトログ分析ツールを使用してログを表示する方法

多くの友人は、ウェブサイトログが何であるか、それをどのように表示するか、ましてやそれを分析する方法を...

ShoveHost - 768m メモリ/20g ハードディスク/250g トラフィック/月額 6 ドル

ShoveHostは2011年に設立され、同年に商業運営を開始した会社です。カリフォルニア州サンディ...

ERP はパブリック クラウド上に存在できないと誰が言ったのでしょうか? Kingdee Cloud Serverless ERP が AWS でリリース

[51CTO.com からのオリジナル記事] パブリック クラウドは、その弾力性と拡張性により、多く...

独立起業家のためのキーワード競争ルールの簡単な分析

SEO ビジネスは長年にわたって急成長しており、もはや新しい業界ではありません。ご存知のとおり、キー...

申請は成功し、正式に復帰しました!

ホストキャットのブログは現在、中国の百度公開クラウドに掲載されています。長い申請プロセスを経ており、...

投資ウェブサイト「Antai Excellence」が突然停止、投資家はパニックに

「安泰精品」という投資サイトが12月17日から開かなくなった。サイトで投資した人々はパニックに陥った...

あなたと私のキーワードランキングを保存するにはどうすればよいですか?

ウェブサイトを公開した後、重みが不十分なためにキーワードの順位が不安定になったり、ウェブサイトの降格...

魏武慧:伝統的なマーケティングは死んだのか?適切に使用すれば決して時代遅れになることはない

マーケティングはパンチの組み合わせであり、時代遅れかどうかという疑問はありません。文/魏無慧魏無慧:...

WOT Shi Yang: IoT時代のインテリジェントエッジコンピューティング

[51CTO.com からのオリジナル記事] 7 年間の努力と見事な変貌。 2012年以降、6年連続...

Nehalemプロセッサは、コア周波数がパフォーマンスを決定しないことを証明している

誰もがこれまでこのような考えを持っていました。コア周波数の高い CPU 製品を使用することは、特にサ...

Baidu DirectアカウントはWeChat公式アカウントを破壊できますか?

2014年9月3日、百度世界大会で、百度は長らく計画していた大きな動きであるダイレクトナンバーパブリ...