第302号コラム「PC遠隔操作事件:初公判冒頭陳述要旨から読み解く「証拠」とデジタル・フォレンジック」

第302号コラム:松本 隆 理事
(ネットエージェント株式会社 フォレンジックエバンジェリスト)
題:「PC遠隔操作事件:初公判冒頭陳述要旨から読み解く「証拠」とデジタル・フォレンジック」

PC遠隔操作事件は、ネットにつながっている快適さや便利さの裏側、何の落ち度もない個人のPCが誰かに踏み台にされ、悪用されるというリスクを改めて明らかにした。2月12日に行われた初公判において、検察、弁護側、そして被告人それぞれの立場でどのような主張がなされたのかは、われわれ専門家だけでなく多くの方が注目していることだろう。

今回のコラムでは、検察による被告人の犯人性の立証で最も重要だと思われる、「被告人が犯行供用プログラム(以下供用ウイルス)を開発作成したこと」に絞って紹介したい。文字の制限もあり、全てを詳細にカバーすることはできないが、デジタル・フォレンジックの観点から重要と思われる点に若干の解説を加えようと思う。なお、本コラムはあくまで筆者個人の感想であって、所属する組織や団体とは一切関係はない。検察、弁護側及び被告人いずれの側にも立つことなく、技術者として一般に向けて解説するものだ。

※3/11追記
なお、本コラム公開直前にジャーナリストの江川 紹子さんが第2回公判傍聴メモを公開された。非常に興味深い内容であったが、コラムを手直しする時間的猶予がなかったため、本文とは別に追記と言う形で若干のコメントを加えた。

■検察が提示する「供用ウイルス作成の証拠」とは

検察は、被告人が勤務先の企業で利用していたコンピュータ(以下勤務先PC)で供用ウイルスを開発作成したのだと主張する。ポイントは大きく分けて以下の3つだ。

まずひとつめは、被告人には供用ウイルスを作成する能力があり、勤務先PCにはウイルスを開発するための環境が整っていたという点。具体的には被告人はウイルスの開発言語であるC#のプログラミング能力を有しており、勤務先PCには供用ウイルスをコンパイルするための「Microsoft Visual C# 2010」等がインストールされ、犯行当時、
開発が可能であったという指摘だ。

次に、勤務先PCでソースコードを編集し、コンパイルし、外付けデバイスに保存していたという点。具体的には供用ウイルスを開発し、外部記憶媒体に保存していたことを示す痕跡がPCから検出されたという指摘である。

最後に、勤務先PCから問題の供用ウイルスの実体が発見されたという点。具体的には供用ウイルスを別名に改名した、試作品と思われるプログラムが勤務先PCから発見されたという指摘だ。

それぞれの「証拠」についてもう少し詳細に見ていこう。

■供用ウイルスを開発するための能力と環境について

被告人の能力について冒頭陳述要旨では、

>被告人は、大学等でプログラミングを学び、犯行当時、プログラマー
>として稼働するとともに、実際にC#でプログラムを作成する業務に
>従事するなど、C#で犯行供用プログラムを作成するのに必要な
>プログラミング能力を有していた

と指摘されている。被告人が、供用ウイルスを開発する能力を有していたかに関しては、今回の裁判の大きな論点の一つである。弁護側は、「(被告人には)マルウエアに関する知識も、セキュリティに関する知識も、まったくといっていいほどありません」とウイルス開発に必要な、高度な知識や技能が不足していると主張する。

一方、検察は、インターネットで収集したサンプルコードをベースに、被告人が改良を加えて供用ウイルスを作成したと考えている。つまり、供用ウイルスはそれほどC#への熟達も、一般的なウイルス作成に関する知識も必要のない出来だったと判断しているようだ。

なお、検察は「謹賀新年メール」及び「延長戦メール」の勝者に賞品として用意されたUSBメモリを押収しており、その中には供用ウイルスのソースコードが含まれていたとされる。今後はサンプルコードとオリジナルのソースコードとの類似性が問われることになると思われるが、現段階ではサンプルの入手先やオリジナルソースとの類似性などは明らかになっていない。

次に開発環境に関しての記載を見てみよう。

>被告人は、勤務先の被告人専用パソコンに、犯行供用プログラムの
>開発に使用されたソフトウェアMicrosoft Visual C# 2010等を
>インストールするなどして、犯行供用プログラムの開発環境を
>構築していた

