デジタル化社会にとって重大なビジネスリスクになる"脆弱性"

脆弱性情報の報告数の傾向

一番有名な脆弱性データベースに、米国国立標準技術研究所(NIST)が運営するNVD(National Vulunerability Database)があります。
2023年だけで約3万件の脆弱性が新規に登録されており、このことからも脆弱性管理が重要であることは理解できるかと思います。
改めてですが、脆弱性とは何でしょうか?
ご存じかと思いますが、多くの脆弱性はソフトウェアによりもたらさせており、その実体はソフトウェアの非機能要件におけるバグであります。よって、多くの対策はソフトウェアエンジニアに委ねられています。

引用元:セキュリティスコアカード、NVD

デジタル化社会で重要なもの

Software is eating the world. Marc Andreessen in 2011と言う有名な言葉があります。
デジタル化社会では、この言葉に代表されるように多くの産業で、仕事や業務がソフトウェアに置き換わっており、この点からして信頼性の高いソフトウェアがデジタル化社会には欠かせません。
しかしながら、「2030日本デジタル改革」の中で、日本には喫緊の課題として、デジタル改革を通じた生産性・成長力の再生とソフトウェア産業の競争力強化が国家の課題と、指摘されています。

ソフトウェア産業における課題

これは国内だけでなくグローバルに共有の課題として、ソフトウェア産業のセキュリティ対策が昨今指摘されています。以下の4つはその中でも代表的な課題となります。

  • セキュア・ソフトウェアの開発体制

    ソフトウェア開発のライフサイクルの全段階におけるセキュリティ対策

  • 脆弱性を悪用した攻撃への対応

    以前にも増して既知の脆弱性に対するリスクは高まっており、特にOne Day脆弱性リスク

  • ソフトウェア・サプライチェーン・リスク
  • ソフトウェア製品に対するセキュリティマネジメント体制

セキュリティ対策自体が、製品開発におけるオーバーヘッドと言われています。
開発部門からすると、生産性に係る重大な要素であり、これらの課題は多くの開発組織に共有の課題ではないかと思います。

脆弱性対応についての一つの事実

Verizon社のDBIRレポートから、脆弱性対応についての一つの事実を紹介します。

  • CISA KEV脆弱性の修正が30日時点で未修正の割合が85%、55日で漸く50%に到達したと報告。
  • CISA KEVでCVEに登録された脆弱性のスキャンが行われるまでの平均時間は5日。
  • CISA KEV以外の脆弱性の場合の平均日数は68日。
  • 求められるリードタイム

    企業のパッチ管理サイクルは、実行可能な目標として約30 ~ 60日。
    重大な脆弱性のパッチ適用の目標は15日程度。

実際に攻撃が観測された重大な脆弱性としてKEVが知られていますが、この脆弱性ですら30日経っても85%が未修正だったこと、55日でようやく50%に到達したとをこのレポートでは紹介しています。
KEVに登録された脆弱性のスキャン(検査)は平均時間が5日間だったとか、それ以外の脆弱性は、68日と2ヶ月間放置状態だったとも報告しています。
求められるリードタイムがどうかと言えば、30日から60日と実体より短く、現実と大きなGAPが生まれています。
これは、脆弱性が悪用されている1つの事実だと思います。

マーケットや業界の動向

現状の認識の最後として、マーケットや業界の動向を共有したいと思います。
国内は米国の影響を強く受けており、米国の動向は無視できないです。
その米国の取組みは、一言で言えば、ソフトウェアのセキュリティ強化を強く求めている、につきると思います。
よって、ソフトウェア開発におけるセキュリティ対策がますます重要になることは間違いないかと思います。

米国:ソフトウェアのセキュリティ強化を強く求めている。

  • ソフトウェア製品やデジタルサービスのセキュリティの強化(責任と法制化)
  • ソフトウェア・サプライチェーンのセキュリティ対策(SBOM, SSCRM)
  • セキュア・ソフトウェア開発の強化(SSDF)

国内:

  • SBOMの実証検証と手引きを公開(23年経産省)
  • 継続的な脆弱性診断や管理の高まり(金融/自動車/医療/DX)
  • 多くの企業は資産ベースの管理に留まる。
  • ソフトウェア・インベントリーベースの取組みはこれから。
  • SBOMやSSCRMの意識・興味関心が高まっている。

脆弱性管理とその課題について

ソフトウェア開発における脆弱性対策

ソフトウェア開発における脆弱性対策は、大きくは2つの領域があります。
1つが開発時点での対策、もう1つがリリース後の対策になります

脆弱性スキャンとは

  • 昨今セキュリティ対策のトレンドの1つであるシフトレフト(Shift Left)に該当する取り組みです。
  • その対象や方法は、以下のものがあります。
  • サイクル Coding Build
    スキャン対象 コード 実行環境、パッケージ
    スキャン手法 ソースコード解析
    (SAST)​
    ホスト/コンテナー/
    ​ソフトウェアコンポジション
    解析(SCA)​
    • ​開発サイクルの中で診断スキャンを行うことで、より早く脆弱性を是正することができる。​

    脆弱性管理とは

    • 脆弱性管理 (ぜいじゃくせいかんり、英: vulnerability management)は、ソフトウェアの脆弱性を「識別、分類、優先順位付け、修正、および軽減する循環的な慣行」のこと。脆弱性管理はコンピュータセキュリティとネットワークセキュリティに不可欠な概念である。
    • 効果的な脆弱性管理を行うには、1)資産情報の把握、2)脆弱性情報の収集、3)脆弱性の検知、4)リスク評価、5)報告、6)循環プロセスが必要とされる。​
    • 継続的な管理プロセスを確立させるには、自動化志向の管理プロセスが重要となる。

