MR. ROBOTの技術的内容を解説する(S2E9〜12)

色々ネタバレを含むので注意。

Season 2 Epsode 9 eps2.7_init_5.fve - 「イニット5」

このエピソードも余り技術的に解説することはない。タイトルのinit 5はエピソード4のinit 1と対応している。init 1がメンテナンスを行うためのシングルユーザーモードで、init 5はグラフィカルなインタフェースが立ち上がる通常のマルチユーザーモードだ。MR.ROBOTの存在を抹消しようとしたシングルユーザーモードから通常の状態に復帰したという意味だろう。

本エピソードではエリオットが裁判を経て入所するまでの様子の概要が示された後、アンジェラのハッキングシーンへつながる。アンジェラはワシントンタウンシップの訴訟関連資料をまるごとダウンロードするためにアクセス権限のあるユーザーのアカウントのパスワードを得ようとする。しかしこれは誰の指図で行っているのだろうか…。アンジェラの目的はE Corpが過去に引き起こした放射能汚染を暴くことにあるが、これはfsocietyの目的とは異なる。しかしアンジェラにこのパスワードクラッキングを指南したのは確実にfsocietyのメンバーの誰かではあるだろう。彼らはアンジェラの別の目的のために協力するということは少し考えにくい。もっとも、fsocietyのコアメンバーであるエリオットとダーリーンはアンジェラと同じ事件の被害者であるから、アンジェラに協力する動機はある。しかしながらエリオットもダーリーンもE Corpには反感を抱いているものの、それは世界を支配しようとするコングロマリットへの拒否感がメインであって、その反感の根源がワシントンタウンシップに集約されるという感じでは無さそうだ。アンジェラは逆にE Corpへの反感は母親を殺されたということに集約されており、その行動原理も分かりやすい。

ダーリーンやエリオットがワシントンタウンシップの件でも技術的な側面からアンジェラをサポートすると明確に語られたシーンは無かったと記憶しているが、エリオットも積極的に協力する素振りは見せないもののアンジェラには「お前の信じた道を行け」みたいなことを言っていたと思うので、特にサポートがあってもおかしいことではない。

アンジェラは危機管理部のモニカのPCをクラックしてパスワードを奪取するためのツールを動作させる。このツールは自動的にアカウント情報を奪取してテキストファイルに保存するような仕組みになっているようだ。ここで登場するOSはWindowsっぽい見た目のOSになっているが、実際のWindowsとはちょっと見た目が異なり、ロゴも出てこない。ファイルシステムにドライブレター(C:やD:などのストレージに割り振られるアルファベット)が付いているウィンドウが表示されるが、ドライブレターが存在するOSはWindowsしかない。WindowsがUSBメモリ一つでクラックされているような描写をするのはさすがに出来なかったのか、もしくは単にMicrosoftに気を使ったのか、そんな感じなのだろうか。ただ、実際にこのようにWindows用のログインパスワードを奪取するようなクラックツールは実在した。たしかWindows 7あたりまではこのような手法でクラック出来ていたと記憶している。

訴訟資料へのアクセス権限があるアカウントでログインし直したアンジェラは訴訟資料一式をUSBメモリに保存する。こんなに重要な情報が暗号化もされずネットワーク上のストレージに保存されたままというのは違和感を受けるかもしれないが、私が仕事をしてきた経験では大体どんな会社もこんなもんだと思う。正しく運用していれば、情報漏えいのリスクもそこまで大きくはない…はず。

続けてのクラッキングシーンはポーンフォン(PwnPhone)によるSIMカードのクラックだ。このPwnPhoneというのは実在するのかどうか調べてみたがいまいちよくわからなかった。ただ、名前は違うが似たようなものはあったはずだ。Androidは基本がLinuxなので、Linux用のソフトウェア資産も導入しやすい。このツールを使用してダークアーミーのシュンの電話を盗聴している。

私は電話通信網に関しては余り知識が無いのだが、こういうことは原理上は確かに可能と思われる。携帯電話の3G、4G回線の電波は電波塔から携帯電話を直接狙って電波を放出しているわけではない。そもそも電波にはそのような指向性は無い。だから電波塔からはその地域に存在する端末全てに向けた電波が放出されている。つまりある携帯電話端末にはその地域にあるすべての端末の通信を受信しているということである。その中から自端末に向けたものだけを選別しているに過ぎない。この端末ごとの通信は周波数ごとに区切ったり時系列で区切ったり符号で区切ったりという方法で行われる。Wikipediaにある図を見て頂ければなんとなくイメージが湧くかもしれない。