ここでは「痕跡」という曖昧な表現ではなく「インストールするなど」「環境を構築していた」とあるため、環境がそのまま残っていた、もしくはフォレンジックによって容易に復元可能な状態であったと思われる。

これらの情報をあわせて、検察は被告人には十分に供用ウイルスを作成する能力があり、勤務先PCには作成するための環境が整っていたと主張している。

■供用ウイルスを開発した事実について

実際に勤務先PCで供用ウイルスを作成した証拠は発見されたのだろうか。検察はハードディスクを解析した結果、以下のような文字列が発見されたと指摘する。

>同パソコンからは「iesys.exe」や「cofee.exe」等の犯行供用
>プログラムが開発作成されたことを示す文字列、同プログラムを
>コンパイルしたことを示す文字列等が検出された

ここでは特定のログや後述する履歴ファイルという表現ではなく「文字列」という表現が用いられている。
未使用領域(ハードディスクで利用されていない空きスペース)やスラック(データの終端とクラスタやボリュームの終端の間)を含めたディスク全体の検索によって発見された痕跡かもしれない。

現段階では個別の文字列の詳細に関しては明らかになっていないが、「犯行供用プログラムが開発作成されたことを示す文字列」「コンパイルしたことを示す文字列」などと具体的な状況が例示されていることから、今後明らかになっていくものと思われる。

また、検察は供用ウイルスのソースコードを保存していたとされる外付けデバイスの接続痕跡にも以下のように言及している。

>犯行供用プログラム解析により、犯行供用プログラムの開発時の
>ソースコード等の保存先として使用されたフォルダが「F:\vproj」
>フォルダ等であると判明したが、被告人は、同フォルダ等を勤務先の
>被告人専用パソコンの外部億装置等に作成していた

ここで問題となっている「F:\vproj」というパスに関してだが、これは「犯行供用プログラム解析により」とあるように、供用ウイルスのメタデータ等から取得した情報だろう。このソースコードの保存先パスとされる文字列痕跡が、勤務先PCのハードディスクから発見されたということだ。

ここでは「作成していた」と書かれていることから、PC押収時に固定的な論理ドライブとして割り当てられていたボリューム、もしくは押収した外部記憶媒体にフォルダが存在していた、もしくはフォレンジックによって復元されたのだろうと筆者は推測する。仮にフォルダは既に存在せず、過去に外部記憶装置に存在したフォルダのパスを含む文字列が発見されたのだとすれば、一般的には該当するパスを含むショートカットやレジストリ、ログ、またはそれらの削除された痕跡等が勤務先PCから発見された可能性がある。

また、同パソコンからは

>文字列置換ソフトウェアを使って、犯行供用プログラムのソース
>コードに含まれる文字列「wbcap」を検索するなどしたことが記録
>された同ソフトウェアの履歴ファイル等が発見された

とある。文字列置換ソフトウェアというのは、一般的にはテキストエディタ等でドキュメント内の特定の文字列を検索し、他の文字列に置き換える機能を持ったものを指す。冒頭陳述要旨の記述から、文字列置換ソフトウェアの履歴情報がファイルとして残っており、解析したところ過去にソースコードに含まれる文字列「wbcap」を検索した事実があった、ということだ。

また、文字列「検索」ではなく、文字列「置換」プログラムを用いて特定文字列を検索していることを強調するのは、被告人が勤務先PCを利用して、ネットから拾ったソースコードを手直ししていたという主張かもしれない。

■試作版ウイルスの存在

最後に、これは非常に大きなポイントであると思われるが、

>勤務先の被告人専用パソコンには「test.dat」というファイル名に
>改名された「iesys.exe」の試作プログラムそのものが保存されていた

と指摘されている。これは勤務先PCから「痕跡」ではなく実データが入手されたということで、しかも供用ウイルスの一つである「iesys.exe」の試作版と合理的に推察されるものであった、ということだ。「試作プログラム」という表現であるから、供用ウイルスである「iesys.exe」とハッシュが一致(論理データとして完全に一致)するものではないと思われるが、「test.dat」と供用ウイルスが構造的・機能的にどこまで一致しているのか、これは非常に興味深い。

■事後追跡不可能性とデジタル・フォレンジック

ここまで、検察側の冒頭陳述要旨に記載された、「被告人が犯行供用プログラムを開発作成した証拠」について簡単に解説した。このPC遠隔操作事件は、現在われわれが利用しているコンピュータやネットワーク環境において、事後に、事実関係を追跡し解析することがいかに困難であるかを広く明らかにしたと考えている。

