Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSサービスにおけるサーバーレス環境のセキュリティリスク ~セキュリティ視点からのクラウド入門~

morioka12
October 08, 2022

AWSサービスにおけるサーバーレス環境のセキュリティリスク ~セキュリティ視点からのクラウド入門~

JAWS DAYS 2022の登壇スライドです。
https://jawsdays2022.jaws-ug.jp/sessions/B12/

morioka12

October 08, 2022
Tweet

More Decks by morioka12

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  4. 1. 自己紹介

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  7. サーバーレスの定義
    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)

    View full-size slide

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

    View full-size slide

  9. 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)

    View full-size slide

  10. 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)

    View full-size slide

  11. 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)

    View full-size slide

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

    View full-size slide

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

     AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  25. 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)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  30. 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)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  33. 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)

    View full-size slide

  34. 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)

    View full-size slide

  35. 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)

    View full-size slide

  36. 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)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  44. 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)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  67. 6. まとめ

    View full-size slide

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

     AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide