Slide 1

Slide 1 text

AWSサービスにおける サーバーレス環境のセキュリティリスク ~セキュリティ視点からのクラウド入門~ Yuta Morioka (@scgajge12) 2022/10/08

Slide 2

Slide 2 text

https://jawsdays2022.jaws-ug.jp/sessions/B12/  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         対象:AWSを活用する開発者向け #jawsdays2022 (@scgajge12)

Slide 3

Slide 3 text

概要 1. 自己紹介 2. サーバーレスにおけるセキュリティリスク 3. クラウドにおけるセキュリティリスク 4. AWSサービスにおけるセキュリティリスク 5. AWSサービスにおけるセキュリティ対策 6. まとめ  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 4

Slide 4 text

1. 自己紹介

Slide 5

Slide 5 text

自己紹介 ● 森岡 優太 (Yuta Morioka) ○ Twitter:@scgajge12 ● 所属 ○ 学生 & セキュリティエンジニア ● JAWS歴 ○ Security-JAWS #25 登壇 (2022/05) ■ 「AWS Lambdaにおけるセキュリティリスクと対策」  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 6

Slide 6 text

2. サーバーレスにおける      セキュリティリスク

Slide 7

Slide 7 text

サーバーレスの定義 CNCF (Cloud Native Computing Foundation)による定義 ● FaaS (Function as a Service) ○ 関数単位でデプロイや実行ができるサービス ■ Lambda ● BaaS (Backend as a Service) ○ 認証やDBなどの機能をAPIを通じて利用できるサービス ■ Cognito, S3, DynamoDB, API Gateway, AppSync https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 8

Slide 8 text

サーバーレスのセキュリティ サーバーレス環境に関するセキュリティリスクの種類 ● 利用するサービスの設定不備によるリスク ○ 設定不備による直接的な攻撃 ○ 設定不備による間接的な攻撃 ● アプリケーションの脆弱性によるリスク ○ 開発したアプリケーションへの攻撃 ○ 利用するライブラリへの攻撃  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 9

Slide 9 text

OWASP Serverless Top 10 1. インジェクション (Injection) 2. 認証の不備 3. 機密データの公開 4. XML外部エンティティ (XXE) 5. アクセス制御の不備 6. セキュリティの設定ミス 7. Cross-Site Scripting (XSS) 8. 安全でないデシリアライゼーション      (Insecure Deserialization) 9. 既知の脆弱性を持つコンポーネント   の使用 10. 不十分なロギングとモニタリング https://github.com/OWASP/Serverless-Top-10-Project  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 10

Slide 10 text

OWASP Top 10 1. アクセス制御の不備 2. 暗号化の失敗 3. インジェクション (Injection) 4. 安全が確認されない不安な設計 5. セキュリティの設定ミス a. XML外部エンティティ (XXE) 6. 脆弱で古くなったコンポーネント 7. 識別と認証の失敗 8. ソフトウェアとデータの整合性の不   具合 9. セキュリティログとモニタリングの  失敗 10. Server-Side Request Forgery (SSRF) https://github.com/OWASP/Top10  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 11

Slide 11 text

CSA (Cloud Security Alliance) Top 12 1. 関数イベント・データインジェクション 2. 認証の不備 3. セキュアでないサーバーレス・デプロイの 構成 4. 関数への過激な権限と役割の付与 5. 不適切な機能のモニタリングとロギング 6. セキュアでないサードパーティ依存 7. セキュアでないアプリケーションの秘匿 領域 8. サービス拒否およびリソースの枯渇 9. サーバーレス機能実行フロー操作 10. 不適切な例外処理と詳細なエラーメッ セージ 11. 破壊された関数 12. 交差実行データの永続性 https://cloudsecurityalliance.org/blog/2019/02/11/critical-risks-serverless-applications/  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 12

Slide 12 text

