Slide 1

Slide 1 text

夏休みの自由研究発表LT大会 Binary Authorizationとともだちになろう Jagu'e'r Cloud Native #15 Meetup Synspective Inc. 新井 雅也

Slide 2

Slide 2 text

新井 雅也 これまでは、野村総合研究所のインフラエンジニア兼システムアーキ テクトとして、主に金融業界のシステム設計、開発、運用に従事。 2023年6月にSynspectiveにジョイン。クラウドに関する技術力を活 かしつつ、宇宙業界の発展に尽力している。 3度の飯よりRed Bullが好き🐂 AWS Container Hero AWS Ambassador 2022-2023 Google Cloud Champion Innovator Google Cloud Partner Top Engineer 2023 @msy78 Principal Cloud Architect 2

Slide 3

Slide 3 text

本自由研究テーマ発表のゴール Binary Authorizationのことを知り、今以上にともだちになる

Slide 4

Slide 4 text

本自由研究テーマ発表のゴール Binary Authorizationのことを知り、今以上にともだちになる 理解 安心感 信頼

Slide 5

Slide 5 text

・夏休みの自由研究発表と謳っていますが、内容は至って真面目です。 ・Binary Authorizationの概要を押さえてもらうことが目的です。 ・拙書「The Cloud Run」の内容をベースに発表内容を構成しています。 ⚠ おことわり

Slide 6

Slide 6 text

Binary Authorizationの役割を知ろう

Slide 7

Slide 7 text

まずはコンテナに纏わるセキュリティ対策の全体像を一度俯瞰してみよう(Cloud Runのケース)

Slide 8

Slide 8 text

まずはコンテナに纏わるセキュリティ対策の全体像を一度俯瞰してみよう(Cloud Runのケース)

Slide 9

Slide 9 text

※NIST SP800-190(アプリケーションコンテナセキュリティ)に関するリスク一覧を元に作成 まずはコンテナに纏わるセキュリティ対策の全体像を一度俯瞰してみよう(Cloud Runのケース)

Slide 10

Slide 10 text

まずはコンテナに纏わるセキュリティ対策の全体像を一度俯瞰してみよう(Cloud Runのケース) ※NIST SP800-190(アプリケーションコンテナセキュリティ)に関するリスク一覧を元に作成

Slide 11

Slide 11 text

「信頼できないイメージの使用」によるリスク内容を理解しよう

Slide 12

Slide 12 text

「信頼できないイメージの使用」によるリスク内容を理解しよう あらゆる環境において最も一般的なハイリスクのシナリオの1つは、信頼できないソフトウェアの実行で ある。コンテナの移動可能性と再利用のしやすさによって、チームは外部ソースからのイメージを実行し たいという誘惑に駆られるが、それらは十分に検証されていないか、信頼できない可能性がある。 ...この外部から提供されたイメージを使用すると、マルウェアの取り込み、データの漏えい、脆弱性のあ るコンポーネントの組み込みなど、外部ソフトウェアが従来から持っていたリスクと同じ種類のリスクが 発生する。 Ref. NIST Special Publication 800-190 Application Container Security Guide 邦訳版 (IPA提供)より一部抜粋 https://www.ipa.go.jp/security/reports/oversea/nist/ug65p90000019cp4-att/000085279.pdf

Slide 13

Slide 13 text

「信頼できないイメージの使用」によるリスク内容を理解しよう あらゆる環境において最も一般的なハイリスクのシナリオの1つは、信頼できないソフトウェアの実行で ある。コンテナの移動可能性と再利用のしやすさによって、チームは外部ソースからのイメージを実行し たいという誘惑に駆られるが、それらは十分に検証されていないか、信頼できない可能性がある。 ...この外部から提供されたイメージを使用すると、マルウェアの取り込み、データの漏えい、脆弱性のあ るコンポーネントの組み込みなど、外部ソフトウェアが従来から持っていたリスクと同じ種類のリスクが 発生する。 Ref. NIST Special Publication 800-190 Application Container Security Guide 邦訳版 (IPA提供)より一部抜粋 https://www.ipa.go.jp/security/reports/oversea/nist/ug65p90000019cp4-att/000085279.pdf

Slide 14

Slide 14 text

