Sophosのサイバーセキュリティ研究者は、Pythonベースのランサムウェア攻撃を発見した。この攻撃は、侵害された企業ネットワークから、暗号化された仮想マシンへと、わずか3時間でエスカレートした。
VMware ESXiのデータストアにはエンドポイント保護が導入されていないことが多いと、研究者は指摘している。また、データストアは、企業の重要なサービスを実行している可能性が高い仮想マシン(VM)をホストしているため、ハッカーにとって非常に魅力的な標的となる。脅威の状況においては、まさに大当たりを引くようなものだ。
今回、攻撃者はデータをロックし、いかなる復旧も阻止するために、通常とは異なる手法を用いた。
ハッカーがPythonを使用した理由
Pythonは、わずか数行のコードでOSと容易に連携できる強力なプログラミング言語だ。また、ESXiサーバーはLinuxベースのシステムであり、Pythonがあらかじめインストールされていることも多い。
Pythonでは、他のプログラムからコマンドを呼び出すのにOSモジュールを使うと便利だ。今回、ハッカーはfcker.pyという軽量なPythonスクリプトをアップロードした。このスクリプトには、次のようなESXi Shellコマンドが含まれていた。vim-cmd vmsvc/getallvmsやvim-cmd vmsvc/power.off。
これらの命令は、すべてのVMを一覧表示してシャットダウンするためのもので、暗号化を開始する前に必要となる。その後、スクリプトはopensslコマンドを呼び出す1行のコードで/tmpディレクトリ内のファイルを暗号化する。続いて、元のファイルを特定の4文字の呪いの言葉で上書きし、生成したファイルや、すべてのVM名を一覧表示するvms.txtファイルなどを削除して痕跡を隠す。最後に、暗号化したファイルを/tmpディレクトリからデータストアの場所へ戻す。
仕上げとして、このスクリプトには、支払い用のメールアドレス、暗号化ファイルの拡張子、暗号鍵といった設定可能なパラメーターが含まれている。関数と変数を使ってコードを再利用できるようにしているのだ。
攻撃者が不正アクセスを得た方法
そのスクリプトを実行するには、ハッカーはまずネットワークを侵害する必要があった。攻撃者は、多要素認証が有効になっておらず、管理者のコンピューター上でバックグラウンド実行されていたTeamViewerのアカウントを標的にした。
攻撃者はネットワークをスキャンし、SSH接続を開くためのツールをダウンロードした。不運にも、管理者はブラウザーのタブでパスワードマネージャーを開いたままにしていた。攻撃者はroot認証情報を発見し、それを使ってESXiサーバーへのSSHトンネルを開いた。
攻撃が成功したのは、被害者がESXi Shell(SSHサービス)でESXiサーバーを管理し、その後に無効化するのを怠る、あるいは忘れるといった安全性の低い運用をしていたためだ。
これは、ITセキュリティにおける人的要因の重要性を示す印象的な例だ。適切なセキュリティ設定や構成があっても、人はそれを使わないという選択ができる。
ハッカーはおそらくかなり前にネットワークを侵害し、攻撃の機会となる脆弱性を待ち構えていた。標的としたファイルにアクセスするため、いくつもの偶然に恵まれた状況を悪用したのだ。
暗号化の高速化がリスクを高める
現代のランサムウェアは、暗号化を高速化する新たな暗号化技術を使用する。共通鍵(AES鍵)暗号と公開鍵暗号(ハードコードされた鍵)を組み合わせ、インターネット接続なしでデータをロックし、被害者が処理を元に戻せないようにする。
ランサムウェア対策ツールの普及に伴い、脅威アクターはマルウェアを展開し、ファイルを大幅に高速で暗号化する新たなモデルを考案して、セキュリティ対策を試そうとしている。
これはパラダイムの大きな変化であり、速度が状況を悪化させている。ネットワーク内のそうした領域(あるいはネットワークのどこにも)存在すべきでない悪意あるスクリプトを見つけるためのセキュリティ運用や検知ツールがなければ、ほぼ確実に被害を免れない。
攻撃者は、できるだけ検知されないように、ますます革新的な手法を取る傾向がある。ネットワーク内の標的ノードごとに、共通鍵暗号に加えて新たな公開鍵暗号の鍵ペアを使用する。
Sophosの研究者によると、ハッカーは新たに生成された鍵を予測できなかった。そのため、各秘密鍵をハードコードされた公開鍵のいずれかで暗号化するという発想だ。
この攻撃の背後にいる脅威アクターの名前については、情報がない。フォレンジック専門家はスクリプトのコピーを復元できたが、本来ならそれは起こらないはずだった。コードには、使用後に自身を削除する命令が含まれているためだ。
より優れたセキュリティの鍵は教育
標的となった組織には、明らかにセキュリティ上の侵害があった。ハッカーはいくつもの不適切な運用を悪用した。特に、リモートでコンピューターを操作できるTeamviewerのようなソフトウェアの使用に問題があった。同様に、SSHによるrootアクセスもセキュリティ上の問題を引き起こす。
侵入テストと適切な運用によって、こうした欠陥を防ぐことができる。さらに、検知ツールでディレクトリを定期的にスキャンすれば、例えばこのような.pyファイルを見つけることも可能だ。
悪い習慣は、もちろん変えられる。機密データを扱う組織は、チームがセキュリティを十分に理解している状態であることを徹底すべきだ。特に、管理者権限を持つ従業員についてはそう言える。誰か特定の人物を責めても意味はない。予算や時間の不足、あるいは単なる利便性を理由に、この点を軽視している企業がどれほど多いかを知れば、驚くことだろう。
脅威アクターが特定の条件下で多要素認証を突破できたとしても、ハッカーにとっては依然として大きな障害であり、高い権限を持つユーザーは必ず有効にすべきだ。rootアクセスやSSHシェルなしで作業するのは難しくなる可能性があるが、これは有効なセキュリティ対策である。
このような急襲型の攻撃は壊滅的な被害をもたらし得る。ランサムウェア攻撃を完全に阻止する方法はないが、被害を軽減するためにいくつかの対策を講じることはできる。
- 防御を複数の層に分ける
- 最も機密性の高い領域をネットワークの他の部分から分離する
- 権限を持つユーザーアカウントを保護し、危険な権限昇格を防ぐ
ランサムウェア対策と復旧に関する関連記事:





