この記事は「正解」を示すものではなく、SREとして日々インフラに関わる中で感じた個人的な考えです。セキュリティを体系的に学びたい方は、専門の書籍や公式ドキュメントもあわせて参照してください。
最近、ソフトウェアの脆弱性をきっかけにしたセキュリティ事案が続いています。ニュースを見ながら「外部に公開しているサービスは、結局どう守ればいいのか」を改めて考えたので、2つの視点でまとめてみました。
1. アップデートは「作業」ではなく「備え」
古いまま放置すると、いざという時にすぐ直せない
今どきのシステム開発では、オープンソースのライブラリやフレームワークを数多く組み合わせて使います。これらは機能追加やセキュリティ対応のために随時更新されています。
本来なら更新が出るたびに反映するのが理想です。ただ、1つのシステムで数十種類のライブラリを使うことも珍しくなく、現場では「ある程度溜めてから、作業の合間にまとめて更新する」という運用になりがちでした。
いちばん危ないのは「大きく溜めること」
| 更新のしかた | 特徴 |
|---|---|
| こまめな更新 | 1回の変更が小さく、問題が出てもすぐ直せる |
| まとめて更新 | 変更量が大きく、リスクと作業時間が膨らむ |
私自身、以前担当していたシステムで、かなり古いバージョンの言語ランタイムを最新系に上げるのに大変苦労した経験があります。バージョンの差が大きいほど、互換性の確認や修正の範囲が広がり、場合によってはサービスを止めて作業する必要も出てきます。
最近の脆弱性騒ぎを見ていても、すぐに対応できたところと、できなかったところの差は、普段からバージョンを追従していたかどうかに表れていたように感じます。緊急時ほど、平時の積み重ねが効いてきます。
これからは「合間にやる」から「定期的にやる」へ
- 平時からサポート対象のバージョンを維持する
- 更新を「空いた時間の作業」ではなく「定期的な運用」として組み込む
- 小さな更新を続けて、いつでも直せる状態を保つ
2. セキュリティは「家の防犯」に近い
少し話が変わりますが、家の防犯の話です。
近年、強盗や窃盗のニュースを目にすることが増え、近所の家がどんな防犯対策をしているのか、つい気になって見るようになりました。眺めていると、大きく3つのタイプに分かれます。
| タイプ | 内容 | 特徴 |
|---|---|---|
| 高めに守る | 警備会社のホームセキュリティに加入 | コストは高いが、異常時に駆けつけてもらえて安心 |
| 自前で守る | 防犯カメラを設置し、自分でモニタリング | コストは抑えられるが、手間がかかる |
| 最低限 | 鍵と基本的な対策のみ | 割り切り |
身内にも、費用面から警備会社との契約をやめて、自分で防犯カメラを付けて見守るようにした家があります。どれが正しいというより、それぞれの事情で選んでいるわけです。
システムも「何を守るか」で設計が変わる
これはシステムのセキュリティ対策とよく似ています。
- フルガード(クラウド + WAF + 監視サービス)
警備会社に任せるように、セキュリティの多くを外部に委託する考え方です。AWSなどの大手クラウドは基本的なセキュリティ機能が揃っており、ガイドに沿って構成すれば一般的な水準のセキュリティを確保しやすくなります。その分、コストはかかります。 - 自前運用(自前構築 + 個別対策 + 自前監視)
安価なサービスや自前の環境を選ぶ方法です。コストは抑えられますが、提供されていない対策は自分たちで補う必要があります。 - 割り切り
決済情報や個人情報を扱わず、壊れても困らないシンプルなシステムなら、「何かあったら作り直す」と割り切るのも一つの選択です。
ただし、どのレベルであっても最低限の「更新」「認証」「監視」は、何もしないでは済みません。個人で作ったものでも、知らないうちに悪意ある第三者に目を付けられることはあります。せめて「外から見られている」ことに気付ける仕組み(監視)は持っておきたいところです。
保護レベルに応じて、次の要素をどう組み合わせるかを設計することが大切だと考えています。
- クラウド:土台となる基本的な防御
- WAF:盾
- 監視:目
- 認証:鍵
3. 「何が困るか」を先にそろえる
家庭ごとに事情が違うように、警備会社に頼むか、カメラを付けるか、何もしないかは、その家の暮らしや気持ちによって決まります。
- 盗まれて困るもの(現金・貴重品)はあるか
- 家の周りに不審な人がいるか
- どこまでやれば家族が安心できるか
そして、どれだけ努力しても防犯には限度があります。武装した集団まで想定すれば、常駐の警備員を何人も置くことになり、現実的ではありません。
システムも同じで、まず次の2点を関係者でそろえることが出発点になると考えています。
- 止まると困るか?(可用性)
- 漏れると困るか?(機密性)
そのうえで、「誰が・どこまで困るのか」をもとに、被害とコストのバランスを話し合う。お互いが納得できるラインを決めることが、技術的な対策と同じくらい大切だと思います。
まとめ
- 更新し続けることが、いちばんの備え
- 守るレベルは、被害とコストで決める
- 技術だけでなく、関係者の合意形成が大切
セキュリティ対策に「これで完璧」というゴールはありません。だからこそ、日々の小さな更新を積み重ね、守るべきものとかけられるコストを関係者で共有しておくことが、いざという時の差になるのだと感じています。