Symantec Security Response Weblog

Trojan.Gpcoder Revisited」より
June 13, 2008 Posted by Eoin Ward

 「Trojan.Gpcoder」は特に悪質なマルウエアで,公開鍵方式の暗号技術を使って感染したパソコン上のファイルを暗号化し,「もう一度ファイルを読めるようにしたければ金を払え」と脅迫してくる。数年前に登場して以来,数多くの亜種が生まれてきた。ところが,最近の亜種を解析したところ,暗号化に使う鍵の長さが以前に比べ相当短いことに気づいた。暗号鍵が短くなったことで,人質に取られたファイルの解読は可能になるのだろうか(関連記事:「脅迫ウイルス」が再び出現,より強力な暗号でファイルを“人質”に)。

 公開鍵方式の暗号は,公開鍵と秘密鍵という二つの鍵を使用する。Trojan.Gpcoderは,プログラム内にコード化しておいた公開鍵を使ってファイルを暗号化する。ファイルの復号に使う秘密鍵は,作者が持っている。

 われわれは2007年,亜種「Trojan.Gpcoder.E」を発見した。これは,「RSA-4096」と呼ばれる公開鍵アルゴリズムでファイルを暗号化する。さらに最近見つけた新たな亜種「Trojan.Gpcoder.F」は,解読が難しいことで知られるRSA-4096に対し(もっとも,SFドラマ「スタートレック」に登場するクリンゴン人なら簡単に解読してしまうだろうが),安全面に不安のある――つまり,解読される危険性のある――アルゴリズム「RSA-1024」を使っていた。

 そこで,RSA-1024で暗号化されたファイルは解読して取り戻せるだろうか。RSA-1024の公開鍵は,「n」(Numberの頭文字)と「e」(Encryptionの頭文字)という二つの数値から作る。ここで,nは1024ビット長の値で,eは通常それより短い値を使う。マルウエア作者の持っている秘密鍵は,nと「d」(Decryptionの頭文字)という二つの数値から作る。このnを因数分解できればdが導き出され,最終的にファイルを取り戻せる。

 RSAにおいて,通常の因数分解アルゴリズムで因数分解される「法」(二つの素数の積)は,最大で663ビット長となる。並列コンピュータ環境でこれら因数の特定にかかった処理時間からおおざっぱに見積もると,動作周波数2.2GHzのプロセッサを搭載するパソコン1台だと75年かかることになる。Trojan.Gpcoder.Fの鍵は1024ビット長で,これまで因数分解の成功が報告されたいかなるRSA鍵より361ビットも長い。

 Eran Tromer氏と,RSA開発者の一人であるAdi Shamir氏は,「TWIRL」(RSA-1024解読専用に作られたマシン)を作って1024ビット長の数値を因数分解すると,1年の期間と「数千万ドル」の経費がかかると見ている(関連記事:【CRYPTO-GRAM日本語版】SHA-1に対する新たな解読結果/【CRYPTO-GRAM日本語版】解読されたSHA-1)。Arjen Lenstra氏とEric Verheul氏によると,現時点で1024ビット長のRSA用鍵を1日で破れるマシンを作るには1600万ドル必要という。これではとても暗号化されたファイルを取り戻せる望みなどない。Trojan.Gpcoderの作者は,再び4096ビット長の鍵を使うように戻したり,異なる公開鍵を使う数多くの亜種を作って世間に流したりするだけで,秘密鍵の解読を目的とするあらゆる試みを簡単に妨げられる。

 冷静に考えると,最良のアドバイスは,アンチウイルス・ソフトウエアの定義ファイルを最新状態に維持し,「Symantec Backup Exec」などのバックアップ・ソフトウエアを導入するということだ。Trojan.Gpcoder.Fに感染したパソコンでバックアップしていなくても,暗号化されて読めなくなったファイルはリカバリ操作で復活可能かもしれない。必ず成功する保証はないが,対象ファイルの相当部分は取り戻せるだろう。


Copyrights (C) 2008 Symantec Corporation. All rights reserved.
本記事の内容は執筆時点のものであり,含まれている情報やリンクの正確性,完全性,妥当性について保証するものではありません。
◆この記事は,シマンテックの許可を得て,米国のセキュリティ・ラボの研究員が執筆するブログSecurity Response Weblogの記事を抜粋して日本語化したものです。オリジナルの記事は,「Trojan.Gpcoder Revisited」でお読みいただけます。