サーバーレスのセキュリティ サーバーレスで特に重大なセキュリティリスク ● 利用するサービスの設定不備によるリスク ○ 認証の不備 ● アプリケーションの脆弱性によるリスク ○ インジェクション (Injection)  -> 不正アクセスや脆弱性攻撃により情報漏洩に繋がる恐れがある  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 13

Slide 13 text

サーバーレスのセキュリティ [小まとめ]サーバーレスにおけるセキュリティリスク 設定不備 • 認証の不備 • 機密データの公開 • アクセス制御の不備 • セキュリティの設定ミス 脆弱性攻撃 • インジェクション (Injection) • XML外部エンティティ (XXE) • Cross-Site Scripting (XSS) • 安全でないデシリアライゼーション • 既知の脆弱性を持つコンポーネントの使 用  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 14

Slide 14 text

3. クラウドにおける       セキュリティリスク

Slide 15

Slide 15 text

クラウドのセキュリティ クラウドにおけるセキュリティの責任範囲 ● クラウド利用者 ○ クラウド内のセキュリティに対する責任 ● クラウドプロパイダー ○ クラウド自体のセキュリティに対する責任  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 16

Slide 16 text

責任共有モデル (AWS) https://aws.amazon.com/jp/compliance/shared-responsibility-model/  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 17

Slide 17 text

AWSにおける脅威グラフ https://cloudonaut.io/aws-security-primer/ 認証 サービスAPI アカウント 管理 暗号化 ネットワーク 認可  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 18

Slide 18 text

クラウドのセキュリティリスク クラウド(AWS環境)において攻撃者が欲しい情報 ● クレデンシャル (Credential) ○ AWS IAM, API Key, DBの認証情報 ● 個人情報 ○ ユーザーに関する機微な情報 ● その他 ○ ログファイルの情報 ○ Webアプリケーション内の情報  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 19

Slide 19 text

クラウドのセキュリティリスク AWSにおけるクレデンシャル (Credential) ● AWSアカウント ○ ルートユーザー ● AWS IAM (Identity and Access Management) ○ IAMユーザー ■ アクセスキー ○ IAMロール  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 20

Slide 20 text

AWS IAM AWSリソースへのアクセスを管理するサービス ● IAMロール ○ AWSサービスやリソースに対して操作権限を付与するためのもの 漏洩すると...  付与された権限の範囲内で自由にAWSサービスを操作することが可能  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 21

Slide 21 text

クラウドのセキュリティリスク 考えられるクレデンシャルの漏洩 (例) ● 脆弱性攻撃による漏洩 ● エラー出力に含まれる情報による漏洩 ● ハードコーディングされたコードの閲覧による漏洩 ● GitHubなどの公開リポジトリに誤ってPushすることによる漏洩  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 22

Slide 22 text

クラウドのセキュリティリスク クレデンシャルが漏洩した場合の被害 (例) ● 顧客情報や機密情報などの漏洩・改ざん ● 運営するサービスの停止・破壊 ● 踏み台サーバーとしての悪用 ● 多額の利用請求  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 23

Slide 23 text

クラウドのセキュリティ [小まとめ]クラウドにおけるセキュリティリスク ● クラウド環境には様々な脅威が存在する ○ 特にクレデンシャルが狙われる ● クレデンシャルが漏洩する経路は様々考えられる ○ 脆弱性攻撃, エラー出力, ハードコーディング, ミスによるパブリック化 ● クレデンシャルが漏洩した場合、多大なる被害が起きる恐れがある ○ 情報漏洩や改竄, サービスの停止, 踏み台化, 多額の請求  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 24

Slide 24 text

4. AWSサービスにおける       セキュリティリスク

Slide 25

Slide 25 text

AWSサービスのセキュリティ サーバーレス環境に使われる主なAWSサービス ● FaaS (Function as a Service) ○ AWS Lambda ● BaaS (Backend as a Service) ○ Amazon S3 ○ Amazon Cognito ○ Amazon DynamoDB ○ Amazon API Gateway  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 26

