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

長らく解説記事を書くのを放置してしまった。MR. ROBOTはシーズン4で終わり、かつ、シーズン4の公開は2019年にずれ込みそうだということで、新しいエピソードもみれないし復習がてらまた解説を書いていくことにする。

Season 3 Epsode 5 eps3.4_runtime-error.r00 「ランタイムエラー」

タイトルのランタイムエラーという言葉は聞いたことがある人も多いだろう。プログラムが実行されているときの一般的なエラーという意味だ。プログラムを作成する(コンパイルする)ときに発生するエラーとは違って、ランタイムエラーは予想しにくい。予想できない突発的な出来事、みたいな意味を象徴してこのタイトルにしたのだろうか。実際、冒頭でそのような発言をエリオットがしている。

冒頭はエレベーターに乗っているエリオットとアンジェラのシーンから始まり、同僚のシモネタ話とほぼ童貞であるという良くわからない大声のカミングアウト?を聞きつつ、PCにログインができなくなっていることに気づく。これはアンジェラが計画からエリオットを遠ざけるために解雇相当の処分を下したからだろう。

エリオットは隣の同僚(サマール)にPCを借りて何かのログを見る。これは件の書類の配送を遅延する細工を行っているアプリケーションのログだろうか。表示されている画面はKibanaというやつだ。これはログ監視では有名なソフトウェアで、私も使っている。同種のソフトとしてTableauなどがある。ログメッセージというのは、プログラムが吐き出すメッセージで、基本はテキストだ。システムが巨大になるとこのログメッセージも膨大な量になり、一つ一つのテキストを目で追っていくのは人間業では不可能になる。なので、こうしてログメッセージの数や重要なログが吐き出された時期などをグラフィカルに判別するためのツールが用いられるのが現代では一般的だ。

そこでエリオットは瞬時に自分の妨害工作がバレて排除されようとしているのを知り行動する。エリオットはサマールに時間を稼ぐよう伝えてすぐさま行動にうつる。こういうなりふり構わず行動し始めるシーンは緊迫感があってとても好きだ。階段ではドアを開けてもらうためにカードキーを持たず出てしまったように見せかけている。その後で不正なソフトが入っているからチェックさせて欲しいと嘘をついて端末を操作しようとする。このために、(こう言っては失礼だが)いかにもコンピュータに疎そうなおばさんをターゲットにするが、あっけなくそんな訳はないと技術的に論破されてしまった。こういうところも妙にリアリティがあってよい。IT系企業では当然ではあるが、従業員の平均的なIT系のスキルは高い。だから、そこら辺のおばちゃんに見えてもバリバリのプログラマだったりするのは当たり前なのだが、たまに不思議な気分になることは私もある。とにかく、こういうソーシャルエンジニアリング的な描写がMR.ROBOTでは多々ある。

再び端末を奪取したエリオットはすぐにダークアーミー(というかタイレル?)が正攻法で攻めてきたことを知る。つまり、エリオットは署名付きのファームウェア以外は受け付けないよう改造しセキュリティを確保したが、UPS(無停電電源装置)を爆発させるファームウェアをインストールさせるための署名を行う権限のあるユーザーのアカウントをハッキングするかもしくは本人を抱き込んで、正規の署名を添付した攻撃用ファームウェアをインストールさせようとしているわけだ。これを防ぐにはHSM(Hardware Security Module)が必要だという。これは要するに署名を添付したり検証したりするハードウェアの物理的な鍵だ。特にソフトウェアで署名を付与する場合は、ソフトウェア上に秘密にして置かなければならない鍵(=データ)をどこかに読める形で置いて置かなければならないが、これがリスクになる。つまり、セキュリティを確保するために鍵をかけるわけだが、その鍵をソフトウェアの形で読み取りやすいように持っている事自体がリスクということだ。だから、ハードウェアの形で簡単にはソフトウェアから読み取れないようにするための装置がHSMだ。

