はじめに
Linuxサーバーを運用していると、セキュリティという言葉を目にする機会は少なくありません。
- ファイアウォール
- WAF
- 侵入検知
- アクセス制御
- ログ監視
等。攻撃を防ぐための仕組みはいくつもあり、調べれば調べるほど、対策すべき項目は増えていきます。
しかし、そもそもセキュリティとは何のためにあるのでしょうか。
攻撃者を撃退するためでしょうか。脆弱性をゼロにするためでしょうか。それとも、最新の防御技術を導入すること自体が目的なのでしょうか。
私は、セキュリティの本質的な価値は、安心して使えること、そして安全に使い続けられることにあると考えています。
そのために必要なのは、必ずしも巨大な要塞ではありません。壁一枚だって、立派なセキュリティです。
壁一枚にも、意味があります
例えば、外からの侵入を防ぐために壁を設けたとします。
もちろん、その壁だけですべての侵入を防げるわけではありません。壁を越える者もいれば、壁の隙間から入り込む者もいるでしょう。壁そのものが壊される可能性だってあります。
だからといって、壁を設ける意味がないわけではありません。
壁がなければ自由に通り抜けられる場所でも、壁があることで侵入には手間がかかるようになります。壁があることで防げるものがあり、壁があることで守られる範囲があります。
セキュリティ対策も同じだと筆者は考えています。ファイアウォールで通信を制限する。SSHへのアクセスを必要な接続元に限定する。不要なサービスを停止する。WebサーバーにWAFを導入する。
それぞれ単独で、あらゆる脅威を防ぐことは不可能です。しかし、何も設けていない状態と比べれば、そこには確かな違いがあります。
万能ではないことと、役に立たないことは違います。
防げるものを防ぎ、影響を小さくし、必要なときに気づけるようにする。その積み重ねが、システムを守ることにつながるというのが筆者が4年ほどvpsを「育てた」知見です。
壁を作るだけでは、終わりません
ただし、壁は作れば永遠に機能するわけではありません。
時間が経てば劣化します。ひびが入ることもあれば、周囲の環境が変わり、以前は問題のなかった場所が弱点になることもあります。
だからこそ、壁には手入れが必要です。
Linuxサーバーでいえば、OSやソフトウェアの更新、設定の見直し、ログの確認、不要なアカウントやサービスの整理などが該当します。
一度ファイアウォールを設定したからといって、その設定が将来にわたって適切であるとは限りません。導入したWAFも、ルールセットが古くなれば、現在の脅威やアプリケーションの状態に合わなくなる可能性があります。
そして、手入れとは、必ずしも壁を補強することだけではありません。
安全を確保できないと判断したときには、門を閉じることも必要です。
例えば、稼働中のソフトウェアに重大な脆弱性が発見され、既存の防御策や暫定的な設定変更だけでは十分な安全性を確保できない場合。サービスを一時停止すれば、利用者への影響は避けられません。それでも、稼働を続けることによるリスクが大きいのであれば、停止は合理的な選択肢になります。
もちろん、停止すればすべての問題が解決するわけではありません。停止によって何が防げるのか、ほかに残る攻撃経路はないか、どのような条件で再開できるのかを確認する必要があります。
それでも、無理に動かし続けることだけが正解ではありません。
逆に、手入れを続けていれば、問題が大きくなる前に気づけることがあります。
これはセキュリティに限った話ではありません。定期的な点検や保守が必要なのは、システムが動き続ける以上、環境も前提条件も変化するからです。
防御を作ることと、防御を維持することは、表裏一体のお仕事です。
そして、実際の運用では、作った防御を維持する仕事のほうが長く続きます。
ModSecurityは、要塞というより箒とハタキです
以前、Web Application Firewall(WAF)であるModSecurityについて考えていたとき、興味深い説明に出会いました。しかも、その話をしたのがAIというのもまた哲学を感じます。
WAFの本質は、軍事要塞のようにミサイルを撃ち返すことではない。Webサーバーの玄関先に溜まる有害なゴミや、SQLインジェクションの蜘蛛の巣、XSSの不正な泥を、ルールセットという箒とハタキで払い落とすことだ、という説明です。
ModSecurityは、HTTPリクエストをルールに照らして検査し、設定に応じて記録や遮断などを行います。OWASP Core Rule Set(CRS)などのルールセットを組み合わせることで、Webアプリケーションへの攻撃を検知し、防御を補助します。
あくまでも防御の補助ではありますが、それでも、意味があります。
Webサーバーに到達するリクエストを検査し、既知の攻撃パターンに合致する通信を処理する。ルールに任せられるものはルールに任せ、人間は検知内容の確認や誤検知の調査、必要な設定変更に集中する。
毎回、すべての通信を人間が判断する必要はありません。
そして、箒とハタキは一度使えば永久に不要になる道具でもありません。日々の通信がある以上、検査も続きます。ルールセットの更新や設定の見直しも必要になります。
派手な反撃を見せるわけではありませんが、こうした地道な処理によって、Webアプリケーションを安全に運用できる状態を維持するのです。
セキュリティの目的は、対策を増やすことではありません
セキュリティについて調べていると、新しい脅威や新しい防御技術が次々と見つかります。
それらを知ることには意味があります。しかし、対策を増やすこと自体が目的になってしまうと、本来守るべきものを見失いかねません。
設定を複雑にしすぎれば、管理する側の負担が増えます。防御を強化したつもりが、正規の利用者を遮断してしまうこともあります。変更によってサービスが停止すれば、それ自体が運用上の問題になります。
一方で、サービスを動かし続けること自体が目的になってもいけません。
2026年10月、PHPの重大な脆弱性が報じられた際、筆者は当初、設定変更による暫定的な対策を検討しました。しかし、事態を踏まえ、最終的には自分のVPSでPHP-FPMを一時停止する判断をしました。
サービスを止めれば、当然ながら利用者への影響が生じます。それでも、十分な安全性を確保できない状態で稼働を続けるより、いったん停止して状況を見極めるほうが適切だと判断したためです。
セキュリティは、単に攻撃を防げばよいという話ではありません。
必要なサービスが正常に動作し、正規の利用者が安心して使え、管理者が異常を把握して対処できること。そうした状態を継続して維持することが重要です。
ただし、それは、どのような状況でもサービスを動かし続けるという意味ではありません。安全を確保するために停止が必要なら、停止したうえで、再び安全に動かせる状態を目指すことも運用の一部です。
ここで、冒頭の話に戻ります。
セキュリティの本質的な価値は、安心と安全にあります。
利用者が毎回、攻撃を心配しながらサービスを使う必要がないこと。運用者が毎回、同じ種類の通信を手作業で判断しなくてもよいこと。そして、問題が発生したときには、状況を把握して適切に対応できること。
防御の仕組みは、そのために存在します。
決断コストを減らすということ
ここで、もう一つ考えておきたいことがあります。それは、判断にはコストがかかるということです。
- ログを確認する
- 通信を調査する
- ルールを追加する
- 例外を設定する
- 設定変更が既存のサービスに与える影響を検討する。
どれも必要な仕事ですが、すべてを毎回、人間がゼロから判断していたら、運用は成り立ちません。だからこそ、機械に任せられる仕事は機械に任せます。
ファイアウォールで不要な通信を遮断する。SSHへの接続元を制限する。WAFでリクエストを検査する。ログを記録し、異常の調査に必要な情報を残す。
これらは、人間の仕事を奪うための仕組みではありません。人間が判断しなければならない場面に、時間と注意力を残すための仕組みです。
人間が判断すべきことと、あらかじめ仕組みに任せられることを分ける。
これもまた、セキュリティ運用の重要な仕事だと考えています。
- 壁を作る
- 壁を点検する
- 壁に任せられることは壁に任せる
- そして、壁だけでは防げないことに、人間の注意を向ける
この繰り返しによって、日々の運用に必要な判断を減らしながら、必要な安全性を維持していきたいです。
壁を作り替えるために壊すことも必要です
先般、筆者が直面した「php2shell」(CVE-2026-109618、CVE-2026-109619)。
これのために筆者が選んだ方法は「アップデートが確定するまで、php-fpmを止め、アップデートを確認してから再開させる」でした。
これは筆者にとっては矛盾ではなく、「嵐に出航し、難破するよりは安全な港に停泊して嵐が過ぎるのを待つ」方がサーバを守るからです。
言うなれば、古い壁が風雨に耐えられそうにない。なので一度真新しくするため壊すというのもメンテナンスの一つです。
おわりに
セキュリティ対策というと、最新の防御技術や、攻撃者との攻防に目が向きがちです。しかし、セキュリティの価値は、必ずしも派手な出来事の中にあるわけではありません。
何事もなくサービスが動き続けること。利用者が安心して使えること。運用者が異常に気づき、必要な対応を取れること。
それらが維持されているなら、そこにはセキュリティ対策の価値があります。
壁一枚でも、壁があることで防げるものがあります。そして、その壁を長持ちさせるために手入れをすることは、何もしないよりもずっと有用です。
ファイアウォールも、WAFも、アクセス制御も、ログ監視も、それぞれが万能の解決策ではありません。それでも、それぞれが役割を果たし、適切に維持されていれば、システムの安全性を支えるものになります。
セキュリティとは、何があっても破られない壁を夢見ることではなく、必要な壁を作り、その壁が役割を果たし続けるように手入れをすることです。
そして、その先にあるのは、防御そのものを誇ることではありません。
利用者が安心してサービスを使い、運用者が必要な仕事に集中できる、「なんてことないサーバの、なんてことない管理者の」当たり前の日常です。
コメントを残す