Engineer Group Manager 兼、SRE Group Managerの前田(@glidenote)です。いつもmemolist.vimを使って頂いてありがとうございます。
B2B向けサービスを提供していると、お客様企業との契約時にサービス、インフラのセキュリティに関する質問表(セキュリティチェックシート)の提出を求められ、少ないところで数十個、多い会社だと数百個のチェック項目がきます。
今回はこれまで数百社のセキュリティチェックに回答してきて、よく聞かれる事項に対し、どのように対応しているかをまとめてみます。 各種レイヤーで対応しておりますが、今回はインフラレイヤーの話になります。
3行まとめ
- B2B向けサービスを提供していると、契約時にセキュリティチェックを受ける
- 各社必ず聞かれる事項は決まっているので、そこに対しては最初からしっかり対応をしておくと後々楽になる
- セキュリティチェックの対応は大変だが、しっかり対応していくことで、より堅牢なシステムが出来上がる
脆弱性診断の実施
情報セキュリティについて定期的な診断を実施している。
これはどの会社のセキュリティチェックでも聞かれます。 外部のセキュリティ専門会社にお願いしてリクエストベース、コードベースの診断で1回数百万〜みたいな価格帯なのでコストが結構かかり、Production環境相当の診断専用環境を用意したり、診断中に仕様や挙動に関するやりとりが発生するので人員コストもかなりかかります。
またセキュリティ専門会社で得手不得手の分野があったり、新しい攻撃手法はどんどん出てくるので、複数社に診断をお願いをし、いろんな観点から診断をして貰っています。
セキュアなネットワーク上でのインフラ構築
外部ネットワークから内部ネットワークを隠ぺいするため、非武装セグメント(DMZ)を設置している。
AWS上にインフラを構築しているため、Amazon VPCを利用してパブリック、プライベートネットワークを分け、運用業務にはAWS Systems Manager Session Managerを利用。ロードバランサや踏み台サーバを用意するなど外部から内部インフラに直接アクセス出来ないようにして対応。
監査ログの取得、保存、改ざん防止
定期的にアクセスログ・認証ログ等を分析し、不正アクセスや情報窃取・改ざん等、その試行を検出し、適切な対応を行う必要がある。 調査・証拠保全の観点から各種ログの消失・改ざん等から保護する対応方法(例えば、ログが保存されているディスクの切り離し保管など)を定めておく必要がある。
クラウドサービスだと監査ログ機能があるので、
- 有効にする
- 削除が出来ないようにする
- ログの監視
などを設定。
クラウドサービス以外に自社開発のサービス内、サーバ上の監査ログも必要とされるので、auditdなどのミドルウェア導入し、Datadog Logsと組み合わせてログ管理をしている。
アカウントの管理、棚卸し
各人に付与しているアカウントが管理されているか。 退職者のアカウントが残っていないか。
入社、退社、部署異動などの際のフローを決めて、アカウント作成、削除、変更の作業ログを記録する。
またアカウントの削除作業の漏れが発生しても、長期間放置されないよう、四半期ごとに棚卸し作業を実施。
アカウントがIaCで管理出来るのであればGit管理しておくと、作業ログの提出を求められたときも楽。
セキュリティパッチの適用ポリシー、運用
インターネットに公開している情報システムにて利用しているソフトウェアに対しては、既知のセキュリティホール対策が施されたバージョンを利用している。 情報システムへの脆弱性対策として、必要に応じパッチ適用等の対応を速やかに実施している。
セキュリティパッチの適用ポリシーを策定、それをしっかり運用して対応していく。 セキュリティアップデートの自動チェックの仕組みを作って、緊急度を分類し、影響度を調査し、適用していく形で対応。 当社は自前で仕組みを用意していますが、AWS Systems Manager Patch Managerでも同様の事が出来るかと思います。
ストレージ、データベースの暗号化
情報を格納しているストレージ、データベースに対しては、暗号化対策を実装している。
これはAWS上でインフラを構築していれば、各種ストレージ、データベース側で暗号化オプションなどが有るので、そちらを利用。 アプリケーション層でも対応が必要なので、そちらも対応する。今回はインフラの話なので割愛します。
障害、セキュリティインシデント発生時の対応マニュアル作成、訓練
緊急時対応計画に基づき、重要な情報システムの故障や災害発生等を考慮し、演習/訓練等を行うこと。
障害やセキュリティインシデントが発生した際の
- 対応マニュアルを作成
- 定期的に訓練
- バックアップからのリストアなども実施
で対応。
担当者の頭のなかにだけ対応方法が存在するという場合が多々あるので、ドキュメント化し、四半期ごとに定期訓練で対応。
カオスエンジニアリングを導入して、「勝手に壊れて、自動復旧どやっ!」みたいなのは出来てませんが、冗長構成出来る箇所は全て対応し、最重要インフラに関しては、複数リージョンでインフラを構成しているので、1AZが落ちてもサービス継続には支障がないように対応。
上記はセキュリティチェックのごく一部で、その他にも大量のチェック項目があり、創業間もないころ、この手の対応に不慣れだった時期はセキュリティチェック対応はかなり苦労をしました。
ただ一つずつしっかり対応していって、現在では新規取引の際にもセキュリティチェックで引っかかることがなくなり、結果的には堅牢なシステムが出来上がり、個人的にも勘所も掴め勉強になりました。
B2Bサービスのインフラ運用に関わる人の参考になれば幸いです。