エリオットはこのHSMを奪取するなり破壊するなり鍵を変更するなりすることで、署名を無効化しようとしているのだろう。が、結局はUPSが爆発することが問題なのではなくしてデータセンターで人が犠牲になることが問題であるのでデータセンターから人を退避させる方向に作戦を変更する。

視点はアンジェラに移る。

ダークアーミー側もファームウェアをなんとしてもインストール出来なければ計画の遂行が不可能になる。HSMが必要なくらいセキュリティレベルの高い装置に直接触ったことが無いのでよくわからないが、もし鍵が失われたらUPSを新品に交換して再セットアップしない限りファームウェアのアップデートは不可能という仕組みになっている(もしくはエリオットがそのように仕込んだ)のだろう。何故ならば、そこで救出方法を用意してしまうとそれ自体がセキュリティ対策をスルーできる裏口、バックドアとして残ってしまうからだ。

というわけでダークアーミーはエリオットに(というよりはおそらくMR. ROBOT)にHSMのバックアップを取得させようとする。これはいささか大げさな対応のように個人的には思える。HSMは物理的に接触しなければバックアップを取ることも不可能なのであるから、わざわざ計画がバレるリスクを背負ってサーバルームに飛び込むのは変だ。ただ、アーヴィングは状況が変わってしまった、という主旨のことを言っているので何か別の問題が起きたのかも知れない。(次のエピソードで明らかになる)

結局、エリオットを見つけられないアンジェラは自分で任務をこなすことにする。HSMが置かれている部屋は、なんかサーバルームと言うよりは単なる倉庫みたいな感じだ。ドアもガラスがはめ込んであり、ガラスを割って内側からドアノブを回すことで暴徒の侵入を許してしまっている。なんか特段すごいセキュアな階層という感じはないな…。

アンジェラは案の定、警備員や従業員に見つかってしまうが、それでも一応は仕事を遂行する。そして部屋から出ていくところで暴徒の一人であると見せかけるために、f societyの例の仮面を付ける。この描写はダークアーミーに利用され落ちていくアンジェラの象徴なのだろう。

エレベーターでは中国がコンゴを併合したニュースが流れ、指定された先に向かうとそこに居るのは…。やっぱりあのハンバーガーを食ってる中国人である。何なんだこいつ。まぁ、ダークアーミーの一味なんだろうけど。

続いてアンジェラはエリオットと出会い今回のエピソードは終了。

Season 3 Epsode 6 eps3.5_kill-process.inc 「強制終了」

タイトルのkill processは日本語訳のとおり、プロセスの強制終了ということだ。Unix系のOSではプロセスを強制終了するのにkillというコマンドが使用される。厳密に言うと、強制終了するのではなくてシグナルと呼ばれる特殊なメッセージを送るプログラムがkillなのだが、まぁそれはさておき。

その名の通り、プロセスを殺すからkillだ。Unix系のOSにはこういうカジュアル?な名付けのコマンド等が多い。例えばプロセスごとのリソース使用優先度を示す値はNice値と呼ばれる。この値が高いほど優先度は低く、値が低いほど優先度は高くなる。なぜ数値と優先度が逆の順序になっているかというと、このNice値は「どれだけ"良い奴"か」を表す値だからだそうだ。良いやつほど、他のヤツにリソースを譲る、とこういうわけだ。

冒頭は…これは何だろう。アンジェラの母親の生前さよなら会だろうか。母親はアンジェラにこれは別れじゃない、また会って遊んで踊ったりしようと言う。こういう会や言葉はすごくアメリカっぽいな。そういう前向きな文化は個人的には良いと思う。しかし、子供が死んだり子供を残して親が死んだりするシーンは創作であろうと嫌に思えてくるようになったな…。

続いて前エピソードでアンジェラとエリオットが出会ったところに戻る。アンジェラは計画を遂行することで「あなたのパパや私のママも助かる」などと意味不明な事を言う。同様の事は過去にも何度か言っていたが、ちょっと意味がわからない。単に復讐を果たすというだけにはとどまらないようなニュアンスに聞こえるが…。

