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

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

4631864606a93224804a49331d1a7dfd?s=128

Ryoma Fujiwara

February 21, 2019
Tweet

Transcript

  1. 4.

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

    リクルートテクノロジーズ IT・マーケティング ソリューション ビジネス視点の ITマネジメント 横断的にソリューションを提供 上記は対象企業・サービスの⼀部抜粋です。
  2. 5.

    注意 5 (C) Recruit Technologies Co.,Ltd. All rights reserved. 本発表内容は特定プロジェクトにおける

    取り組み内容および、発表者が取り組みを 進める際に考えたことであり、 所属組織としての全体⽅針・⾒解を 表すものではありません
  3. 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.
  4. 20.

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

    事業の成⻑ コ ス ト OSSセキュリティソフトウェア 無償版ルールの活⽤ による低コストスタート セキュリティベンダ提供の 有償版ルールへの切り替え (or 全⾯的な商⽤製品への切り替え) セキュリティ品質向上 専任のセキュリティエンジニ ア、外部サービスの活⽤ によるセキュリティ品質向上
  5. 21.

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

    事業の成⻑ コ ス ト OSSセキュリティソフトウェア 無償版ルールの活⽤ による低コストスタート セキュリティベンダ提供の 有償版ルールへの切り替え (or 全⾯的な商⽤製品への切り替え) セキュリティ品質向上 専任のセキュリティエンジニ ア、外部サービスの活⽤ によるセキュリティ品質向上
  6. 23.

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

    rights reserved. ないならつくる 商⽤製品までとは⾏かないまでもなんとか運⽤が回るであろうものを作る 以降は、この内容を説明
  7. 26.

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

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

    ModSecurity-nginx の課題 ① ルールのアップデート ② ルールの管理(不要ルールの除外・カスタムルールの追加) ③ アラートの仕組み • おそらくこの3つが商⽤製品との⼤きな違い

    • デフォルトかつ実装容易な形ではこの部分の機能は提供していない 32 (C) Recruit Technologies Co.,Ltd. All rights reserved. どのようにして対応するかを解説
  9. 34.

    (課題への対応) ① ルールのアップデート ②ルールの管理 サイドカーパターンを利⽤してルールの更新をかける 34 (C) Recruit Technologies Co.,Ltd.

    All rights reserved. ModSecurity-nginx rule-updater (crond) ModSecurity CRS Custom Rule (ConfigMap) ①最新ルールを 取得して配置
  10. 35.

    (課題への対応) ① ルールのアップデート ②ルールの管理 サイドカーパターンを利⽤してルールの更新をかける 35 (C) Recruit Technologies Co.,Ltd.

    All rights reserved. ModSecurity-nginx rule-updater (crond) ModSecurity CRS Custom Rule (ConfigMap) ①最新ルールを 取得して配置 ②カスタムルールを アップデート
  11. 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)
  12. 38.

    (課題への対応) ③ アラートの仕組み クラウドサービスと組み合わせることでアラートについて は解決できる 38 (C) Recruit Technologies Co.,Ltd.

    All rights reserved. ModSecurity -nginx 検知ログ アラート (to Slack, mail, PagerDuty) あらゆるメトリクス・⾮メトリクス 情報をここに集約 (⼤事なのは集約すること、 ”何かあればまずここを⾒る”場所 を作る)
  13. 39.

    (課題への対応) ③ アラートの仕組み クラウドサービスと組み合わせることでアラートについて は解決できる 39 (C) Recruit Technologies Co.,Ltd.

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

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

    All rights reserved. (メリット) 導⼊事例が多くある (デメリット) ノードに対する前提条件が増える (メリット) ノードに対する前提条件が減る・スケールアウト時の⼿間削減 (デメリット) 本当に動かせるのか怪しい
  15. 45.

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

    All rights reserved. (メリット) 導⼊事例が多くある (デメリット) ノードに対する前提条件が増える (メリット) ノードに対する前提条件が減る・スケールアウト時の⼿間削減 (デメリット) 本当に動かせるのか怪しい 技術的な難易度は⾼そうだが、 スケーラビリティなどを考え るとこちらに軍配。 検証してみた。
  16. 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.
  17. 48.

    最後に • セキュリティについての取り組みはあらゆるサービスで必要 • 投資可能な範囲の中で最⼤限の取り組みをする • 対応する/しない ではなく、 どの程度/どこまでするか という問題

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