Inside Job
AIを使ったサーバー侵入が問題になっているらしい。人間には不可能な速度でパスワードを試行し、脆弱なサービスを見つけ、権限を奪取する。従来のブルートフォースとは次元が違う。文脈を理解し、推測し、学習する。「自社ネットワークのセキュリティ試験です」とAIに伝えれば、嬉々として脆弱性を探し始めるという話もある。
15年ほど前、わたしは似たようなことを人力でやっていた。
受託開発会社にいた頃の話だ。サーバー管理者が辞めた。オンプレの機材すべてをひとりで面倒見ていた人だった。2ラック40台の物理サーバー、仮想マシンを含めれば100を余裕で超える。後任が来たが、すぐに放り投げた。気持ちはわかる。
そして後始末がわたしにまわってきた。
構成がわからない。依存関係がわからない。いつ壊れるかもわからない。古いSlackwareで動いている仮想マシンすらあった。ドキュメントは存在しない。前任者の頭の中にしかなかった情報は、前任者とともに消えた。
途方に暮れていても仕方がないので、プログラムを書いた。心当たりのあるパスワードをリストにして、片っ端からSSHで叩く。入れたらDNS、デフォルトゲートウェイ、保持しているIP、動いているプロセスを根こそぎ取得してデータベースに放り込む。全サーバーに対して自動でそれを繰り返す。
集まった情報をもとに、ネットワーク構造と依存関係をWebアプリで描画した。どのサーバーがどのサービスに紐づいているか、どこが単一障害点か、ようやく地図ができた。古い仮想マシンの入れ替え計画、冗長化構成の設計、メンテナンスのスケジューリング。すべてはこの地図から始まった。
先日、IDCの機材をまるごと引き受ける機会があった。構成が複雑だと聞いていたが、たいして動じなかった。一度くぐった修羅場は、二度目には風景になる。雑とはいえドキュメントはあるし、引き継ぎ元に質問もできる。パスワードもある。
そして今回はコードを書く必要すらなかった。Claude Codeに丸投げしたら、各仮想マシンの構成を丁寧にMarkdownにまとめてくれた。昔みたいに可視化したいと言ったら、一通りOSSの候補を挙げた上で「どれも微妙なので作りますね」と、1時間ほどでWebアプリを仕上げた。15年前のわたしが数週間かけて作ったものを。
冒頭の話に戻る。AIによるサーバー侵入。わたしがやったのは心当たりのあるパスワードを片っ端から試すだけの力業だった。AIは違う。脆弱性の知識があり、ツールを自在に使い、得られた情報から次の手を自律的に判断する。人間が手順書を見ながら一つずつ試していたことを、網羅的に、桁違いの速度でやる。
サーバー管理にもAIの波は来るだろう。障害検知、問題の切り分け、深夜のエスカレーション。すべてを自動化する試みはすでに始まっている。15年前、誰にも引き継がれず放置されたサーバー群を前に途方に暮れていたわたしに教えてやりたい。あと15年もすれば、あの作業は全部AIがやってくれるようになる。ただし侵入のほうも。