DevSecOpsの定義
DevSecOps(開発、セキュリティ、運用の略)とは、ソフトウェアとアプリケーションの開発ライフサイクル全体を通じてセキュリティを継続的に統合し、最適なセキュリティとパフォーマンス効率を確保する手法です。これは、DevOps手法の拡張として必要なものと考えられています。
コンテナとクラウドは、どちらも新しいセキュリティガイドライン、ポリシー、慣行、ツールを必要とします。DevSecOpsの考え方は、コンテナやクラウドを活用するIT組織にとって必要不可欠なものです。これらのテクノロジーはアジャイルな性質を持つため、DevOpsライフサイクルとCI/CDパイプラインのあらゆる段階でセキュリティを統合する必要があります。
DevSecOpsの7つのメリット
利点 | 説明 |
---|---|
1. セキュリティの強化 | アプリケーションセキュリティの強化は、DevSecOpsの最も魅力的なメリットの1つです。セキュリティに対してプロアクティブなアプローチを取り、プロセスの早い段階から脅威を軽減することができます。 |
2. チーム間のコラボレーション | 開発チーム、セキュリティチーム、運用チームが協力して、すべてのベストプラクティスが適用されていることを確認し、プロセスのあらゆる脆弱性に対処します。 |
3. より速い提供 | パイプラインのすべてのステップでセキュリティが考慮されると、プロセスの早い段階で修正が行われるため、開発者は展開機能に集中でき、ソフトウェアとアプリケーションをより迅速に提供できるようになります。 |
4. コンプライアンス | 開発者はDevSecOpsを使用して、すべてのデータセキュリティと法的要件に準拠した開発プロセスを確保できます。 |
5. 付加価値 | DevSecOpsアプローチではチームが協力して作業する必要があります。これは、セキュリティに妥協することなく、顧客に付加価値を提供するさまざまな変更を考え出す動機付けとなります。 |
6. 費用効率 | DevSecOpsのアプローチは、セキュリティ、統合、提供を継続的かつ自動的に推進します。そのため、開発者は他の優先事項に集中でき、オーバーヘッドコストを削減できます。 |
7. ビジネスの成功 | セキュリティの脆弱性が悪用されて、通常業務に支障をきたすことを、組織の利害関係者が心配する必要がなくなれば、ビジネスに対する信頼が高まり、通常はより多くの収益がもたらされます。 |
2023年版クラウドストライクグローバル脅威レポート
2023年版グローバル脅威レポートは、世界中で最も頻繁に活動している高度ないくつかのサイバー脅威アクターに焦点を当てています。これらのサイバー脅威アクターには、国家、サイバー犯罪、ハクティビストの攻撃者が含まれます。最も高度で危険なサイバー犯罪者についてお読みください。
DevOpsとDevSecOps
DevOpsは、ソフトウェア開発とIT運用をリンクするアジャイル開発手法であり、ソフトウェア開発ライフサイクルを短縮し、継続的な開発と提供のサイクルを可能にします。DevOpsは、次の3つの継続的な原則に基づいて構築されています。
- 統合:継続的インテグレーションには、コーディング、設計、ビルド、統合、テストなどのコア開発アクティビティがあります。
- 提供:継続的デリバリーには、ソフトウェアアプリケーションとアップグレードの定期的な提供が含まれます。
- 展開:継続的デプロイは、基本的には、自動化されたパイプラインワークフローです。
DevSecOpsは、DevOpsムーブメントの発展形であり、ソフトウェア開発ライフサイクルを加速し、アプリケーションやアップデートの対応スケジュールの迅速化を可能にすることを目的としています。DevSecOpsは、このアジャイルフレームワークをベースに、ITプロセスの各フェーズにセキュリティ対策を組み込むことで、リリースサイクルのスピードに影響を与えることなく、セキュリティの脆弱性を最小限に抑え、コンプライアンスを向上させます。
DevSecOpsでは、DevOpsフレームワークの各ステップにセキュリティ機能が組み込まれます。DevSecOpsの考え方の一環として、組織は従来のDevOpsワークフローにステップを追加することになります。以下の内容が含まれます。
- リスク/ベネフィット分析を実施して、組織の現在のリスク許容度を判断する。
- セキュリティ環境における既存の脆弱性と既知の脅威に対処する包括的なビルトインセキュリティ戦略を作成する。
- アプリケーションに必要なセキュリティ制御を決定する。
- セキュリティの開発およびテストプロセス内で繰り返されるタスクを自動化する。
DevSecOpsの仕組み
前述したように、DevSecOpsは、CI/CDパイプラインのすべての段階でチーム間のコラボレーションを促進します。すべてのCI/CDパイプラインは、チーム固有のニーズとリソースに応じて異なるものになりますが、一般的には4つの重要な段階があります。CI/CDパイプラインには、次の4つのコンポーネントがあります。
- ビルド:この段階では、ソースコードがリポジトリから取得され、バイナリアーティファクトに組み込まれます。選択した統合開発環境 (IDE) は、開発者がこのプロセスを自動化する際に役立ちます。
- テスト:CI/CDパイプラインでは、できるだけ継続的なテストを採用する必要があります。ユニットテストは、新機能が意図したとおりに動作していることを確認できます。テストのほとんどはこのタイプです。回帰テストは、コードに新しいものを追加しても既存のインフラストラクチャが壊れないことを確認します。
- 提供:開発者のコードは、テスト後にステージング環境に移動する必要があります。A/Bテストを実施して長引く問題を発見するだけでなく、QAチームに何を調査すべきかを知らせます。
- 展開:すべての自動テストに合格したビルドは本番環境に展開できます。継続的デリバリーでは人間が手動承認を行いますが、継続的デプロイでは展開が完全に自動化されます。
従来のDevOpsアプローチでは、セキュリティテストは開発プロセスの終盤(通常はアプリケーションが本番環境に展開された後)に行われます。その理由は、安全な設定管理や脆弱性スキャンなどのセキュリティ関連のタスクにかなりの時間がかかり、開発プロセスに遅れが発生する可能性があるためです。
DevSecOpsモデルでは、CI/CDパイプライン全体にセキュリティプラクティスを織り込む必要があります。
DevSecOpsの5つのベストプラクティス
IT運用部門、セキュリティチーム、アプリケーション開発部門の一体化を目的とする組織は、セキュリティをソフトウェア開発ワークフローのコアコンポーネントにする必要があります。DevSecOpsを実現するには、組織は次の2つの基本的なことを行う必要があります。
- セキュリティテストが開発サイクル全体に組み込まれ、開発チームによって完了されるようにする。
- 開発チームがテスト中に見つかった問題を管理および解決できるようにする。
そのために、組織がこの新しいアジャイルモデルに確実に移行するための、DevSecOpsのベストプラクティスをいくつか紹介します。
1. DevOpsチーム内に専任の情報セキュリティリーダーを配置する
多くのチームは、開発チームにセキュリティチャンピオンを含めることで、DevSecOpsの考え方を実現します。セキュリティチャンピオンとは、アプリケーションセキュリティの専門知識を持ち、当該分野においてチームの大半よりも高度なトレーニングを受けている人です。この担当者は、セキュリティ修正が正しいかどうかをレビューできます。
2. ITチームをスキルアップする
開発ライフサイクルのあらゆる側面にセキュリティを浸透させるため、ITチームのスキルアップを図ります。DevSecOpsモデルでは、開発チームのすべてのメンバーがセキュリティに責任を負います。これまでDevOpsエンジニアやソフトウェア開発者のコアな責任ではなかったことを考えると、組織ではこれらの新しい要件をサポートするためにスタッフのスキルアップが必要になる可能性があります。組織は、サイバーセキュリティパートナーと協力してカリキュラムやトレーニングプログラムを開発し、ITチームがDevSecOpsの原則を理解できるようにすることができます。
3. 繰り返し発生するセキュリティプロセスとタスクを自動化する
DevOpsはスピードがすべてであり、それはDevSecOpsも同様です。開発サイクルの早い段階で自動化されたセキュリティ制御とテストを実装することで、組織はアプリケーションを迅速かつ俊敏に提供できます。さらに、記述されたコードをスキャンするツールを使用することで、セキュリティの問題をより迅速に特定して修正することができます。
4. 文化の転換を重視する
すべての利害関係者が同じ認識を持つために従うべき最も重要なプラクティスの1つは、よりプロアクティブなセキュリティアプローチを採用するように組織の文化をシフトすることです。利害関係者には、従業員、顧客、ベンダー、取締役、および組織に利害関係を持つその他の人が含まれます。文化の変革を支援する方法として、従業員向けの包括的なサイバーセキュリティトレーニングプログラムの実施があります。このトレーニングには、最も一般的な攻撃者と、これらの攻撃者が機密データにアクセスする手法を含める必要があります。さらに、開発者はセキュリティに対するシフトレフトアプローチを採用する必要があります。つまり、プロセスの初期段階からセキュリティを考慮し、プロセス全体を通して、あらゆる脆弱性にパッチが適用され、完全に保護されているようにします。
5. セキュリティを継続的に統合するための適切なツールを選択する
クラウドテクノロジー、コンテナやマイクロサービスを使用する場合、組織はセキュリティポリシー、プラクティス、ツールを再評価する必要があります。このような環境において、多くの組織がクラウドネイティブセキュリティプラットフォーム (CNSP) をその解決策として検討しています。CNSPの目標とは、多様なマルチクラウド環境におけるセキュリティ確保の複雑さを低減することです。CNSPは、クラウドネイティブアーキテクチャのニーズとDevOps文化の開発プラクティスを満たすように設計されています。CNSPは、特定のベンダーに焦点を当てるのではなく、クラウドに依存せずに、ハイブリッドスタック全体の可視性と保護を提供するように構築されています。また、安全な設定管理、クラウドワークロードとコンテナのランタイム保護、さらに仮想マシン (VM)、コンテナ、サーバーレス機能の検知/対応機能などの性能も備えています。