符号分割多元接続

現在の主流は符号によって端末を区分するCDMA方式である。

端末の自局番号に紐づく符号が保存されているのがSIMカードである。つまり、エリオットがSIMカードをクラックするというのは自分のSIMカードをシュンが所有する端末のSIMカードであると偽装して通信を傍受しようとする試みと思われる。なのでシュンのSIMカード情報が必要になるはずだが、これをどのようにして入手したのかは良くわからない。物語の進行上、そんなシーンを見せても視聴者には何をやっているのか伝わらないだろうし、技術的にもあまりおもしろくないので省いたのかもしれない。

ちなみに、ある端末がどの基地局のエリア内にいるかというのは常に基地局と通信して更新している。ある端末への通信はその端末が現在所属している基地局の電波塔からしか行われないので、この盗聴はシュンとの物理的な距離が近くなければ出来ないはずだが、まあその辺りの技術的な正確性も視聴者にはつまらないだろうし一々描写して喜ぶのは私のようなマニアだけなので触れられないのだろう。

という辺りでこのエピソードの技術要素は終わり。

Season 2 Epsode 10 eps2.8_h1dden-pr0cess.axx - 「隠しプロセス」

タイトルの隠しプロセスとはその名の通り隠されたプロセス(実行しているプログラム)のことである。現在コンピュータで実行しているすべてのプロセスはOSから監視されており、しかるべきツール(たとえばWindowsならタスクマネージャ)で実行中のプロセスは確認できるが、たとえばそれらのツールがルートキットに置き換えられていて、攻撃者が立ち上げておきたいプロセスを不可視の状態にするということもある。

今回のエピソードでの技術的なシーンは、タイレルの妻ヨアンナの依頼で非通知の携帯電話の発信元を調べるところが主となる。エリオットはマシンが押収されているから今夜中に決着を付けるならデバイスを買う必要があると家電量販店っぽい店に行き、PCや周辺機器をポンポンとカゴに入れていく。

自宅に戻ったエリオットはまずお菓子のプリングルスを開封すると中身をすべてゴミ箱に捨て(食べればいいのに)、Wifi用のアンテナを作り始める。同様の筒状のアンテナはエピソード6でダーリーンが使っていた。プリングルスの容器で高利得なWifiアンテナを作るのはよく知られた方法らしく、ググるといくつか英語のサイトがヒットする。ここではネット回線が必要なのでWifiを盗むということらしいが、正直正規の方法でモバイルルーターでも契約したほうが良かったんじゃないかな…。まあgeek感を出したいということなのだろう。

ネットワークに繋がったPCでまずエリオットがやり始めたのはおなじみのKaliLinuxのダウンロード。この起動可能イメージをダウンロードしてUSBメモリに保存し、KaliLinuxをPC本体にインストールしてからそれを起動する。ここからはアナログな方法だ。NY市警のふりをして携帯電話の発信元特定依頼をキャリアに対して行う。この手続きはFAXで送っているようだ。このとき、発信元をNY市警と表記して送信している。使用しているのはsendfaxというコマンドで、これは実在するもののようだ。FAXなのでFAXモデムと電話回線が必要なはずだが、そこらへんを接続しているような描写はない。また、発信元電話番号をNY市警に偽装することは難しいはずだが、そのあたりもどうなっているのか、映像からは良くわからない…。一応、メモ帳にはNY市警のFAX番号やスイッチボード?の番号などが記されているので何かしらの方法で偽装してますよ、くらいはなんとなく分かるようになっている。

というあたりでいよいよ最終話の前後編に突入していく。

Season 2 Epsode 11 eps2.9_pyth0n-pt1.p7z - 「パイソン 前編」

タイトルのパイソンとはプログラミング言語のPythonだとはじめ私は思った。最近は人工知能やディープラーニングといった世界で注目されている言語である。しかし真実はパイソン(ニシキヘビ)のように相手にさとられずチャンスを待つFBIの作戦名であったことが後編で明かされる。おそらく製作者側もプログラミング言語のPythonは意識していたことと私は思う。視聴者もそうだと思わせて裏切るという演出なんじゃないかと私は思っているのだがそれは考えすぎだろうか。

