Slide 1

Slide 1 text

Kubernetesとセキュリティ ~事業フェーズに合わせたセキュリティ対策の登り⽅と実装~ 1 (C) Recruit TechnologiesCo.,Ltd. All rights reserved. 株式会社リクルートテクノロジーズ ITΤϯδχΞϦϯάຊ෦ ŢţũŷśųƅƀŖŢŔƃŚƃŢƄŬŗžƃŞƄ෦ ϓϩδΣΫτج൫άϧʔϓ ౻ݪ ྋഅ

Slide 2

Slide 2 text

会社紹介: リクルート 2 (C) Recruit Technologies Co.,Ltd. All rights reserved.

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

所属組織の紹介:リクルートテクノロジーズ 4 (C) Recruit Technologies Co.,Ltd. All rights reserved. リクルートグループのビジネス・サービス リクルートテクノロジーズ IT・マーケティング ソリューション ビジネス視点の ITマネジメント 横断的にソリューションを提供 上記は対象企業・サービスの⼀部抜粋です。

Slide 5

Slide 5 text

注意 5 (C) Recruit Technologies Co.,Ltd. All rights reserved. 本発表内容は特定プロジェクトにおける 取り組み内容および、発表者が取り組みを 進める際に考えたことであり、 所属組織としての全体⽅針・⾒解を 表すものではありません

Slide 6

Slide 6 text

⾃⼰紹介 (藤原 涼⾺) 藤原 涼⾺ 株式会社リクルートテクノロジーズ 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.

Slide 7

Slide 7 text

⽬次 • 事例の紹介と新規サービスにおけるセキュリティ課題と対策 • 新規サービスでのセキュリティの登り⽅ • 3種の神器 • デプロイと運⽤を考える • サービスの成⻑に合わせたパワーアップ • まとめ 7 (C) Recruit Technologies Co.,Ltd. All rights reserved.

Slide 8

Slide 8 text

事例の紹介と新規サービス におけるセキュリティ課題と対策 8 (C) Recruit TechnologiesCo.,Ltd. All rights reserved.

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

新規サービスにおけるセキュリティの⽴ち位置 しかし⼀定⽔準のものは必須 14 (C) Recruit Technologies Co.,Ltd. All rights reserved. 現実的な観点で考えていくことが必要

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

18 (C) Recruit Technologies Co.,Ltd. All rights reserved. 必要なセキュリティ品質を確保しつつ サービスが投資に耐えられる範囲内に収めるには

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

OSSと商⽤製品の差 OSSと商⽤製品の差は、 • 運⽤⽀援機能 23 (C) Recruit Technologies Co.,Ltd. All rights reserved. ないならつくる 商⽤製品までとは⾏かないまでもなんとか運⽤が回るであろうものを作る 以降は、この内容を説明

Slide 24

Slide 24 text

Kubernetesとセキュリティ 24 (C) Recruit TechnologiesCo.,Ltd. All rights reserved.

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

セキュリティの運⽤ 1. プロダクトのデプロイ 2. 検知ルールの運⽤ – 基本ルールのアップデート – 不要なルールの除外 – カスタムルールの追加 3. 検知とアラーティング 4. アラートを受け取った後の対応 (ここからは純粋にプロセスの話になるので除外) 26 (C) Recruit Technologies Co.,Ltd. All rights reserved. 以降は1, 2, 3について解説

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

WAFの導⼊と運⽤について 29 (C) Recruit TechnologiesCo.,Ltd. All rights reserved.

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

ModSecurity-nginx の選定理由 ① OSSであること – もろもろ⽬をつぶれば初期コストは低い ② システム構成を変更することなく、品質の向上を図れること – 利⽤するファイアウォールのルール、運⽤のレベルアップを図れる – e.g. OWASP ModSecurity CRS -> SpiderLabs Commercial -> Fastly WAF 31 (C) Recruit Technologies Co.,Ltd. All rights reserved. O S ) ( S )

Slide 32

Slide 32 text

ModSecurity-nginx の課題 ① ルールのアップデート ② ルールの管理(不要ルールの除外・カスタムルールの追加) ③ アラートの仕組み • おそらくこの3つが商⽤製品との⼤きな違い • デフォルトかつ実装容易な形ではこの部分の機能は提供していない 32 (C) Recruit Technologies Co.,Ltd. All rights reserved. どのようにして対応するかを解説

Slide 33

Slide 33 text

(課題への対応) ① ルールのアップデート ②ルールの管理 サイドカーパターンを利⽤してルールの更新・追加をでき る仕組みを実現する 33 (C) Recruit Technologies Co.,Ltd. All rights reserved. ModSecurity-nginx rule-updater (crond) ModSecurity CRS Custom Rule (ConfigMap)

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

IDSの導⼊と運⽤について 40 (C) Recruit TechnologiesCo.,Ltd. All rights reserved.

Slide 41

Slide 41 text

IDS • WAFと同様にIDSも商⽤製品が存在 • OSSについても同様に存在 • OSSプロダクトが抱えている課題もほぼ同様 ① ルールのアップデート ② ルールの管理(不要ルールの除外・カスタムルールの追加) ③ アラートの仕組み

Slide 42

Slide 42 text

Suricataの選定理由 ① oinkmasterを⽤いたルールアップデートの容易化 ② 本家snortよりも継続的なエンジン本体の更新 42 (C) Recruit Technologies Co.,Ltd. All rights reserved.

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

IDSのデプロイ⽅式 ① Kubernetesのノード(VM)にインストール ② Podとして実現させる 45 (C) Recruit Technologies Co.,Ltd. All rights reserved. (メリット) 導⼊事例が多くある (デメリット) ノードに対する前提条件が増える (メリット) ノードに対する前提条件が減る・スケールアウト時の⼿間削減 (デメリット) 本当に動かせるのか怪しい 技術的な難易度は⾼そうだが、 スケーラビリティなどを考え るとこちらに軍配。 検証してみた。

Slide 46

Slide 46 text

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.

Slide 47

Slide 47 text

Kubernetesとセキュリティまとめ • 低コストで取り組みを始めることは可能 • 今や基本的なセキュリティ対策としてWAFやIDSは必須 • 導⼊⾃体は困難ではない • 導⼊よりも運⽤の⼿間を如何に下げる (≒⼈間がサーバ上で対応する複雑な作業を減らす) かということに注⼒すべき 47 (C) Recruit Technologies Co.,Ltd. All rights reserved.

Slide 48

Slide 48 text

最後に • セキュリティについての取り組みはあらゆるサービスで必要 • 投資可能な範囲の中で最⼤限の取り組みをする • 対応する/しない ではなく、 どの程度/どこまでするか という問題 • Kubernetesとクラウドサービスを組み合わせれば⼈の⼿間 は⼤きくかけることなく、導⼊と運⽤の仕組みは実現できる • 導⼊⾃体は容易、運⽤の⼿間を如何に削減するかが重要 48 (C) Recruit Technologies Co.,Ltd. All rights reserved.

Slide 49

Slide 49 text

ご清聴ありがとうございました 49 (C) Recruit Technologies Co.,Ltd. All rights reserved.