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

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

長らく放置してしまっていたが、もうすぐシーズン3が始まるので残りを書いておく。

Season 2 Epsode 5 eps2.3_logic-b0mb.hc - 「論理爆弾」

一番最初に登場するのはUbuntu(Linux OS)のアップデート画面。Windows Updateと同じようなものだ。しかし、Linux系OSのそれはWindowsほど時間がかからない。せいぜい長くても数分、アップデートするものがなければ1分未満で終わってしまう。

その後登場するのはUbuntuにログインを行い、何やらソースコードを打っている。このソースコードだが、言語が何なのか良くわからない。最初はPythonかと思ったが文法が異なる。続いて登場するのはおなじみのIRCというチャットシステム。IRCが好んで使われるのは古くからの文化という面もあるだろうが、サーバー上に会話ログが残らないというのも理由の一つなのかもしれない。

エリオットは複数の端末を立ち上げてサイトの移転作業を進めるふりをしつつ、同時にFBI職員のスマホに侵入するためのプログラムを書いている。このように手慣れたLinuxユーザーであれば、テキストインタフェースさえあればだいたい何でもやってのける。

ステップ1はターゲットの弱点を見つけること、ステップ2はマルウェアを作り攻撃の準備をすること、ステップ3はリバースシェルを使った二段階の仕掛けを使いフェムトセル内にマルウェアを仕込みモバイル通信を傍受すること、ステップ4はスクリプトを書くことだそうだ。

モバイル通信やスマートフォンは私の分野外なので詳しくはわからないが、簡単に解説する。まず自分のやりたいこと、今回のケースで言えばFBIやE Corpのメールや音声通話などなどを傍受することが目的だが、それを行うためのプログラムがここで言うスクリプトにあたる。このスクリプトを相手のネットワーク内の端末(スマホやPC)で実行させることが最終目標だ。このために、マルウェアを仕込んだフェムトセルという小型の無線基地局を設置する。これは3Gや4Gのモバイルネットワークと接続するための簡易的な基地局で、屋内や地下鉄など携帯の電波の届かない場所で利用されるものであり、フェムトとは接頭語のフェムト(ピコの下、10^-15) から来ている。

この基地局を通じてスマホが通信を行うとき、とある条件に合致した時にマルウェアが作動するようにする。ここでスマートフォンの何らかの脆弱性を突くとか、アプリのアップデート時に攻撃用のコードを仕込んだアプリを送りつけるとかそういうことをやっているのだろう(コードをよく見ると、Android用のアプリパッケージが要求された時に何らかのコードが動作するような記述がある)。そして、スマホ側の操作を一時的に奪取し、目的のスクリプトを実行させたうえで恒久的な傍受ラインを構築するということだと思われる。

続いてFBIの操作シーンを挟み、ダーリーンがアンジェラのラップトップを何やら操作しているシーンに切り替わる。何らかの情報を抜き出してUSBメモリに保存したということは分かるが、それ以上のことは良くわからない。ダーリーンは「侵入テスト(penetration test)」などと言っているが、これは家宅への侵入という意味もかかっている。ITの世界でペネトレーションテストと言えば、サーバーの脆弱性や侵入可能性を試すテストを意味する。

ダーリーンはアンジェラにフェムトセルの設置を依頼する。シーズン1でもスチールマウンテンの件でおわかりになったと思うが、実際のハッキングとはパソコンの前でコマンドを打っているだけで完結するものではなくて、実際にはこういった泥臭い現場作業(ソーシャルエンジニアリング)が必要となることもある。

後半ではRTがサイトの移転作業を手伝うシーンになる。端末上ではデータベースの復号化が進んでいることが映し出されている。エリオットは会話がバレないようにWindowsのメモ帳を開き、文字をタイプすることでRTと会話を行う。このときエリオットはマウス操作ではなくてスタートメニューにnotepadと打ち込んでメモ帳を起動している。コマンド操作に慣れたひとはこのような操作をすることが多く、細かいところまでよくこだわってるなぁという印象。ちなみにあなたがこれをWindowsマシンで読んでいるならば、Windowsキー+Rを押してからnotepadとタイプしてEnterを押してみてほしい。

本エピソードはこのシーン以降、FBIの襲撃、アンジェラのフェムトセル設置作業の決断、エリオットの拉致と物語が大きく動いていくが技術的な解説は特に無い。

Season 2 Epsode 6 eps2.4_m4ster-s1ave.aes - 「マスタースレーブ」

本エピソードは冒頭から古いアメリカのコメディドラマみたいな映像で始まるので多くの視聴者は戸惑うことだろう。私はシーズン2の中でここが一番おもしろかった。フルハウスを思い出す。

このドラマの中でダーリーンはゲームボーイで遊んでいる。20代前半以下の人はもしかしたらゲームボーイを知らないかもしれないので一応解説すると、ダーリーンが遊んでいる灰色の携帯ゲーム機は任天堂から昔発売されたゲームボーイというもの。MR.ROBOTはほかにもAtariなどゲーム要素がちょくちょく登場する。すべてのデジタルゲーム機はコンピューターであり、必然的にハッキングとも近い位置にある。多くのハッカーはゲームが好きだし、ハッキングを扱うドラマに出てくるのは当然と言えば当然なのかもしれない。

