正しいDevSecOpsソリューションを評価し、選択するための7つのヒント
多くの企業がDevOpsパイプラインにセキュリティを統合することの重要性を認識しているため、DevSecOps製品への需要は非常に高まっています。しかし選択肢を探してDevSecOps市場に飛び込んだITおよびDevOpsのプロはすぐにDevSecOpsツールやフレームワークの数が膨大で混沌としていることに気付きます。このような選択肢の多さから、どのセキュリティソリューションを選択すべきか、どのようにしてソフトウェア開発パイプラインに統合すべきかを理解しようとする場合、意思決定の疲労や分析の麻痺に陥ることがよくあります。
しかし、そもそもなぜDevSecOpsが注目されるようになったのでしょうか?イノベーションのペースに追いつくため開発者はオープンソースソフトウェア(OSS)の利用を飛躍的に増やし、今ではアプリケーション開発パイプラインでの利用が広まっています。より多くのソースコードが「外部」から送られてくるようになったため、その内容を把握し、理解する必要性は今やミッションクリティカルなものになっています。
このブログ記事ではOSSに含まれている可能性のある脆弱性を軽減するために最も効果的なツールや技術の種類を見ていきます。次に特にソフトウェア構成分析(SCA)の分野において市場で利用可能な多くの異なるオプションを評価する際に、米とモミ殻を分離し、より良く、より多くの情報に基づいた意思決定を行うための役立つヒントを共有します。
現代の開発の実態
今日の典型的なアプリケーションの90%近くが公開されているオープンソース・ライブラリのOSSコンポーネントで構成されています。この傾向はアプリケーションに存在する脆弱性の数を増加させており、その結果として悪用や侵害の数も増加しています。企業はDevOpsパイプラインに統合された、より多くのセキュリティチェックを追加することで対応しています。
しかし、セキュリティのプロや開発者は本番ソフトウェアの安全性と安定性を確保するために、どのような種類のツールが本当に必要なのでしょうか?公平に考えればソフトウェア開発ライフサイクル(SDLC)のさまざまな領域に対応する DevOpsセキュリティツールには大まかなカテゴリがあります:
- コード分析(静的・動的)
- ソフトウェア構成分析(サードパーティのOSS用)
- ランタイムセキュリティ解析(コンテナを含む)
理想的にはチームは完全なSDLCセキュリティのために、これらの領域をすべて採用することを目指すべきですが、このブログではOSSコンポーネントやバイナリの脆弱性やライセンスコンプライアンス違反の軽減を具体的に対象としたソフトウェア構成分析に焦点を当てていきます。
DevSecOpsの7つの必須事項
ここではDevSecOpsツールを選択する際に確認しておくべき7項目をご紹介します:
すべてのアーティファクトをネイティブに管理・解釈ができるツール
チームがどのOSSコンポーネントに脆弱性があるかを特定する作業を行う前に、まず基本的な要件として、その種類や技術に関係なく全てのアーティファクトとバイナリを一元的に管理できるユニバーサルなDevOpsプラットフォームが必要です。DevOpsプラットフォームは、どのアーティファクトが使用され、消費され、作成され、そしてそれらの依存関係が何であるかを分かる必要があります。
最高の燃料を手に入れる
最も効果的なソリューションを実現するためにVulnDBのような世界クラスの脆弱性インテリジェンスなソースの力を借りて、最新の脆弱性に関するナレッジを確実に備えておく必要があります。世界で最も優れた車は、それを推進するための優れた燃料がなければ意味がありません。
可視性とインパクト分析を実施する
DevSecOpsの「勝者」はバイナリが使用しているOSSライブラリやコンポーネントだけでなく、zipファイルやDockerイメージにパッケージされているものであっても、それらを解凍してスキャンし、全てのレイヤーや依存関係を確認する方法もを理解できる必要があります。組織のアーティファクトと依存関係構造を理解できるソリューションは可視性を提供し、ソフトウェアエコシステムのあらゆる場所で検出された脆弱性やライセンス違反の影響を判断することができます。
コンテナとクラウドネイティブ・フレームワークのサポートが必要
ソリューションはクラウドネイティブデプロイメントのデファクトスタンダードになりつつあるコンテナベースのリリースフレームワークをサポートする必要があります。コンテナ技術を再帰的に判断し、各レイヤーへ詳細な調査できれば脆弱性が検出できないことはありません。残念ながら、一部のスキャンツールはコンテナをサポートしていない場合やコンテナのさまざまなレイヤーと全ての依存関係を理解していないものもあります。
ガバナンスの自動化
ガバナンスに関しては企業のセキュリティオフィスと連携して自動化できることです。ガバナンスシステムは企業のポリシーを自動的に実行し、それに応じたアクションを介入なしに実行できなければなりません。主な機能は以下の通りです:
- 電子メール、インスタントメッセージ、Jiraなどの各種チャネルを介したセキュリティやコンプライアンス違反の通知
- ダウンロードのブロック
- 脆弱なコンポーネントを含むビルドの失敗
- 脆弱性のあるリリースバンドルのデプロイ防止
パイプラインを横断する
DevSecOpsにおける差別化要因は、この網羅的なデータを取得し、リポジトリ、ビルド、コンテナにまたがる全てのバイナリのセキュリティスキャンに紐付けることができるソリューションになるでしょう。SDLC全体にまたがることができ、本番環境へのデプロイ後も脆弱性やコンプライアンス違反を継続的に検出・監視できるプラットフォームは群を抜く存在となるでしょう。
ハイブリッド化
ハイブリッド・インフラストラクチャをまだ所有していなくても、これからは所有することになるでしょう。現在進行中のクラウド・ジャーニーとインフラストラクチャのハイブリッド化をサポートするツールとソリューションを今すぐ選択することで、どこにいてもDevSecOpsパイプライン全体で一貫性と標準を確保することができます。
終わりに際して
DevSecOpsはもうCIOのウィッシュリストではありません。今やDevSecOpsはSDLCの不可欠な一部として必須のIT戦略となっています。組織が適切なDevSecOpsソリューションを選択した場合でもリーダーはチーム全体で健全なDevSecOpsプロセスを実装していることを確認する必要があります。これにはアプリケーション・セキュリティのベストプラクティスについて、開発者とDevOpsの実践者を継続的に教育する必要性も含まれます。開発者の数はセキュリティ専門家の数よりも250倍も多いため、脆弱性のギャップを埋めるためには開発チーム全体にセキュリティの知識を行き渡らせることが不可欠です。
リポジトリ、バイナリ、CI/CD自動化、OSS構成分析を管理でき、コンテナ化されたリリースフレームワークをサポートするDevSecOpsプラットフォームを選択することは困難な作業に思えるかもしれません。またオンプレミス、クラウド、マルチクラウド、ハイブリッドのデプロイメントをサポートすることは更に複雑な作業となります。しかし、今回ご紹介したソリューションに求めるべき事項のチェックリストを出発点として検討してみてはいかがでしょうか。この7つのヒントがベンダーに正しい質問をし、マーケットのノイズを断ち切り、十分な情報に基づいた意思決定を行うための確固たる基盤となることを願っています。