Slide 26 text

AWSサービスのセキュリティ 各AWSサービスにおける主なセキュリティリスク ● Lambda ○ クレデンシャルの漏洩 ○ 権限昇格 ● S3 ○ バケット内の情報漏洩 ● Cognito ○ 認証の回避 ● DynamoDB ○ DB内の情報漏洩 ● API Gateway ○ アクセス認可の回避  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 27

Slide 27 text

AWS Lambda イベント発生時にコード実行するサービス ● 7種類のプログラミング言語でコードを書ける ○ Node.js, Python, Java, Ruby, C#, Go, Powershell ● 利用場面 (例) ○ API Gatewayと連携してAPIとして活用する ■ ユーザーやサーバーからのリクエストに応じてイベント処理をする ○ S3にオブジェクトがアップロードされた際にイベント処理をする ○ DynamoDBのデータが更新された際にイベント処理をする  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 28

Slide 28 text

Lambdaのセキュリティリスク ソースコードやライブラリの脆弱性によるリスク 1. Lambdaの環境変数からIAMロールのクレデンシャルの漏洩 2. Lambdaのソースコードからハードコーディングされたクレデンシャルの 漏洩 3. Lambda Runtime APIなどの内部のサービスAPIにアクセスすること による機微な情報の漏洩  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 29

Slide 29 text

Lambdaのセキュリティリスク 1.環境変数からIAMロールの漏洩 ● LambdaはIAM ロールのクレデンシャルをLambda上の環境変数に 格納する  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 30

Slide 30 text

Lambdaのセキュリティリスク 1.環境変数からIAMロールの漏洩 (攻撃例) ● OS Command Injection ○ 任意のコマンドをLambda上で実行させることによる取得 ● XML External Entity (XXE) ○ “/proc/self/environ”を読み込ませることによる取得 ● Insecure Deserialization ○ 任意コード実行(RCE)による取得 ● Server Side Request Forgery (SSRF) ○ File schemaで”/proc/self/environ”を読み込ませることによる取得  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 31

Slide 31 text

Lambdaのセキュリティリスク 1.環境変数からIAMロールの漏洩 (事後) ● 入手したIAMロールの権限を元に他のAWSサービスやリソースを不正 操作できる ○ 例) 機密性の高いDBやストレージへの読み取りや書き込み ● IAMロールの権限昇格 ● Lambda上で仮想通貨マイニング  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 32

Slide 32 text

Lambdaのセキュリティリスク 2.ハードコーディングされたクレデンシャルの漏洩 (例) ● アクセスキー ● API Key ● DBの認証情報 ● 書き込み先のS3バケット名  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 33

Slide 33 text

Lambdaのセキュリティリスク 2.ハードコーディングされたクレデンシャルの漏洩 (取得例) ● OS Command Injection ○ 任意のコマンドをLambda上で実行させることによる取得 ● XML External Entity (XXE) ○ “/var/task/handler.py”などを読み込ませることによる取得 ● Insecure Deserialization ○ 任意コード実行(RCE)による取得 ● Server Side Request Forgery (SSRF) ○ File schemaで”/var/task/handler.py”などを読み込ませることによる取得  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 34

Slide 34 text

Lambdaのセキュリティリスク 3.Lambda Runtime APIにアクセスすることによる情報漏洩 ● Lambda Runtime API ○ Lambda関数の内部に使われるサービスAPIの一つ ● 想定動作 ○ Lambdaの呼び出しイベントを受け取る ○ レスポンスデータをLambdaの実行環境に送り返す ■ Lambda関数に渡されるイベントデータを返す https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/runtimes-api.html  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 35

Slide 35 text

Lambdaのセキュリティリスク 3.Lambda Runtime APIにアクセスすることによる情報漏洩 ● 脆弱性攻撃 ○ Server Side Request Forgery (SSRF) ■ 例) ~?url=http://localhost:9001/2018-06-01/runtime/invocation/next イベントデータの不正取得  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 36