Ref. NIST Special Publication 800-190 Application Container Security Guide 邦訳版 (IPA提供)より一部抜粋 https://www.ipa.go.jp/security/reports/oversea/nist/ug65p90000019cp4-att/000085279.pdf 「信頼できないイメージの使用」リスクの対策内容を理解しよう 組織は、信頼できるイメージとレジストリのセットを維持し、このセットからのイメージだけが環境内で の実行を許可されるようにすることで、信頼できないコンポーネントや悪意のあるコンポーネントがデプ ロイされるリスクを軽減することが望ましい。 これらのリスクを軽減するために、組織は以下のような多層的なアプローチをとることが望ましい。 • 環境内で、信頼できるイメージとレジストリを厳密に一元管理する機能 • NISTで認証済みの実装6を使用した暗号署名による各イメージの個別識別 • 環境内のすべてのホストが、これらの承認済みリストのイメージのみを実行することを確実にする強制 • イメージが信頼できるソースからのものであり、改ざんされていないことを確実とするために、イメージの 実行前にイメージの署名を検証 • 脆弱性や構成要件の変更に応じて、リポジトリ内のイメージがメンテナンスされ更新されていることを確実 とするための継続的なモニタリングとメンテナンス

Slide 15

Slide 15 text

Ref. NIST Special Publication 800-190 Application Container Security Guide 邦訳版 (IPA提供)より一部抜粋 https://www.ipa.go.jp/security/reports/oversea/nist/ug65p90000019cp4-att/000085279.pdf 「信頼できないイメージの使用」リスクの対策内容を理解しよう

Slide 16

Slide 16 text

組織は、信頼できるイメージとレジストリのセットを維持し、このセットからのイメージだけが環境内で の実行を許可されるようにすることで、信頼できないコンポーネントや悪意のあるコンポーネントがデプ ロイされるリスクを軽減することが望ましい。 これらのリスクを軽減するために、組織は以下のような多層的なアプローチをとることが望ましい。 • 環境内で、信頼できるイメージとレジストリを厳密に一元管理する機能 • NISTで認証済みの実装6を使用した暗号署名による各イメージの個別識別 • 環境内のすべてのホストが、これらの承認済みリストのイメージのみを実行することを確実にする強制 • イメージが信頼できるソースからのものであり、改ざんされていないことを確実とするために、イメージの 実行前にイメージの署名を検証 • 脆弱性や構成要件の変更に応じて、リポジトリ内のイメージがメンテナンスされ更新されていることを確実 とするための継続的なモニタリングとメンテナンス Ref. NIST Special Publication 800-190 Application Container Security Guide 邦訳版 (IPA提供)より一部抜粋 https://www.ipa.go.jp/security/reports/oversea/nist/ug65p90000019cp4-att/000085279.pdf 「信頼できないイメージの使用」リスクの対策内容を理解しよう

Slide 17

Slide 17 text

とどのつまり・・・

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

信頼できるイメージのみ 実行を許可 不良・不正・脆弱性が含まれた ソフトウェアのデプロイリスクを軽減 ?

Slide 20

Slide 20 text

Binary Authorizationは信頼できるイメージの実行を許可するための仕組みを提供してくれる 信頼できるイメージのみ 実行を許可 Binary Authorization 不良・不正・脆弱性が含まれた ソフトウェアのデプロイリスクを軽減

Slide 21

Slide 21 text

Binary Authorizationは具体的に何ができるの?

Slide 22

Slide 22 text

Binary Authorization 一定のルール(ポリシー)に従ってデプロイをコントロールできる

Slide 23

Slide 23 text

Binary Authorization 許可リストによる制御 証明書による制御 一定のルール(ポリシー)に従ってデプロイをコントロールできる

Slide 24

Slide 24 text

許可リストによる制御 許可リストによる制御はシンプルな運用がウリ

Slide 25

Slide 25 text

許可リスト(ホワイトリストスタイル)の例 許可リストによる制御 許可リストによる制御はシンプルな運用がウリ

Slide 26

Slide 26 text

許可リスト(ホワイトリストスタイル)の例 デプロイルール 許可リストによる制御 許可リストによる制御はシンプルな運用がウリ

Slide 27

Slide 27 text

許可リスト(ホワイトリストスタイル)の例 Cloud Runの場合、デプロイルールと 除外イメージがプロジェクトで共有される →除外リストの粒度設計を考慮する必要あり 許可リストによる制御 許可リストによる制御はシンプルな運用がウリ

