トレーダーになる前、僕の主な収入源はサイバーセキュリティだった。だからブログにもこの業界の話をよく書いていたんだけど、まずは一つ、こんな話をしてみよう。「サイバーセキュリティって、実は偽りの命題(フェイク)なんじゃないか?」
絶対的に安全なネットワークなんて存在するのか?
ハッカー文化に「心酔」している人の多くは、「絶対安全なネットワークなんてない」と言う。僕も中学でセキュリティーを学び始めた頃はこの言葉にシビれたもんだ。「技術さえ極めれば無敵になれる、脆弱性を見つけてエンターキーを叩けば一瞬でシェルが取れる」なんてね。
でも、いざ本気で勉強して業界に入ってみると、気づくんだ。「絶対的に安全」なネットワークなんて、実はいくらでもあるってことに。
周知の通り、この業界には「護網(HW)」と呼ばれる演習がある。みんなHWとかHVVとか略して、まともに言わないけどね。要はブルーチームとレッドチームに分かれた攻防シミュレーションだ。大学生も小遣い稼ぎやマウント取りに参加したりする。
中でもレッドチームはみんなの憧れだ。行けない奴らは羨望の眼差しを向ける。僕も最初は「初級ブルー」だったけど、努力すればレッドに近づけると思ってた。でも実際に入ってみたら、レッドなんて大したことない。大手のラボにいる凄腕たちだって、別に魔法を使ってるわけじゃないんだ。
どんなに天才的なハッカーでも、攻撃するには基本的なネットワーク通信プロトコルの原理に従うしかないからね。
じゃあ、「絶対防御」は存在するのか?
ごく簡単な例を挙げよう。VPSを一台借りて、SSHログインのみ許可する。パスワードは16桁の英数字・記号のランダムな組み合わせ。その中にDockerでMySQL+Nginx+WordPressの構成を組み、記事を一つ投稿する。タイトルは「クソ喰らえレッドチーム、かかってこいよ」。ポートは22、80、443以外すべて閉じ、22番ポートには「パスワードを一度でも間違えたら即IP BAN」というスクリプトを仕込む。ドメインを買った瞬間からサイト全体にCloudflareを噛ませる。
この単純な構成だけで、国内のいわゆる「ハッカー先生」たちの99%は手も足も出ないと断言できる。彼らが突破できる可能性があるとすれば、僕のリアルIPを特定するか、NginxやWordPressの0day(未公開の脆弱性)を見つけるか、あるいは将来0dayが出るのを待つしかない。今この瞬間にこのサイトを落とすなんて、まず不可能だ。
これって、シンプルだけどほぼ「絶対防御」の事例だよね?大物ハッカー様が、自分たちをバカにしている相手に手も足も出ない。そう、ハッカーなんて外野が思っているほど万能じゃないんだ。
じゃあ、なんで世の中にはこんなに脆弱性が溢れているのか?
もし僕が会社を立ち上げるとして、さっきのシンプルなサイトにサブドメインを増やし、色んなサービスを展開するとしよう。一人じゃ回らないから、プログラマーを大量に雇う。中には「コメント欄でポップアップが出る(XSS)」ことの意味すら分かっていないような連中もいるけど、社畜として毎日コードを書いてくれる。
ここで初めて、サイバーセキュリティ業界が育つ「土壌」ができる。雇った連中が一体どんなクソコードを書いてるか、僕には把握しきれないからだ。人が増えれば増えるほど、脆弱性も増える。ひどい時には、人事が採用した大学生が作った管理画面のログイン認証が、某大手企業のサイトみたいに「JavaScriptで止めてるだけ」なんてことすら起きる。
要するに、関わる人間が増えれば増えるほどバカも増える。バカが増えれば脆弱性が増える。脆弱性が増えれば、サイバーセキュリティという商売が成り立つ。それだけのことだ。
結局、サイバーセキュリティは偽りの命題なのか?
技術的な面で言えば、僕はセキュリティを独立した「業界」として扱うのは好きじゃない。ずっと「ソフトウェアテスト」の一分野だと思っている。例えばSRC(脆弱性報奨金制度)でのバグ探しやペネトレーションテストなんて、実質的なワークフローはソフトウェアテストとそっくりだ。
ただ、ソフトウェアテストをやってるのは、大学で大して勉強しなかったけどIT業界にしがみつきたい連中だ。彼らがロボットみたいにスクリプトを回して退屈なチェックをしている間に、リリースされたソフトからセキュリティ屋が山ほど脆弱性を見つけて金に変える。だから、セキュリティが別枠で隔離されているのも、まあ理にはかなっているんだけどね。