さて、このゲームボーイの画面にはエリオットが暴行を受けているシーンが流れており、映像の解像度と色数を落としてゲームボーイっぽい音も付与しているが、あまりゲームボーイの色調、音には似ていない。もうちょっとこだわってほしかったが、まあ数秒のシーンでそこまでやるのも無駄だし仕方ないだろうか。

しかし、このドラマはよく出来ている。昔のカメラで撮ったような画質の悪さ、ショボい合成、笑いのセンス、全てがそれっぽい。それでいてこれはMR.ROBOTなのだという狂気が散りばめられている。とても素晴らしい。

その後、アンジェラにフェムトセル設置の方法を指南するモーブリーの姿。表示された端末にはBusyBoxやOpenWrtなどの文字。BusyBoxもOpenWrtも主に組み込み系(ハードウェアに組み込まれて一緒になって動作するOS、ソフトの総称)のソフトウェアだ。やっているのは攻撃用のコマンドを打っているだけ(つまり決められた文字列をタイプすればそれで良い)のように見えるが、アンジェラはスペースを挟まなくてはならないところを挟まなかったりと覚えが悪そうで、トレントンは「24時間で覚えれるわけない」と言っている。そんなに手順が複雑なら自動化するスクリプトでも書けばいいんじゃないのかな…。もっとも、アンジェラのレベルはそのコマンド一つ打つのも苦労しているみたいだが。ここはアンジェラが頑張っているというのを強調したいシーンなのだろう。

続いては変装したダーリーンがE Corpの近くに位置するホテルに不正な方法で忍びこんで筒状の高感度Wifiアンテナを使ってリモートアクセスを行う準備をしているところだ(E10ではエリオットがこれを自作する)。ケチらずホテルくらい正規の方法で押さえろよと思うのだが、ターゲットのなるべく近くの部屋であったほうが良いとかいう理由なのかもしれない。反対側の部屋にされたら通信はまず不可能だろう…。実際やっている作業はやはりリモートでコマンド一つを打つだけのようで、これを覚えるのに1日も要らないような気がする。

上手く行ったかに見えたフェムトセルの設置はWifiコネクションの切断によって追加作業が発生する。USBメモリを差し込んでF12を押して起動…というのは、USBメモリにインストールされたKali Linux(S1E1にも登場したLinuxディストリビューション。ハッキング用のツールが一式揃っている)を起動している。これによってフェムトセルに再度有線経由で接続し、Wifiインタフェースを再起動するという作業をしているようだ。たまにWifiに不具合があってこういうふうになることはあるが、こんな不安定な環境で大丈夫なのかよ、と少し思う。

最後、技術的なシーンではないがMR.ROBOTが「俺が変わりに殴られようとした」という発言をするシーンがある。これは個人的に興味深かった。一部の解離性同一性障害の症例では、特に幼少期に耐えられないような精神的な苦痛(性的虐待など)が生じた場合に、主人格とは異なる人格が生まれて代わりに辛いことを担当してくれるというケースが多々ある。このとき、主人格にその時の記憶は無いことが多い。エリオットの場合も家庭環境はあまり良くなかったようだが、その時の何かトラウマ的な体験によって父親に似た(そのもの?)人格を作り出したのかもしれない。

今回のエピソードの「マスタースレーブ」も同様の意味だろう。 コンピュータ関係の世界ではマスターが主、スレーブが副といった意味で使われることがある。通常動作しているマスターに変わってスレーブが上手いことやってくれたのが、件のコメディドラマだったのである。

精神疾患という観点からはあまり良いことではないと思われるが、エリオットはこの件によって始めてMR.ROBOTを認め「ありがとう」と涙を流す。その姿は感動的とすら思える。

Season 2 Epsode 7 eps2.5_h4ndshake.sme - 「ハンドシェイク」

ハンドシェイクは握手の意味だが、冒頭でエリオットが「サーバーに接続するように握手をすれば自然とつながる」と言っているように、コンピューター関係では接続という意味でも使われるケースがある。これは、ネットワーク通信で通常利用されるTCPというプロトコル(通信を行うための方法やデータ構成などの規定)において、接続を開始する際に3-way handshakeと呼ばれる接続を確立するための三段階のやり取りがあることに由来している(はず)。

細かいことだけど、ダーリーンはifconfigというネットワークインタフェースの操作コマンドを「イフコンフィグ」と発音していた。私は「アイエフコンフィグ」と言う。こういうふうに呼び方が統一されてない用語がコンピュータの世界には多々あり、たまに宗教論争を引き起こす。

いくつかのシーンを挟み、再びレイのサイト移転作業をさせられるエリオット。端末を立ち上げてnginxというWebサーバの設定を書き始めている。ここで設定を書くのに使っているのはnanoというエディタだ。2つ前のエピソードではコードを書くのにviというエディタを使っていた。nanoは初心者にも分かりやすいエディタだがそこまで高度な機能を提供していないので熟練者はあまりnanoを使わない。特にエリオットは以前viを使っていたシーンがあるのだからすこしここは違和感を感じた。重箱の隅をつつくようなものだが。

