[レポート] Amazon CodeCatalystでCI/CDパイプラインに脆弱性検査を組み込む #AWSreInvent #DOP403

2023.12.06

こんにちは、muroです。AWS事業本部 サービス開発室でopswitchの開発・運用を担当しています。opswitchでは様々なOSSを利用していますが、サービスを安全に運用するためには継続的なセキュリティ検査が欠かせません。CI/CDパイプライン上でセキュリティ検査を自動的に実行できれば、作業負荷を大きく軽減できるだけでなく、脆弱性に気付かずにリリースしてしまうのを防ぐこともできます。

さて、re:Invent 2023ではAWSの統合ソフトウェア開発サービスである Amazon CodeCatalyst のアップデートも発表されていますが、今回ハンズオン形式でCI/CDパイプラインでセキュリティ検査を組み込むセッションを受講できたので、レポートしていきます。

セッション概要

タイトル

Hands-on with Amazon CodeCatalyst: Automating security in CI/CD pipelines

概要

In this session, learn how to build a CI/CD pipeline with Amazon CodeCatalyst and add the necessary steps to secure your pipeline. Learn how to perform tasks such as secret scanning, software composition analysis (SCA), static application security testing (SAST), and generating a software bill of materials (SBOM). You must bring your laptop to participate.
このセッションでは、Amazon CodeCatalyst を使用して CI/CD パイプラインを構築する方法と、パイプラインを保護するために必要な手順を追加する方法を学びます。シークレット スキャン、ソフトウェア構成分析 (SCA)、静的アプリケーション セキュリティ テスト (SAST)、ソフトウェア部品表 (SBOM) の生成などのタスクを実行する方法を学びます。参加するにはラップトップを持参する必要があります。

スピーカー

  • Kandarp Thakar
  • Birant Akarslan
  • Alex Forsyth
  • Janardhan Molumuri
  • Dr. Rahul Sharad Gaikwad

レベル

400 エキスパート

利用するAWSサービス

Amazon CodeCatalyst

セッションの内容

このセッションはBuilders' Sessionという形式で行われました。5~6人の少人数のグループに講師が1名つき、まず講師からセッションで学んでほしいことの講義があり、その後指示された手順に沿って、各々が持ち込んだラップトップでハンズオンを進めていく、というものでした。

講義パート

DevSecOpsの重要性、CI/CDパイプライン自体のセキュリティ対策、CI/CDパイプライン上で実現するセキュリティ対策について話されました。続いてハンズオンで構築するものが提示されました。

ハンズオンでは、シークレットスキャンと静的アプリケーションセキュリティテスト (SAST) を Amazon CodeGuru で、ソフトウェアコンポジション解析 (SCA) とソフトウェア部品表 (SBoM) を外部サービスの mend.io で実行します。

また、Amazon CodeCatalyst の基本的な概念についても話されました。CodeCatalyst については、次のブログ記事もご参考にどうぞ。

ハンズオンパート

まず、講師の方からセッションでのみ有効なビルダーIDが渡され、予め用意されたスペースにサインインしてハンズオンを開始します。Mythical Mysfits という可愛らしい怪獣図鑑のようなWEBアプリケーションをデプロイするパイプラインを実行していきます。予め用意されたカスタム・ブループリントを使って、プロジェクトを作成します。

プロジェクトを作成した後は、CI/CDパイプラインをYAML形式で編集したり、グラフを操作してタスクの依存関係を設定してパイプラインに CodeGuru と Mend のセキュリティ・タスクを組み込みます。続いて、パイプラインを実行すると、コード内に脆弱性が見つかり、パイプラインが失敗することを確認します。脆弱性を修正してコードをPushすると、パイプラインが成功します。

セッションを受講してみて

脆弱性検査に関して Amazon Inspector はよく利用していますが、CodeGuru と Mend.io については今回初めて触ることができました。両者を組み合わせることで多角的にアプリケーションを検査でき、また CodeCatalyst のパイプラインに簡単に組み込むことができることを学びました。サービス開発の効率化や安全な運用のため、今後も CodeCatalyst を試してきたいと思います。