とあるAWS SAとSecurity-JAWS#01 ~ほんと、退屈しないわねこのセキュリティは!~ https://s-jaws.doorkeeper.jp/events/149297
の資料です
© 2023, Amazon Web Services, Inc. or its affiliates.© 2023, Amazon Web Services, Inc. or its affiliates.Masao KanamoriSolutions Architect, DevAxAmazon Web Services Japan G.Kセキュアにデプロイしよう開発者のためのセキュリティテスト自動化
View Slide
© 2023, Amazon Web Services, Inc. or its affiliates.自己紹介• 金森 政雄Ø 所属/役職 :DevAx(Developer Acceleration) チームソリューションアーキテクトØ 好きなサービスAmazon ElasticContainer ServiceAWS Step Functions AWS Fault InjectionSimulator
© 2023, Amazon Web Services, Inc. or its affiliates.シフトレフトとは...セキュリティへの関⼼をソフトウェア開発ライフサイクルの可能な限り早い段階に移すこと
© 2023, Amazon Web Services, Inc. or its affiliates.セキュリティに対する注意のタイミング
© 2023, Amazon Web Services, Inc. or its affiliates.シフトレフトは開発者の仕事を増やすのでは?• セキュリティ問題の早期解消は運用メンバーのストレスを減少させる• 早期に修正するほどコストは安い [1]• 市場投入までの時間を短縮し、ターンアラウンドタイムを短縮する• 多くのプロセスは自動化できる1https://ntrs.nasa.gov/citations/20100036670
© 2023, Amazon Web Services, Inc. or its affiliates.© 2023, Amazon Web Services, Inc. or its affiliates.シフトレフトはどのように実装されるか
© 2023, Amazon Web Services, Inc. or its affiliates.シークレット検出漏洩防止セキュアなコーディングプラクティス動的コード解析脆弱性テストペネトレーションテスト静的コード解析使用するライブラリのコンプライアンスコンプライアンスチェック環境設定秘匿情報と鍵の管理セキュアなネットワーク設計Well-Architectedアーキテクチャのガードレールコンプライアンス脆弱性評価シークレット管理セキュリティ監視の有効化コンプライアンスチェックの有効化脆弱性評価ペネトレーションテストコンプライアンスチェック行動異常脅威モデリング
© 2023, Amazon Web Services, Inc. or its affiliates.シフトレフト ̶ リリースパイプラインとの統合開発 (IDE) コミット ビルド テストデプロイ(ステージング)デプロイ(Prod)監視AWS Cloud9AWS IDE Toolkitsセキュリティテスト一式AWSCodeCommitAWSCodeBuildAWS CodeBuild+ サードパーティAWSCodeDeployAWSCodeDeployAWSX-RayAmazonCloudWatchAWS CodePipeline
© 2023, Amazon Web Services, Inc. or its affiliates.開発(IDE)コミットビルド前(SCA、SAST)ビルドビルド後(DAST)テストデプロイ(ステージング)デプロイ(Prod)監視AWS Cloud9AWS IDE ツールキットAWSCodeCommitAWSCodeBuildAWS CodeBuild+ サードパーティAWSCodeDeployAWSCodeDeployAWSX-RayAmazonCloudWatchAWS CodePipelineAWSCodeBuildAWSCodeBuildAWScodeGuruOWASP ZAPTalismanAmazonDetectiveAWSConfigインフラスキャンコンプライアンススキャンWAF承認・Pre-commit フック・IDE セキュリティプラグインシフトレフト ̶ リリースパイプラインとの統合
© 2023, Amazon Web Services, Inc. or its affiliates.今日作るもの: 自動化されたセキュリティテストAWS CodePipelineStaging EnvironmentCI/CD Application Security InfraAWS CodeBuild(SAST)AWS CodeCommit(Source Repository)AWS ECS(Staging Deployment)Amazon ECR(Image Repository)Amazon EC2(OWASP ZAP)AWS CodeBuild(License Analysis)AWS CodeBuild(SCA)AWS CodeBuild(Docker build)AWS CodeBuild(DAST)1b1a1c3Amazon ECS(SonarQube)24 56 78
© 2023, Amazon Web Services, Inc. or its affiliates.© 2023, Amazon Web Services, Inc. or its affiliates.開発者のためのセキュリティプロセスとツール紹介12
© 2023, Amazon Web Services, Inc. or its affiliates.脅威モデリングPLAN ステージ
© 2023, Amazon Web Services, Inc. or its affiliates.脅威モデリングとは• コードを記述する前に、潜在的なセキュリティ問題をある程度特定するための設計時のアクティビティです• 以下のような情報を定義します[2] :• アセット、アクター、エントリポイント、コンポーネント、および信頼レベル• 脅威のリスト• 脅威ごとの軽減策• リスクマトリックスの作成と確認• これは、データフロー図、マインドマップ、または単に表形式で表現できます• また、よりターゲットを絞ったセキュリティテストを実施するために専⾨家 (テスターやセキュリティエンジニア) がアプリケーションを理解するのにも役⽴ちますhttps://aws.amazon.com/jp/blogs/news/how-to-approach-threat-modeling/
© 2023, Amazon Web Services, Inc. or its affiliates.脅威モデリングとは (続き)https://en.wikipedia.org/wiki/STRIDE_%28security%29https://catalog.workshops.aws/threatmodel脅威モデリングには多くの⽅法がありますが、最も成熟した⽅法の1つは STRIDE[3] [4]です。⽬的は、開発前にセキュリティ要件を特定するために、脅威と緩和策をリストにまとめることです。脅威 ID アセット エントリポイント 攻撃サマリー テクニックTR-01 ユーザーアカウントログインページ誰かのアカウントをハイジャックし、悪意のある活動を行うことができること。ブルートフォース攻撃パスワードダンプセッションハイジャックフィッシング脅威 ID 予防的/発見的コントロールTR-01 • 多要素認証• パスワードのライフサイクルとルール• セッション ID の安全な生成• セッションライフサイクル• セッションクッキーの安全なストレージ• 顧客への定期的なセキュリティリマインダー
© 2023, Amazon Web Services, Inc. or its affiliates.機密データ検出漏洩防止セキュアなコーディングプラクティスCODE ステージ
© 2023, Amazon Web Services, Inc. or its affiliates.IDE セキュリティプラグイン• IDE プラグインは、開発者へ迅速に実行可能な対応策を提供します• コーディングの段階から潜在的リスクを防止するのに便利です• 通常、正規表現ベースのアプローチが用いられます• 迅速なフィードバックのために設計されており、他のフェーズでのアプローチと組み合わせて利用する必要があります。
© 2023, Amazon Web Services, Inc. or its affiliates.ソースコントロールでのセキュリティ- Git Hook• アクセスキー、アクセストークン、SSH キーなどの機密情報は、偶発的な git コミットにより誤って漏洩することがよくあります• Pre-Commit フックは、開発者のマシンまたはクラウド IDE にインストールし、機密データをフィルタリングします• 通常、正規表現ベースのアプローチが⽤いられますTalisman GitHound
© 2023, Amazon Web Services, Inc. or its affiliates.認証情報の安全な格納と使⽤• 設定ファイルに認証情報を格納せず安全なツールを使⽤してください• 漏洩は、システム悪⽤、情報漏洩、特権の昇格などの原因となります• 認証情報のローテーションも設定できますAWSSecrets Manager
© 2023, Amazon Web Services, Inc. or its affiliates.静的コード解析使用するライブラリのコンプライアンスBUILD ステージ
© 2023, Amazon Web Services, Inc. or its affiliates.静的アプリケーションセキュリティテスト (SAST)• 開発したコードにおけるセキュリティの脆弱性を分析します• 典型的な例 ̶ SQLインジェクション、XSS、不安全なライブラリなど• 誤検知の管理には⼈⼿での監視が必要になりますAmazon CodeGuru
© 2023, Amazon Web Services, Inc. or its affiliates.ソフトウェア構成解析 (SCA)• ソフトウェアの⼤部分はサードパーティのライブラリであり、多くのセキュリティ脆弱性の由来となっています [5]• OSS ライブラリの⼊⼿は⾮常に簡単なものの、継続的な更新が必要です• pip、npm、bundler、go get、composer など• Software Composition Analysis (SCA) では、脆弱なサードパーティライブラリを識別するためのチェックを⾏いますhttps://www.veracode.com/state-of-software-security-report
© 2023, Amazon Web Services, Inc. or its affiliates.ライセンスチェック• 組織によっては、会社の知的財産を保護するために特定のライブラリを使⽤しないよう求められる場合があります• GNU (General Public License) のようなコピーレフトライセンスを⽤いる場合、アプリケーションも同ライセンスで配布する必要があります
© 2023, Amazon Web Services, Inc. or its affiliates.動的アプリケーションセキュリティテスト (DAST)• ⾃動化ツールを使⽤したブラック/グレーボックスのセキュリティテスト• SAST だけでは結合的な結果を得られない場合があります• DAST は、デプロイメント固有の問題の特定に役⽴ちます• SAST と DAST の結果を⽐較して、誤検出を除外しますOWASP ZAP
© 2023, Amazon Web Services, Inc. or its affiliates.© 2023, Amazon Web Services, Inc. or its affiliates.ワークショップコンテンツはこちらhttps://catalog.workshops.aws/sec4devs/ja-JP25