ランサムウェアが初めて登場したのは1989年だ。当時、ランサムウェアは比較的効果のないものだった。しかし悪いことに、それは代わりつつある(訳注:ransomは身代金を意味する)。

 最近私の隣人の1人が、初めてランサムウェアを経験した。彼はそれまで、そんなものが存在することすら知らなかった。それを考えると、ゆすりを行うマルウェアであるランサムウェアについて復習し、それが何であるか、どうすれば避けられるかを正確に説明する必要があるように思える。

 ランサムウェアが最初に登場したのは、Joseph Popp博士が作り出したPC Cyborgと呼ばれるトロイの木馬でだ。この恐喝は、脆弱性のあるコンピュータが感染したところから始まる。感染すると、このマルウェアはC:ドライブのすべてのフォルダを隠し、ファイル名を暗号化する。次にダイアログボックスが表示され、被害者に対してライセンスの期限が切れたため、PC Cyborg Corporationに189米ドルを送金する必要があると宣言する。

 身代金が受け取られ、マルウェアの動作が逆に実行されるまで、被害者のコンピュータは使えなくなる。幸いなことに、同博士のトロイの木馬には弱点があった。ファイル名の暗号化に対称暗号を使っていたのだ。専門家がマルウェアのコードを分析して、暗号化されたテーブルを分析するチャンスができると、それを復号化し誰がそのランサムウェアを作成したかを知ることは簡単だった。

 Popp博士は何か価値のあることをしていると感じていたようだ(後に精神疾患であると診断された)。裁判で同博士は、身代金はAIDSの研究に使われる予定だったと述べている。

公開鍵暗号と暗号ウイルス学

 1996年、Adam Young氏とMoti Yung氏という2人の研究者が、Popp博士が見逃していた点を修正し、その方法を「Cryptovirology: Extortion-Based Security Threats and Countermeasures」(PDFファイル)と題する論文で説明した。「Cryptovirology」(暗号ウイルス学)という言葉が作られたのはこれが最初だったはずだ。

 Young氏とYung氏はランサムウェアで公開鍵暗号を使う方法を考案し、リバースエンジニアリングを事実上不可能にした。この暗号ウイルスは、マルウェア作者の公開鍵を使って被害者のファイルを暗号化する。これらのファイルを復号化するための秘密鍵を入手する代わりに身代金を要求するところで、ゆすりが行われる。

ランサムウェアの仕組み

 Young氏とYung氏はこの種のランサムウェアを暗号ウイルス恐喝と呼び、次のように定義している。

 「暗号ウイルス恐喝は公開鍵暗号を用いるもので、リソースの仕様を妨害する攻撃である。これは攻撃者によって被害者に対して働きかけられる、3ラウンドからなるプロトコルだ。攻撃はホストのデータを暗号化すると同時に、その処理の過程で元のデータを削除するか上書きするハイブリッドな暗号システムを用いた暗号ウイルスによって行われる」

 この3ラウンドからなるプロトコルは興味深いものだ。その内容は次のようになっている。

  • 暗号ウイルスのインストール。これには数多くのテクニックが使われるが、通常は自動ダウンロードマルウェアを使って、脆弱性のあるコンピュータに暗号ウイルスがインストールされる。ウイルスが起動されると、対称暗号の暗号鍵と初期化ベクトル(IV)が作成される。暗号ウイルスは対称暗号鍵とIVを使ってデータファイルを暗号化する。その後、この暗号ウイルスはIVを対称暗号鍵と連結する。最後に、この結合された文字列をマルウェアの作者の公開鍵を使って暗号化する。すべての処理が終わると、暗号ウイルスはウインドウを開き、被害者に身代金要求を表示する。
  • 被害者の応答。被害者が身代金を支払うと決めた場合、被害者の応答が起きる。支払いの方法はいくつかあり得るが、これについては後述する。また被害者は暗号化された結合文字列を攻撃者に送る必要がある。
  • 攻撃者の応答。恐喝者は秘密鍵を使って文字列を復号化し、対称暗号鍵とIVを入手する。最後に、それらを被害者に送る。被害者はそれらを使ってデータファイルを復号化する。

手がかりの隠し方

 Young氏とYung氏は同氏らのウェブサイトで、サイバー犯罪者が自分たちを守るために取る手段について議論している。サイバー犯罪者は公開鍵と秘密鍵をスマートカードに保存し、個人的には秘密鍵のビット列を知ることがないようにしている。

 「理想的に言えば、スマートカードには2要素認証が実装されている方がいい。つまり、ウイルス作者の知っている情報(暗証番号)とウイルス作者が持っているもの(秘密鍵が保持されているスマートカード)の2要素だ。また、そのカードは、ウイルス作者が決して秘密鍵のビット列を知ることができないよう、理想的には差分電力攻撃やタイミング攻撃などに耐性を持ったものがよい」

 ウェブサイトでは、なぜ恐喝者がそのような措置を取るかを説明している。

 「米国では、ウイルス作者に自分に不利になる証言を強要することはできないため(米国憲法修正条項第5条)、暗証番号は秘密のままにしておくことができる。この設定フェーズの目的は、令状に基づいてスマートカードが押収され、分析することの効力を限定的なものにすることだ(適格な証拠)。