Slide 36 text

Lambdaのセキュリティリスク Lambdaのセキュリティに関するブログ・スライド (執筆) ● 脆弱なライブラリによる危険性とセキュリティ対策 ○ https://blog.flatt.tech/entry/lambda_library_security ● AWS Lambdaにおける脆弱性攻撃と対策 ○ https://blog.flatt.tech/entry/lambda_and_serverless_security ● AWS Lambdaにおけるセキュリティリスクと対策 (Security-JAWS) ○ https://speakerdeck.com/scgajge12/aws-lambdaniokerusekiyuriteirisu kutodui-ce  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 37

Slide 37 text

Lambdaのセキュリティリスク [小まとめ]脆弱性攻撃によるセキュリティリスク ● ソースコードやライブラリの脆弱性によるリスク ○ 環境変数からIAMロールのクレデンシャルの漏洩 ○ ハードコーディングされたクレデンシャルの漏洩 ○ Lambda Runtime APIから機微な情報の漏洩 ● クレデンシャルの漏洩によりAWAサービスやリソースを不正操作 ○ S3やDyanmoDBなどから機微な情報を不正取得・改竄  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 38

Slide 38 text

Amazon S3 オブジェクト型のストレージサービス ● 様々なファイルの格納や静的ファイルの配信が可能 ○ 画像, 動画, データ, ログなどのファイル ● AWS SDKを使用してプログラムでS3を操作することが可能 ● 利用場面 (例) ○ アップロードされたファイルを格納する ○ 静的なファイルを格納してWebサイトを配信する  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 39

Slide 39 text

S3のセキュリティリスク S3バケットにおけるセキュリティリスク 1. 設定不備 a. S3バケットの誤ったポリシー設定による情報漏洩 2. 脆弱性攻撃 a. S3バケットを利用した脆弱なソースコードによる情報漏洩  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 40

Slide 40 text

S3のセキュリティリスク S3バケットにおけるセキュリティリスク 1. S3バケットの誤ったポリシー設定による情報漏洩 a. 不適切なパブリックアクセスの許可 b. 不適切な認証ユーザーの書き込み許可 2. S3バケットを利用した脆弱なソースコードによる情報漏洩 a. S3バケットにおけるPath Traversal b. 安全でないPOSTポリシー  ->S3バケットに含まれるファイルの情報が漏洩する恐れがある  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 41

Slide 41 text

S3のセキュリティリスク 1.S3バケットの誤ったポリシー設定によるリスク ● 不適切なポリシー要素の定義 (例) ○ Principal:アクセスを許可するユーザーの対象範囲 ■ 「AWS: *」で全ユーザーにアクセスを許可する ○ Action:ユーザーに許可する操作権限 ■ 「Effect: Allow」の場合「Action: *」で広範囲の操作権限を許可する ○ Resource:アクセスを許可するバケットの対象範囲 ■ 「Resource: *」やリソースのパスに「*」で広範囲を許可する    -> アクセスを意図しないファイルが許可される恐れがある  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 42

Slide 42 text

S3のセキュリティリスク 1.S3バケットの誤ったポリシー設定によるリスク ● 不適切なポリシー要素の実例 ○ サービス展開しているWebアプリケーションに使用しているバケット ■ バケット名:hoge-s3-production ● 適切なポリシーが設定されている ○ 開発段階に使用されていたバケット ■ バケット名:hoge-s3-staging, hoge-s3-development ● 不適切なポリシーが設定されている->漏洩            ->バケット名が一定推測可能  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 43

Slide 43 text

S3のセキュリティリスク 1.S3バケットの誤ったポリシー設定によるリスク ● ツール:s3recon  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 44

Slide 44 text