エリオットはサイトの移転作業を進めていたが、同時にTorによって秘匿化されたサイトを一般公開した上でWeb広告を掲載し、Googleで「thai girls for sale」で検索すれば上位にヒットするようにしたとある。Web広告を掲載したとは言え、これだけ短時間で検索エンジンで上位に表示させるようにするのは至難の業というか、ほぼ不可能に近いと思われる。検索結果で上位に表示させるよう細工することをSEO(検索エンジン最適化)と呼ぶが、世の中にはSEOを行って顧客のサイトを効率的にアピールするという業務を行う会社もある(大抵は酷い商売をしている)。ハッキングからSEOまでこなすとは、エリオットは相当優秀な人物のようだ…というかちょっと非現実的かも。まあ物語の進行上は仕方ないことだし、そもそもこのレイのエピソードは本エピソード後半で明らかになるがどこまで真実かわからない部分が大きい。

エリオットが母親と暮らしていたのは嘘で、エリオットは本当は刑務所に入っていた。後のエピソードでも明らかになるが、レイは看守だったし、レオンを初めとするその他多くの登場人物は囚人だった。自分の部屋は監房。

このような状態で、今回までのエピソードに会った出来事のどれが本当でどれが嘘だったのだろうか。技術的な内容ではないが気になったのでまとめてみたい。

まずエリオットがfsocietyのメンバーと連絡を取り合い、FBIの通信を傍受するプログラムを書いていたこと。これはおそらく事実なのだろう。でなければ色々な部分に矛盾が生じる。では違法サイトの件はどうだったのか。これは半分事実だったのではないかという気がする。少なくともエリオットが何らかの形でレイと共謀して何かの作業を進めていたというのは事実のように思う。でなければ刑務所の中でPCを使用する機会は無い。また、エピソード9でレイがローンに対し「RTの件で午後三時に来てくれ」と言うシーンもあるので、やはりこの三人は何かを画策していて、それでエリオットを引き込み作業させていた可能性が高い。そしてその何かとは囚人に秘密で作業させるようなものなのだから、恐らくは違法なことなのだろう。もしかしたら、違法サイトの件も想像ではなくて実際にあったことなのかもしれない。

KKK野郎(ビットコインが無くなったなどと因縁をつけてきた連中、これもKKKであることはエピソード9で判明する)がレオンに切り裂かれた上にケツにナイフを刺されたのは実際には無かった(ただし何らかの因縁は付けてきた)可能性が高い。これも最終エピソードで明らかになるがレオンは出所している。もし刑務所の中で人を切り裂くような傷害を起こしたらこんなに短期間では出所できないような気がする。

ということで、改めて考えてみるとかなり想像の出来事が混ざっていると思っていたのだが、もしかしたらその殆どは実際に起こったことと解釈して良いのだろうか…。

Season 2 Epsode 8 eps2.6_succ3ss0r.p12 - 「後継者」

冒頭はモーブリーとトレントンが出会うシーン。ここでモーブリーは「アップルなんて最悪だよ。サファリなんて使ってられないね」などとコンピュータおたく特有の宗教論争を開始しようとする。相手がiPhoneを使っているかもしれないという想像力は無い。そのあたり、いかにもオタクっぽくてリアリティがある気がする。案の定、トレントンはiPhoneを使っていると言い、さらにブラウザのパフォーマンスを測定するサイトにアクセスしてベンチマークスコアでAndroidとiPhoneどちらが早いか勝負しようとけし掛けてくる。

ここではbenchmarking websiteと言っているが、字幕は「速度測定サイト」と書いている。微妙なとこだが、ここは速度測定サイトではなくて単にベンチマーキングサイトと書いてほしかった。速度測定という訳も間違いではないが、私は最初回線速度を測定するサイトかと思ってしまった。ただ、ベンチマーキングという言葉はそこまで一般的ではないのかもしれないし、難しいところだ。ちなみにこのサイトはhioctaneという名前になっている。実際に存在するのはoctaneというサイトだ。そのサイトは実はトレントンが用意したサイトで、アクセスすると端末の操作権限を取得できてしまう。特定のサイトにアクセスしただけで端末を操作されてしまうというのは脆弱性があるブラウザであれば実際に行うことは可能である。が、そういう脆弱性はアップデートによって次々潰されているので難しくはなってきている。逆に言えば、OSやブラウザのアップデートを行わず古いまま使用しているとこのように攻撃の被害を受ける可能性は高くなる。

続いてトレントンが動画を変換してWebサイトにアップロードしている。このとき使用しているのはffmpegというコマンドだ。これは様々な動画、音楽ファイルの形式を相互に変換するためのツールで、非常に便利なものである。その昔、「携帯動画変換君」という携帯電話やスマートフォン、PSPなどで再生できる動画形式にコンバートするようなソフトがあったし、現代でも様々な動画変換ソフトが提供されているが、その中身はffmpegであることが多い。

物語の方は急展開を迎えるが技術的な解説が必要そうな場面は殆ど無いので後は省略。