403と404を見て、30年前の鬼軍曹を思い出した。

PHPもNode.jsも、WordPressも。
大切なのは、どう作って、どう守るか。

ようやく、今回のPHPの脆弱性問題への対応が一段落した。

この数日、なかなか慌ただしかった。

お客様のサーバー環境を確認して、PHPのバージョンを上げ、WordPressやプラグインを更新する。

更新したら表示や動作を確認して、アクセスログとエラーログを調べる。

これを複数のサイトで繰り返していた。

二日間、朝までサーバーログを確認していたこともあって、正直かなり疲れた。

でも、ログに403や404のエラーがきちんと記録されているのを見て、少しホッとした。

普通ならエラーなんて出ない方がいいと思うかもしれない。

でも、アクセスを許可していない場所には403、存在しないファイルへのアクセスには404。

拒否すべきアクセスが拒否され、記録も残っている。

もちろん、それだけで安全だなんて思っていない。
403や404が返っていても、ほかの経路から侵入される可能性はある。

それでも、想定していた仕組みが機能していることを確認できるのは、一つの安心材料になる。

「我ながら、ちゃんとやってるじゃん」

そんなことを思いながら、30年ほど前の先輩を思い出した。

僕の基礎を作ってくれた鬼軍曹

昔、鬼軍曹のような先輩がいた。

僕の技術者としての基礎を作ってくれた人だ。

ログの見方、ファイルのパーミッション、アクセス制御、そして万が一侵入されたときに分かる仕組み。

どれだけダメ出しされたことか。

当時は本当に厳しかった。

でも、今になって思う。

あの頃、徹底的に教えられたことが、今も自分の仕事を支えている。

セキュリティ対策というのは、侵入を防ぐことだけじゃない。

万が一侵入されたら、それを検知できるか。

どこから、何に対して、どんなアクセスがあったのか。

何が起きたのかを把握できれば、何をどう対策すればよいかも見えてくる。

逆に、何が起きているのか分からなければ、対策のしようもない。

30年前から教えられてきたことだけど、今でも変わらない基本だと思う。

WordPressを悪者にするのは、ちょっと違うと思う

今回のPHPの問題をきっかけに、いろいろな意見を目にした。

「WordPressだから危ない」

「これを機にWordPressを卒業しよう」

「Movable Typeなら安心」

「PHPを使っていないから大丈夫」

ちょっと待ってよ、と思う。

そりゃWordPressには危険な部分もある。

利用者が多い分、攻撃対象にもなりやすいし、プラグインの管理だって必要になる。

でも、それはWordPressに限った話じゃない。

どんなCMSでも、どんなシステムでも、脆弱性が見つかる可能性はある。

WordPressは、専門的な知識がそれほどなくても情報を発信できるし、
中小企業や個人事業主にも手が届くCMSだと思っている。

これだけ多くの人がWebを活用できるようになったことには、大きな意味がある。

もちろん、用途や運用体制によっては別のCMSを選んだ方がいい場合もある。

でも、今回の問題を理由に、WordPressを卒業することが正解だとか、
WordPressそのものが悪いものだとか、そんな言い方は勘弁してほしい。

PHPの問題と、WordPressというCMSの評価は分けて考えるべきだと思う。

大切なのは、何を使っているかだけじゃない。

どう作って、どう管理して、どう守っているか。

技術や製品の名前だけで安全か危険か、善か悪かを決めつける。

そんな白黒だけの議論には、正直うんざりする。

問題は、WordPressを使っていることじゃない。

リスクを理解せず、必要な対策もしないまま使い続けることだと思う。

PHPの次はNode.js。だからこそ思うこと。

そして、今回の問題はPHPだけではない。

Node.jsにもセキュリティ上の問題が報告され、修正版が公開されている。

Node.jsは、サーバー側の処理だけでなく、Webアプリケーションの開発環境などでも広く使われている技術だ。

PHPとNode.jsは別の技術だし、今回見つかった脆弱性も別の問題だ。

でも、共通していることがある。

どんなに広く使われている技術でも、脆弱性が見つかることはあるということだ。

PHPを使っていないから安心。

WordPressをやめたから安全。

別の技術に乗り換えれば問題は解決。

そんな単純な話じゃない。

そもそも、自分の環境で何が使われているのか、きちんと把握できているだろうか。

僕自身も今回、ローカル環境にNode.jsが入っていないか確認した。

普段使っているつもりがなくても、開発ツールなどに組み込まれている場合もある。

ただ、入っていることと、実際に脆弱性の影響を受けることは別の話だ。

使われ方やバージョン、外部からの入力をどう処理しているかによっても状況は変わる。

だから、まずは把握すること。

そして、影響を調べて、必要な対策をすること。

結局、そこなんだと思う。

攻撃されることを前提に考える

