Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetesとセキュリティ ~事業フェーズに合わせたセキュリティ対策の登り方と実装~

Kubernetesとセキュリティ ~事業フェーズに合わせたセキュリティ対策の登り方と実装~

2019/02/21 F5 TechExchangeでの、藤原の講演資料になります

Recruit Technologies

February 21, 2019
Tweet

More Decks by Recruit Technologies

Other Decks in Technology

Transcript

  1. Kubernetesとセキュリティ ~事業フェーズに合わせたセキュリティ対策の登り方と実装~ 1 (C) Recruit Technologies Co.,Ltd. All rights reserved.

    株式会社リクルートテクノロジーズ ITエンジニアリング本部 システムオペレーションエンジニアリング部 プロジェクト基盤グループ 藤原 涼馬
  2. 所属組織の紹介:リクルートテクノロジーズ 4 (C) Recruit Technologies Co.,Ltd. All rights reserved. リクルートグループのビジネス・サービス

    リクルートテクノロジーズ IT・マーケティング ソリューション ビジネス視点の ITマネジメント 横断的にソリューションを提供 上記は対象企業・サービスの一部抜粋です。
  3. 注意 5 (C) Recruit Technologies Co.,Ltd. All rights reserved. 本発表内容は特定プロジェクトにおける

    取り組み内容および、発表者が取り組みを 進める際に考えたことであり、 所属組織としての全体方針・見解を 表すものではありません
  4. 自己紹介 (藤原 涼馬) 藤原 涼馬 株式会社リクルートテクノロジーズ ITエンジニアリング本部サービスオペレーションエンジニアリング部 プロジェクト基盤G 経歴 2011-2015

    ユーザ系SIer にてR&D 2016/1〜 リクルートテクノロジーズに入社 主な活動(社外含む) • コンテナ・クラウド等の先進アーキテクチャの事業への装着 • Rancher JPコアメンバー • 各種勉強会登壇 (Rancher JP meetup, Docker meetup tokyo) • 寄稿(@IT 先行事例に学ぶKubernetes 企業活用の現実) 6 (C) Recruit Technologies Co.,Ltd. All rights reserved.
  5. 要求されるセキュリティとコスト、サービス規模の関係を考える サービスの成長に合わせたセキュリティ品質の向上施策を考えた 20 (C) Recruit Technologies Co.,Ltd. All rights reserved.

    事業の成長 コ ス ト OSSセキュリティソフトウェア 無償版ルールの活用 による低コストスタート セキュリティベンダ提供の 有償版ルールへの切り替え (or 全面的な商用製品への切り替え) セキュリティ品質向上 専任のセキュリティエンジニ ア、外部サービスの活用 によるセキュリティ品質向上
  6. 要求されるセキュリティとコスト、サービス規模の関係を考える サービスの成長に合わせたセキュリティ品質の向上施策を考えた 21 (C) Recruit Technologies Co.,Ltd. All rights reserved.

    事業の成長 コ ス ト OSSセキュリティソフトウェア 無償版ルールの活用 による低コストスタート セキュリティベンダ提供の 有償版ルールへの切り替え (or 全面的な商用製品への切り替え) セキュリティ品質向上 専任のセキュリティエンジニ ア、外部サービスの活用 によるセキュリティ品質向上
  7. OSSと商用製品の差 OSSと商用製品の差は、 • 運用支援機能 23 (C) Recruit Technologies Co.,Ltd. All

    rights reserved. ないならつくる 商用製品までとは行かないまでもなんとか運用が回るであろうものを作る 以降は、この内容を説明
  8. セキュリティの運用 1. プロダクトのデプロイ 2. 検知ルールの運用 – 基本ルールのアップデート – 不要なルールの除外 –

    カスタムルールの追加 3. 検知とアラーティング 4. アラートを受け取った後の対応 (ここからは純粋にプロセスの話になるので除外) 26 (C) Recruit Technologies Co.,Ltd. All rights reserved. 以降は1, 2, 3について解説
  9. ModSecurity-nginx の選定理由 ① OSSであること – もろもろ目をつぶれば初期コストは低い ② システム構成を変更することなく、品質の向上を図れること – 利用するファイアウォールのルール、運用のレベルアップを図れる

    – e.g. OWASP ModSecurity CRS -> SpiderLabs Commercial -> Fastly WAF 31 (C) Recruit Technologies Co.,Ltd. All rights reserved. 事業の成長 コ ス ト OSSセキュリティソフトウェア 無償版ルールの活用 による低コストスタート セキュリティベンダ提供の 有償版ルールへの切り替え (or 全面的な商用製品への切り替え) セキュ リ ティ 品質向上 専任のセキュリティエンジニ ア、外部サービスの活用 によるセキュ リ ティ 品質向上
  10. ModSecurity-nginx の課題 ① ルールのアップデート ② ルールの管理(不要ルールの除外・カスタムルールの追加) ③ アラートの仕組み • おそらくこの3つが商用製品との大きな違い

    • デフォルトかつ実装容易な形ではこの部分の機能は提供していない 32 (C) Recruit Technologies Co.,Ltd. All rights reserved. どのようにして対応するかを解説
  11. (課題への対応) ① ルールのアップデート ②ルールの管理 サイドカーパターンを利用してルールの更新をかける 34 (C) Recruit Technologies Co.,Ltd.

    All rights reserved. ModSecurity-nginx rule-updater (crond) ModSecurity CRS Custom Rule (ConfigMap) ①最新ルールを 取得して配置
  12. (課題への対応) ① ルールのアップデート ②ルールの管理 サイドカーパターンを利用してルールの更新をかける 35 (C) Recruit Technologies Co.,Ltd.

    All rights reserved. ModSecurity-nginx rule-updater (crond) ModSecurity CRS Custom Rule (ConfigMap) ①最新ルールを 取得して配置 ②カスタムルールを アップデート
  13. (課題への対応) ① ルールのアップデート ②ルールの管理 サイドカーパターンを利用してルールの更新をかける 36 (C) Recruit Technologies Co.,Ltd.

    All rights reserved. ModSecurity-nginx rule-updater (crond) ModSecurity CRS Custom Rule (ConfigMap) ①最新ルールを 取得して配置 ②カスタムルールを アップデート ③設定の再読み込みをキック (kill –HUP with hostPID: true)
  14. (課題への対応) ③ アラートの仕組み クラウドサービスと組み合わせることでアラートについて は解決できる 38 (C) Recruit Technologies Co.,Ltd.

    All rights reserved. ModSecurity -nginx 検知ログ アラート (to Slack, mail, PagerDuty) あらゆるメトリクス・非メトリクス 情報をここに集約 (大事なのは集約すること、 ”何かあればまずここを見る”場所 を作る)
  15. (課題への対応) ③ アラートの仕組み クラウドサービスと組み合わせることでアラートについて は解決できる 39 (C) Recruit Technologies Co.,Ltd.

    All rights reserved. ModSecurity -nginx 検知ログ アラート (to Slack, mail, PagerDuty) あらゆるメトリクス・非メトリクス 情報をここに集約 (大事なのは集約すること、 ”何かあればまずここを見る”場所 を作る) クラウドサービスとの組み合わせにより、 不足部分は完全ではないものの、低コストでカバーできる (逆に言えばクラウドサービスに求められるのはこの部分を容易に作ることができる仕組み ただ”オンデマンドで計算資源を確保”というのは当たり前かつ、古い)
  16. IDSのデプロイ方式 ① Kubernetesのノード(VM)にインストール ② Podとして実現させる 44 (C) Recruit Technologies Co.,Ltd.

    All rights reserved. (メリット) 導入事例が多くある (デメリット) ノードに対する前提条件が増える (メリット) ノードに対する前提条件が減る・スケールアウト時の手間削減 (デメリット) 本当に動かせるのか怪しい
  17. IDSのデプロイ方式 ① Kubernetesのノード(VM)にインストール ② Podとして実現させる 45 (C) Recruit Technologies Co.,Ltd.

    All rights reserved. (メリット) 導入事例が多くある (デメリット) ノードに対する前提条件が増える (メリット) ノードに対する前提条件が減る・スケールアウト時の手間削減 (デメリット) 本当に動かせるのか怪しい 技術的な難易度は高そうだが、 スケーラビリティなどを考え るとこちらに軍配。 検証してみた。
  18. PodとしてIDSを導入するチャレンジ(検証結果) • Kubernetesであれば容易に解決 • DaemonSet + hostNetwork: true で対応できる •

    Kubernetesのノード側ネットワークをPodに見せる • セキュリティポリシなどに依存する部分になるので注意 • Kubernetes as a Service提供形態次第では使えない (namespace as a serviceなど) • ルールアップデート、アラートの仕組みはWAFの場合と 同じ • hostNetwork: trueに伴うハマりどころ(名前解決やコンテナ間ネット ワーキングなど)は多少あるので注意 46 (C) Recruit Technologies Co.,Ltd. All rights reserved.
  19. 最後に • セキュリティについての取り組みはあらゆるサービスで必要 • 投資可能な範囲の中で最大限の取り組みをする • 対応する/しない ではなく、 どの程度/どこまでするか という問題

    • Kubernetesとクラウドサービスを組み合わせれば人の手間 は大きくかけることなく、導入と運用の仕組みは実現できる • 導入自体は容易、運用の手間を如何に削減するかが重要 48 (C) Recruit Technologies Co.,Ltd. All rights reserved.