DevSecOps は広範なトピックで、開発、セキュリティ、運用チームが継続的なデプロイメントサイクルで協力して働くことを指します。各チームに必要な機能 (コンパイル/ビルド、プロビジョニングとインフラ構成、品質テスト、セキュリティテスト、モニタリングなど) が自動化されています。
この点に関する具体的な推奨事項は、組織が継続的デプロイメントのプロセス (パイプライン) を作業方法として採用し、結合度の低いマイクロサービスを実装し、ソフトウェアリリースの最初からセキュリティを考慮に入れることです。
それぞれ以下のトピックで説明します。
コードをインスタンスにデプロイする場合は、以下の予防措置を講じてください。
コードのセキュリティテストは、静的アプリケーションセキュリティ検査 (SAST)は、Veracode や Fortify などのツールを、動的アプリケーションセキュリティ検査 (DAST)は、Aqua や Acunetix などのツールを使用して実行できます。これらのレビューの重要なポイントは、アプリケーションのデプロイメントプロセスの一部として実行され、高リスクまたは重大な脆弱性が見つかった場合に本番環境への移行が中断されることです。
脆弱性が早期に発見されるほど、修正の労力、経済的、時間的にみて修復が容易になります。
また、使用されているオープンソースライブラリを確認し、その脆弱性を報告するツールを追加することも価値があります。
AWS には AWS CodePipeline
のサービスが利用でき、これらの継続的デプロイメントプロセスを自動的にオーケストレーションできます。例:
デプロイされるアプリケーションに修正できない脆弱性があることがわかっている場合 (例:サードパーティに依存している場合)、コードのエラーが修正されるまでの間、アプリケーションを保護するためにカスタム WAF ルールをパイプラインの一部としてデプロイすることができます。
AWS ブログで、継続的デプロイメント (CI/CD) プロセスの一部として保護インフラストラクチャをデプロイする例として、Web ACL のデプロイ方法を紹介しています。 Terraform を使用して CI/CD でAWSセキュリティサービスをデプロイおよび構成する方法