2022年5月10日
STO
DevSecOps:エンジニアリングチームがSDLCを通じてセキュリティスキャンを実行し、エンドユーザーに届く前に脆弱性を発見して修正する方 法論。DevSecOpsのベストプラクティスを学びましょう。
ソフトウェア開発チームは、高速性を維持しながら、本番サービスにおけるソフトウェア脆弱性の数を最小限に抑えるという課題を抱えています。
従来のアプリケーション・セキュリティのアプローチでは、ソフトウェア提供の急速なペースについていけないため、企業はDevOpsのコンセプトを実装したセキュリティ手法を使用し始めています。このアプローチにより、開発チームは、開発者優先のセキュリティとガバナンスを組み込んだ高速なソフトウェア・デリバリーを実現することができます。
DevSecOpsのフレームワークは素晴ら しい結果をもたらしますが、ほとんどのIT分野と同様に、避けるべき落とし穴があります。DevSecOpsのベストプラクティスを理解し、実施することが、これらの落とし穴を回避する鍵となります。
DevSecOps は、ソフトウェアデリバリライフサイクル(SDLC)のすべてのフェーズに調和したセキュリティの自動化を追加する哲学と実践である。ほとんどのITプロフェッショナルは、DevOpsフレームワークの無限ループ図に精通しています。ループの各フェーズを、その実際の実装に対応させることができます。
DevOpsセキュリティ(別名:シフトレフトセキュリティ)はテストフェーズだけのものだと思うかもしれませんが、DevSecOpsのベストプラクティスは共有の責任であり、最高の結果を得るためにはすべてのフェー ズにまたがる必要があります。
DevSecOpsの中核は、エンジニアリングチームがソフトウェアのデリバリーライフサイクルを通じてセキュリティスキャンを実行し、エンドユーザーに届く前に脆弱性を発見して修正する方法論です。それでは、DevOpsセキュリティのベストプラクティスについて説明します。
DevOpsの理念がエンジニアリングチームとオペレーションチームの垣根を取り払うことを促進するように、DevSecOpsの理念はエンジニアリングチームとセキュリティチームの垣根を取り払うことを促進します。
DevOpsと同様に、DevSecOpsを成功させるためには、企業文化の変革が必要です。企業文化の変化には、2つの方法があります。
どちらのアプローチも導入は容易ではありませんが、セキュリティ問題がエンドユーザーに到達する前に特定し、解決することに注力する文化を醸成するには、どちらも効果的です。各組織は、どのアプローチが最も効果的であるかを判断する必要があり、多くの組織では、両方の戦術を統合して実施しようとしている。
DevOpsチームは、CI/CDパイプラインに関連するあらゆるものを自動化するアプローチを採用しています。同じ原則が、DevSecOps のプラクティスを用いて安全なアプリケーションを作成する場合にも当てはまります。安全なアプリケーション配信のワークフローにおけるすべてのステップを注意深く調査することは、自動化できるものを決定するのに役立ちます。次に、重要性と必要な労力に基づいて、優先順位をつけたリストを作成することができます。意味のあるものはすべて自動化されるまで、リストを下げていきます。
ガバナンスは、最近、すべての企業で重要なテーマとなっています。規制当局によって義務付けられたコンプライアンス・イニシアチブは、企業に対してセキュリティ対策の追跡と文書化を要求しています。適切なツールを使用することで、企業はポリシーをコードとして実装し(Open Policy Agentがその一例)、承認されたソフトウェアセキュリティスキャナーの使用を強制し、文書化することができます。これにより、スキャンツールの使用を標準化し、コンプライアンス監査に迅速かつ容易に合格できるようになるという利点があります。
標準化されたソフトウェアセキュリティスキャンツールの使用を要求し、強制するだけでは十分ではありません。スキャナの出力から情報を得ることができるセキュリティゲートやガードレールを提供することも重要である。ここでも、コードとしてのポリシーは、リアルタイムのスキャニングツールの出力を使用して CI/CD パイプラインのワークフローを制御するために使用することができます。
DevOps の動きは、新しいツールの普及を招き、大量のデータを生み出しました。同様に、DevSecOpsの動きは、膨大な量のデータ出力を伴うより多くのツールを必要としています。本番アプリケーションのセキュリティ脆弱性を低減し、ビジネスリスクを最小化するためには、ツーリング出力の分析が重要です。正規化、重複排除、圧縮、相関関係などのビッグデータ技術を使用して、結合されたスキャナ結果のセットを迅速かつ効率的に分析する必要があります。
DevSecOps の定義は、「アプリケーション・セキュリティの左遷」というぐらいに単純なものです。これは単純化しすぎですが、DevSecOpsはより多くの作業負荷をエンジニアリングチーム、より具体的には開発者にシフトするという事実を浮き彫りにしています。このことを念頭に置いて、DevSecOpsのプラクティスの採用は、エンジニアリング・チームに過度の負担をかけないようにすることが肝要です。
CI/CD パイプラインに複数のセキュリティスキャナを追加した場合の「ビッグデータ」結果につ いては、すでに説明した。適切なツールを提供しなければ、開発者は、どの脆弱性を修正すべきか、修正の優先度を決定するためのデータ分析を手作業で行い、関連するすべてのワークフロー(Jira チケットの作成、例外の追跡など)を実行する必要がある。エンジニアチームのこの負担を軽減しなければ、DevSecOpsの導入は著しく 困難です。当然ながら、次の質問は、"どのようにしてエンジニアリングチームのこの負担を減らすか?"です。その答えは、ツールとワークフローの適切な組み合わせを使用することです。適切なツールを選択するためのガイダンスとして、当社のDevSecOpsチェックリストをご覧ください。
検出されたすべての脆弱性には、関連する Jira チケットが必要です。エンジニアリングチームとITセキュリティチームの効率化のために、これらのチケットは自動的に作成されるべきです。検出された脆弱性が誤検出の場合でも、監査目的のためにチケットは必要です。適切なツールは、これらのJiraチケットを作成し、脆弱性が検出されたアプリケーションサービスと関連付けることができます。脆弱性が修正されたとき(そして修正が確認されたとき)、チケットは自動的に更新され、閉じられるはずです。
これまで述べてきたほぼすべてのベストプラクティスは、自動化や分析を支援するツールを必要とします。従来のITセキュリティツールは、最新のDevOpsプラクティスやク ラウドネイティブテクノロジーを念頭に置いて設計されたものではありませんでした。企業は、DevSecOps プログラムを成功させるために、必要なツールを再評価する必要があります。
多くの企業が、構築か購入かの決断に頭を悩ませています。刻々と変化する状況に対応するために複雑なツールを構築することは、一般的にほとんどの企業にとって維持することが現実的ではありません。したがって、組織のニーズに合ったツールを評価する際に、当社のDevSecOpsチェックリストが参考になることがあります。
新しい脆弱性が検出された場合はどうなりますか?セキュリティ免除の申請と追跡はどのような手順で行われるのですか?セキュリティの適用除外について、他のチームにどのように通知するか?これらのプロセスやワークフローの中には、組織内にすでに存在するものもあれば、新たに作成する必要があるものもある。既存のものであれ新たに作成するものであれ、これらのワークフローはすべて、組織全体でセキュリ ティ対策の規模を拡大するために自動化する必要がある。
すでにDevSecOpsを採用しているのであれば、成果物が本番環境に到達した後にセキュリティスキャンを実行するだけでは十分でないことを理解しているはずです。セキュリティスキャンは、アプリケーションサービスの全ライフサイクルにわたって実施する必要があります。
DevSecOpsは、単に開発者にセキュリティテストを実行させるだけではありません。開発者優先の考え方でセキュリティを自動化し、情報セキュリティを少数のセキュリティ専門家チームの枠を超えて拡大し、エンドユーザーまで到達するセキュリティリスクを低減することなのです。大きな課題は、ソフトウェアの提供速度を落とさずに、これらすべてを達成することです。
今日、アプリケーション内で使用されるクラウドネイティブテクノロジーやオープンソースコンポーネントの急増に伴い、セキュリティツールやプロセスは、変化の速度に対応するために更新される必要があります。従来のセキュリティツールやプロセスは、現代の環境では目的に適合していません。
Harness Security Testing Orchestration(STO)は、本記事で取り上げたベストプラクティスの実装を支援します。STOは、ソフトウェアデリバリライフサイクル全体にわたってセキュリティスキャンをシームレスに統合し、ポリシーアズコードガバナンスを提供し、DevSecOpsプログラムの成功に必要なビッグデータ分析を実行することができます。DevSecOpsの実践を採用する準備はできていますか?カバーすべき主要な機能をまとめたチェックリストをダウンロードしてください。
この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。