セキュリティはシステムに関係する全員の責任範囲です。多くの組織はこの要件を認識していますが、セキュリティはインフラレベルでのみ対処されることがよくあります。攻撃者はインジェクションやクロスサイトスクリプティングなどの技術により様々なチャネルを通じて脆弱性を悪用するため、これでは間違いなく不十分です。また、プラットフォームやサードパーティの依存関係に固有の脆弱性を発見し、そのユーザーを攻撃することもあります。これらのセキュリティリスクを特定し解消する際、ソフトウェアが大規模かつ複雑になるにつれて俊敏性が低下する可能性があります。
このワークショップでは、自分が構築したアプリケーション のセキュリティについて考える方法を学びます。一般的なセキュリティリスクと、ソフトウェアデリバリーに大きな影響を与えることなくアプリケーションを保護するために使用できるツールとテクニックについて説明します。
このワークショップで提供されるアセットには、意図した脆弱性 が含まれています。自分の環境では使用しないでください。これらのアセットは 学習目的 でのみ用いてください。
このワークショップでは、開発者は ネイティブな AWS の開発者向けツール を使用して自動リリースパイプラインをセットアップし、安全でないウェブアプリケーションをデプロイします。その過程で一般的なセキュリティリスクを調査し、それらがどのように悪用されているかを説明します。次に、いくつかのセキュリティツール/プロセスを導入し、リリースパイプラインに統合して、コード変更ごとに実行されるようにします。また、これらの自動および手動のプロセスを通じて特定されたすべてのセキュリティリスクを是正します。
このワークショップが終わるまでに、以下のようなアプリケーションセキュリティステージを持つリリースパイプラインが構築されます。
最終目標は、安全でないWebアプリケーションを修正し、より安全な状態でリリースすることです。
正常なラボの完了にあたって、AWS のインフラなどの基本的なサービス、Python プログラミング言語、Git、およびコマンドライン (bash) に関する基礎知識を持っていることを推奨します。なお、Web アプリケーションは Python で書かれていますが、すべての概念とツールはあらゆるプログラミング言語とフレームワークにも応用できます。