前編はいくつかのシーンを挟み、拉致されたアンジェラへと話は移る。アンジェラはキーボードと本体が一体化されているスタイルの古いコンピュータと水槽が設置された部屋に連れられてくる。ここまで古いコンピュータは私も実物は見たことがない。たぶん私よりももう少し年上の人は見たことがあるかもしれない。映像をよく見るとcommodore 64と書いている。Wikipediaなどで調べてみると、ファミコンと同時期に発売されていた家庭用のホビー向けコンピュータのようだ。

この頃のコンピュータがどういう仕組みになっていたかというと、まずPCを起動するとBASICと呼ばれるものが立ち上がる。これは簡単なプログラミング言語で、これを駆使することでちょっとしたゲームなんかを制作することが出来た。昔は日本だとBASICマガジンという雑誌が売られていて、その中にゲームのプログラムリスト(ソースコード)が書かれており、それを打ち込むとゲームが出来た。それはソースコードそのものなのでそれを元にゲームを改造したり、ゲームを一から作ったり…ということが出来た。ちなみに、私が始めて買ったパソコンはNECのPC-9821というシリーズで、これはWindows 95が動作する、commodore 64なんかに比べたらスペックも100倍以上(CPU周波数比)優れたマシンだったが、昔の名残でN88 BASICというインタプリタを起動することができた。

しばらくすると、アンジェラが連れてこられた部屋に10歳そこそこくらいの少女がやってきてコンピュータを操作し始める。5インチサイズのフロッピーディスクを差し込み、Land of Ecodeliaなるゲームを立ち上げる。タイトル画面の下部には(C) 1984 COMMODOREの表示があるので実在のゲームかと思ったのだが、下記のWikipediaのゲームリスト

List of Commodore 64 games (A–M)

を確認しても名前が無いのでどうも架空のアドベンチャーゲームのようだ。しかしこれはハードウェアの再現度が非常に高く、もしかしたら実際にCommodore 64で製作したゲームを撮影したのかもしれない(本当に架空のものだとすれば)。ちなみにこのゲームはここからブラウザ上で遊べる。

少女は性的・暴力的な質問を次々アンジェラに投げかける。こんな子供にこんなセリフを言わせるとか、日本では絶対こんなドラマ制作できないな…。

このシーンはとても象徴的だ。一切の背景を告げられぬまま、錦鯉が泳ぐ水槽の水が徐々に抜けていき、アンジェラと容姿の似た少女から抽象的な質問が繰り返される。これはホワイトローズがアンジェラの価値を見極めるために行っているテストであるが、一つ一つがとても意味深だ。「2001年宇宙の旅」を彷彿とさせる不気味さがある。ここもMR.ROBOTの中で私が好きなシーンの一つである。

アンジェラとホワイトローズの会話が終わった後はMR.ROBOTが暗号を解読するシーンからスタートする。ダイレクトメールにはふた桁の数字の羅列が記されている。これはアルファベットへ対応する。そこに気づくのは数の最大値が26以下であることから容易に想像が付くと思われる。そもそもこの暗号はタイレルがメッセージを伝えるために作成したものなので、解読が難しすぎたら意味がない。知っている人がすこし考えれば分かるが、知らない人がちょっとした好奇心で暗号をとこうとした時にすぐに分かるような簡単な暗号ではダメなわけだ。

最初はアルファベットを数値に置き換えたものだ。途中、01→a, 01→b, ...という置き換えを挟むがこれは人間が目で見てわかりやすくするためにやっていることで本質的ではない。重要なのはいくつアルファベットの番号がシフトしている(同じ数分だけずれている)か判断することである。なぜアルファベットを表す番号がランダムに入れ替わっているのではなくて決められた数分だけずれていると類推できるかと言えば、ランダムに入れ替わっている場合はこの手紙に記載している程度の長さでは解読できないからである。これは解読させるための暗号なのだから、難易度はある程度簡単でなくてはならない。

さて、そしていくつシフトされているかを求めるためにMR.ROBOTは最初の三文字の順番からこの単語はおそらく「THE」だと仮定して解読を試みる。こういう暗号を解読するために用いる短いキーワードのことを「グリフ」だったか、何か名前が付いているのだが失念してしまった。出てきた文章からペラン数とエルデシュ=ウッズ予想という二つの数学の数列が出てくる。どちらも私は初耳だった。