僕は、攻撃されないことだけを前提にシステムを作るのは違うと思っている。

どれだけ対策しても、新しい脆弱性は見つかるし、攻撃の手法も変わっていく。

だからこそ、攻撃されることを前提に考える。

  • 簡単には壊れない仕組みになっているか。
  • 万が一侵入されても、被害を最小限に抑えられるか。
  • 大切な情報をWebの公開ディレクトリに置いていないか。
  • ファイルのパーミッションは適切か。
  • 不審な動きを検知できるか。
  • 何かあったときに復旧できるか。

こうしたことを、設計の段階から考えておく必要がある。

もちろん、こうした対策をしているからといって、脆弱性の修正が不要になるわけではない。

更新すべきものは更新する。

そのうえで、万が一に備える。

今回、403や404のログを見てホッとしたのも、そのためだ。

拒否した記録だけでなく、正常に見えるアクセスに不審なものが紛れていないか、
見覚えのないファイルが作られていないか、権限や設定が変更されていないか。

そういうところも含めて確認する。

何かが起きてから慌てるのではなく、何が起きているかを把握できる仕組みを作っておく。

鬼軍曹に叩き込まれたことだ。

AIがプログラムを書く時代になっても

今はAIがプログラムを書いてくれる時代になった。

僕自身も日常的に使っている。

便利だし、開発のスピードも昔とは比べものにならない。

でも、AIが書いたものをそのまま使っているわけじゃない。

アクセス制御、ファイルの取り扱い、ログの記録、異常を検知する仕組み。

そういう部分は、きちんと指示する。

出来上がったコードも自分で確認するし、必要なら自分で書き直す。

AIが書いたから大丈夫、なんて思っていない。

そもそも、何を確認すべきか分かっていなければ、AIに何を指示すればよいかも分からない。

30年前、鬼軍曹に何度もダメ出しされたことが、今のAIとの仕事にも生きている。

技術は進歩したし、道具も便利になった。

でも、最後に判断するのは人間だし、その責任までAIが引き受けてくれるわけじゃない。

AIを使うことと、AI任せにすることは違う。

僕はそう思っている。

保守料をいただいている以上

今回、二日間朝までログを確認していたのには、もう一つ理由がある。

お客様から毎月保守料をいただいているからだ。

保守という仕事は、何か壊れたときに直すだけのものじゃないと思っている。

普段から状態を把握して、問題が起きそうなら先に対策する。

今回のような脆弱性が見つかれば、影響を確認して、必要な更新を行う。

そして、更新したから終わりではなく、その後も正常に動いているか、
想定外のアクセスやエラーが発生していないかを確認する。

そういう仕事も含めて、保守料をいただいている。

お客様からすれば、Webサイトがいつもどおり動いているのが当たり前。

でも、その当たり前を維持するために、裏側ではいろいろなことをやっている。

何も起きなかったから、何もしていないわけじゃない。

むしろ、何も起きないようにすることが大切なんだと思う。

保守料をいただいている以上、その責任は果たさないとね。

もちろん、すべての攻撃を防げるわけでも、絶対に安全だと保証できるわけでもない。

だからこそ、日々確認して、必要な対策を続けていく。

ようやく落ち着いた。そして思うこと。

今回の対応も、ようやく一段落した。

もちろん、これで終わりではない。

新しい脆弱性はこれからも見つかるだろうし、攻撃の手法だって変わっていく。

PHPもNode.jsも、WordPressも、これから先ずっと安全だなんて誰にも言えない。

だからといって、危険だから使わないという話でもない。

危険性を理解して、必要な対策をしながら使っていく。

それが技術と付き合うということなんだと思う。

今回、ログを見ながら、あらためて思った。

30年前、あれだけ厳しく教えてくれた先輩がいなかったら、今の僕はどうなっていたんだろう。

あの頃はダメ出しばかりだったけど、今は本当に感謝している。

技術は変わった。

道具も変わった。

AIまでプログラムを書く時代になった。

でも、大切なところは変わっていない。

何を使うかより、どう使って、どう守るか。

そして、お客様からお金をいただいて仕事をしている以上、責任を持って向き合う。

それだけのことなんだけどね。

二日間の寝不足で、少々くたびれたけど。

「我ながら、ちゃんとやってるじゃん」

今日はちょっとだけ、自分を褒めておこうと思う。

Webサイトは、作って終わりではありません。

普段は何も起きていないように見えても、
その裏側では確認しておかなければならないことがたくさんあります。

売れるITサービス社では、サーバーやWebサイトの保守管理、セキュリティ対策、
トラブル対応など、公開後の運用もサポートしています。

今の管理体制に不安がある、誰に相談すればいいか分からない。
そんなときはお気軽にご相談ください。


サポート・保守サービスについて →