コンピュータがどういう使われ方をしたかという記録は残っている。しかし、誰が使ったのか、今回の裁判で問題になっているように、実は別の犯人によってリモートから踏み台として利用されたのか、もしくは本当に被告人によって使用されたのか。これを「事後に」確認する手段が今の環境では殆ど存在しない。コンピュータデバイスに割り当てられた識別番号やOSが管理する「ユーザー」は多くの場合において、特定の個人に紐づくものではない。今のほとんどのICT環境では、特殊な例を除き、デバイスと個人とを確実に紐づける手段は存在しないと言っていい。

さらに、保存されているログ等の記録に関しても、監査証跡と呼べる、客観的に信頼性が担保されたものは、ごく限られた環境でしか存在しない。既存のアーキテクチャに対して行うレガシーなデジタル・フォレンジックは、証拠の改ざんや隠滅に対して非常に脆弱である。それはつまり、保全した証拠や解析結果の信頼性において深刻な問題を
抱えているということだ。

デジタル・フォレンジックの技術は、信頼のおける証拠の因果関係を整理し、時系列に繋ぐことによって、隠されたストーリーを明らかにする。しかし、証拠の鎖は実は非常に脆弱で、簡単に切ることができる。筆者はこれを「事後追跡不可能性問題」と呼んでいる。この問題は、PC遠隔操作事件において、そして今後も発生するであろうサイバー犯罪において、大きな障害となるだろう。我々の自由で快適なサービスの利用と、公共の安全や社会の秩序を
どう折り合いをつけていくべきなのか。コストは誰が、どんな形で支払うべきなのか。筆者にもまだ答えはない。

■※3/11追記
ここからは3月11日に江川 紹子さんによって公開された「第2回公判傍聴メモ」をベースに筆者のコメントを書く。

まず、供用ウイルスである「iesys.exe」や「cofee.exe」が存在していたとされる「F:\vproj」配下のパスについて。Fドライブに関しては、TrueCryptで作成した仮想ドライブであったという。ちなみに被告人のコメントによれば、

>「自前で持ち込んでいたポータブル・アプリケーションを起動
>するのに、TrueCryptボリュームを使ったり、サブストコマンドを
>実行したりして、仮想ドライブという形で使うことはしていたん
>です。その際にFドライブというのに心当たりがないわけではないん
>です。ただ、\vprojフォルダなどは隠しフォルダになっていたので、
>自分では見えなかった」

とある。これはつまり、TrueCryptで作成した仮想ドライブFは被告人が作成した可能性があるが、隠しフォルダ\vprojに関しては心当たりがない、真犯人が作成したのではないか、という主張である。この「隠しフォルダ」についてだが、文脈から判断するとTrueCryptの隠しボリュームではなく、おそらくWindowsファイルシステムの隠し属性のことだと思われる。ただし当然のことだが、実際のところはデータを確認しないと分からない。

検察が強調する「ファイルスラック」については筆者もいろいろ検討してみたのだが、おそらく深読みせずにシンプルに受け取ればいいと思う。ファイルスラックのデータはファイルの実データの外側に存在するため、通常の論理コピーでは複製できない。従って、勤務先PCのファイルスラックに「iesys.pdb」や「iesys.vshost.exe」などが発見されたとしたら、それはこのPCでプログラムがコンパイルされた重要な証拠のひとつになる。冒頭陳述要旨で指摘されていた「犯行供用プログラムが開発作成されたことを示す文字列」や「コンパイルしたことを示す文字列」はこれらの文字列痕跡を指しているのだろうか。

なお、被告人はsubstを含め何度も仮想ドライブを利用していたという主旨のコメントをしている。また外付けのストレージデバイスを利用していた可能性もあるため、「F:」が本当にTrueCryptボリュームだけで利用されていたドライブレターなのかは検証が必要だ。

その他にも興味深い内容となっているので、ぜひ記事をチェックすることをお勧めする。

【PC遠隔操作事件】第2回公判傍聴メモ・最初の検察側証人は「ファイルスラック領域」を強調

【PC遠隔操作事件】第2回公判傍聴メモ・最初の検察側証人は「ファイルスラック領域」を強調(江川紹子) - 個人 - Yahoo!ニュース

警視庁でPC解析を行った警察官が、被告人が派遣先で使用していたPCのハードディスクのファイルスラック領域から多数の「痕跡」が発見されたとし、「このPCで問題のウイル…

【著作権は松本氏に属します】