ダイレクトメールを開くと、メニューの番号の横に更に番号が書き足されている。二つの数列に現れない番号のみを拾っていく。それを順に並べ、16進数と解釈してデータを読み解くと電話番号が表示される。ただ、画面上に出てきている文字列のどれが電話番号なのか良くわからない…。画面上にはアルファベットの羅列も表示されているが、アメリカだとアルファベットと番号を対応させる表記が一般的なので、それなのかもしれない。ちなみに出てきた番号がコンピュータ上で解釈される16進数だとなぜ分かるかというと、これは勘のようなものだろう。プログラマならばこういった数値は16進数のデータではないかとまず疑うはずだ。そう言えば私も高校生の時、ハッカーぶって同じようなことをネット掲示板に偉そうに記していた。これも、「解かせる暗号」という前提があればさほど悩まずたどり着けるものと思われる。

そして電話をかけて指定した場所で待つタクシーに乗り込むと、後から乗り込んできたのはタイレルだった。

Season 2 Epsode 12 eps2.9_pyth0n-pt2.p7z - 「パイソン 後編」

さて、シーズン2最終話の技術的なシーンでかつ最大の見せ場はなんと言ってもfsocietyによる「第二段階」の作戦だろう。第二段階とは、シーズン1で破壊されたデータベースを修復するために紙媒体の取引データを一箇所に集めたところで建物を爆破するというものが明かされる。その方法は、無停電電源装置(UPS)が集積してある部屋を爆破し、建物ごと倒壊させるという大規模なものだ。どうやって爆破するかと言うと、まず部屋の換気装置を停止させた上で無停電電源装置のファームウェアを不正なものに書き換えて、過充電状態にして水素を発生させた後、電源装置と変圧器の接続を何度も切り替えれば火花が生じ爆発が起こるということらしい。

UPSというのは自動車に搭載されるバッテリーと同じタイプの鉛蓄電池が搭載された非常用の電源である。この電源は設備のコンセントとサーバの間に接続させるもので、停電していないときは常に補充電を重ねて満充電を維持しておき、停電が起きた瞬間に瞬時に電源をバッテリーに切り替え、接続しているサーバーを安全にシャットダウンさせる時間を稼ぐ(もしくは、施設によっては非常用のディーゼル発電機が立ち上がるまでの時間をかせぐ)という仕組みになっている。

UPSは停電状態になったことをサーバーに通知したり、バッテリーの状態を監視するためにネットワークやコンピュータに接続できるようになっている製品がある。ここを通じてハッキングによってファームウェアを書き換えようという魂胆である。エリオットはモバイル通信も精通しているしLinuxサーバーの運用にも強いしSEOもできるしマルウェアのコードも書けるし組み込み機器のファームウェアも書ける。これらの分野はそれぞれに専門的な知識が必要とされるのでそう簡単にできることではない。それを簡単にこなしてしまうエリオットはまさに天才と言えるだろう。

結局、この計画は実行されたのかそれとも失敗に終わったのか明らかにされないままシーズン2は終わりを迎える。

本エピソードの終わりで、アンジェラがタイレルと内通していること、モーブリーとトレントンがなにか重大な発見をしたこと、そこにホワイトローズの息がかかっているレオンがやってきたところで終わりを迎える。

fsocietyが置かれた状況は非常に厳しいものがある。FBIはfsocietyが行ってきたほとんどすべての悪事を把握している。この状況下でFBIの取り調べを受けているダーリーンが無罪放免されるわけがない。エリオットも銃で打たれて重傷を負っていると思われる。アンジェラとタイレルが電話した時点で意識は無いという状況だ。ほかのfsocietyのメンバーも散り散りになってしまった。このような状況下でfsocietyが組織的な行動をとることはまず不可能だろう。

そこでキーになってくるのがブラックアーミーの存在となる。ここまでの話でブラックアーミー(そしてそのバックにはおそらく中国政府の存在がある)はE Corpとワシントンタウンシップの訴訟で何らかの利害関係があることが分かっている。ブラックアーミーが何の目的でfsocietyを支援し、間接的にE Corpを攻撃してきたのかははっきりとしないが恐らくはバックにいる中国政府の方針で世界経済をE Corpに握られたくないとかそういう理由があるのかもしれない。

海外のサイトを見るとシーズン3はアンジェラが中心になって活躍し始めるとのこと。ここからどういうふうに話に収拾をつけるのか楽しみである。