脆弱性管理の課題とは?

脆弱性管理の課題は、多くの開発部門に共有する課題としてこれら5つがあります。

システム・インベントリーの把握

  • 資産(アセット)単位ではなく、ソフトウェア・インベントリベースの把握。(国際的にSBOMの利用が強く求められている)
  • 完全性/一貫性に課題のあるシステム・インベントリー情報(ハードウェアからソフトウェア、構成されるコンポーネントまで)。​

脆弱性情報の収集

  • 情報ソースが多岐にわたり、専門知識や時間とコストがかかる。

リスク評価

  • 企業によりリスク要因が異なり、標準化/システム化が難しい。​

ソフトウェア・サプライチェーン・リスクへの対応

  • Apache Log4j/SolarWindsの影響から2021年に米国大統領令発令。
  • 管理対象のソフトウェア・コンポーネントの透明性と粒度のばらつき。​

各種ガイドラインへの対応と継続的な管理プロセスの確立

  • 国内外で複数のガイドラインに実施が規定されている。​

開発部門に共通する課題とは?

また、実際に開発部門の方から現状の取組みを伺ったところ、共通する課題として、これらの課題も感じられました。

開発会社の大半が脆弱性管理に課題がある

  • 実施していても資産ベースの管理。
  • 攻撃者の動向やガイドラインとの間にGAPがある。​

ソフトウェア・サプライチェーン・リスクに対するGAP

  • 日米間、専門家と顧客/開発者間。

開発組織はチームで活動しており、一部のタレントに依存する傾向がある

  • 組織、チーム内での分業が欠かせない => 分業には標準化が欠かせない。
  • 標準化もレベルがある:チーム/部門/全社/業界など​

これらの課題を解決する脆弱性管理サービス!

ここから、脆弱性管理の課題を解決する当社の脆弱性管理サービスについて紹介されて頂きます。

脆弱性管理サービスの特徴

当社、脆弱性管理サービスの特徴となります。

All-In-One(ガイドライン/ツール/プロセス・フローが揃った)で、ソフトウェア・インベントリー・ベースの脆弱性管理。

  • 実践的な業務定義に基づく脆弱性管理業務。
  • ソフトウェア脆弱性管理で必須なSBOMにも対応。
  • CSIRT/PSIRTとの機能の一部である。

実践的な業務定義に基づく脆弱性管理業務

脆弱性管理業務のそのポイントは、
複数のガイドラインから共通する項目を洗い出し、標準化した5つの業務プロセスから構成されている点になります。
具体的には、

  • システムインベントリの把握
  • 脆弱性脅威監視
  • 限られたリソースで効率よく対応するの欠かせない、導入の優先順位付け。
  • それから、管理者へのレポート。管理する上で欠かすことが出来ません。
  • 最後に、トレーニングになります。脆弱性管理は、特定の人で実現できるものではなく関係者の相互理解が重要になります。

実践的な業務定義に基づく脆弱性管理業務

  • 複数のガイドラインから共通する項目を洗い出し、標準化した業務プロセスである。​
業務プロセス 業務内容
システムインベントリの把握​ 複数のガイドラインを参考に、脆弱性管理の目的に適したシステムインベントリを定義し、情報を定期的に更新する。(更新頻度の推奨は毎月)​
脆弱性・脅威監視 脆弱性管理ツールにて脆弱性と脅威を監視し、メール等で通知する。​
導入の優先順位付け 脆弱性管理ツールの重みづけ+組織内のシステムの重要度を組み合わせて、最適な優先順位付けを提示する。
​このルールに基づく1次対応/チケット登録を行う。
管理者へのレポート​ ダッシュボードで、リアルタイムに脆弱性と脅威情報を提供する。
​脆弱性管理ツールの出力データと情報+脅威情報を加えた報告書を作成し報告する。また、定例会も開催する。
トレーニング 開発者やシステム運用者に、脆弱性管理の必要性や管理のポイントをトレーニングする。​

脆弱性管理ツール:yamory

次に、脆弱性管理ツールのyamoryについてです。
以下に概要だけ紹介します。
個別での対応が必要だったITシステムの脆弱性対策とリスク管理をオールインワンで実現する、⽇本唯⼀のクラウドサービスです。

PSIRTに求められる機能を支援

当社サービスの特徴の説明の最後になりますが、ソフトウェア製品を開発し提供する組織は、大なり小なりPSIRT機能が必要になります。
6つの領域の半分は脆弱性管理に関する領域であり、脆弱性管理がいかに重要であるかが理解頂けるかと思います。

  • 「PSIRT Services Framework」では、PSIRTが実施すべき活動を6つの領域に分けて個々に定義している。

まとめ

脆弱性管理に取り組むにあたりそのポイントをまとめて終わりにしたいと思います。
1つ目が、脆弱性はデジタル社会において重大なリスクとなっている。
2つ目が、ソフトウェア開発プロセスの中で、脆弱性対応を別プロセスにせず、開発プロセスに組み込むことが重要である。(品質管理と同様)
3つ目が、サイクルタイムを意識して、まずは小さく始め、結果を確認して広げていく。
最後に、これが成功するうえでもっと重要なポイントになると思っています。
4つ目は、チーム内での標準化と分業化に取り組むこと。
これが出来れば、開発チームはより生産的になれるものと思います。