DevSecOps について
組織がビジネスの生産性をサポートし、リモートワークを有効にし、運用を効率的にスケーリングしようとする中で、クラウド導入は加速し続けています。 ただし、適切なセキュリティ インフラストラクチャがないこの急速な導入により、誤ってデータが侵害され、組織が重大なリスクにさらされる可能性があります。
クラウド アプリケーションのセキュリティギャップ
クラウド導入が拡大しても、セキュリティのギャップは維持されます。 クラウド プラットフォームに移行する組織は、常に適切なセキュリティ制御を実装するとは限りません。
暗号化のギャップ: 多くのクラウド アプリケーションでは、データを適切に保護できません。
- 保存データ: 暗号化されていないデータベース、ストレージ アカウント、およびファイル システムでは、ストレージ メディアにアクセスしたり、盗難に遭ったり、不適切に破棄したりすると、データが脆弱になります。
- 転送中のデータ: 暗号化されていない接続を介してデータを送信するアプリケーションは、情報をインターセプトに公開します。 内部ネットワーク トラフィックも暗号化する必要があります。
- 一般的なギャップ: SaaS アプリケーションのかなりの割合では、データが適切に暗号化されません。 ストレージ アプリケーションでは、多くの場合、保存時と転送中の両方で暗号化が不足しています。 コラボレーション アプリケーションは、適切な保護なしで機密情報を頻繁に送信します。
セッション保護の欠陥: 弱いセッション管理では、脆弱性が発生します。
- HTTP セキュリティ ヘッダーがありません: HSTS (HTTP Strict Transport Security)、CSP (コンテンツ セキュリティ ポリシー)、セキュリティで保護された Cookie 属性などのセキュリティ ヘッダーを実装していないアプリケーションでは、セッションがハイジャックに対して脆弱になります。
- トークンの公開: 安全でない方法で送信されたセッション トークンは、攻撃者によって傍受および再利用され、正当なユーザーになりすますことができます。
- 限定的な導入: 包括的な HTTP ヘッダー セッション保護を実装する SaaS アプリケーションはほとんどありません。ユーザーはセッションベースの攻撃に対して脆弱になります。
Secure DevOps (DevSecOps) とは
速度とセキュリティの間の緊張: DevOps は、自動化、継続的インテグレーション、迅速なデプロイを通じて、より迅速に作業を行う点に重点を置いています。 セキュリティは従来、徹底、慎重なレビュー、包括的なテストを重視しています。 これらの目標は矛盾しているように見える可能性があります。
従来のセキュリティ アプローチの問題: 開発サイクルの終了時にのみセキュリティ上の懸念に対処すると、いくつかの問題が発生します。
- 計画外の作業は、チームがリリースの圧力を受けているときに、デプロイの直前に表示されます。
- 遅れて検出されたセキュリティの問題には、完了した機能のコストのかかる再作業が必要です。
- セキュリティは、リリースが遅くなったりブロックされたりするボトルネックになります。
- Teams は、セキュリティをイネーブラーではなく障害と見なします。
- 重大なセキュリティの脆弱性は、リリースのプレッシャーのために優先順位が低くなる可能性があります。
Secure DevOps ソリューション: Secure DevOps は、DevOps の速度とセキュリティの有効性の両方の目標を満たすように設計された一連のアクティビティに、セキュリティと DevOps プラクティスを統合します。 セキュリティは、最後のゲートではなく、最初から開発プロセスの一部になります。
統合の利点: セキュリティで保護された DevOps パイプラインを使用すると、不要なセキュリティの脆弱性を導入することで、開発チームはプロジェクトを中断することなく迅速に作業できます。 セキュリティと速度は、反対の目標ではなく補完的になります。
手記
Secure DevOps は、 DevSecOps とも呼ばれます。 両方の用語に遭遇する可能性がありますが、それぞれが同じ概念を指します。 用語の違いは純粋にスタイルです。 プラクティスと原則は変わりません。
Secure DevOps でのセキュリティの変更
従来のセキュリティ手法: これまで、セキュリティは低速のサイクルで動作し、主に次の点に重点を置いていました。
- アクセス制御: 認証と承認のメカニズムを使用してシステムとデータにアクセスできるユーザーを管理する。
- 環境のセキュリティ強化: 不要なサービスを削除し、セキュリティ パッチを適用し、セキュリティで保護された構成を適用するようにシステムを構成する。
- 境界保護: ファイアウォール、侵入検出システム、ネットワークセグメント化を使用してネットワーク境界を保護する。
拡張されたセキュリティ スコープ: Secure DevOps には、これらの従来のセキュリティ手法が含まれていますが、ソフトウェア開発ライフサイクル全体にわたってセキュリティ上の懸念事項が拡張されます。 Secure DevOps では、セキュリティとは、パイプライン自体とそのパイプラインを通過するすべてのものを セキュリティで保護 することです。
パイプラインのセキュリティに重点を置く: Secure DevOps では、ビルドパイプラインとリリース パイプラインに接続する要素に保護を追加する場所を決定する必要があります。
- ソース コード リポジトリ。
- サーバーとエージェントをビルドします。
- 成果物のストレージとレジストリ。
- 展開ツールとプロセス。
- コード テンプレートとしてのインフラストラクチャ。
- 構成管理システム。
- シークレット管理ソリューション。
包括的なアプローチ: Secure DevOps では、DevOps の速度上の利点を維持しながら、自動化プラクティス、運用環境、およびその他のパイプライン要素にセキュリティを追加する方法と場所を示します。 セキュリティコントロールは、手動ではなく自動化され、統合されています。
Secure DevOps が対処する主要な質問
Secure DevOps は、組織が重要なセキュリティの質問に答えるのに役立ちます。
サード パーティコンポーネントのセキュリティ:
- パイプラインはサードパーティのコンポーネントを消費しており、セキュリティで保護されていますか?
- これらのコンポーネントは信頼できるソースから取得されますか?
- コンポーネント署名は検証されていますか?
- ライセンスは私たちの使用と互換性がありますか?
脆弱性管理:
- 当社が使用するサードパーティ製ソフトウェアに既知の脆弱性はありますか?
- 依存関係の脆弱性の開示を追跡するにはどうすればよいですか?
- 脆弱なコンポーネントを更新するためのプロセスは何ですか?
- 推移的な依存関係を含むすべての依存関係のインベントリはありますか?
検出速度 (検出時間):
- 脆弱性をどのくらいの速さで検出できますか?
- セキュリティ スキャンはパイプラインで自動化されていますか?
- セキュリティの問題に対するランタイム監視はありますか?
- セキュリティ アラートが適切なユーザーに到達する速度はどのくらいですか?
修復速度 (修復時間):
- 特定された脆弱性をどのくらいの速さで修復できますか?
- 同じ自動化されたパイプラインを使用して修正プログラムをデプロイできますか?
- 緊急セキュリティパッチのプロセスは何ですか?
- 修復が有効であることを確認するにはどうすればよいですか?
コードとしてのセキュリティ
自動化されたセキュリティプラクティス: 潜在的なセキュリティ異常を検出するためのセキュリティ プラクティスは、DevOps パイプラインの他の部分と同じくらい堅牢で高速である必要があります。 これには次のものが含まれます。
インフラストラクチャのセキュリティの自動化:
- コード テンプレートとしてのインフラストラクチャの自動セキュリティ スキャン。
- クラウド リソース構成に対するコードとしてのポリシーの適用。
- インフラストラクチャのデプロイ前のコンプライアンス チェック。
- インフラストラクチャのセキュリティ体制の継続的な監視。
アプリケーション セキュリティの自動化:
- ビルド中の静的アプリケーション セキュリティ テスト (SAST)。
- ステージング環境での動的アプリケーション セキュリティ テスト (DAST)。
- 依存関係の脆弱性に対するソフトウェア構成分析。
- デプロイ前のコンテナー イメージのスキャン。
- 運用環境でのランタイム アプリケーション自己保護 (RASP)。
継続的なセキュリティ: Secure DevOps のセキュリティは、単一のチェックポイントではありません。 これは、開発、デプロイ、運用全体を通じて継続的な検証を行います。 パイプラインのすべてのステージには、配信速度を低下させることなく自動的に実行される適切なセキュリティ制御が含まれています。