S3のセキュリティリスク 1.S3バケットの誤ったポリシー設定によるリスク ● 不適切な書き込み権限が付与されている場合 (例) ○ Effect: Allow ○ Proncipal: * ○ Action: s3:GetObject, s3:PutObject ○ Resource: arn:aws:s3:::web-assets/* ■ JavaScriptファイルが格納されており、Webアプリケーションで埋め込まれている        -> JSファイルを書き換えられる可能性がある  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 45

Slide 45 text

S3のセキュリティリスク 1.S3バケットの誤ったポリシー設定によるリスク ● Webサイトに埋め込まれているJSファイルの書き換え (例)  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 46

Slide 46 text

S3のセキュリティリスク 1.S3バケットの誤ったポリシー設定によるリスク ● バケット内のJSファイルが書き換え可能な場合 ○ Webアプリケーションで埋め込まれているサイト上で ■ XSSによるCookieの不正取得 ■ Webスキミングによるクレジットカード番号の不正取得  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 47

Slide 47 text

S3のセキュリティリスク 2.S3バケットを利用した脆弱なソースコードによるリスク ● S3を扱う脆弱なソースコード (例) ○ 署名付きURLの生成 ■ Path Tvaersalによる同一バケット内のファイルの情報漏洩 ○ 直接的なファイルのアップロード (POSTポリシー) ■ 安全でないアップロードによるファイルの改竄 ● 悪意のあるファイルの配布  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 48

Slide 48 text

S3のセキュリティリスク S3のセキュリティに関するブログ (執筆) ● Amazon S3の脆弱な利用によるセキュリティリスクと対策 ○ https://blog.flatt.tech/entry/s3_security  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 49

Slide 49 text

S3のセキュリティリスク [小まとめ]設定不備や脆弱性によるセキュリティリスク ● 設定不備 ○ 公開を意図しないファイルへのアクセス許可による情報漏洩 ○ Webアプリケーション上でXSSによるCookieの漏洩 ○ Webスキミングによるクレジットカード番号の漏洩 ● 脆弱性攻撃 ○ Path Traversalによるバケット内のファイルの情報漏洩 ○ 安全でないアップロードによるバケット内のファイルの改竄  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 50

Slide 50 text

Amazon Cognito 認証・認可・ユーザー管理を提供するサービス ● Webアプリケーションやモバイルアプリケーションなどで使用可能 ● 主なコンポーネント ○ Cognito User Pool ■ ユーザーのサインアップやサインイン、ユーザーの管理をする ○ Cognito ID Pool ■ User Poolで認証されたユーザーに対して他のAWSサービスにアクセスを許可する ● 利用場面 (例) ○ Webサイト上での認証やアカウント管理など  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 51

Slide 51 text

Cognitoのセキュリティリスク Cognitoにおけるセキュリティリスク 1. 設定不備 a. Cognito User Poolにおける設定の不備 b. Cognito ID Poolにおけるアクセス制御の不備  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 52

Slide 52 text

Cognitoのセキュリティリスク Cognitoにおけるセキュリティリスク 1. 設定不備 a. Cognito User Poolの設定不備による情報漏洩 i. 構成上の不適切な自己サインアップ ii. 属性の書き換えによるアクセス制御の回避 b. Cognito ID Poolのポリシーの不適切な設定による情報漏洩 i. IAMポリシーの不適切な設定によるアクセス制御の回避 ->認証やアクセス制御を回避してデータの漏洩に繋がる恐れがある  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 53

Slide 53 text

Cognitoのセキュリティリスク 1.Cognito User Poolの設定不備による情報漏洩 ● 構成上の不適切な自己サインアップ ○ 招待制や管理者画面などのアプリのUI上にサインアップ機能がない場合 ■ Cognitoでサインアップを許可している & ■ -> AWS CLIベースで直接サインアップすることが可能  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 54

Slide 54 text

Cognitoのセキュリティリスク 1.Cognito User Poolの設定不備による情報漏洩 ● 属性の書き換えによるアクセス制御の回避 ○ カスタム属性の書き換え権限が許可されている場合 (アプリクライアント) ■ -> AWS CLIベースで属性の書き換えによりアプリ内でアクセス制御の回避が可能  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 55

Slide 55 text

Cognitoのセキュリティリスク 2.Cognito ID Poolにおけるアクセス制御の不備 ● Cognito ID Poolのポリシーの不適切な設定による情報漏洩 ○ Cognito ID Poolに設定するIAMロールが不適切な設定の場合 ■ 発行されたクレデンシャルを取得し、S3やDynamoDBなどの不正操作が可能  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 56

Slide 56 text

Cognitoのセキュリティリスク [小まとめ]設定不備によるセキュリティリスク ● 設定不備 ○ Cognito User Poolの設定不備による情報漏洩 ■ 自己サインアップによりアクセスを意図しない先へのアクセス許可による情報漏洩 ■ 属性の書き換えによりアクセス制御の回避による情報漏洩 ○ Cognito ID Poolのポリシーの不適切な設定による情報漏洩 ■ 発行されたクレデンシャルの取得によりS3などの不正操作による情報漏洩  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 57

Slide 57 text

その他のAWSサービス  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12) Amazon DynamoDB NoSQLデータベースサービス 利用場面 • 大量の書き込みや読み込みなどが 必要とされるWebサイトやモバイル のDBとして使用する • 特に様々な規模で低レイテンシーな データアクセスが必要な場面 Amazon API Gateway APIの作成・管理ができるサービス 利用場面 • バックエンドのAPIエンドポイントとしてアク セス制御を管理する

Slide 58

Slide 58 text

その他のAWSサービスの         セキュリティリスク  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12) Amazon DynamoDB 脆弱性 • アプリケーション側の脆弱なソース コードによる情報漏洩 • NoSQL InjectionによるDB内 の情報漏洩 ->DynamoDB内のデータが     漏洩する恐れがある Amazon API Gateway 設定不備 • アクセス制御の回避 • ブロックの回避 • WAFの回避 ->API Gateway先のリソースに   アクセスして情報が      漏洩する恐れがある

Slide 59

Slide 59 text

AWSサービスのセキュリティ [小まとめ]AWSサービスにおける主なセキュリティリスク  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12) Step1 • Lambda • クレデンシャルの漏洩 • 権限昇格 • Cognito • 認証の回避 • API Gateway • アクセス制御の回避 Step2 • S3 • バケット内の情報漏洩 • DynamoDB • DB内の情報漏洩

Slide 60

Slide 60 text

5. AWSサービスにおける       セキュリティ対策

Slide 61

Slide 61 text

AWS Lambdaのセキュリティ Lambdaにおける主なセキュリティ対策 ● アプリケーション ○ セキュリティ的に安全なソースコードを実装する ■ コード内にクレデンシャルを使用したい場合、AWS Secret Managerを活用する ○ 信頼できる安全なライブラリを使用する ■ 同一ライブラリを管理したい場合、AWS lambda Layersを活用する ● 権限 ○ Lambdaに付与するIAMロールは「最小限の権限」で設定する ■ AWS IAMでのセキュリティのベストプラクティス  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 62

Slide 62 text

Amazon S3のセキュリティ S3における主なセキュリティ対策 ● 設定 ○ ポリシーの権限設定を適切に行う ■ 公開範囲, ユーザー, 操作権限, リソース範囲 ● アプリケーション ○ セキュリティ的に安全なソースコードを実装する ■ 特にファイル名やパスを扱う部分, アップロード周りなど  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 63

Slide 63 text

Amazon Cognitoのセキュリティ Cognitoにおける主なセキュリティ対策 ● 設定 ○ アプリケーションの設定に合った形で適切に設定を行う ■ 自己サインアップの許可 (管理者のみ, ユーザー) ○ アプリクライアントに関する権限などを適切に設定を行う ○ ポリシーの権限やリソース範囲などを適切に設定を行う  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 64

Slide 64 text

その他のAWSサービスのセキュリティ  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12) Amazon DynamoDB • アプリケーション • セキュリティ的に安全なソースコー ドを実装する • 特にDB操作を行うパラメータの扱い など • 設定 • 適切なアクセス制御を設定する • FGAC (Fine-Grained Access Control) Amazon API Gateway • 設定 • リソース先やアクセス認可に 合った適切な設定を行う • Cognito, IAM , Lambda • 入力値の検証機能 • WAF

Slide 65

Slide 65 text

AWSサービスのセキュリティ対策 モニタリングや監査サービス ● Amazon CloudWatch ○ リクエストに関するメトリクスを収集して検知する ● AWS CloudTrail ○ 実行記録やIAMロールの動作を記録する ● AWS X-Ray ○ 分析やデバッグなど実行してパフォーマンスを測る ● AWS Config ○ 設定変更履歴を管理して追跡や評価をする  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 66

Slide 66 text

AWSサービスのセキュリティ対策 [小まとめ]AWSサービスにおけるセキュリティ対策 ● 各サービスのリスクに応じてセキュリティ対策が必要 ● 継続的なモニタリングや監査もできる体制も必要 ● AWSの公式ベストプラクティスを活用する ○ AWS Well-Architected フレームワーク ■ サーバーレスアプリケーションレンズ ○ 各サービスのセキュリティベストプラクティス  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 67

Slide 67 text

6. まとめ

Slide 68

Slide 68 text

2. サーバーレスのセキュリティ [小まとめ]サーバーレスにおけるセキュリティリスク 設定不備 • 認証の不備 • 機密データの公開 • アクセス制御の不備 • セキュリティの設定ミス 脆弱性攻撃 • インジェクション (Injection) • XML外部エンティティ (XXE) • Cross-Site Scripting (XSS) • 安全でないデシリアライゼーション • 既知の脆弱性を持つコンポーネントの使 用  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 69

Slide 69 text

3. クラウドのセキュリティ [小まとめ]クラウドにおけるセキュリティリスク ● クラウド環境には様々な脅威が存在する ○ 特にクレデンシャルが狙われる ● クレデンシャルが漏洩する経路は様々考えられる ○ 脆弱性攻撃, エラー出力, ハードコーディング, ミスによるパブリック化 ● クレデンシャルが漏洩した場合、多大なる被害が起きる恐れがある ○ 情報漏洩や改竄, サービスの停止, 踏み台化, 多額の請求  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 70

Slide 70 text

4. AWSサービスのセキュリティ [小まとめ]AWSサービスにおける主なセキュリティリスク  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12) Step1 • Lambda • クレデンシャルの漏洩 • 権限昇格 • Cognito • 認証の回避 • API Gateway • アクセス制御の回避 Step2 • S3 • バケット内の情報漏洩 • DynamoDB • DB内の情報漏洩

Slide 71

Slide 71 text

5. AWSサービスのセキュリティ対策 [小まとめ]AWSサービスにおけるセキュリティ対策 ● 各サービスのリスクに応じてセキュリティ対策が必要 ● 継続的なモニタリングや監査もできる体制も必要 ● AWSの公式ベストプラクティスを活用する ○ AWS Well-Architected フレームワーク ■ サーバーレスアプリケーションレンズ ■ セキュリティの柱 ○ 各サービスのセキュリティベストプラクティス  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 72

Slide 72 text

まとめ AWSサービスにおけるサーバーレス環境のセキュリティリスク ● サーバーレスな環境でもセキュリティリスクは存在する ○ 各AWSサービスやクラウド環境全体 ● 適切な形でセキュリティ対策・運用を行う ● AWSの公式ベストプラクティスを活用する  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

Slide 73

Slide 73 text

ご清聴ありがとうございました!  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)