DevSecOpsとは何か

DevOpsについては聞いたことがあるでしょう。でも、DevSecOpsはどうですか? DevSecOpsとは、ソフトウェア セキュリティをソフトウェア配信プロセス全体の中核として位置づける概念を指します。

これがなぜ重要かを理解するには、ソフトウェア セキュリティのしくみについて考える必要があります。従来、ソフトウェア セキュリティ オペレーションは、ソフトウェアの作成に必要な他のプロセスとは別個に実行されていました。セキュリティについてあまり考えずに、開発者がコードを記述し、ITチームが導入していました。セキュリティ エンジニアがコードまたはコードをホストする環境の潜在的な脆弱性を確認するのは、ソフトウェアが作成され、本番環境に導入された後でした。

ソフトウェア セキュリティへのこうしたアプローチは、特に導入スピードが加速しているクラウド環境では非常に非効率です。セキュリティの問題が検出された場合、すでに記述され、導入されたコードの取り消しが必要になることがよくありました。つまり、ソフトウェアを本番環境に導入するまで問題が検出されず、組織がセキュリティの脅威にさらされることがよくあったのです。

DevSecOps (セキュリティの「シフト レフト」)では、ソフトウェア配信プロセスの全段階にセキュリティを組み込むことで、これらの問題に対処します。DevSecOpsにより、開発者はコードの記述時にセキュリティについて考えるようになり、ソフトウェアを導入する前にセキュリティの問題がないかどうかがテストされます。また、ITチームは導入後に発生したセキュリティの問題に迅速に対処するための計画を作成できます。

DevSecOpsはDevOpsを土台にしている
DevSecOpsはDevOpsの代替品ではありません。DevOpsの基本概念を拡張したものであり、開発者とITチームがサイロで別々に機能するのではなく、密接に連携してセキュリティを組み込むという考え方です。効果的なDevSecOpsとは、DevOpsを採用し、CI/CD開発パイプライン全体にセキュリティを統合することを指します。

DevSecOpsはツールではなく、文化である
組織でのDevSecOpsの実現に役立つツールやプロセスは数多くありますが、突き詰めていくと、DevSecOpsはツールやプロセスではなく、文化なのです。

DevSecOpsは、組織に正しい文化的価値を植え付けるものなのです。開発者、ITチーム、セキュリティ スペシャリスト、およびソフトウェアの配信に関わるすべての人々が、すべての作業においてソフトウェア セキュリティが何よりも大切であるという考え方を身に付ける必要があります。アプリケーションに関する意思決定を行う前に、チーム全体がセキュリティ上の懸念事項について考える必要があります。それができれば、DevSecOpsを実現したことになります。

DevSecOpsを実装する
DevSecOpsを実現する方法のうち、組織にとって最善の方法またはその理想的な組み合わせは、組織のニーズによって異なります。組織にDevSecOpsの文化を植え付けるのに役立つ一般的な戦略を、いくつかご紹介します。

  • 教育: ソフトウェア配信プロセス内のすべての利害関係者が、最新のセキュリティの脅威、および脅威に対処することの重要性について理解している必要があります。

  • 通信: すべてのチーム メンバー間の有効な通信チャネルを構築し、セキュリティの問題に関する情報を迅速に共有できるようにします。

  • セキュリティ プレイブック: さまざまなチーム メンバーが、特定のタイプのセキュリティ インシデントにどのようにレスポンスすべきかを指定する「プレイブック」を作成します。

  • 監査とコンプライアンス: セキュリティの監査とコンプライアンス チェックを、ソフトウェア配信プロセスの定例作業にします。

  • 適切なツールの使用: クラウドでのセキュリティおよびコンプライアンス ポリシーの適用の自動化を推進する、APIベースのクラウド セキュリティ ツールを選びます。

開発者がセキュリティに配慮するように仕向ける
DevSecOpsを実装する際、ほとんどの組織において、最も抵抗するのは開発者チームです。ここで疑問になるのは、セキュリティに配慮し、ワークロードに追加して、スキル セットを学ぶよう開発者を説得するには、どうすればよいでしょうか。

適切なツールは、DevSecOpsへの変換の促進剤として役に立ちます。クラウド プロバイダAPIを活用するツールを実装し、ポリシーの適用を自動化することで、開発者は徐々に学習し、有害なミスを犯さないようになります。クラウド ネイティブ ツールを活用して、AWSでポリシーの適用を自動化できます。ただし、マルチクラウド導入を使用する場合、厳格なコンプライアンス規制を受ける場合、または多くのアカウントを持つAWS環境に拡張する場合は、サードパーティ ツールを使用して効果的に作業を行い、すべてを1つのコンソールで管理する必要があります。適切なツールを選ぶ際のヒントについては、このブログ記事をご覧ください

DHI GroupがどのようにDevSecOps文化を創出したかについては、ブログ記事DevOpsとSecOpsの比較からDevSecOpsへをご覧ください。