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. 概要 1. 自己紹介 2. サーバーレスにおけるセキュリティリスク 3. クラウドにおけるセキュリティリスク 4. AWSサービスにおけるセキュリティリスク 5.

    AWSサービスにおけるセキュリティ対策 6. まとめ  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  2. 自己紹介 • 森岡 優太 (Yuta Morioka) ◦ Twitter:@scgajge12 • 所属

    ◦ 学生 & セキュリティエンジニア • JAWS歴 ◦ Security-JAWS #25 登壇 (2022/05) ▪ 「AWS Lambdaにおけるセキュリティリスクと対策」  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  3. サーバーレスの定義 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)
  4. サーバーレスのセキュリティ サーバーレス環境に関するセキュリティリスクの種類 • 利用するサービスの設定不備によるリスク ◦ 設定不備による直接的な攻撃 ◦ 設定不備による間接的な攻撃 • アプリケーションの脆弱性によるリスク

    ◦ 開発したアプリケーションへの攻撃 ◦ 利用するライブラリへの攻撃  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  5. 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)
  6. 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)
  7. 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)
  8. サーバーレスのセキュリティ サーバーレスで特に重大なセキュリティリスク • 利用するサービスの設定不備によるリスク ◦ 認証の不備 • アプリケーションの脆弱性によるリスク ◦ インジェクション

    (Injection)  -> 不正アクセスや脆弱性攻撃により情報漏洩に繋がる恐れがある  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  9. サーバーレスのセキュリティ [小まとめ]サーバーレスにおけるセキュリティリスク 設定不備 • 認証の不備 • 機密データの公開 • アクセス制御の不備 •

    セキュリティの設定ミス 脆弱性攻撃 • インジェクション (Injection) • XML外部エンティティ (XXE) • Cross-Site Scripting (XSS) • 安全でないデシリアライゼーション • 既知の脆弱性を持つコンポーネントの使 用  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  10. クラウドのセキュリティリスク クラウド(AWS環境)において攻撃者が欲しい情報 • クレデンシャル (Credential) ◦ AWS IAM, API Key,

    DBの認証情報 • 個人情報 ◦ ユーザーに関する機微な情報 • その他 ◦ ログファイルの情報 ◦ Webアプリケーション内の情報  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  11. クラウドのセキュリティリスク AWSにおけるクレデンシャル (Credential) • AWSアカウント ◦ ルートユーザー • AWS IAM

    (Identity and Access Management) ◦ IAMユーザー ▪ アクセスキー ◦ IAMロール  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  12. クラウドのセキュリティリスク 考えられるクレデンシャルの漏洩 (例) • 脆弱性攻撃による漏洩 • エラー出力に含まれる情報による漏洩 • ハードコーディングされたコードの閲覧による漏洩 •

    GitHubなどの公開リポジトリに誤ってPushすることによる漏洩  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  13. クラウドのセキュリティリスク クレデンシャルが漏洩した場合の被害 (例) • 顧客情報や機密情報などの漏洩・改ざん • 運営するサービスの停止・破壊 • 踏み台サーバーとしての悪用 •

    多額の利用請求  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  14. クラウドのセキュリティ [小まとめ]クラウドにおけるセキュリティリスク • クラウド環境には様々な脅威が存在する ◦ 特にクレデンシャルが狙われる • クレデンシャルが漏洩する経路は様々考えられる ◦ 脆弱性攻撃,

    エラー出力, ハードコーディング, ミスによるパブリック化 • クレデンシャルが漏洩した場合、多大なる被害が起きる恐れがある ◦ 情報漏洩や改竄, サービスの停止, 踏み台化, 多額の請求  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  15. 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)
  16. AWSサービスのセキュリティ 各AWSサービスにおける主なセキュリティリスク • Lambda ◦ クレデンシャルの漏洩 ◦ 権限昇格 • S3

    ◦ バケット内の情報漏洩 • Cognito ◦ 認証の回避 • DynamoDB ◦ DB内の情報漏洩 • API Gateway ◦ アクセス認可の回避  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  17. AWS Lambda イベント発生時にコード実行するサービス • 7種類のプログラミング言語でコードを書ける ◦ Node.js, Python, Java, Ruby,

    C#, Go, Powershell • 利用場面 (例) ◦ API Gatewayと連携してAPIとして活用する ▪ ユーザーやサーバーからのリクエストに応じてイベント処理をする ◦ S3にオブジェクトがアップロードされた際にイベント処理をする ◦ DynamoDBのデータが更新された際にイベント処理をする  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  18. Lambdaのセキュリティリスク ソースコードやライブラリの脆弱性によるリスク 1. Lambdaの環境変数からIAMロールのクレデンシャルの漏洩 2. Lambdaのソースコードからハードコーディングされたクレデンシャルの 漏洩 3. Lambda Runtime

    APIなどの内部のサービスAPIにアクセスすること による機微な情報の漏洩  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  19. 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)
  20. Lambdaのセキュリティリスク 1.環境変数からIAMロールの漏洩 (事後) • 入手したIAMロールの権限を元に他のAWSサービスやリソースを不正 操作できる ◦ 例) 機密性の高いDBやストレージへの読み取りや書き込み •

    IAMロールの権限昇格 • Lambda上で仮想通貨マイニング  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  21. Lambdaのセキュリティリスク 2.ハードコーディングされたクレデンシャルの漏洩 (例) • アクセスキー • API Key • DBの認証情報

    • 書き込み先のS3バケット名  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  22. 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)
  23. 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)
  24. 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)
  25. 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)
  26. Lambdaのセキュリティリスク [小まとめ]脆弱性攻撃によるセキュリティリスク • ソースコードやライブラリの脆弱性によるリスク ◦ 環境変数からIAMロールのクレデンシャルの漏洩 ◦ ハードコーディングされたクレデンシャルの漏洩 ◦ Lambda

    Runtime APIから機微な情報の漏洩 • クレデンシャルの漏洩によりAWAサービスやリソースを不正操作 ◦ S3やDyanmoDBなどから機微な情報を不正取得・改竄  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  27. Amazon S3 オブジェクト型のストレージサービス • 様々なファイルの格納や静的ファイルの配信が可能 ◦ 画像, 動画, データ, ログなどのファイル

    • AWS SDKを使用してプログラムでS3を操作することが可能 • 利用場面 (例) ◦ アップロードされたファイルを格納する ◦ 静的なファイルを格納してWebサイトを配信する  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  28. S3のセキュリティリスク S3バケットにおけるセキュリティリスク 1. S3バケットの誤ったポリシー設定による情報漏洩 a. 不適切なパブリックアクセスの許可 b. 不適切な認証ユーザーの書き込み許可 2. S3バケットを利用した脆弱なソースコードによる情報漏洩

    a. S3バケットにおけるPath Traversal b. 安全でないPOSTポリシー  ->S3バケットに含まれるファイルの情報が漏洩する恐れがある  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  29. S3のセキュリティリスク 1.S3バケットの誤ったポリシー設定によるリスク • 不適切なポリシー要素の定義 (例) ◦ Principal:アクセスを許可するユーザーの対象範囲 ▪ 「AWS: *」で全ユーザーにアクセスを許可する

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

    ◦ 開発段階に使用されていたバケット ▪ バケット名:hoge-s3-staging, hoge-s3-development • 不適切なポリシーが設定されている->漏洩            ->バケット名が一定推測可能  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  31. 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)
  32. S3のセキュリティリスク 2.S3バケットを利用した脆弱なソースコードによるリスク • S3を扱う脆弱なソースコード (例) ◦ 署名付きURLの生成 ▪ Path Tvaersalによる同一バケット内のファイルの情報漏洩

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

    • 脆弱性攻撃 ◦ Path Traversalによるバケット内のファイルの情報漏洩 ◦ 安全でないアップロードによるバケット内のファイルの改竄  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  34. Amazon Cognito 認証・認可・ユーザー管理を提供するサービス • Webアプリケーションやモバイルアプリケーションなどで使用可能 • 主なコンポーネント ◦ Cognito User

    Pool ▪ ユーザーのサインアップやサインイン、ユーザーの管理をする ◦ Cognito ID Pool ▪ User Poolで認証されたユーザーに対して他のAWSサービスにアクセスを許可する • 利用場面 (例) ◦ Webサイト上での認証やアカウント管理など  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  35. Cognitoのセキュリティリスク Cognitoにおけるセキュリティリスク 1. 設定不備 a. Cognito User Poolにおける設定の不備 b. Cognito

    ID Poolにおけるアクセス制御の不備  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  36. Cognitoのセキュリティリスク Cognitoにおけるセキュリティリスク 1. 設定不備 a. Cognito User Poolの設定不備による情報漏洩 i. 構成上の不適切な自己サインアップ

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

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

    -> AWS CLIベースで属性の書き換えによりアプリ内でアクセス制御の回避が可能  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  39. Cognitoのセキュリティリスク 2.Cognito ID Poolにおけるアクセス制御の不備 • Cognito ID Poolのポリシーの不適切な設定による情報漏洩 ◦ Cognito

    ID Poolに設定するIAMロールが不適切な設定の場合 ▪ 発行されたクレデンシャルを取得し、S3やDynamoDBなどの不正操作が可能  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  40. Cognitoのセキュリティリスク [小まとめ]設定不備によるセキュリティリスク • 設定不備 ◦ Cognito User Poolの設定不備による情報漏洩 ▪ 自己サインアップによりアクセスを意図しない先へのアクセス許可による情報漏洩

    ▪ 属性の書き換えによりアクセス制御の回避による情報漏洩 ◦ Cognito ID Poolのポリシーの不適切な設定による情報漏洩 ▪ 発行されたクレデンシャルの取得によりS3などの不正操作による情報漏洩  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  41. その他のAWSサービス  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12) Amazon DynamoDB

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

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

    • Lambda • クレデンシャルの漏洩 • 権限昇格 • Cognito • 認証の回避 • API Gateway • アクセス制御の回避 Step2 • S3 • バケット内の情報漏洩 • DynamoDB • DB内の情報漏洩
  44. AWS Lambdaのセキュリティ Lambdaにおける主なセキュリティ対策 • アプリケーション ◦ セキュリティ的に安全なソースコードを実装する ▪ コード内にクレデンシャルを使用したい場合、AWS Secret

    Managerを活用する ◦ 信頼できる安全なライブラリを使用する ▪ 同一ライブラリを管理したい場合、AWS lambda Layersを活用する • 権限 ◦ Lambdaに付与するIAMロールは「最小限の権限」で設定する ▪ AWS IAMでのセキュリティのベストプラクティス  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  45. Amazon S3のセキュリティ S3における主なセキュリティ対策 • 設定 ◦ ポリシーの権限設定を適切に行う ▪ 公開範囲, ユーザー,

    操作権限, リソース範囲 • アプリケーション ◦ セキュリティ的に安全なソースコードを実装する ▪ 特にファイル名やパスを扱う部分, アップロード周りなど  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  46. Amazon Cognitoのセキュリティ Cognitoにおける主なセキュリティ対策 • 設定 ◦ アプリケーションの設定に合った形で適切に設定を行う ▪ 自己サインアップの許可 (管理者のみ,

    ユーザー) ◦ アプリクライアントに関する権限などを適切に設定を行う ◦ ポリシーの権限やリソース範囲などを適切に設定を行う  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  47. その他のAWSサービスのセキュリティ  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12) Amazon DynamoDB

    • アプリケーション • セキュリティ的に安全なソースコー ドを実装する • 特にDB操作を行うパラメータの扱い など • 設定 • 適切なアクセス制御を設定する • FGAC (Fine-Grained Access Control) Amazon API Gateway • 設定 • リソース先やアクセス認可に 合った適切な設定を行う • Cognito, IAM , Lambda • 入力値の検証機能 • WAF
  48. AWSサービスのセキュリティ対策 モニタリングや監査サービス • Amazon CloudWatch ◦ リクエストに関するメトリクスを収集して検知する • AWS CloudTrail

    ◦ 実行記録やIAMロールの動作を記録する • AWS X-Ray ◦ 分析やデバッグなど実行してパフォーマンスを測る • AWS Config ◦ 設定変更履歴を管理して追跡や評価をする  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  49. AWSサービスのセキュリティ対策 [小まとめ]AWSサービスにおけるセキュリティ対策 • 各サービスのリスクに応じてセキュリティ対策が必要 • 継続的なモニタリングや監査もできる体制も必要 • AWSの公式ベストプラクティスを活用する ◦ AWS

    Well-Architected フレームワーク ▪ サーバーレスアプリケーションレンズ ◦ 各サービスのセキュリティベストプラクティス  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  50. 2. サーバーレスのセキュリティ [小まとめ]サーバーレスにおけるセキュリティリスク 設定不備 • 認証の不備 • 機密データの公開 • アクセス制御の不備

    • セキュリティの設定ミス 脆弱性攻撃 • インジェクション (Injection) • XML外部エンティティ (XXE) • Cross-Site Scripting (XSS) • 安全でないデシリアライゼーション • 既知の脆弱性を持つコンポーネントの使 用  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  51. 3. クラウドのセキュリティ [小まとめ]クラウドにおけるセキュリティリスク • クラウド環境には様々な脅威が存在する ◦ 特にクレデンシャルが狙われる • クレデンシャルが漏洩する経路は様々考えられる ◦

    脆弱性攻撃, エラー出力, ハードコーディング, ミスによるパブリック化 • クレデンシャルが漏洩した場合、多大なる被害が起きる恐れがある ◦ 情報漏洩や改竄, サービスの停止, 踏み台化, 多額の請求  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)
  52. 4. AWSサービスのセキュリティ [小まとめ]AWSサービスにおける主なセキュリティリスク  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)

    Step1 • Lambda • クレデンシャルの漏洩 • 権限昇格 • Cognito • 認証の回避 • API Gateway • アクセス制御の回避 Step2 • S3 • バケット内の情報漏洩 • DynamoDB • DB内の情報漏洩
  53. 5. AWSサービスのセキュリティ対策 [小まとめ]AWSサービスにおけるセキュリティ対策 • 各サービスのリスクに応じてセキュリティ対策が必要 • 継続的なモニタリングや監査もできる体制も必要 • AWSの公式ベストプラクティスを活用する ◦

    AWS Well-Architected フレームワーク ▪ サーバーレスアプリケーションレンズ ▪ セキュリティの柱 ◦ 各サービスのセキュリティベストプラクティス  AWSサービスにおけるサーバーレス環境のセキュリティリスク @ JAWS DAYS 2022         #jawsdays2022 (@scgajge12)