先週の木曜日の深夜、私たちはここ数年で最も注目すべき情報セキュリティイベントの1つを経験しました。Java用の人気のあるロギングパッケージであるLog4jの新しいゼロデイエクスプロイトが発見されました。 正確な出所とタイムラインはまだ調査中ですが、これは単なる脆弱性の発表ではないことに注意することが重要です。開示された情報の直後に完全に機能するエクスプロイトコードが続き、エクスプロイト自体の実行は簡単であることが判明しました。
30億を超える機器がJavaを実行している一方で、ロギングライブラリはほんの一握りしかないため、それらの多くはLog4jを実行している可能性があります。さらに悪いことに、インターネットに公開された多くのターゲットアプリケーションは、認証なしで外部ユーザーによって悪用される可能性があります。 また、悪名高いHeartbleedや最近公開されたTrojan Sourceなど、他の注目すべきオープンソースの脆弱性とは異なり、この場合、ユーザーが対応を計画するのに十分な時間を確保するための事前の調整は「舞台裏」で行われませんでした。
バグに伴うアプリケーションの再構築が急ぎ始められることなく、ベテランのCISOは睡眠を削ることなく、通常の金曜日のルーチンよりも少しだけ楽だったであろう理由はここにあります。
航空安全の専門家が言うように、スイスチーズの穴が重なると事故やインシデントが発生します。つまり、最悪のシナリオが現れるのを防ぐための保護と制御の複数のレイヤーがあっても、既知の壊滅的なイベントは、これらすべての緩和策が失敗した場合にのみ発生してきました。サイバーセキュリティも例外ではなく、多層防御についてもずっと語り続けられてきました。
スイスチーズの穴の影響を軽減し、すべてのCISOの金曜日を保護するのに役立つ6つの要素を次に示します。
脆弱性への対応は、人、プロセス、テクノロジーの組み合わせによって実現します。ソフトウェア・コンポジション解析ツールは、ライブラリの使用状況を特定して追跡するのに役立ちます。新しい脆弱性が出現すると、シノプシスのBlackDuck®研究チームが問題を調査します。Log4jの脆弱性には、開示されてから数時間の間、詳細なCVEエントリが割り当てられていませんでしたが、シノプシスのアナリストはすでにBlack Duck Security Advisory(BDSA)番号を割り当ててシノプシスの顧客に通知をしました。
そして、Black Duckが新たなBDSAについてのアラートを発信すると、Black Duckを利用している開発チームのセキュリティアナリストは、影響を受けるアプリケーションを確認することができるようになります。この新しい脆弱性の影響を受けるアプリケーションを所有する開発者は、Black Duckアラートの構成方法に従い、Teams、Slack、またはJiraチケットや電子メールで通知を自動的に受け取ります。 次に、更新を迅速に展開するための組織的な仕組みを整える必要があります。ここで、DevOpsが機能しているかを確認する事になるわけです。
組織のDevOps能力を測定しベンチマークするための業界横断的なプログラムであるDevOps Research and Assessment(DORA)の主要な指標の1つは、変更のcommit から本番環境稼働までの所要時間(変更のリードタイム)です。DORAによると、エリートパフォーマーはこのサイクルを1時間以内に完了し、必要に応じて変更を展開できます。ただし、最新のState of DevOps Surveyで調査された1,200人の回答者のうち、エリートカテゴリに分類されるのは26%にすぎません。また次のカテゴリであるハイパフォーマーはこのサイクルを完了するのに1日から1週間かかります。これらの組織は、リードタイムを最短化する準備ができていないのです。つまり、セキュリティパッチを適用することを「通常のビジネス」活動と見なしていないのかもしれません。
エリートとハイパフォーマーの間のこの大きなギャップは、基本的なDevOpsプラクティスの採用を最大化することがすべての人に利益をもたらす理由を示しており、セキュリティ・チームが開発チームと連携してセキュリティ、品質、またはその他の種類の問題の迅速な修正に取り組むかどうか、適切に対応できるようにする必要がある理由を示しています。
図 1:ソフトウェア デリバリーのパフォーマンス指標、”State of DevOps Survey”より
最後に、基盤となるコンポーネントを修正するだけでなく、影響を受けないための3つの理由があります。
まず、優れたコードハイジーン、優れたネットワークアーキテクチャ、および一元化されたセキュリティおよびエンジニアリングチームが適切なセキュリティチェックをCI/CDパイプラインに統合し、開発者に実用的な情報を提供することで得られた信頼は、ユーザーを保護し、すべてのソフトウェアのデリバリーにおいてセキュリティ、品質、および安全性のリスクを回避するのに役立ちます。Coverity®のような静的コード解析ツールは、ログインジェクションの脆弱性を見つけることができます。また、最新のInfrastructure-as-Codeで構成されているのであれば、過度に寛容なネットワークルールを自動分析で検出できます。
十分に調整されたAppSecプログラムでは、チームまたは自動化機能によってASTツールを実行したかどうかを判断し、結果が修正された場合は、Application Security Orchestration and Correlation(ASOC)ダッシュボードを数回クリックする必要があります。
さらに、バイデン大統領によるEO 14028によって支持されたSBOMの採用が増加していることから、ソフトウェアコンポーネント情報は製品ベンダーとその顧客の間でよりシームレスに流れるようになっていくでしょう。すべてのサプライヤに連絡してコンポーネント情報を確認する代わりに、データベースを検索すれば済むのです。Black Duckなどのソフトウェア・コンポジション解析ツールのユーザーは、社内で開発したソフトウェアのSBOMの情報から恩恵を受けられますが、今ではSBOMの幅広い採用と組織間での流通が最前線で行われています。一度SBOMの流通が確立されると、リスクの軽減と管理のための強力なツールとなり、今回のような事態が発生しても迅速な対応(おそらく自動化された対応)がサポートされるのです。
すでに起こっているこれらのことについて話すことは「後の祭り」と言えるかもしれません。セキュリティは単一の個人または部門の仕事ではないことを強調することが重要です。私たちの使命を成功させるためには、これらの活動のそれぞれをすべての人の仕事に組み込む必要があります。また、組織が成功を収めるためには、ITシステムの計画、構築、運用方法の文化にさまざまなセキュリティ活動を組み込む必要があります。たとえば、機能しないセキュリティ要件の策定や設計段階でのアーキテクチャのレビューなどのプラクティスは、アプリケーションが処理する必要のあるデータや、ソフトウェアが本番環境にリリースされる前に満たす必要のあるセキュリティチェックの要件を特定するのに役立ちます。
現代の組織の高度に自動化されたソフトウェア・デリバリー・プロセスやパイプラインでは、前提条件となる手順が完了していない場合に失敗するようにプログラムされているので、既知の脆弱性を含むか緩和策が組み込まれていない製品を発売することはできないでしょう。つまり、将来的にSBOM情報は、ゼロトラストアーキテクチャが、ソフトウェアが実行できる信頼と特権のレベル、または実行を停止するタイミングを動的に決定できる手段になる可能性があるということです。
幸いなことに、これらすべての重要な領域にわたって組織の能力を測定およびベンチマークし、Building Software in Maturity Model (BSIMM)フレームワークを使用して、改善すべきギャップや領域を明らかにすることが可能です。