C&Cサーバー

 神戸八州嶺ホテルに戻り、今日はそれぞれの部屋で休むことになりました。


 ……といっても、私の部屋はこの即席オペレーションルームですが。


 世界地図の上をキラキラと飛び交うサイバー攻撃の光弾を眺めながら、ダッツのアイスを味わいます。バニラアイスの味がしておいしいです。しかし、なんだか、ひと味足りません。アイスといえば、やっぱり「あわじ島玉ねぎソフト」ですからね。


 窓の外に目を遣れば、藍色のキャンパスに宝石を散りばめたような「百万ドルの夜景」が見えます。しかし、感動できるのはせいぜい一時間。もう飽きました。


 あまつさえ、このホテルにはテレビが一つもありません。理由は推して測るべきですが、まあ、この時代、スマホがあれば色んな動画が見られるので退屈しませんよね。しかし、興味のあるNetflixの動画は大抵見尽くしたので、もう何もすることがありません。


 というわけで。


「プロトコル解析の続きでもしましょうか」


 ギシリと軋む椅子に背中を預け、足を組みます。


 ちょっとは監査役らしい貫禄、出てますかね。経営権はないとはいえ、一応は上場企業の役員ですからね。どうせ、「ちんちくりん」だのなんだのと言われるんでしょうけど、高槻さんに比べればマシです。


 さて、気を取り直し、仮想マシンを立ち上げます。仮想のBigBrotherのサーバーと、仮想PCの間で流れているデータを見ながら、おおよそのアタリはついてきました。


 まず、仮想PCにインストールされたエージェントプログラムは、BigBrotherサーバーに対して定期的にログや端末情報などを送信しています。その通信の際に、エージェントプログラムはBigBrotherサーバーからの命令を取得し、その命令を実行するという形になっているようです。


 例えばサーバー側でポリシー設定が更新された場合、ポリシーを適用しろという命令がPC側のエージェントプログラムに伝えられます。そして、エージェントプログラムがPCの設定を変更するのです。これは、まさにマルウェアに対する、C&C(コマンド・アンド・コントロール)サーバーの仕組みと同じです。


 ちょっと前に私はこんなことを言いました。


『いいですか? BigBrotherのようなIT資産管理システムは、技術的にはスパイウェアとそんなに変わらないんです。もし脆弱性を突いて乗っ取られてしまえば、スパイウェアそのものになってしまいます。だから、アップデートしていない資産管理システムなんて、百害あって一利なしなんです』


 

 当時は、内部の動きをきちんと調べたわけではありませんでしたが、私の言ったことは、これで裏付けられたということになります。だからといって、何てことはありませんが、少なくとも口から出任せにならなかったわけで、すこしホッとしました。


 さて、認証はどういう仕組みになっているのでしょうか。


```

GET /api/v2/commands/1701d HTTP/1.1

Host: bigbrother.localnet.kyoki-railway.co.jp:11574

Authorization: Bearer 27164dfc-342e-11ec-80d3-4c364e448e46

```


「ん、何かのトークンで認証している……。でも、見た目はGUIDっぽいですね。JWTでもなさそう」


 推測ですが、恐らくエージェントプログラムをインストールして、サーバーに初回接続した際に、サーバーからGUIDベースの認証トークンが発行されるのでしょう。以降はそれを使い続けるといったところでしょうか。


 まあ、GUIDやUUIDを認証トークンに用いること自体、あまりよろしくはありません。なぜなら、ランダムな値ではありますが、それが暗号論的擬似乱数生成器(CSPRNG)、つまり、認証トークンやセッションIDなどに用いることができるような安全な乱数生成器を用いて生成することが保証されていないからです。


 とはいえ、GUIDであっても、実際のところ推測することは困難です。総当たり攻撃で突破することも不可能でしょう。これ自体は、何か攻撃に使えるものではありませんが、このBigBrotherのバージョンは、そういった知見がない人が設計したのかもしれません。


「とすれば、脆弱性は、他にも色々ありそうですね」


 さて、今回の作戦は、偽のサーバーを作り、その偽のサーバーからPCに対して偽のポリシーを配信することです。偽サーバーは、どんな認証トークンでも受け付けるようにすればよいだけです。そうすれば、エージェントは勝手に偽のポリシー適用命令をダウンロードして、その命令を実行してくれます。


 ぶっちゃけ、TLSの証明書チェックを無効化するという判断はとんでもない大失態だったのです。元々は証明書チェックによって、サーバーが本物かどうかを確認していたから、偽のサーバーの偽の命令を実行するリスクを低減できていたのです。ところが、チェックを無効化すれば、当然ながら偽のサーバーからでも命令をダウンロードしてしまうのです。


 こうなるぐらいなら、せめて上に黙ってこっそりLet's Encryptを使うようにしておけばよかったですね……。私としたことが。まあ、最終決定した人の責任ですから、私は悪くありませんけど。


 とりあえず、偽のサーバーを使って、壁紙をレモンの画像に変更するというところまではできました。ログオンスクリプトも仕込めるようですね。実に良い感じです。


 そのとき、部屋の呼び鈴が鳴りました。


 こんな時間に一体誰が。ここは、閉ざされた山奥のホテル。念のため、武器を手に身構えます。そこらに転がっていた3・5インチハードディスクですが、ないよりはマシでしょう。のぞき穴を見ると――。


 ……ああ、こいつですか。


「何ですか? 忘れ物でも?」


 そう言いながら扉を開けると、アカネBが立っていました。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る