Slide 28

Slide 28 text

Binary Authorization 許可リストによる制御 証明書による制御 ・比較的シンプルに運用できる ・除外リストの粒度設計が必要 「ポリシーによる制御」におけるまとめ

Slide 29

Slide 29 text

証明書による制御 証明書による制御は設定が煩雑である一方、より厳格なコンプライアンス要件に対応可能

Slide 30

Slide 30 text

証明書による制御 証明書による制御は設定が煩雑である一方、より厳格なコンプライアンス要件に対応可能 認証プロセスで利用される 信頼できるメタデータを管理

Slide 31

Slide 31 text

証明書による制御は設定が煩雑である一方、より厳格なコンプライアンス要件に対応可能 証明書による制御

Slide 32

Slide 32 text

証明書による制御は設定が煩雑である一方、より厳格なコンプライアンス要件に対応可能 証明書による制御

Slide 33

Slide 33 text

証明書による制御は設定が煩雑である一方、より厳格なコンプライアンス要件に対応可能 証明書による制御

Slide 34

Slide 34 text

証明書による制御は設定が煩雑である一方、より厳格なコンプライアンス要件に対応可能 証明書による制御 “証明書はメモの「オカレンス」として 保存される”と表現される

Slide 35

Slide 35 text

証明書による制御は設定が煩雑である一方、より厳格なコンプライアンス要件に対応可能 証明書による制御 Cloud Buildによって ビルドされたイメージのみ デプロイさせることも可能

Slide 36

Slide 36 text

Binary Authorization 許可リストによる制御 証明書による制御 「証明書による制御」におけるまとめ ・脆弱性の検出結果等と連動させた証明の検証等、厳格な制御が可能 ・設定自体が煩雑になりがち ・比較的シンプルに運用できる ・除外リストの粒度設計が必要

Slide 37

Slide 37 text

最初は「ポリシーによる制御の運用」から シンプルに導入してみるのがおすすめ。 セキュリティ要件に応じて、証明書による制御を検討。 Binary Authorization 許可リストによる制御 証明書による制御 「証明書による制御」におけるまとめ ・脆弱性の検出結果等と連動させた証明の検証等、厳格な制御が可能 ・設定自体が煩雑になりがち ・比較的シンプルに運用できる ・除外リストの粒度設計が必要

Slide 38

Slide 38 text

Binary Authorizationのbreakglassに詳しくなろう

Slide 39

Slide 39 text

「Breakglass」はいわゆるデプロイ用非常ボタンの役割

Slide 40

Slide 40 text

「Breakglass」はいわゆるデプロイ用非常ボタンの役割

Slide 41

Slide 41 text

「Breakglass」はいわゆるデプロイ用非常ボタンの役割

Slide 42

Slide 42 text

「Breakglass」はいわゆるデプロイ用非常ボタンの役割

Slide 43

Slide 43 text

「Breakglass」はいわゆるデプロイ用非常ボタンの役割 Binary Authorizationの ポリシーによって Pending状態

Slide 44

Slide 44 text

「Breakglass」はいわゆるデプロイ用非常ボタンの役割 breakglassの実行 合理的な理由を記述して Breakglassを実行

Slide 45

Slide 45 text

「Breakglass」はいわゆるデプロイ用非常ボタンの役割

Slide 46

Slide 46 text

「Breakglass」はいわゆるデプロイ用非常ボタンの役割

Slide 47

Slide 47 text

「Breakglass」はいわゆるデプロイ用非常ボタンの役割 記述した理由が ログ上に記録される 監査証跡として記録

Slide 48

Slide 48 text

「Breakglass」はいわゆるデプロイ用非常ボタンの役割 考察:breakglassの許可に必要な専用のIAMロールがあっても良いのでは。

Slide 49

Slide 49 text

自由研究結果のまとめ

Slide 50

Slide 50 text

自由研究結果のまとめ Binary Authorization ・信頼できるイメージのみ実行を許可させることで、 ソフトウェアのデプロイリスクを軽減 ・許可リストと証明書による制御 →シンプルに許可リストから始めることをオススメ ・breakglassによる緊急デプロイにも対応 →IAM権限周りの制約には注意

Slide 51

Slide 51 text

Thank you Jagu'e'r Cloud Native #15 Meetup