Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
スタートアップサービスでもやれる!Kubernetesを使ったセキュアWebアプリの構築と運用
Search
Recruit Technologies
July 22, 2019
Technology
2
1.1k
スタートアップサービスでもやれる!Kubernetesを使ったセキュアWebアプリの構築と運用
2019/7/22 Cloud Native Days Tokyo 2019での、藤原の講演資料になります
Recruit Technologies
July 22, 2019
Tweet
Share
More Decks by Recruit Technologies
See All by Recruit Technologies
障害はチャンスだ! 障害を前向きに捉える
rtechkouhou
1
640
Flutter移行の苦労と、乗り越えた先に得られたもの
rtechkouhou
3
11k
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
rtechkouhou
1
1.5k
大規模環境をAWS Transit Gatewayで設計/移行する前に考える3つのポイントと移行への挑戦
rtechkouhou
1
1.9k
【61期 新人BootCamp】TOC入門
rtechkouhou
3
41k
【RTC新人研修 】 TPS
rtechkouhou
1
41k
Android Boot Camp 2020
rtechkouhou
0
41k
HTML/CSS
rtechkouhou
10
50k
TypeScript Bootcamp 2020
rtechkouhou
9
45k
Other Decks in Technology
See All in Technology
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
230
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
Platform Engineering for Software Developers and Architects
syntasso
1
520
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
800
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
Lambdaと地方とコミュニティ
miu_crescent
2
370
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
9
910
フルカイテン株式会社 採用資料
fullkaiten
0
40k
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
110
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.1k
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Practical Orchestrator
shlominoach
186
10k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
A better future with KSS
kneath
238
17k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Documentation Writing (for coders)
carmenintech
65
4.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
How to Ace a Technical Interview
jacobian
276
23k
Teambox: Starting and Learning
jrom
133
8.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Transcript
スタートアップサービスでもやれる! Kubernetesを使った セキュアWebアプリの構築と運用 1 (C) Recruit Technologies Co.,Ltd. All rights
reserved. 株式会社リクルートテクノロジーズ ITエンジニアリング本部 プロダクティビティエンジニアリング部 クラウドアーキテクトグループ 藤原 涼馬
リクルートグループの紹介 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日時点) 目指す世界観 「あなた」を支える存在でありたい
事業内容の紹介 3 (C) Recruit Technologies Co.,Ltd. All rights reserved. 3
ライフイベント領域 進学 就職 結婚 転職 住宅購⼊ ⾞購⼊ 出産/育児 旅⾏ ビジネス⽀援 ⽣活/地域情報 グルメ・美容 ライフスタイル領域 選択・意思決定を⽀援する情報サービスを提供し、 「まだ、ここにない、出会い。」を実現する。
所属組織の紹介:リクルートテクノロジーズ 4 (C) Recruit Technologies Co.,Ltd. All rights reserved. リクルートグループのビジネス・サービス
リクルートテクノロジーズ IT・マーケティング ソリューション ビジネス視点の ITマネジメント 横断的にソリューションを提供 上記は対象企業・サービスの一部抜粋です。
注意 5 (C) Recruit Technologies Co.,Ltd. All rights reserved. 本発表内容はあくまでも
ノウハウ・考え方等の共有を 目的としたものであり、所属組織としての 全体方針・見解を表すものではありません
自己紹介 (藤原 涼馬) 藤原 涼馬 株式会社リクルートテクノロジーズ 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.
目次 • テーマ1 Webアプリケーションセキュリティについての基本の整理 • テーマ2 Kubernetesとクラウドを活用したWebアプリケーションセキュ リティ機能の実装と運用 7 (C)
Recruit Technologies Co.,Ltd. All rights reserved.
テーマ1 Webアプリケーションセキュリティの基本の整理 8 (C) Recruit Technologies Co.,Ltd. All rights reserved.
Webアプリケーションのセキュリティ? セキュリティと言われて思い浮かぶこと 9 (C) Recruit Technologies Co.,Ltd. All rights reserved.
SQLインジェクション OSコマンドインジェクション
Webアプリケーションのセキュリティ? セキュリティと言われて思い浮かぶこと 10 (C) Recruit Technologies Co.,Ltd. All rights reserved.
SQLインジェクション OSコマンドインジェクション 単にセキュリティと言ってしまうと スコープが広くなりすぎるので大きく絞って説明
Webアプリケーションのセキュリティ対策 Webアプリケーションの外部攻撃へのセキュリティ対策を 考えると主に2つの対策がある 1. アプリケーションそのものを堅牢にする 2. アプリケーションを別の方法で保護する 11 (C) Recruit
Technologies Co.,Ltd. All rights reserved.
Webアプリケーションのセキュリティ Webアプリケーションのセキュリティを考えると主に2つ の対策がある 1. アプリケーションそのものを堅牢にする 2. アプリケーションを別の方法で保護する 12 (C) Recruit
Technologies Co.,Ltd. All rights reserved.
1. アプリケーションそのものを堅牢にする • セキュアコーディングによって脆弱性の少ないコード記 述をすることで安全なアプリケーションを実現する 13 (C) Recruit Technologies Co.,Ltd.
All rights reserved. 参考 JPCERT CC https://www.jpcert.or.jp/securecoding/ 体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践 第2版 (徳丸 浩著, SB Creative刊)
1. アプリケーションそのものを堅牢にする • セキュアコーディングによって脆弱性の少ないコード記 述をすることで安全なアプリケーションを実現する 14 (C) Recruit Technologies Co.,Ltd.
All rights reserved. 参考 JPCERT CC https://www.jpcert.or.jp/securecoding/ 体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践 第2版 (徳丸 浩著, SB Creative刊) これで安全なアプリケーションは実現できる!
1. アプリケーションそのものを堅牢にする • セキュアコーディングによって脆弱性の少ないコード記 述をすることで安全なアプリケーションを実現する 15 (C) Recruit Technologies Co.,Ltd.
All rights reserved. 参考 JPCERT CC https://www.jpcert.or.jp/securecoding/ 体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践 第2版 (徳丸 浩著, SB Creative刊) これで安全なアプリケーションは実現できる! わけない
1. アプリケーションそのものを堅牢にする 程度の差こそあれ、人は必ず実装ミスをする & アプリケーションの脆弱性は簡単には根本対策できない (脆弱性の特定 & 回避策の適用 & コード変更による既存機能への影響がないことの確認、
そもそもコード自体が自分たちの管理配下にあるのか? ひとまず他でワークアラウンドする対応も必要になる) 16 (C) Recruit Technologies Co.,Ltd. All rights reserved.
1. アプリケーションそのものを堅牢にする 程度の差こそあれ、人は必ず実装ミスをする & アプリケーションの脆弱性は簡単には根本対策できない (脆弱性の特定 & 回避策の適用 & コード変更による既存機能への影響がないことの確認、
そもそもコード自体が自分たちの管理配下にあるのか? ひとまず他でワークアラウンドする対応も必要になる) 17 (C) Recruit Technologies Co.,Ltd. All rights reserved. もちろんセキュアコーディングは大事だが、 もう一段の対策をする
Webアプリケーションのセキュリティ Webアプリケーションのセキュリティを考えると主に2つ の対策が出てきます。 1. アプリケーションそのものを堅牢にする 2. アプリケーションを別の方法で保護する 18 (C) Recruit
Technologies Co.,Ltd. All rights reserved. これがもう一段の対策
2. アプリケーションを別の方法で保護する 一般的には、 1. Webアプリケーションファイアウォール(WAF) 2. 不正侵入検知システム(IDS) を利用することが多い 19 (C)
Recruit Technologies Co.,Ltd. All rights reserved.
2. アプリケーションを別の方法で保護する 一般的には、 1. Webアプリケーションファイアウォール(WAF) 2. 不正侵入検知システム(IDS) を利用することが多い 20 (C)
Recruit Technologies Co.,Ltd. All rights reserved. WAF, IDSがどんなものかわかってる方 ノシ わかってる方しかいない場合は数スライド飛ばします
WAFとは • Webアプリケーションに特化したファイアウォール • リクエストのヘッダ・ボディの内容をチェックして悪意 のあるリクエストに対してリクエストをブロックしたり、 アラートをあげたりする 21 (C) Recruit
Technologies Co.,Ltd. All rights reserved. 悪意のある リクエスト 通常の リクエスト 問題ないので通過 怪しいので ブロック&アラート WAF Web アプリケーション ※ 悪意のあるリクエストが具体的にどんなものなのかは徳丸本などを参照
IDSとは • ネットワークにおける怪しい挙動がないかを確認・検知す るツール • ポートスキャンやsyn floodなどの検知を行う(WAFに近い機能を持つものもある) • 外向け通信で怪しい通信を行なっていないかも確認する場合がある 22
(C) Recruit Technologies Co.,Ltd. All rights reserved. サーバ IDS サーバ IDS 怪しい パケット 怪しいパケットが 飛んできたので通知しよう 外部の怪しい サーバ このサーバ、 なんか変なプロセス 動いてない……? (C&Cサーバと通信してるんだけど) 外部からの怪しい通信の検知 外向けの怪しい通信の検知
WAFとIDSについての留意点 • WAF/IDSをうまく利用することでアプリケーションをよ りセキュアにできる • WAF/IDSは万能薬ではない • 一般的には検知ルールを作成、適用することで利用する • もちろん広く配布されているルールがある!
• あくまでも頻出パターンを整理したものであって全てをカバーす ることはできない(誤検知もある!) • 例えば、定番の攻撃のブロック、すぐに修正できない脆弱性への ワークアラウンドといった形で活用できる • セキュアコーディングや適切なインフラ設定をすることは大前提 23 (C) Recruit Technologies Co.,Ltd. All rights reserved.
WAFとIDSについての留意点 • WAF/IDSをうまく利用することでアプリケーションを よりセキュアにできる • WAF/IDSは万能薬ではない • 一般的には検知ルールを作成、適用することで利用する • もちろん広く配布されているルールがある!
• あくまでも頻出パターンを整理したものであって全てをカバーす ることはできない(誤検知もある!) • 例えば、定番の攻撃のブロック、すぐに修正できない脆弱性への ワークアラウンドといった形で活用できる • セキュアコーディングや適切なインフラ設定をすることは大前提 24 (C) Recruit Technologies Co.,Ltd. All rights reserved. ここまでで基本を整理
テーマ2 Kubernetesとクラウドを活用した Webアプリケーションセキュリティ機能の実装と運用 25 (C) Recruit Technologies Co.,Ltd. All rights
reserved.
本セッションでのKubernetesとセキュリティ Kubernetes固有のセキュリティの話題 • RBAC • NetworkPolicyなどなど Kubernetesとパブリッククラウドで セキュリティ機能の導入と運用を楽にする スコープ外 スコープ内
本セッションでの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についての参考
本セッションでのKubernetesとセキュリティ Kubernetes固有のセキュリティの話題 • RBAC • NetworkPolicyなどなど Kubernetesとパブリッククラウドで セキュリティ機能の導入と運用を楽にする スコープ外 スコープ内
これ以降はこちらについて解説
セキュリティ機能の導入と運用における基本方針 • 導入の基本方針 • 容易かつ、確実に大量のツール導入が可能であること • 運用の基本方針 • 検知ルールを容易かつ、確実に適用できること •
適用時にサービスに影響するダウンタイムがないこと • 監査・通知プロセスにかかる人的コストがサービスの 規模に比例しないこと 29 (C) Recruit Technologies Co.,Ltd. All rights reserved.
導入と運用における基本方針 • 導入の基本方針 • 容易かつ、確実に大量のツール導入が可能であること • 運用の基本方針 • 検知ルールを容易かつ、確実に適用できること •
適用時にサービスに影響するダウンタイムがないこと • 監査・通知プロセスにかかる人的コストがサービスの 規模に比例しないこと 30 (C) Recruit Technologies Co.,Ltd. All rights reserved. コンテナ/k8sの得意領域
導入と運用における基本方針 • 導入の基本方針 • 容易かつ、確実に大量のツール導入が可能であること • 運用の基本方針 • 検知ルールを容易かつ、確実に適用できること •
適用時にサービスに影響するダウンタイムがないこと • 監査・通知プロセスにかかる人的コストがサービスの 規模に比例しないこと 31 (C) Recruit Technologies Co.,Ltd. All rights reserved. コンテナ/k8sの得意領域 少しだけ工夫が必要
WAFの導入と運用について 32 (C) Recruit Technologies Co.,Ltd. All rights reserved.
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
ModSecurity-nginx の選定理由 ① OSSであること – “ひとまず”試してみることが可能 ② システム構成を変更することなく、品質の向上を図れそう – 長期的視点で見たときの運用
34 (C) Recruit Technologies Co.,Ltd. All rights reserved.
ModSecurity-nginx の選定理由 ① OSSであること – ひとまず試してみることが可能 ② システム構成を変更することなく、品質の向上を図れそう – 長期的視点で見たときの運用
35 (C) Recruit Technologies Co.,Ltd. All rights reserved. 要補足
システムの構成を変更することなく品質向上を図る ModSecurity-nginxを利用した登り方として以下のような 想定ができる 36 (C) Recruit Technologies Co.,Ltd. All rights
reserved. 1st Step or 2nd Step WAF 3rd Step
システムの構成を変更することなく品質向上を図る ModSecurity-nginxを利用した登り方として以下のような 想定ができる 37 (C) Recruit Technologies Co.,Ltd. All rights
reserved. 1st Step or 2nd Step WAF 3rd Step WAFに ついて知る (開発環境での運用トレーニン グ・フィジビリ導入)
システムの構成を変更することなく品質向上を図る ModSecurity-nginxを利用した登り方として以下のような 想定ができる 38 (C) Recruit Technologies Co.,Ltd. All rights
reserved. 1st Step or 2nd Step WAF 3rd Step WAFに ついて知る (開発環境での運用トレーニン グ・フィジビリ導入) 商用ルールの導入による Techサポート取得 (ある程度の規模での導入と本格利用 & サポート活用による組織内工数コスト減)
システムの構成を変更することなく品質向上を図る 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耐性向上、サポート活 用による組織内工数コスト減)
ModSecurity-nginx の課題 OSSではあるので、本格的な商用製品と比較すると運用面で 劣る部分はある ① ルールのアップデート ② ルールの管理(不要ルールの除外・カスタムルールの追加) ③ アラートの仕組み
• おそらくこの3つが商用製品との大きな違い • デフォルトかつ実装容易な形ではこの部分の機能は提供していない 40 (C) Recruit Technologies Co.,Ltd. All rights reserved.
ModSecurity-nginx の課題 OSSではあるので、本格的な商用製品と比較すると運用面で 劣る部分はある ① ルールのアップデート ② ルールの管理(不要ルールの除外・カスタムルールの追加) ③ アラートの仕組み
• おそらくこの3つが商用製品との大きな違い • デフォルトかつ実装容易な形ではこの部分の機能は提供していない 41 (C) Recruit Technologies Co.,Ltd. All rights reserved. それぞれどのようにして対応するかを解説
(課題への対応) ① ルールのアップデート ②ルールの管理 サイドカーパターンを利用してルールの更新・追加をでき る仕組みを実現する 42 (C) Recruit Technologies
Co.,Ltd. All rights reserved. ModSecurity-nginx rule-updater (crond) ModSecurity CRS Custom Rule (ConfigMap)
(課題への対応) ① ルールのアップデート ②ルールの管理 サイドカーパターンを利用してルールの更新・追加をでき る仕組みを実現する 43 (C) Recruit Technologies
Co.,Ltd. All rights reserved. ModSecurity-nginx rule-updater (crond) ModSecurity CRS Custom Rule (ConfigMap) ①最新ルールを 取得して配置
(課題への対応) ① ルールのアップデート ②ルールの管理 サイドカーパターンを利用してルールの更新・追加をでき る仕組みを実現する 44 (C) Recruit Technologies
Co.,Ltd. All rights reserved. ModSecurity-nginx rule-updater (crond) ModSecurity CRS Custom Rule (ConfigMap) ①最新ルールを 取得して配置 ②カスタムルールを アップデート
(課題への対応) ① ルールのアップデート ②ルールの管理 サイドカーパターンを利用してルールの更新・追加をでき る仕組みを実現する 45 (C) Recruit Technologies
Co.,Ltd. All rights reserved. ModSecurity-nginx rule-updater (crond) ModSecurity CRS Custom Rule (ConfigMap) ①最新ルールを 取得して配置 ②カスタムルールを アップデート ③設定の再読み込みをキック (kill –HUP with hostPID: true)
(課題への対応) ③ アラートの仕組み クラウドサービスと組み合わせることでアラートについて は解決できる 46 (C) Recruit Technologies Co.,Ltd.
All rights reserved. ModSecurity -nginx 検知ログ アラート (to Slack, mail, PagerDuty)
(課題への対応) ③ アラートの仕組み クラウドサービスと組み合わせることでアラートについて は解決できる 47 (C) Recruit Technologies Co.,Ltd.
All rights reserved. ModSecurity -nginx 検知ログ アラート (to Slack, mail, PagerDuty) あらゆるメトリクス・非メトリクス 情報をここに集約 (大事なのは集約すること、 ”何かあればまずここを見る”場所 を作る)
(課題への対応) ③ アラートの仕組み クラウドサービスと組み合わせることでアラートについて は解決できる 48 (C) Recruit Technologies Co.,Ltd.
All rights reserved. ModSecurity -nginx 検知ログ アラート (to Slack, mail, PagerDuty) あらゆるメトリクス・非メトリクス 情報をここに集約 (大事なのは集約すること、 ”何かあればまずここを見る”場所 を作る) クラウドサービスとの組み合わせにより、 不足部分は完全ではないものの、比較的容易にカバーできる
IDSの導入と運用について 49 (C) Recruit Technologies Co.,Ltd. All rights reserved.
IDS • WAFと同様にIDSも商用製品が存在 • OSSについても同様に存在 • OSSプロダクトが抱えている課題もほぼ同様 ① ルールのアップデート ②
ルールの管理(不要ルールの除外・カスタムルールの追加) ③ アラートの仕組み
Suricataの選定理由 ① oinkmasterを用いたルールアップデートの容易化 ② 本家?snortよりも継続的なエンジン本体の更新 51 (C) Recruit Technologies Co.,Ltd.
All rights reserved.
IDSのデプロイ方式 ① Kubernetesのノード(VM)にインストール ② Podとして実現させる 52 (C) Recruit Technologies Co.,Ltd.
All rights reserved.
IDSのデプロイ方式① Kubernetesのノードにインストール • メリット • 導入事例が豊富(=間違いなく動作する…はず) • デメリット • ノードに対する前提条件が増える
• (1台だけ入れ忘れたりしても気付きづらい) 53 (C) Recruit Technologies Co.,Ltd. All rights reserved.
IDSのデプロイ方式② Podとしてデプロイする • メリット(詳細は後述) • ノードに対する前提条件が減る • スケールアウトが容易になる • デメリット
• 事例があまりないので実際に動かせるのか怪しい 54 (C) Recruit Technologies Co.,Ltd. All rights reserved.
IDSのデプロイ方式 ① Kubernetesのノード(VM)にインストール ② Podとして実現させる 55 (C) Recruit Technologies Co.,Ltd.
All rights reserved. 実現できた場合のメリットの大きい②を 検証&選択
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
IDSにおけるルールのアップデート・管理/アラートの仕組み WAFの場合と同様にサイドカーコンテナを活用する 57 (C) Recruit Technologies Co.,Ltd. All rights reserved.
Kubernetesを活用したWebアプリケーションセキュリティ実装 • 容易に取り組みを始めることは可能 • 今や基本的なセキュリティ対策としてWAFやIDSは必須 • 導入自体は困難ではない • 導入よりも 運用の手間を如何に下げるか
(≒人間が対応する単純作業を減らす) ということに注力すべき 58 (C) Recruit Technologies Co.,Ltd. All rights reserved.
Kubernetesの外側のセキュリティはどうするか WAFとIDSを活用してKubernetes上で動作するWebアプ リケーションのセキュリティを高めることについては説明 した。 59 (C) Recruit Technologies Co.,Ltd. All
rights reserved.
Kubernetesの外側のセキュリティはどうするか WAFとIDSを活用してKubernetes上で動作するWebアプ リケーションのセキュリティを高めることについては説明 した。 では、 Kuberenetesの外側のセキュリティ はどうするか? 60 (C) Recruit
Technologies Co.,Ltd. All rights reserved.
Kubernetesの外側 守りたいものは”情報”。 つまり情報をためこんでいる場所を守りたい。 61 (C) Recruit Technologies Co.,Ltd. All rights
reserved.
Kubernetesの外側 守りたいものは”情報”。 つまり情報をためこんでいる場所を守りたい。 62 (C) Recruit Technologies Co.,Ltd. All rights
reserved. オブジェクト ストレージ RDB KVS Amazon S3 GCS RDS CloudSQL ElastiCache, DynamoDB Cloud memorystore
Kubernetesの外側 守りたいものは”情報”。 つまり情報をためこんでいる場所を守りたい。 63 (C) Recruit Technologies Co.,Ltd. All rights
reserved. オブジェクト ストレージ RDB KVS Amazon S3 GCS RDS CloudSQL ElastiCache, DynamoDB Cloud memorystore 予防 … 各種アクセス制御設定&テストを頑張る
Kubernetesの外側 守りたいものは”情報”。 つまり情報をためこんでいる場所を守りたい。 64 (C) Recruit Technologies Co.,Ltd. All rights
reserved. オブジェクト ストレージ RDB KVS Amazon S3 GCS RDS CloudSQL ElastiCache, DynamoDB Cloud memorystore 予防 … 各種アクセス制御設定&テストを頑張る 監査 … どうするかは後述
どうやって監査するか 今回は例としてGCPの場合で説明(ほぼ同等の内容はAWSでも実現可能) 65 (C) Recruit Technologies Co.,Ltd. All rights reserved.
どうやって監査するか 今回は例としてGCPの場合で説明(ほぼ同等の内容はAWSでも実現可能) 監査から結果通知までの一連の流れの自動化は必須 66 (C) Recruit Technologies Co.,Ltd. All rights
reserved.
どうやって監査するか 今回は例としてGCPの場合で説明(ほぼ同等の内容はAWSでも実現可能) 監査から結果通知までの一連の流れの自動化は必須 67 (C) Recruit Technologies Co.,Ltd. All rights
reserved. 常時人が介在する必要はない。 異常を検知した際に動けるようにしておく
オブジェクトストレージの監査例 オブジェクトストレージのアクセスログを監査する 68 (C) Recruit Technologies Co.,Ltd. All rights reserved.
監査対象 バケット Stackdriver Logging アクセスログ 格納バケット Cloud Function バケットのアクセスログを Stackdriver Loggingにいれる Stackdriverから 格納バケットにsinkする 定期的にログが出力される たびに監査 & Slackなどに 結果を通知 普段と異なるアクセス元からの アクセス、異なる認証情報での アクセスがないかを確認
CloudSQLの監査例 CloudSQLの監査例 69 (C) Recruit Technologies Co.,Ltd. All rights reserved.
監査対象 CloudSQL インスタンス Stackdriver Logging 監査ログ 格納バケット Cloud Function 認証ログ・クエリログ※を Stackdriver Loggingにいれる Stackdriverから 格納バケットにsinkする 定期的にログが出力される たびに監査 & Slackなどに 結果を通知 普段と異なるアクセス元からのアクセス、 異なる認証情報でのアクセスをチェック (+ できれば通常と異なるSQLの実行がないかを確認) ※ クエリログについてはインスタンスの性能影響に注意すること
Cloud memorystoreの監査の例 VPCフローログから普段と異なるアクセスを監査する 70 (C) Recruit Technologies Co.,Ltd. All rights
reserved. Stackdriver Logging アクセスログ 格納バケット Cloud Function Stackdriverから 格納バケットにsinkする 定期的にログが出力される たびに監査 & Slackなどに 結果を通知 普段と異なるアクセス元からの アクセスがないかを確認 VPC VPCフローログ※ をStackdriver Loggingにいれる ※ VPCフローログは容量が大きいのでログ のフィルタ条件などによって不要なログが 連携されないよう調整は必要
一般化できる 71 (C) Recruit Technologies Co.,Ltd. All rights reserved. Stackdriver
Logging アクセスログ 格納バケット Cloud Function アクセスログを バケットに エクスポート CloudFunctionで ログをチェック & 結果通知 普段と異なるアクセス傾向 がないかを確認 ログの ソース アクセスログの出力& Stackdriver Loggingへの格納 自動化されているので、問題を検知した時だけ 人が調査すればいい仕組みを実現できる
まとめ • Kubernetesを活用してWAF/IDSを効率的に導入・運用す ることは可能 • 長期的な視点で何を重視するかを考えてツールの選定は行いましょう • サイドカーなどの分散システムのデザインパターンを活用しましょう • ただし、ルール更新や監査・アラート通知で自動化の工夫は必要
• セキュリティ系ログの監査 • パブリッククラウドの諸機能を使って自動化することで効率的に運用する ことは可能 72 (C) Recruit Technologies Co.,Ltd. All rights reserved. セキュリティ機能(WAF/IDS)の効率的な導入と運用、ログ監査の効率化は、 Kubernetesとパブリッククラウドを組み合わせることで実現可能です。 是非一度試してみてはいかがでしょうか?
ご清聴ありがとうございました 73 (C) Recruit Technologies Co.,Ltd. All rights reserved.