$30 off During Our Annual Pro Sale. View Details »

スタートアップサービスでもやれる!Kubernetesを使ったセキュアWebアプリの構築と運用

 スタートアップサービスでもやれる!Kubernetesを使ったセキュアWebアプリの構築と運用

2019/7/22 Cloud Native Days Tokyo 2019での、藤原の講演資料になります

Recruit Technologies

July 22, 2019
Tweet

More Decks by Recruit Technologies

Other Decks in Technology

Transcript

  1. スタートアップサービスでもやれる!
    Kubernetesを使った
    セキュアWebアプリの構築と運用
    1
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    株式会社リクルートテクノロジーズ
    ITエンジニアリング本部
    プロダクティビティエンジニアリング部
    クラウドアーキテクトグループ
    藤原 涼馬

    View Slide

  2. リクルートグループの紹介
    2
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    創業 1960年3月31日 「大学新聞広告社」としてスタート
    グループ
    従業員数
    45,856名 (2019年3月31日時点)
    連結売上高 23,107億円 (2018年4月1日~2019年3月31日)
    連結営業利益 2,230億円 (2018年4月1日~2019年3月31日)
    グループ
    企業数
    344社 (子会社および関連会社、2019年3月31日時点)
    目指す世界観 「あなた」を支える存在でありたい

    View Slide

  3. 事業内容の紹介
    3
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    3
    ライフイベント領域
    進学
    就職
    結婚
    転職
    住宅購⼊
    ⾞購⼊
    出産/育児
    旅⾏
    ビジネス⽀援
    ⽣活/地域情報
    グルメ・美容
    ライフスタイル領域
    選択・意思決定を⽀援する情報サービスを提供し、
    「まだ、ここにない、出会い。」を実現する。

    View Slide

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

    View Slide

  5. 注意
    5
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    本発表内容はあくまでも
    ノウハウ・考え方等の共有を
    目的としたものであり、所属組織としての
    全体方針・見解を表すものではありません

    View Slide

  6. 自己紹介 (藤原 涼馬)
    藤原 涼馬
    株式会社リクルートテクノロジーズ
    ITエンジニアリング本部プロダクティビティエンジニアリング部
    クラウドアーキテクトグループ
    経歴
    2011-2015 ユーザ系SIer にてR&D
    2016/1~ リクルートテクノロジーズに入社
    主な活動(社外含む)
    • コンテナ・クラウド等の先進アーキテクチャの事業への装着
    • Rancher JPコアメンバー
    • 各種勉強会登壇 (Rancher JP meetup, Docker meetup tokyo, Japan Container Days, Cloud Native Daysほか)
    • 寄稿 @IT 先行事例に学ぶKubernetes 企業活用の現実・コンテナベースのCI/CD本番事例大解剖,
    ThinkIT マルチクラウド時代の最強コンビRancherによるKubernetes活用ガイド)
    • 執筆
    • RancherによるKubernetes活用ガイド(Think IT Books, インプレス)
    6
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  7. 目次
    • テーマ1 Webアプリケーションセキュリティについての基本の整理
    • テーマ2 Kubernetesとクラウドを活用したWebアプリケーションセキュ
    リティ機能の実装と運用
    7
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  8. テーマ1
    Webアプリケーションセキュリティの基本の整理
    8
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  9. Webアプリケーションのセキュリティ?
    セキュリティと言われて思い浮かぶこと
    9
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    SQLインジェクション
    OSコマンドインジェクション

    View Slide

  10. Webアプリケーションのセキュリティ?
    セキュリティと言われて思い浮かぶこと
    10
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    SQLインジェクション
    OSコマンドインジェクション
    単にセキュリティと言ってしまうと
    スコープが広くなりすぎるので大きく絞って説明

    View Slide

  11. Webアプリケーションのセキュリティ対策
    Webアプリケーションの外部攻撃へのセキュリティ対策を
    考えると主に2つの対策がある
    1. アプリケーションそのものを堅牢にする
    2. アプリケーションを別の方法で保護する
    11
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  12. Webアプリケーションのセキュリティ
    Webアプリケーションのセキュリティを考えると主に2つ
    の対策がある
    1. アプリケーションそのものを堅牢にする
    2. アプリケーションを別の方法で保護する
    12
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  13. 1. アプリケーションそのものを堅牢にする
    • セキュアコーディングによって脆弱性の少ないコード記
    述をすることで安全なアプリケーションを実現する
    13
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    参考
    JPCERT CC
    https://www.jpcert.or.jp/securecoding/
    体系的に学ぶ 安全なWebアプリケーションの作り方
    脆弱性が生まれる原理と対策の実践 第2版
    (徳丸 浩著, SB Creative刊)

    View Slide

  14. 1. アプリケーションそのものを堅牢にする
    • セキュアコーディングによって脆弱性の少ないコード記
    述をすることで安全なアプリケーションを実現する
    14
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    参考
    JPCERT CC
    https://www.jpcert.or.jp/securecoding/
    体系的に学ぶ 安全なWebアプリケーションの作り方
    脆弱性が生まれる原理と対策の実践 第2版
    (徳丸 浩著, SB Creative刊)
    これで安全なアプリケーションは実現できる!

    View Slide

  15. 1. アプリケーションそのものを堅牢にする
    • セキュアコーディングによって脆弱性の少ないコード記
    述をすることで安全なアプリケーションを実現する
    15
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    参考
    JPCERT CC
    https://www.jpcert.or.jp/securecoding/
    体系的に学ぶ 安全なWebアプリケーションの作り方
    脆弱性が生まれる原理と対策の実践 第2版
    (徳丸 浩著, SB Creative刊)
    これで安全なアプリケーションは実現できる!
    わけない

    View Slide

  16. 1. アプリケーションそのものを堅牢にする
    程度の差こそあれ、人は必ず実装ミスをする
    &
    アプリケーションの脆弱性は簡単には根本対策できない
    (脆弱性の特定 & 回避策の適用 & コード変更による既存機能への影響がないことの確認、
    そもそもコード自体が自分たちの管理配下にあるのか?
    ひとまず他でワークアラウンドする対応も必要になる)
    16
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  17. 1. アプリケーションそのものを堅牢にする
    程度の差こそあれ、人は必ず実装ミスをする
    &
    アプリケーションの脆弱性は簡単には根本対策できない
    (脆弱性の特定 & 回避策の適用 & コード変更による既存機能への影響がないことの確認、
    そもそもコード自体が自分たちの管理配下にあるのか?
    ひとまず他でワークアラウンドする対応も必要になる)
    17
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    もちろんセキュアコーディングは大事だが、
    もう一段の対策をする

    View Slide

  18. Webアプリケーションのセキュリティ
    Webアプリケーションのセキュリティを考えると主に2つ
    の対策が出てきます。
    1. アプリケーションそのものを堅牢にする
    2. アプリケーションを別の方法で保護する
    18
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    これがもう一段の対策

    View Slide

  19. 2. アプリケーションを別の方法で保護する
    一般的には、
    1. Webアプリケーションファイアウォール(WAF)
    2. 不正侵入検知システム(IDS)
    を利用することが多い
    19
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  20. 2. アプリケーションを別の方法で保護する
    一般的には、
    1. Webアプリケーションファイアウォール(WAF)
    2. 不正侵入検知システム(IDS)
    を利用することが多い
    20
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    WAF, IDSがどんなものかわかってる方
    ノシ
    わかってる方しかいない場合は数スライド飛ばします

    View Slide

  21. WAFとは
    • Webアプリケーションに特化したファイアウォール
    • リクエストのヘッダ・ボディの内容をチェックして悪意
    のあるリクエストに対してリクエストをブロックしたり、
    アラートをあげたりする
    21
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    悪意のある
    リクエスト
    通常の
    リクエスト
    問題ないので通過
    怪しいので
    ブロック&アラート
    WAF
    Web
    アプリケーション
    ※ 悪意のあるリクエストが具体的にどんなものなのかは徳丸本などを参照

    View Slide

  22. IDSとは
    • ネットワークにおける怪しい挙動がないかを確認・検知す
    るツール
    • ポートスキャンやsyn floodなどの検知を行う(WAFに近い機能を持つものもある)
    • 外向け通信で怪しい通信を行なっていないかも確認する場合がある
    22
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    サーバ
    IDS
    サーバ
    IDS
    怪しい
    パケット
    怪しいパケットが
    飛んできたので通知しよう
    外部の怪しい
    サーバ
    このサーバ、
    なんか変なプロセス
    動いてない……?
    (C&Cサーバと通信してるんだけど)
    外部からの怪しい通信の検知 外向けの怪しい通信の検知

    View Slide

  23. WAFとIDSについての留意点
    • WAF/IDSをうまく利用することでアプリケーションをよ
    りセキュアにできる
    • WAF/IDSは万能薬ではない
    • 一般的には検知ルールを作成、適用することで利用する
    • もちろん広く配布されているルールがある!
    • あくまでも頻出パターンを整理したものであって全てをカバーす
    ることはできない(誤検知もある!)
    • 例えば、定番の攻撃のブロック、すぐに修正できない脆弱性への
    ワークアラウンドといった形で活用できる
    • セキュアコーディングや適切なインフラ設定をすることは大前提
    23
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  24. WAFとIDSについての留意点
    • WAF/IDSをうまく利用することでアプリケーションを
    よりセキュアにできる
    • WAF/IDSは万能薬ではない
    • 一般的には検知ルールを作成、適用することで利用する
    • もちろん広く配布されているルールがある!
    • あくまでも頻出パターンを整理したものであって全てをカバーす
    ることはできない(誤検知もある!)
    • 例えば、定番の攻撃のブロック、すぐに修正できない脆弱性への
    ワークアラウンドといった形で活用できる
    • セキュアコーディングや適切なインフラ設定をすることは大前提
    24
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    ここまでで基本を整理

    View Slide

  25. テーマ2
    Kubernetesとクラウドを活用した
    Webアプリケーションセキュリティ機能の実装と運用
    25
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  26. 本セッションでのKubernetesとセキュリティ
    Kubernetes固有のセキュリティの話題
    • RBAC
    • NetworkPolicyなどなど
    Kubernetesとパブリッククラウドで
    セキュリティ機能の導入と運用を楽にする
    スコープ外
    スコープ内

    View Slide

  27. 本セッションでのKubernetesとセキュリティ
    Kubernetes固有のセキュリティの話題
    • RBAC
    • NetworkPolicyなどなど
    Kubernetesとパブリッククラウドで
    セキュリティ機能の導入と運用を楽にする
    スコープ外
    スコープ内
    • https://github.com/ahmetb/kubernetes-network-policy-recipes
    • https://github.com/IBM/rbac-in-k8s
    • https://kubernetes.io/docs/reference/access-authn-authz/rbac/
    RBACについての参考
    NetworkPolicyについての参考

    View Slide

  28. 本セッションでのKubernetesとセキュリティ
    Kubernetes固有のセキュリティの話題
    • RBAC
    • NetworkPolicyなどなど
    Kubernetesとパブリッククラウドで
    セキュリティ機能の導入と運用を楽にする
    スコープ外
    スコープ内
    これ以降はこちらについて解説

    View Slide

  29. セキュリティ機能の導入と運用における基本方針
    • 導入の基本方針
    • 容易かつ、確実に大量のツール導入が可能であること
    • 運用の基本方針
    • 検知ルールを容易かつ、確実に適用できること
    • 適用時にサービスに影響するダウンタイムがないこと
    • 監査・通知プロセスにかかる人的コストがサービスの
    規模に比例しないこと
    29
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  30. 導入と運用における基本方針
    • 導入の基本方針
    • 容易かつ、確実に大量のツール導入が可能であること
    • 運用の基本方針
    • 検知ルールを容易かつ、確実に適用できること
    • 適用時にサービスに影響するダウンタイムがないこと
    • 監査・通知プロセスにかかる人的コストがサービスの
    規模に比例しないこと
    30
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    コンテナ/k8sの得意領域

    View Slide

  31. 導入と運用における基本方針
    • 導入の基本方針
    • 容易かつ、確実に大量のツール導入が可能であること
    • 運用の基本方針
    • 検知ルールを容易かつ、確実に適用できること
    • 適用時にサービスに影響するダウンタイムがないこと
    • 監査・通知プロセスにかかる人的コストがサービスの
    規模に比例しないこと
    31
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    コンテナ/k8sの得意領域
    少しだけ工夫が必要

    View Slide

  32. WAFの導入と運用について
    32
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  33. WAFの選定
    WAFのソリューションは多く存在、OSSプロダクトもいく
    つか存在する
    今回はOSSのプロダクトとしてModSecurity(より正確には
    ModSecurity-nginxを利用)
    33
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    https://modsecurity.org/
    https://github.com/SpiderLabs/ModSecurity-nginx

    View Slide

  34. ModSecurity-nginx の選定理由
    ① OSSであること
    – “ひとまず”試してみることが可能
    ② システム構成を変更することなく、品質の向上を図れそう
    – 長期的視点で見たときの運用
    34
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  35. ModSecurity-nginx の選定理由
    ① OSSであること
    – ひとまず試してみることが可能
    ② システム構成を変更することなく、品質の向上を図れそう
    – 長期的視点で見たときの運用
    35
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    要補足

    View Slide

  36. システムの構成を変更することなく品質向上を図る
    ModSecurity-nginxを利用した登り方として以下のような
    想定ができる
    36
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    1st Step
    or
    2nd Step
    WAF
    3rd Step

    View Slide

  37. システムの構成を変更することなく品質向上を図る
    ModSecurity-nginxを利用した登り方として以下のような
    想定ができる
    37
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    1st Step
    or
    2nd Step
    WAF
    3rd Step
    WAFに
    ついて知る
    (開発環境での運用トレーニン
    グ・フィジビリ導入)

    View Slide

  38. システムの構成を変更することなく品質向上を図る
    ModSecurity-nginxを利用した登り方として以下のような
    想定ができる
    38
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    1st Step
    or
    2nd Step
    WAF
    3rd Step
    WAFに
    ついて知る
    (開発環境での運用トレーニン
    グ・フィジビリ導入)
    商用ルールの導入による
    Techサポート取得
    (ある程度の規模での導入と本格利用
    & サポート活用による組織内工数コスト減)

    View Slide

  39. システムの構成を変更することなく品質向上を図る
    ModSecurity-nginxを利用した登り方として以下のような
    想定ができる
    39
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    1st Step
    or
    2nd Step
    WAF
    3rd Step
    WAFに
    ついて知る
    (開発環境での運用トレーニン
    グ・フィジビリ導入)
    商用ルールの導入による
    Techサポート取得
    (ある程度の規模での導入と本格利用
    & サポート活用による組織内工数コスト減)
    CDN上のWAF活用
    (WAFの処理リソースの外部化
    & DDoS耐性向上、サポート活
    用による組織内工数コスト減)

    View Slide

  40. ModSecurity-nginx の課題
    OSSではあるので、本格的な商用製品と比較すると運用面で
    劣る部分はある
    ① ルールのアップデート
    ② ルールの管理(不要ルールの除外・カスタムルールの追加)
    ③ アラートの仕組み
    • おそらくこの3つが商用製品との大きな違い
    • デフォルトかつ実装容易な形ではこの部分の機能は提供していない
    40
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  49. IDSの導入と運用について
    49
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  53. IDSのデプロイ方式① Kubernetesのノードにインストール
    • メリット
    • 導入事例が豊富(=間違いなく動作する…はず)
    • デメリット
    • ノードに対する前提条件が増える
    • (1台だけ入れ忘れたりしても気付きづらい)
    53
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  54. IDSのデプロイ方式② Podとしてデプロイする
    • メリット(詳細は後述)
    • ノードに対する前提条件が減る
    • スケールアウトが容易になる
    • デメリット
    • 事例があまりないので実際に動かせるのか怪しい
    54
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  55. IDSのデプロイ方式
    ① Kubernetesのノード(VM)にインストール
    ② Podとして実現させる
    55
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    実現できた場合のメリットの大きい②を
    検証&選択

    View Slide

  56. PodとしてIDSを導入するチャレンジ(検証結果)
    Kubernetesであれば容易に解決できた
    • hostNetwork: true で対応できる
    • Kubernetesのノード側ネットワークをPodに見せる
    • セキュリティポリシなどに依存する部分になるので注意
    • Kubernetes as a Serviceの提供形態次第では使えない
    • 少なくともGKEでは利用できることを確認済み
    • DaemonSet
    • IDSのノードへの導入し忘れを予防できる
    56
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    (キーワード)
    hostNetwork: true & DaemonSet

    View Slide

  57. IDSにおけるルールのアップデート・管理/アラートの仕組み
    WAFの場合と同様にサイドカーコンテナを活用する
    57
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  58. Kubernetesを活用したWebアプリケーションセキュリティ実装
    • 容易に取り組みを始めることは可能
    • 今や基本的なセキュリティ対策としてWAFやIDSは必須
    • 導入自体は困難ではない
    • 導入よりも
    運用の手間を如何に下げるか
    (≒人間が対応する単純作業を減らす)
    ということに注力すべき
    58
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  59. Kubernetesの外側のセキュリティはどうするか
    WAFとIDSを活用してKubernetes上で動作するWebアプ
    リケーションのセキュリティを高めることについては説明
    した。
    59
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  60. Kubernetesの外側のセキュリティはどうするか
    WAFとIDSを活用してKubernetes上で動作するWebアプ
    リケーションのセキュリティを高めることについては説明
    した。
    では、
    Kuberenetesの外側のセキュリティ
    はどうするか?
    60
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  61. Kubernetesの外側
    守りたいものは”情報”。
    つまり情報をためこんでいる場所を守りたい。
    61
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  62. Kubernetesの外側
    守りたいものは”情報”。
    つまり情報をためこんでいる場所を守りたい。
    62
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    オブジェクト
    ストレージ
    RDB KVS
    Amazon S3
    GCS
    RDS
    CloudSQL
    ElastiCache, DynamoDB
    Cloud memorystore

    View Slide

  63. Kubernetesの外側
    守りたいものは”情報”。
    つまり情報をためこんでいる場所を守りたい。
    63
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    オブジェクト
    ストレージ
    RDB KVS
    Amazon S3
    GCS
    RDS
    CloudSQL
    ElastiCache, DynamoDB
    Cloud memorystore
    予防 … 各種アクセス制御設定&テストを頑張る

    View Slide

  64. Kubernetesの外側
    守りたいものは”情報”。
    つまり情報をためこんでいる場所を守りたい。
    64
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    オブジェクト
    ストレージ
    RDB KVS
    Amazon S3
    GCS
    RDS
    CloudSQL
    ElastiCache, DynamoDB
    Cloud memorystore
    予防 … 各種アクセス制御設定&テストを頑張る
    監査 … どうするかは後述

    View Slide

  65. どうやって監査するか
    今回は例としてGCPの場合で説明(ほぼ同等の内容はAWSでも実現可能)
    65
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  66. どうやって監査するか
    今回は例としてGCPの場合で説明(ほぼ同等の内容はAWSでも実現可能)
    監査から結果通知までの一連の流れの自動化は必須
    66
    (C) Recruit Technologies Co.,Ltd. All rights reserved.

    View Slide

  67. どうやって監査するか
    今回は例としてGCPの場合で説明(ほぼ同等の内容はAWSでも実現可能)
    監査から結果通知までの一連の流れの自動化は必須
    67
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    常時人が介在する必要はない。
    異常を検知した際に動けるようにしておく

    View Slide

  68. オブジェクトストレージの監査例
    オブジェクトストレージのアクセスログを監査する
    68
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    監査対象
    バケット
    Stackdriver
    Logging
    アクセスログ
    格納バケット
    Cloud
    Function
    バケットのアクセスログを
    Stackdriver Loggingにいれる
    Stackdriverから
    格納バケットにsinkする
    定期的にログが出力される
    たびに監査 & Slackなどに
    結果を通知
    普段と異なるアクセス元からの
    アクセス、異なる認証情報での
    アクセスがないかを確認

    View Slide

  69. CloudSQLの監査例
    CloudSQLの監査例
    69
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    監査対象
    CloudSQL
    インスタンス
    Stackdriver
    Logging
    監査ログ
    格納バケット
    Cloud
    Function
    認証ログ・クエリログ※を
    Stackdriver Loggingにいれる
    Stackdriverから
    格納バケットにsinkする
    定期的にログが出力される
    たびに監査 & Slackなどに
    結果を通知
    普段と異なるアクセス元からのアクセス、
    異なる認証情報でのアクセスをチェック
    (+ できれば通常と異なるSQLの実行がないかを確認)
    ※ クエリログについてはインスタンスの性能影響に注意すること

    View Slide

  70. Cloud memorystoreの監査の例
    VPCフローログから普段と異なるアクセスを監査する
    70
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    Stackdriver
    Logging
    アクセスログ
    格納バケット
    Cloud
    Function
    Stackdriverから
    格納バケットにsinkする
    定期的にログが出力される
    たびに監査 & Slackなどに
    結果を通知
    普段と異なるアクセス元からの
    アクセスがないかを確認
    VPC
    VPCフローログ※
    をStackdriver Loggingにいれる
    ※ VPCフローログは容量が大きいのでログ
    のフィルタ条件などによって不要なログが
    連携されないよう調整は必要

    View Slide

  71. 一般化できる
    71
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    Stackdriver
    Logging
    アクセスログ
    格納バケット
    Cloud
    Function
    アクセスログを
    バケットに
    エクスポート
    CloudFunctionで
    ログをチェック
    & 結果通知
    普段と異なるアクセス傾向
    がないかを確認
    ログの
    ソース
    アクセスログの出力&
    Stackdriver Loggingへの格納
    自動化されているので、問題を検知した時だけ
    人が調査すればいい仕組みを実現できる

    View Slide

  72. まとめ
    • Kubernetesを活用してWAF/IDSを効率的に導入・運用す
    ることは可能
    • 長期的な視点で何を重視するかを考えてツールの選定は行いましょう
    • サイドカーなどの分散システムのデザインパターンを活用しましょう
    • ただし、ルール更新や監査・アラート通知で自動化の工夫は必要
    • セキュリティ系ログの監査
    • パブリッククラウドの諸機能を使って自動化することで効率的に運用する
    ことは可能
    72
    (C) Recruit Technologies Co.,Ltd. All rights reserved.
    セキュリティ機能(WAF/IDS)の効率的な導入と運用、ログ監査の効率化は、
    Kubernetesとパブリッククラウドを組み合わせることで実現可能です。
    是非一度試してみてはいかがでしょうか?

    View Slide

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

    View Slide