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

F5 Tech Exchange 登壇資料 Kubernetesとセキュリティ

F5 Tech Exchange 登壇資料 Kubernetesとセキュリティ

4631864606a93224804a49331d1a7dfd?s=128

Ryoma Fujiwara

February 21, 2019
Tweet

Transcript

  1. Kubernetesとセキュリティ ~事業フェーズに合わせたセキュリティ対策の登り⽅と実装~ 1 (C) Recruit TechnologiesCo.,Ltd. All rights reserved. 株式会社リクルートテクノロジーズ

    ITΤϯδχΞϦϯάຊ෦ ŢţũŷśųƅƀŖŢŔƃŚƃŢƄŬŗžƃŞƄ෦ ϓϩδΣΫτج൫άϧʔϓ ౻ݪ ྋഅ
  2. 会社紹介: リクルート 2 (C) Recruit Technologies Co.,Ltd. All rights reserved.

  3. 事業内容の紹介 3 (C) Recruit Technologies Co.,Ltd. All rights reserved.

  4. 所属組織の紹介:リクルートテクノロジーズ 4 (C) Recruit Technologies Co.,Ltd. All rights reserved. リクルートグループのビジネス・サービス

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

    取り組み内容および、発表者が取り組みを 進める際に考えたことであり、 所属組織としての全体⽅針・⾒解を 表すものではありません
  6. ⾃⼰紹介 (藤原 涼⾺) 藤原 涼⾺ 株式会社リクルートテクノロジーズ 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.
  7. ⽬次 • 事例の紹介と新規サービスにおけるセキュリティ課題と対策 • 新規サービスでのセキュリティの登り⽅ • 3種の神器 • デプロイと運⽤を考える •

    サービスの成⻑に合わせたパワーアップ • まとめ 7 (C) Recruit Technologies Co.,Ltd. All rights reserved.
  8. 事例の紹介と新規サービス におけるセキュリティ課題と対策 8 (C) Recruit TechnologiesCo.,Ltd. All rights reserved.

  9. 事例 現在構築中の”新規Webサービス”です 具体的なサービス内容は私からは何も話せません 9 (C) Recruit Technologies Co.,Ltd. All rights

    reserved.
  10. 金と人海戦術で解決 本⽇のテーマ セキュリティ について新規サービスにおける課題 10 (C) Recruit Technologies Co.,Ltd. All

    rights reserved.
  11. 金と人海戦術で解決 本⽇のテーマ セキュリティ について新規サービスにおける課題 11 (C) Recruit Technologies Co.,Ltd. All

    rights reserved. 無理
  12. 新規サービスにおけるセキュリティの⽴ち位置 お⾦は⽣まない しかし⼀定⽔準のものは必須 12 (C) Recruit Technologies Co.,Ltd. All rights

    reserved.
  13. 新規サービスにおけるセキュリティの⽴ち位置 お⾦は⽣まない しかし⼀定⽔準のものは必須 13 (C) Recruit Technologies Co.,Ltd. All rights

    reserved.
  14. 新規サービスにおけるセキュリティの⽴ち位置 しかし⼀定⽔準のものは必須 14 (C) Recruit Technologies Co.,Ltd. All rights reserved.

    現実的な観点で考えていくことが必要
  15. 要求されるセキュリティとコスト、サービス規模の関係を考える サービス規模とセキュリティとして必要なコストなどを考えてみる 15 (C) Recruit Technologies Co.,Ltd. All rights reserved.

    αʔϏεͷن໛(≒ ࣾձతӨڹ) ί ε τ
  16. 要求されるセキュリティとコスト、サービス規模の関係を考える サービス規模とセキュリティとして必要なコストなどを考えてみる 16 (C) Recruit Technologies Co.,Ltd. All rights reserved.

    αʔϏεͷن໛(≒ ࣾձతӨڹ) ί ε τ (⼤前提) サービスが成⻑すれば負担可能なセキュリティコストは増える
  17. 要求されるセキュリティとコスト、サービス規模の関係を考える セキュリティコストが負担可能な範囲を超えると サービスとして継続できない 17 (C) Recruit Technologies Co.,Ltd. All rights

    reserved. αʔϏεͷن໛(≒ ࣾձతӨڹ) ί ε τ
  18. 18 (C) Recruit Technologies Co.,Ltd. All rights reserved. 必要なセキュリティ品質を確保しつつ サービスが投資に耐えられる範囲内に収めるには

  19. 基本⽅針 1. 初期投資を抑えつつ必要なセキュリティを確保 2. サービスの成⻑に合わせて必要な形に切り替える 19 (C) Recruit Technologies Co.,Ltd.

    All rights reserved. OSSの活⽤ サービスの成⻑に合わせた セキュリティ設計の⾒直し
  20. 要求されるセキュリティとコスト、サービス規模の関係を考える サービスの成⻑に合わせたセキュリティ品質の向上施策を考えた 20 (C) Recruit Technologies Co.,Ltd. All rights reserved.

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

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

    rights reserved.
  23. OSSと商⽤製品の差 OSSと商⽤製品の差は、 • 運⽤⽀援機能 23 (C) Recruit Technologies Co.,Ltd. All

    rights reserved. ないならつくる 商⽤製品までとは⾏かないまでもなんとか運⽤が回るであろうものを作る 以降は、この内容を説明
  24. Kubernetesとセキュリティ 24 (C) Recruit TechnologiesCo.,Ltd. All rights reserved.

  25. 本セッションでのKubernetesとセキュリティ Kubernetes固有のセキュリティの話題 • RBAC • NetworkPolicyなどなど KubernetesとパブリッククラウドでWebアプリ ケーションセキュリティの構築と運⽤を楽にする

  26. セキュリティの運⽤ 1. プロダクトのデプロイ 2. 検知ルールの運⽤ – 基本ルールのアップデート – 不要なルールの除外 –

    カスタムルールの追加 3. 検知とアラーティング 4. アラートを受け取った後の対応 (ここからは純粋にプロセスの話になるので除外) 26 (C) Recruit Technologies Co.,Ltd. All rights reserved. 以降は1, 2, 3について解説
  27. Webアプリケーションにおけるセキュリティ 1. WAF (ウェブアプリケーションファイアウォール) 2. IDS(侵⼊検知システム) 3. NWF(ネットワークフォレンジック) 27 (C)

    Recruit Technologies Co.,Ltd. All rights reserved.
  28. Webアプリケーションにおけるセキュリティ 1. WAF (ウェブアプリケーションファイアウォール) 2. IDS(侵⼊検知システム) 3. NWF(ネットワークフォレンジック) 28 (C)

    Recruit Technologies Co.,Ltd. All rights reserved. WAFとIDSの導⼊と運⽤について解説する
  29. WAFの導⼊と運⽤について 29 (C) Recruit TechnologiesCo.,Ltd. All rights reserved.

  30. WAF 世間にWAFのソリューションは多く存在、OSSプロダクト もいくつか存在する 今回はOSSのプロダクトとしてModSecurity(より正確には ModSecurity-nginxを利⽤) 30 (C) Recruit Technologies Co.,Ltd.

    All rights reserved. https://modsecurity.org/ https://github.com/SpiderLabs/ModSecurity-nginx
  31. ModSecurity-nginx の選定理由 ① OSSであること – もろもろ⽬をつぶれば初期コストは低い ② システム構成を変更することなく、品質の向上を図れること – 利⽤するファイアウォールのルール、運⽤のレベルアップを図れる

    – e.g. OWASP ModSecurity CRS -> SpiderLabs Commercial -> Fastly WAF 31 (C) Recruit Technologies Co.,Ltd. All rights reserved. O S ) (   S )  
  32. ModSecurity-nginx の課題 ① ルールのアップデート ② ルールの管理(不要ルールの除外・カスタムルールの追加) ③ アラートの仕組み • おそらくこの3つが商⽤製品との⼤きな違い

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

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

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

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

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

    All rights reserved. ModSecurity -nginx 検知ログ アラート (to Slack, mail, PagerDuty)
  38. (課題への対応) ③ アラートの仕組み クラウドサービスと組み合わせることでアラートについて は解決できる 38 (C) Recruit Technologies Co.,Ltd.

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

    All rights reserved. ModSecurity -nginx 検知ログ アラート (to Slack, mail, PagerDuty) あらゆるメトリクス・⾮メトリクス 情報をここに集約 (⼤事なのは集約すること、 ”何かあればまずここを⾒る”場所 を作る) クラウドサービスとの組み合わせにより、 不⾜部分は完全ではないものの、低コストでカバーできる (逆に⾔えばクラウドサービスに求められるのはこの部分を容易に作ることができる仕組み ただ”オンデマンドで計算資源を確保”というのは当たり前かつ、古い)
  40. IDSの導⼊と運⽤について 40 (C) Recruit TechnologiesCo.,Ltd. All rights reserved.

  41. IDS • WAFと同様にIDSも商⽤製品が存在 • OSSについても同様に存在 • OSSプロダクトが抱えている課題もほぼ同様 ① ルールのアップデート ②

    ルールの管理(不要ルールの除外・カスタムルールの追加) ③ アラートの仕組み
  42. Suricataの選定理由 ① oinkmasterを⽤いたルールアップデートの容易化 ② 本家snortよりも継続的なエンジン本体の更新 42 (C) Recruit Technologies Co.,Ltd.

    All rights reserved.
  43. IDSのデプロイ⽅式 ① Kubernetesのノード(VM)にインストール ② Podとして実現させる 43 (C) Recruit Technologies Co.,Ltd.

    All rights reserved.
  44. IDSのデプロイ⽅式 ① Kubernetesのノード(VM)にインストール ② Podとして実現させる 44 (C) Recruit Technologies Co.,Ltd.

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

    All rights reserved. (メリット) 導⼊事例が多くある (デメリット) ノードに対する前提条件が増える (メリット) ノードに対する前提条件が減る・スケールアウト時の⼿間削減 (デメリット) 本当に動かせるのか怪しい 技術的な難易度は⾼そうだが、 スケーラビリティなどを考え るとこちらに軍配。 検証してみた。
  46. 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.
  47. Kubernetesとセキュリティまとめ • 低コストで取り組みを始めることは可能 • 今や基本的なセキュリティ対策としてWAFやIDSは必須 • 導⼊⾃体は困難ではない • 導⼊よりも運⽤の⼿間を如何に下げる (≒⼈間がサーバ上で対応する複雑な作業を減らす)

    かということに注⼒すべき 47 (C) Recruit Technologies Co.,Ltd. All rights reserved.
  48. 最後に • セキュリティについての取り組みはあらゆるサービスで必要 • 投資可能な範囲の中で最⼤限の取り組みをする • 対応する/しない ではなく、 どの程度/どこまでするか という問題

    • Kubernetesとクラウドサービスを組み合わせれば⼈の⼿間 は⼤きくかけることなく、導⼊と運⽤の仕組みは実現できる • 導⼊⾃体は容易、運⽤の⼿間を如何に削減するかが重要 48 (C) Recruit Technologies Co.,Ltd. All rights reserved.
  49. ご清聴ありがとうございました 49 (C) Recruit Technologies Co.,Ltd. All rights reserved.