エリオットは「赤い手押し車」の袋を見つけ、そこがタイレルの居場所に違いないと行動を始める。

いくつかのシーンを挟んでエリオットは警備員からIDカードを盗み、データセンター内に侵入する。なんか状況的に何故バレないのか不思議だが、一流のスリの技術はそんな感じで、注意していてもいつ盗まれたのかわからないようなものだとも聞く。

侵入したエリオットはPCと壁のLANコネクタを接続し、端末を操作し始める。ちなみに経験の有る人も多いかともうが、こういった会社組織の内部ではネットワークに接続できるマシンにMACアドレス(LANインタフェースに直接書き込まれているハードウェアアドレス)等で接続制限をかけているから、LANケーブルで繋いだだけではネットワークに侵入するのは不可能だ。ましてやデータセンターでこういったことをやるのは不可能だ。

で、そこは置いといて。エリオットはUPS周辺の状態をチェックし、アンジェラがコピーした鍵で署名されたマルウェアがすでにインストールされていることがわかったようだ。つまり、前エピソードでわざわざアンジェラが危険を犯してHSMの鍵をコピーしてきたのは、何らかの原因で当初予定していた署名を付ける権限のある従業員(もしくはそのアカウント)が使えなくなったのだろう。そこで、エリオットは再度、マルウェアの入っていない通常のファームウェアで上書きした上で、既に盗まれた鍵による署名を無効化しようとする。この署名されていないファームウェアによるアップデートを拒絶するという仕組み自体エリオットが作成したものだという説明が過去あったので、そのあたりの変更もエリオット自身ならば容易に行えるのだろう。しかし、それはMR.ROBOTによって妨害される。

エリオットは何度も何度も繰り返しファームウェアの上書きを試みるが、そのうちにログインできなくなってしまった。"Connection Refused"と書かれているが、これはおそらく遠隔操作しているリモートのサーバで動いているssh serverと呼ばれる遠隔地からのログインを処理するサービスを止めてしまったのだろう。もちろん、起動しなおせばまたログイン出来るようになるのだが、そもそも遠隔操作するためのサービスが止まっているので起動し直す手段は基本的には直接そのサーバがあるところにいって、直接キーボードを叩いて対処するしかない。間違ってサービスを終了させてしまってサーバ室に走ったという経験はシステム管理者の一つのあるあるだろう。数分の間で実行できる緊急の防衛策としてはとても良いアイディアだ。

一方でタイレルとそこに踏み込むドム。タイレルは仕事をこなしたのに妻と子供と共に国外に逃れるという約束も反故にされる。まぁヨアンナ死んでるけど…。かわいそうなタイレル。タイレルは謎の指示書を読み、言われたとおり火を付けて逃走。サンティアゴ(ドムの上司)は母親に今日は外に出るなと言ったり、操作妨害がヘタでドムに怪しまれたりと使えない下っ端っぷりを遺憾なく発揮している。

そのうちにタイレルは爆破されるぞ!!計画は止めなければならない!!と叫び外に飛び出して逮捕される。ダーリーンはアンジェラがMR.ROBOTを利用したことで口論。エリオット(とMR.ROBOTは)爆破を止めるためにバッテリー室への侵入を試みる。結果、消火設備を手動起動し爆破は止められた。しかし爆破を止められたビルは一つだけで、結局は世界中にある同種のデータセンターがすべて爆破されたとニュースが飛び込んできて今回のエピソードは終わり。つまり、タイレルが書類がどこにあろうとスケジュール通りに計画を遂行できると言ったのは、どこのセンターにあろうと全部爆破してしまえば関係ないという意味だったわけだ。どのようにして爆破されたかは明らかにされていないが、短期間で済んだことから考えると、同じ方法を使って爆破したということなのだろう。まぁ、現実には全く同じUPSが全建屋で導入されていることは考えにくいから無理だと思うけど…。