Security Record

セキュリティ全般に関する情報を発信しています

教育目的!?のオープンソースランサムウェア「Hidden Tear」について調べてみた

※注意 こちらで紹介した内容を悪用した場合、場合によっては刑法にて処罰されます。 実験を行う場合は必ずローカル環境にテスト用のサーバーを構築して実行してください。

「Hidden Tear」とは?

「Hidden Tear」はオープンソースのランサムウェアで、 トルコのセキュリティリサーチャー集団の「Otku Sen」が教育目的という名目でGitHub上に公開したようです。

実際のソースコードは下記GitHubにアップされています。 https://github.com/goliate/hidden-tear

「Hidden Tear」の特徴

  • AES アルゴリズムを使用してファイルを暗号化します。
  • 暗号化キーをサーバーに送信します。
  • 暗号化されたファイルは、暗号化キーを使用して復号化プロ グラムで復号化できます。
  • 指定されたメッセージを含むテキスト ファイルをデスクトップに作成します。
  • ファイルサイズが小さい (12 KB)
  • ウイルス対策プログラムに検出されない

GitHubに記載されている「Hidden Tear」の特徴を見たところ、完全にランサムウェアのそれです。

暗号化の対象となるファイル

「Hidden Tear」はC#で作られており、下記のように暗号化の対象となるファイルの拡張子を配列で定義しているようです。

var validExtensions = new[]{".txt", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".odt", ".jpg", ".png", ".csv", ".sql", ".mdb", ".sln", ".php", ".asp", ".aspx", ".html", ".xml", ".psd"};

https://github.com/goliate/hidden-tear/blob/master/hidden-tear/hidden-tear/Form1.cs 上記のForm1.csというファイルがこのランサムウェアのメインファイルのようで、暗号化する関数や、脅迫文を生成する関数などが記載されています。 以下、脅迫文が記載されている処理です。

public void messageCreator()
{
    string path = "\\Desktop\\test\\READ_IT.txt";
    string fullpath = userDir + userName + path;
    string[] lines = { "Files has been encrypted with hidden tear", "Send me some bitcoins or kebab", "And I also hate night clubs, desserts, being drunk." };
    System.IO.File.WriteAllLines(fullpath, lines);
}

「Hidden Tear」のデモ動画

「Hidden Tear」が使用されているでも動画もGitHubのリンクから見ることができました。 ランサムウェアでファイルが暗号化されるとどうなるか、よく分かる動画です。

年齢制限が設けられているのでYouTubeで御覧ください

法的警告はしてあるが…

「Hidden Tear」のGitHubには下記のような警告文が記載されています。

これは一部の人にとっては有益かもしれませんが、重大なリスクがあります。 隠された涙は教育目的にのみ使用できます。 ランサムウェアとして使用しないでください。 たとえ無実であっても、涙を隠して実行しただけで、公務執行妨害の罪で刑務所に送られる可能性があります。

ただし世界中のハッカーはこのオープンソースを利用(悪用)してあらたなランサムウェアを作り出してたようです。

特に「AngleWare」と呼ばれるランサムウェアが「Hidden Tear」のソースコードと酷似しているようです。 www.mbsd.jp

まとめ

「Hidden Tear」は本当に研究・教育目的で利用したらランサムウェアの仕組みがよく分かる気がしました。 ソースコードを読み解いてランサムウェアを静的解析することで、あらたな対策案も出てくるかもしれないです。