※注意 こちらで紹介した内容を悪用した場合、場合によっては刑法にて処罰されます。 実験を行う場合は必ずローカル環境にテスト用のサーバーを構築して実行してください。
近年猛威を振るっているランサムウェアの脆弱性診断を行えるツールRanSimを試してみました。
RanSimとは?
RanSimとは、ランサムウェアの脆弱性診断ツールの事で、セキュリティ意識向上トレーニングのツールなどを提供しているKnowBe4がフリーソフトとして公開しているツールです。
診断は22のランサムウェア感染シナリオと1つのクリプトマイニング感染シナリオをシミュレートし、ワークステーションが脆弱かどうかを診断するようです。まだ日本語の情報がほとんど出て来ないのがネックですがランサムウェアの診断ツールというのは他に知らないので試してみました。
RanSimのダウンロード・インストール
ダウンロードページ よりRanSimをダウンロードします。 ダウンロードページには100%無害なシミュレーションと英語で記載がありましたが、 今回は念のために、VirtualBoxにゲストOSとしてWindows10の環境を用意して、そこでテストをすることにしました。
ユーザー登録を行った後にzipファイルがダウンロードされるので、ファイルを解凍してSimulatorSetup.exeをダブルクリックするとインストールが開始されます。 特に難しい設定はなにもなかったです。
▼ SimulatorSetup.exeを実行するとRanSimのインストールがはじまります。 使い方は非常に簡単でCheck nowをクリックしたらランサムウェアの脆弱性診断が開始されます。
今回診断したゲストOSの設定について
RanSim実行したゲストOSの設定は以下の通りです。
- 特にセキュリティ関連機能をオフにしていない
- 別途セキュリティソフトをインストールしていない
ほぼデフォルトの状態で実行した事になります。
診断結果
診断は22のランサムウェア感染シナリオと1つのクリプトマイニング感染シナリオをシミュレートし、ワークステーションが脆弱かどうかを検知するようです。 診断を実行した結果、ゲストOS上のWindows10では17のテストシナリオで脆弱性が見つかりました。
▼RanSim実行結果①
▼RanSim実行結果②
ログを確認してみる
診断終了後はCSV形式でログファイルを取得できます。 今回試しに行った脆弱性診断のログは以下のように出力の通りです。
NameStatusEncrypted Test Files PathDescription ArchiverExecutedC:\KB4\Varsim\DataDir\MainTests\24-Files"Simply archives files using gzip algorithm. This scenario should not be blocked!" BlackKingdomVariantVulnerableC:\KB4\Varsim\DataDir\MainTests\23-Files"Simulates file related activity of a common version of Black Kingdom ransomware." CollaboratorVulnerableC:\KB4\Varsim\DataDir\MainTests\22-Files"Encrypts files similarly to a common version of Critroni. However it relies on different processes for file enumeration movement and deletion." CritroniVariantVulnerableC:\KB4\Varsim\DataDir\MainTests\21-Files"Simulates the behavior of a common version of Critroni ransomware." DearCryVariantVulnerableC:\KB4\Varsim\DataDir\MainTests\20-Files"Simulates file related activity of a common version of DearCry ransomware." HollowInjectorNotVulnerableC:\KB4\Varsim\DataDir\MainTests\19-Files"Encrypts files by injecting the encryption code into a legitimate process using process hollowing." InjectorNotVulnerableC:\KB4\Varsim\DataDir\MainTests\18-Files"Encrypts files by injecting the encryption code into a legitimate process using a common approach." InsideCryptorVulnerableC:\KB4\Varsim\DataDir\MainTests\17-Files"Encrypts files using strong encryption and overwrites most of the content of the original files with the encrypted data." LockyVariantNotVulnerableC:\KB4\Varsim\DataDir\MainTests\16-Files"Simulates the file activity performed by a popular version of Locky ransomware." MazeVariantVulnerableC:\KB4\Varsim\DataDir\MainTests\15-Files"Simulates file related operations performed by Maze ransomware." MoverVulnerableC:\KB4\Varsim\DataDir\MainTests\14-Files"Encrypts files in a different folder using strong encryption and safely deletes the original files." PaymerVariantNotVulnerableC:\KB4\Varsim\DataDir\MainTests\13-Files"Simulates file related operations performed by DoppelPaymer-like ransomware." ReflectiveInjectorVulnerableC:\KB4\Varsim\DataDir\MainTests\12-Files"Encrypts files by injecting the encryption code into a legitimate process using an advanced approach." RemoverExecutedC:\KB4\Varsim\DataDir\MainTests\11-Files"Simply deletes files and does not create any file. This scenario should not be blocked!" ReplacerVulnerableC:\KB4\Varsim\DataDir\MainTests\10-Files"Replaces the content of the original files. A real ransomware would show a message that fools users into thinking they can recover them." RigSimulatorVulnerableC:\KB4\Varsim\DataDir\MainTests\9-Files"Simulates a mining rig which uses the machine CPU to mine Monero." RIPlacerUnexecutedC:\KB4\Varsim\DataDir\MainTests\8-Files"Attempts to encrypt files in a folder subject to controlled folder access ransomware protection. This scenario requires special settings. Check the help page for details." SlowCryptorVulnerableC:\KB4\Varsim\DataDir\MainTests\7-Files"Simulates the behavior of a ransomware variant that encrypts files slowly to avoid detection by security products." StreamerVulnerableC:\KB4\Varsim\DataDir\MainTests\6-Files"Encrypts files and writes data into a single file using strong encryption then deletes the original files." StrongCryptorVulnerableC:\KB4\Varsim\DataDir\MainTests\5-Files"Encrypts files using strong encryption and safely deletes the original files." StrongCryptorFastVulnerableC:\KB4\Varsim\DataDir\MainTests\4-Files"Encrypts files using strong encryption and deletes the original files." StrongCryptorNetVulnerableC:\KB4\Varsim\DataDir\MainTests\3-Files"Encrypts files using strong encryption and deletes the original files. It also simulates sending the encryption key to a server using an HTTP connection." ThorVariantVulnerableC:\KB4\Varsim\DataDir\MainTests\2-Files"Simulates file related operations performed by Thor ransomware." VirlockVariantNotVulnerableC:\KB4\Varsim\DataDir\MainTests\1-Files"Simulates file related activity of a common version of Virlock ransomware." WeakCryptorVulnerableC:\KB4\Varsim\DataDir\MainTests\0-Files"Encrypts files using weak encryption and deletes the original files."
各テストシナリオについて
RanSimが用意しているテストシナリオは以下の通りです。
出力されたログを日本語に翻訳したものになります。
名称 | 概要 |
---|---|
Archiver | gzip アルゴリズムを使用してファイルを単純にアーカイブします。 このシナリオはブロックされるべきではありません! |
BlackKingdomVariant | Black Kingdom ランサムウェアの一般的なバージョンのファイル関連のアクティビティをシミュレートします。 |
Collaborator | Critroni の一般的なバージョンと同様にファイルを暗号化します。 ただし、ファイルの列挙の移動と削除については、さまざまなプロセスに依存しています。 |
CritroniVariant | ランサムウェアの一般的なバージョンの動作をシミュレートします。 |
DearCryVariant | ランサムウェアの一般的なバージョンのファイル関連のアクティビティをシミュレートします。 |
HollowInjector | プロセス ハロウイングを使用して、暗号化コードを正当なプロセスに挿入することにより、ファイルを暗号化します。 |
Injector | 一般的なアプローチを使用して、暗号化コードを正当なプロセスに挿入することにより、ファイルを暗号化します。 |
InsideCryptor | 強力な暗号化を使用してファイルを暗号化し、元のファイルのコンテンツのほとんどを暗号化されたデータで上書きします。 |
LockyVariant | Locky ランサムウェアの一般的なバージョンによって実行されるファイル アクティビティをシミュレートします。 |
MazeVariant | Maze ランサムウェアによって実行されるファイル関連の操作をシミュレートします。 |
Mover | 強力な暗号化を使用して別のフォルダー内のファイルを暗号化し、元のファイルを安全に削除します。 |
PaymerVariant | DoppelPaymer のようなランサムウェアによって実行されるファイル関連の操作をシミュレートします。 |
ReflectiveInjector | 高度なアプローチを使用して暗号化コードを正当なプロセスに挿入することにより、ファイルを暗号化します。 |
Remover | ファイルを削除するだけで、ファイルを作成しません。 このシナリオはブロックされるべきではありません! |
Replacer | 元のファイルの内容を置き換えます。 実際のランサムウェアは、ユーザーをだまして回復できると思わせるメッセージを表示します。 |
RigSimulator | マシンの CPU を使用して Monero をマイニングするマイニング リグをシミュレートします。 |
RIPlacer | 制御されたフォルダー アクセスのランサムウェア保護の対象となるフォルダー内のファイルの暗号化を試みます。このシナリオには特別な設定が必要です。 |
SlowCryptor | セキュリティ製品による検出を回避するためにファイルをゆっくりと暗号化するランサムウェアの亜種の動作をシミュレートします。 |
Streamer | ファイルを暗号化し、強力な暗号化を使用してデータを 1 つのファイルに書き込み、元のファイルを削除します。 |
StrongCryptor | 強力な暗号化を使用してファイルを暗号化し、元のファイルを安全に削除します。 |
StrongCryptorFast | 強力な暗号化を使用してファイルを暗号化し、元のファイルを削除します。 |
StrongCryptorNet | 強力な暗号化を使用してファイルを暗号化し、元のファイルを削除します。 また、HTTP 接続を使用してサーバーに暗号化キーを送信することもシミュレートします。 |
ThorVariant | Thor ランサムウェアによって実行されるファイル関連の操作をシミュレートします。 |
VirlockVariant | Virlock ランサムウェアの一般的なバージョンのファイル関連のアクティビティをシミュレートします。 |
WeakCryptor | 弱い暗号化を使用してファイルを暗号化し、元のファイルを削除します。 |
試した結果このツールを有用に活用できそうか?
RanSimを使ってランサムウェアに対する脆弱性が可視化する事ができる事は分かりました。
日本語の情報がまったくないのが気になりますが、このツールを使用した結果ゲストOSのWindowsが不具合を起こしたということも今のところありません。
このツールをどのように使えばセキュリティ対策として有用でしょうか。
会社のPCで試す場合は例えば数台に対してRanSimを実行してみて、どの程度ランサムウェアに強度があるのか試みてみても良いかもしれません。
万一ランサムウェアによってファイルが暗号化されてしまったら
万一ランサムウェアによってファイルが暗号化されてしまった場合、一般財団法人日本サイバー犯罪対策センター(JC3)にてランサムウェア複合ツールが公開されているのでまずはそれを試してみると良いかもしれません。
こちらのツールはWannaCryランサムウェアプロセスのメモリ上から秘密鍵検索し、復号を試みるツールのようです。
ただし、感染後に再起動を実施していたり、時間が経過している場合は複合が難しくなるとの事です。