(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-09
(45)【発行日】2022-11-17
(54)【発明の名称】脆弱性管理システム及びプログラム
(51)【国際特許分類】
G06F 21/57 20130101AFI20221110BHJP
G06F 11/30 20060101ALI20221110BHJP
G06F 11/36 20060101ALI20221110BHJP
【FI】
G06F21/57 370
G06F11/30 151
G06F11/36 164
(21)【出願番号】P 2018145012
(22)【出願日】2018-08-01
【審査請求日】2021-06-21
(73)【特許権者】
【識別番号】000155469
【氏名又は名称】株式会社野村総合研究所
(74)【代理人】
【識別番号】110002354
【氏名又は名称】弁理士法人平和国際特許事務所
(72)【発明者】
【氏名】小出 祐輔
【審査官】吉田 歩
(56)【参考文献】
【文献】特開2015-138509(JP,A)
【文献】特開2007-164465(JP,A)
【文献】佐宗 万祐子 ほか,サーバー脆弱性を根本対策できる三つのパターン,2017年06月30日,<https://xtech.nikkei.com/it/atc/column/17/061600-244/061900006>
【文献】ケネディ デヴィッド,実践Metasploit,第1版,株式会社オライリー・ジャパン オライリー ティム,2012年05月22日,pp.1-5,ISBN 978-4-87311-538-2
【文献】@t_nakayama0714(日鉄ソリューションズ株式会社),ゼロから考える脆弱性対応,2018年01月24日,<https://qiita.com/t_nakayama0714/items/16f987742e8e3ee48ffd>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
G06F 11/30
G06F 11/36
(57)【特許請求の範囲】
【請求項1】
対象製品に実装されたソフトウェアについての脆弱性を管理するシステムであって、
前記対象製品の所定の構成情報を収集して構成情報データベースに記憶させる構成情報収集部と、
公開又は発見された所定の脆弱性情報を収集して脆弱性データベースに記憶させる脆弱性情報収集部と、
前記構成情報及び前記脆弱性情報に基づいて、脆弱性の影響調査を行うべき対象製品を抽出する対象製品洗い出し部と、
前記対象製品洗い出し部により抽出された対象製品に実装されたソフトウェアの脆弱性についての影響調査を実行する影響調査部を備え、
前記対象製品洗い出し部は、
前記構成情報及び前記脆弱性情報に基づき、脆弱性情報中に当該対象製品に実装されているソフトウェアのソフト名及びバージョンと一致するものがあるか否かを判定し、一致するソフトウェアがある場合に、脆弱性の影響調査を行うべき対象製品を抽出し、
前記影響調査部は、
前記構成情報中に、前記脆弱性情報に対応する情報が含まれる場合に脆弱性が再現
されると判定する第一の影響調査を実行する
とともに、
前記構成情報による影響調査で脆弱性が再現されると判定された場合に、当該脆弱性の概念実証情報を前記対象製品に実装されたソフトウェアに適用して脆弱性の再現を実行させる第二の影響調査を実行する
ことを特徴とする脆弱性管理システム。
【請求項2】
前記影響調査部で実行された影響調査の結果を示すレポート情報を生成し、当該レポート情報をレポートデータベースに記憶させるとともに、所定のタイミングで所定の送信先に送信する結果レポート部を備える
ことを特徴とする請求項1に記載の脆弱性管理システム。
【請求項3】
前記結果レポート部でレポート情報が生成された対象製品についての所定の対応状況情報を生成して対応状況データベースに記憶させるとともに、前記レポートデータベース及び対応状況データベースに記憶された情報を参照可能に出力させる製品対応判断ワークフロー記録部を備える
ことを特徴とする請求項2に記載の脆弱性管理システム。
【請求項4】
対象製品に実装されたソフトウェアについての脆弱性を管理するシステムを構成する情報処理装置を、
前記対象製品の所定の構成情報を収集して構成情報データベースに記憶させる構成情報収集手段、
公開又は発見された所定の脆弱性情報を収集して脆弱性データベースに記憶させる脆弱性情報収集手段、
前記構成情報及び前記脆弱性情報に基づいて、脆弱性の影響調査を行うべき対象製品を抽出する対象製品洗い出し手段、
前記対象製品洗い出し手段により抽出された対象製品に実装されたソフトウェアの脆弱性についての影響調査を実行する影響調査手段、として機能させるとともに、
前記対象製品洗い出し手段に、
前記構成情報及び前記脆弱性情報に基づき、脆弱性情報中に当該対象製品に実装されているソフトウェアのソフト名及びバージョンと一致するものがあるか否かを判定させ、一致するソフトウェアがある場合に、脆弱性の影響調査を行うべき対象製品を抽出させ、
前記影響調査手段に、
前記構成情報中に、前記脆弱性情報に対応する情報が含まれる場合に脆弱性が再現
されると判定する第一の影響調査を実行させる
とともに、
前記構成情報による影響調査で脆弱性が再現されると判定された場合に、当該脆弱性の概念実証情報を前記対象製品に実装されたソフトウェアに適用して脆弱性の再現を実行させる第二の影響調査を実行させる
ことを特徴とする脆弱性管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インターネットなどのネットワークに接続可能な製品に実装されるソフトウェアの脆弱性を管理するための支援技術に関し、特に、脆弱性情報の収集や影響調査等を効率的に行えるようにする脆弱性管理システム及びプログラムに関する。
【背景技術】
【0002】
IoT(Internet of Things)の進展に伴い、これまでインターネットなどのネットワークに接続されることが想定されていなかった製品についてもネットワーク接続が可能となり、それらの製品に実装されるソフトウェアの脆弱性の管理が重要となっている。
これまで、ネットワーク接続を前提とするPCやWebサーバ,OA機器などのIT製品・情報システムの分野では、ソフトウェアの脆弱性管理は、国・企業・団体を含めて整備が進んでおり、例えば企業単位でのCSIRT(Computer Security Incident Response Team)による確立された脆弱性管理が行われている。
【0003】
一方、これまでネットワーク接続を前提としていなかった製品、例えば自動車,カーナビ,家電製品などの組込み系の製品・デバイス等についても、IoT製品としてネットワークに接続されるようになり、そのような製品に実装されるソフトウェアの脆弱性管理の重要性・必要性が高まっている。
このため、CSIRTの製品版に相当するPSIRT(Product Security Incident Response Team)による脆弱性管理の整備が検討されている。
【0004】
特に、IoTの対象となる製品では、コスト低減などの観点から既製のソフトウェアやOSS(Open Source Software)が使用されることも多く、脆弱性情報も例えば年間1~2万件が報告・公開等され、それらの情報が日々更新されている。
このため、IoT製品についての効率的かつ迅速・的確な脆弱性の管理体制の構築・整備は喫緊の課題となってきている。
【0005】
一般に、ソフトウェアの脆弱性の管理としては、例えばOSS等のソースファイルについては、脆弱性情報を格納しているデータベースが存在しており、ソフトウェアエンジニアが開発時にそのような脆弱性DBを参照して、開発対象ソフトウェアに脆弱性がないかどうかを確認することで行われている。
この種のソフトウェアの脆弱性の管理・分析等に関する技術としては、例えば特許文献1に提案されている「脆弱性分析のための自律型推論システム」などがある。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に開示されている技術を含めて、これまでのソフトウェアの脆弱性管理は、対象となる製品・ソフトウェアについて、個々に脆弱性の有無や検証・影響調査などを行っているため、効率が悪く、特にIoT製品のように多種多様な異なる製品に実装される多数の既成のソフトウェアやOSSの脆弱性について、迅速・的確に対応することは、現実には困難乃至不可能であった。
CSIRTが対象とするIT製品・情報システムの分野では、対象となるPCやサーバOA機器などの情報機器やソフトウェアはある程度限られており、例えば情報システムを利用・提供する企業や業種等が異なっても、統一的・画一的な脆弱性の管理体制で対応することが可能であった。
【0008】
これに対して、IoT製品では、対象となるのは種々異なる多数の製品であり、実装されるソフトウェアもそれぞれ異なり、既製のソフトウェアやOSSが実装されることも少なくない。このため、管理対象となるソフトウェアやそれらの脆弱性は膨大な数になることもあり、また、日々刻一刻と脆弱性が発見・報告されることもある。
また、対象製品のソフトウェアに脆弱性が見つかれば、製品の提供者・製造者のみならず、製品の使用者・一般ユーザなど多くの利害関係者に影響を及ぼすおそれがある。
このため、特にIoT製品のソフトウェアの脆弱性については、効率的な管理と、迅速かつ的確な対応が求められることになるところ、現在まで有効な解決手段や技術は提供されていない。
【0009】
本発明は、上記のような課題を解決するために提案されたものであり、複数の異なる製品に実装されるソフトウェアの脆弱性について、迅速かつ的確な対応を可能とし、実際の製品に対する影響調査や関係者等への報告等も効率的に行うことができる、IoT製品を対象とするPSIRTに好適な脆弱性管理システム及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明は、対象製品に実装されたソフトウェアについての脆弱性を管理するシステムであって、前記対象製品の所定の構成情報を収集して構成情報データベースに記憶させる構成情報収集部と、公開又は発見された所定の脆弱性情報を収集して脆弱性データベースに記憶させる脆弱性情報収集部と、前記構成情報及び前記脆弱性情報に基づいて、脆弱性の影響調査を行うべき対象製品を抽出する対象製品洗い出し部と、前記対象製品洗い出し部により抽出された対象製品に実装されたソフトウェアの脆弱性についての影響調査を実行する影響調査部を備え、前記対象製品洗い出し部は、前記構成情報及び前記脆弱性情報に基づき、脆弱性情報中に当該対象製品に実装されているソフトウェアのソフト名及びバージョンと一致するものがあるか否かを判定し、一致するソフトウェアがある場合に、脆弱性の影響調査を行うべき対象製品を抽出し、前記影響調査部は、前記構成情報中に、前記脆弱性情報に対応する情報が含まれる場合に脆弱性が再現されると判定する第一の影響調査を実行するとともに、前記構成情報による影響調査で脆弱性が再現されると判定された場合に、当該脆弱性の概念実証情報を前記対象製品に実装されたソフトウェアに適用して脆弱性の再現を実行させる第二の影響調査を実行する構成としてある。
【0011】
また、本発明は、上記のような本発明に係る脆弱性管理システムで実行されるプログラムとして構成することができる。
さらに、本発明は、上記のような本発明に係る脆弱性管理システム及びプログラムによって実施可能な方法として実施することもできる。
【発明の効果】
【0012】
本発明によれば、複数の異なる製品に実装されるソフトウェアの脆弱性について、迅速かつ的確な対応が可能となり、実際の製品に対する影響調査や関係者等への報告等も効率的に行うことが可能となる。
このため、特にIoT製品を対象とするPSIRTに好適な脆弱性管理システムを実現することができる。
【図面の簡単な説明】
【0013】
【
図1】本発明の一実施形態に係る脆弱性管理システムの全体構成を模式的に示す説明図である。
【
図2】脆弱性管理システムにおける各装置の構成を示す機能ブロック図である。
【
図3】脆弱性管理システムの動作の全体を示すフローチャートである。
【
図4】脆弱性管理システムにおける、(a)は構成情報の収集、(b)は脆弱性情報の収集の各動作を示すフローチャートである。
【
図5】脆弱性管理システムにおける、(a)は対象製品の洗い出し、(b)は影響調査の各動作を示すフローチャートである。
【
図6】脆弱性管理システムの影響調査における、(a)は構成情報と脆弱性再現フローを示す説明図、(b)は脆弱性再現手法の実行を模式的に示す説明図である。
【
図7】脆弱性管理システムにおける、(a)は結果レポート、(b)は製品対応の判断WF記録、(c)は監査処理の各動作を示すフローチャートである。
【
図8】脆弱性管理システムにおける脆弱性管理サーバ又はユーザ端末又は脆弱性情報源サーバのハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、本発明に係る脆弱性管理システム及びプログラムの実施形態について、図面を参照しつつ説明する。
ここで、以下に示す本発明の脆弱性管理システムは、プログラム(ソフトウェア)の命令によりコンピュータで実行される処理,手段,機能によって実現される。プログラムは、コンピュータの各構成要素に指令を送り、以下に示す本発明に係る所定の処理や機能等を行わせることができる。すなわち、本発明における各処理や手段,機能は、プログラムとコンピュータとが協働した具体的手段によって実現される。
【0015】
なお、プログラムの全部又は一部は、例えば、磁気ディスク,光ディスク,半導体メモリ,その他任意のコンピュータで読取り可能な記録媒体により提供され、記録媒体から読み出されたプログラムがコンピュータにインストールされて実行される。また、プログラムは、記録媒体を介さず、通信回線を通じて直接にコンピュータにロードし実行することもできる。
また、本システムは、単一の情報処理装置(例えば一台のパーソナルコンピュータ等)で構成することもでき、複数の情報処理装置(例えば複数台のサーバコンピュータ群等)で構成することもできる。
【0016】
[システム構成]
図1に示すように、本発明の一実施形態に係る脆弱性管理システム1(以下「本システム1」という)は、脆弱性管理サーバ10と、一又は二以上のユーザ端末30(30a~30n)と、一又は二以上の脆弱性情報原サーバ40(40a~40n)とを備えて構成されている。
そして、これら脆弱性管理サーバ10・ユーザ端末30・脆弱性情報原サーバ40は、LAN・WAN等を含むインターネット100を介して接続され、それぞれ相互にネットワーク通信が可能となっている。
【0017】
ここで、脆弱性管理サーバ10とユーザ端末30は、例えば同一の組織・企業等に設置される情報処理装置によって構成することができる。この場合には、脆弱性情報源サーバ40は本システム1に接続される外部装置として機能し、本システム1は脆弱性管理サーバ10及びユーザ端末30によって構成されることになり、本システム1を、例えば同一の組織・企業単位で設置されるPSIRTやCSIRT等のシステムとして機能させことができる。
【0018】
また、脆弱性管理サーバ10とユーザ端末30は、それぞれ異なる組織・企業等に設置される情報処理装置によって構成することができ、例えば、脆弱性管理サーバ10は、本システム1をPSIRTサービスとして提供する企業に設置される情報処理装置、ユーザ端末30は、管理対象となる対象製品を製造・販売等する製造業者・ベンダー等に設置される情報処理装置によって構成することもできる。この場合には、ユーザ端末30及び脆弱性情報源サーバ40が本システム1に接続される外部装置として機能することになり、本システム1は脆弱性管理サーバ10のみによって構成されることになる。
【0019】
[脆弱性管理サーバ]
脆弱性管理サーバ10は、管理対象となる対象製品に実装されたソフトウェアについての脆弱性を管理する本システム1の中核となる情報処理装置であり、本発明の脆弱性管理システムを構成している。
この脆弱性管理サーバ10は、例えば、1又は2以上のサーバコンピュータやパーソナルコンピュータ、クラウドコンピューティングサービス上に構築された1又は2以上の仮想サーバからなるサーバシステム等、所定のプログラム(ソフトウェア)が実装された情報処理装置によって構成することができる。
【0020】
そして、本実施形態に係る脆弱性管理サーバ10は、
図2に示すように、構成情報収集部11,脆弱性情報収集部12,対象製品洗い出し部13,影響調査部14,結果レポート部15,製品対応判断WF(ワークフロー)記録部16,監査処理部17の各部として機能するように構成される。
また、脆弱性管理サーバ10には、所定の記憶手段によって構成される複数のデータベース(DB)が構築されており、具体的には、構成情報DB21,脆弱性DB22,影響調査DB24,レポート結果DB25,ユーザDB26,対応状況DB27の各DB(データベース)が備えられており、それぞれ所定のデータがデータベースとして管理されるようになっている。
【0021】
[構成情報収集部]
構成情報収集部11は、本システム1においてソフトウェアの脆弱性の管理対象となる対象製品についての所定の構成情報を収集して構成情報DB21に記憶させる。
具体的には、構成情報収集部11は、対象製品(例えば自動車,カーナビ,家電製品などの組込み系の製品・デバイス等)に実装されているソフトウェアのソースコードから、対象製品やソフトウェアを特定するための構成情報(静的情報)を直接読み出して抽出・収集することができる。例えば、対象製品に実装されているOS(オペレーティングシステム)のコマンド機能(例えばLinuxOSのlddコマンド等)を用いることにより、必要な情報を読み出すことができる。
この場合、脆弱性管理サーバ10の近傍に用意された対象製品(
図1参照)と脆弱性管理サーバ10とをケーブル・外部接続ポート等を介して接続することにより、構成情報収集部11が対象製品のソフトウェアに直接アクセスして、必要な構成情報を読み出すことができる。
【0022】
また、構成情報収集部11は、対象製品の構成情報として、例えば当該対象製品の製造業者・ベンダー等において予め記録・管理されている情報を、脆弱性管理サーバ10で受信・入力することにより、所定の構成情報を収集・取得することもできる。
この場合には、構成情報収集部11は、例えばメール受信や入力手段による入力操作を介して構成情報を示すデータ(例えばCSVファイル形式のデータ)を受信・入力して、所定の構成情報を収集・取得することができる。
【0023】
以上のような構成情報収集部11による構成情報の収集は、例えば、対象製品の本システム1への新規登録時や、製品のUpdate時のタイミングで実施される。
また、対象となるOS情報や実行ファイル情報が新規の場合(新規性あり)にも、構成情報の収集が実行される。
構成情報収集部11で収集された構成情報は、構成情報DB21に記憶されてデータベースとして管理され、以後の処理において随時読み出され、また、更新される。
構成情報収集部11における構成情報収集の具体的な処理・動作については、
図4(a)を参照しつつ後述する。
【0024】
ここで、構成情報収集部11で収集され構成情報DB21に格納される所定の構成情報は、管理対象となる各対象製品及び実装されるソフトウェア等を特定するための情報であり、具体的には例えば以下のような情報(静的情報)がある。
なお、以下に示す構成情報は、本システム1に適用可能な情報の一例であって、特に以下の情報のみに限定されるものではなく、本システム1として必要な情報を追加・削除等することができる。
【0025】
[構成情報DB]
・製品ID
・製品名,バージョン
・登録日付
・システム基盤情報
-Firewallの有無
-WAFの有無
・OS情報
-OS名,バージョン
-カーネル名,カーネルバージョン
-OS攻撃緩和策の有無
・ASLR
・NX bit(No eXecute bit)
-ホスト型Firewallの有無
-ローカルアクセス方法の有無
-外部IFの一覧
・実行ファイル情報
-ソフト名、バージョン
-ファイルパス
-外部呼出し情報
・ライブラリ名、バージョン
・ライブラリのファイルパス
・関数名
-攻撃緩和策の有無
・Canary
・RELRO
・PIE
-設定値
・機能ON/OFF
・設定パラメータ
【0026】
[脆弱性情報収集部]
脆弱性情報収集部12は、公開又は発見された所定の脆弱性情報を収集して脆弱性DB22に記憶させる。
具体的には、脆弱性情報収集部12は、後述するCVE,JVNなどの脆弱性情報源サーバ40にインターネット100を介してアクセスし、各脆弱性情報源サーバ40で公開・提供されている脆弱性情報を受信・収集することができる。
この脆弱性情報収集部12による脆弱性情報の収集は、所定のタイミングで実行することができ、例えば1日1回所定の時刻に実行したり、新たな脆弱性情報や脆弱性再現手法が報告・公開されたタイミングで実行することができる。
脆弱性情報収集部12で収集された脆弱性情報は、脆弱性DB22に記憶されてデータベースとして管理され、以後の処理において随時読み出され、また、更新される。
脆弱性情報収集部12における脆弱性情報収集の具体的な処理・動作については、
図4(b)を参照しつつ後述する。
【0027】
ここで、脆弱性情報収集部12で収集され脆弱性DB22に格納される所定の脆弱性情報は、脆弱性が公開/発見されたソフトウェア及び該当する脆弱性等を特定するための情報であり、具体的には以下のような脆弱性情報がある。
なお、以下に示す脆弱性情報は、本システム1に適用可能な情報の一例であって、特に以下の情報のみに限定されるものではなく、本システム1として必要な情報を追加・削除等することができる。
【0028】
[脆弱性DB]
・脆弱性ID
・脆弱性深刻度(CVSS(Common Vulnerability Scoring System:共通脆弱性評価システム)値)
・登録日付
・対象ソフト名,対象バージョン範囲
・脆弱性再現手法
【0029】
[対象製品洗い出し部]
対象製品洗い出し部13は、構成情報DB21に記憶された構成情報、及び脆弱性DB22に記憶された脆弱性情報に基づいて、脆弱性の影響調査を行うべき対象製品を抽出する。
具体的には、対象製品洗い出し部13は、各対象製品について、構成情報・脆弱性情報に基づき、脆弱性情報中に当該対象製品に実装されているソフトウェアのソフト名及びバージョンと一致するものがあるか否かを判定し、一致するソフトウェアがある場合には、脆弱性情報に示されるCVSS値が所定の閾値以上のものについて、脆弱性の影響調査を行うべき対象製品を抽出する。
【0030】
この対象製品洗い出し部13による対象製品の抽出・洗い出しは、所定のタイミングで実行することができ、例えば構成情報DB21や脆弱性DB22が更新されたタイミングで実行することができる。
そして、対象製品洗い出し部13では、抽出された影響調査を行うべき対象製品についての所定の影響調査情報を、影響調査DB24に記憶させる。
影響調査DB24に記憶された影響調査情報は、データベースとして管理され、以後の処理において随時読み出され、また、更新される。
対象製品洗い出し部13における製品洗い出しの具体的な処理・動作については、
図5(a)を参照しつつ後述する。
【0031】
ここで、影響調査DB24に記憶される情報としては、例えば以下のような情報がある。
なお、以下に示す影響調査情報は、本システム1に適用可能な情報の一例であって、特に以下の情報のみに限定されるものではなく、本システム1として必要な情報を追加・削除等することができる。
[影響調査DB]
・影響調査ID
・登録日
・関連する構成情報ID
・関連する脆弱性ID
・関連するOSソフト情報
・影響調査結果
-判定結果
-判定結果根拠
【0032】
[影響調査部]
影響調査部14は、対象製品洗い出し部13により抽出された対象製品に実装されたソフトウェアの脆弱性についての影響調査を実行する。
具体的には、影響調査部14は、影響調査DB24に記憶された影響調査情報に基づいて、対象製品の構成情報中に、脆弱性情報に対応する情報が含まれる場合に脆弱性が再現されると判定する一次調査(第一の影響調査)を実行する。
また、影響調査部14は、一次調査の結果、構成情報による影響調査で脆弱性が再現されると判定された対象製品について、当該脆弱性の概念実証情報となる再現手法を、対象製品に実装されたソフトウェアに適用して脆弱性の再現を実行させる二次調査(第二の影響調査)を実行する。
【0033】
すなわち、本システム1における影響調査は、実行ファイル(アプリ本体,ライブラリ,OSカーネル,ドライバ,BIOS等)における、静的情報(実行ファイル構造,呼出しライブラリと関数・設定情報,OS設定,FWやWAF等のネットワーク構成と設定による情報)と、動的情報(実行時のメモリ情報,呼出し動的ライブラリと関数,スレッド状態,正常時動作,脆弱性再現手法による動作への影響による情報)に基づいて、(1)構成情報による影響調査(一次調査)と、(2)再現手法による影響調査(二次調査)の二段階の調査により、脆弱性を分析し、その影響を調査するようになっている。
提供調査部14による一次調査・二次調査の調査結果は、影響調査情報として影響業差DB24に記憶され、結果レポート部15によるレポート生成の基礎情報として用いられる。
影響調査部14における影響調査の処理の詳細については、
図5(b)及び
図6を参照しつつ後述する。
【0034】
[結果レポート部]
結果レポート部15は、影響調査部14で実行された影響調査の結果を示すレポート情報を生成する。
そして、結果レポート部15は、生成されたレポート情報を、レポートDB25に記憶させるとともに、所定のタイミングで所定の送信先に送信する。
具体的には、結果レポート部15は、ユーザDB26に記憶されている所定のユーザ情報に基づいて、該当する対象製品を製造・販売等するユーザ側に設置されたユーザ端末30に、レポート情報を送信する。
【0035】
レポート情報は、所定のフォーマット・項目で構成され、影響調査の結果をユーザに通知するために必要な所定の情報が含まれるように生成される。
例えば、レポート情報は、レポートID,対象製品/バージョン,サマリー情報(深刻度別の件数など),検知ID,深刻度,製品内で影響を受けるソフトウェア名/バージョン情報,脆弱性ID(CVE番号など情報源のID),脆弱性タイトル,脆弱性のあるソフトウェアバージョン,CVSS値,深刻度の判定理由、などから構成される。
結果レポート部15におけるレポート処理の詳細については、
図7(a)を参照しつつ後述する。
【0036】
[製品対応判断WF記録部]
製品対応判断WF記録部16は、影響調査部14及び結果レポート部15で生成される影響調査のレポート結果を、ワークフロー情報として生成・記録して、本システム1の担当者や開発上長などの関係者が随時参照できるように出力・表示させる。
製品対応判断WF記録部16で生成・出力されるワークフロー情報は、脆弱性管理サーバ10に接続された端末装置などの出力手段(ディスプレイ・プリンタ等)を介して出力・表示され、関係者が参照・確認等することができ、また、入力手段(キーボード・マウス等)を介してワークフロー情報に対して必要な情報を入力・更新等することができる。
また、製品対応判断WF記録部16で生成・出力されるワークフロー情報は、ユーザ端末30において出力・表示させることもできる。
【0037】
具体的には、製品対応判断WF記録部16は、レポートDB25に記憶されたレポート情報に基づいて、結果レポート部15でレポート情報が生成された対象製品についての所定の対応状況情報を生成して対応状況DB27に記憶させる。
そして、製品対応判断WF記録部16は、レポートDB25及び対応状況DB27に記憶された情報を参照可能に出力させる所定のワークフロー情報の生成処理を実行する。
【0038】
ワークフロー情報は、所定のフォーマット・項目で構成され、担当者や開発上長などの各関係者が参照・確認・承認等を行うために必要な所定の情報が含まれるように生成される。
例えば、ワークフロー情報は、レポートID,製品ID,検知ID,承認者ID,承認時刻,対策担当者ID,対策実施完了時刻,監査者ID,監査完了時刻,コメント欄,添付ファイル追加欄、などから構成される。
製品対応判断WF記録部16におけるワークフロー処理の詳細については、
図7(b)を参照しつつ後述する。
【0039】
[監査処理部]
監査処理部17は、対応状況DB27に記憶された各対象製品の対応状況に対して、所定の監査処理を実行する。
具体的には、監査処理部17は、製品対応判断WF記録部16のワークフロー処理によって記録・更新・承認等された対応状況DB27の格納情報から、監査対象となる所定情報を抽出し、例えば開発上長や責任者などの監査担当者による監査が行えるように、監査対象情報を出力・表示させ、また、監査が行われたことを示す監査結果情報を生成して、対応状況DB27に記憶・更新させる。
【0040】
監査処理部17で抽出・出力される監査対象情報は、脆弱性管理サーバ10に接続された端末装置などの出力手段(ディスプレイ・プリンタ等)を介して出力・表示され、監査担当者が参照・確認等することができ、また、入力手段(キーボード・マウス等)を介して監査対象情報に対して必要な情報を入力・記録等することができる。
また、監査処理部17で生成・出力される監査情報(監査対象情報・監査結果情報)は、ユーザ端末30において出力・表示させることもできる。
【0041】
監査情報(監査対象情報・監査結果情報)は、所定のフォーマット・項目で構成され、監査担当者が参照・確認・承認等を行うために必要な所定の情報が含まれるように生成される。
例えば、監査情報(監査対象情報・監査結果情報)は、全体監査サマリー,レポートID,レポート別監査サマリー,製品ID,検知ID,ワークフローID,監査結果情報、などから構成される。
監査処理部17における監査処理の詳細については、
図7(c)を参照しつつ後述する。
【0042】
[ユーザ端末]
ユーザ端末30(30a~30n)は、インターネット100を介して脆弱性管理サーバ10に接続された、例えばPC、タブレット端末、スマートフォン等で構成される、管理対象となる対象製品を製造・販売等する製造業者・ベンダー等に設置される情報処理装置によって構成することができる。
このようなユーザ端末30を備えることにより、ユーザ端末30を使用するユーザは、インターネット100を介して、脆弱性管理サーバ10から対象製品の影響調査のレポート情報をユーザ端末30により受信することができ、また、脆弱性管理サーバ10に対象製品の所定の構成情報をユーザ端末30から送信・入力するlことができるようになる。
【0043】
[脆弱性情報源サーバ]
脆弱性情報源サーバ40(40a~40n)は、インターネット100を介して脆弱性管理サーバ10に接続された、脆弱性情報を提供する事業者等のデータセンタやオフィスなどに設置されるPCやサーバ群等によって構成される情報処理装置であり、脆弱性管理サーバ10に対して、発見・公開等されている脆弱性情報を送信・提供する手段として機能する。脆弱性情報源サーバ40から送信・提供された脆弱性情報は、脆弱性情報収集部12によって脆弱性DB22に格納される。
このような脆弱性情報源サーバ40としては、例えば、NVD(National Vulnerability Database)が管理を行っているCVE(Common Vulnerabilities and Exposures),JPCERT/CC及びIPA(Information-technology Promotion Agency,)が管理を行っているJVN(Japan Vulnerability Notes)など、インターネット上で脆弱性情報を公開・提供しているWebサーバなどが該当する。
【0044】
[動作]
次に、以上のような本システム1における具体的な処理・動作(脆弱性管理方法の実施)について、
図3~
図7を参照して説明する。
本システム1では、
図3に示す一連の処理動作を自動実行することにより、公開/発見された脆弱性再現手法に対する脆弱性管理業務を効率化することができる。
具体的には、
図3に示すように、本システム1は、製品の構成情報の収集(S301)→脆弱性情報の収集(S302)→対象製品の洗い出し(S303)→影響調査(S304)→結果レポート(S305)→製品対応の判断WF記録(S306)→監査(S307)の各処理を実行する。
以下、各処理の詳細を順次説明する。
【0045】
[構成情報の収集]
製品の構成情報の収集(
図3:S301)は、
図4(a)に示すように、構成情報収集部11により、静的情報の収集(S401)と、通常動作時の動的情報の収集(S402)が行われる。
構成情報の収集は、対象製品に実装されているソフトウェアから直接的に、又は、対象製品の製造者・ベンダー等から間接的に、必要な情報が収集・取得される。
構成情報の静的情報としては、上述のとおり、対象製品とソフトウェアを特定するための製品名やソフト名,識別情報,バージョン情報,実行ファイル情報などがある。
構成情報の動的情報としては、実行時のメモリ情報,呼出し動的ライブラリと関数,スレッド状態,正常時動作,脆弱性再現手法による動作への影響による情報などがある。
【0046】
構成情報の収集は、対象製品の本システム1への新規登録時と、製品のUpdate時に実施され、また、対象製品に実装されるOS情報や実行ファイル情報が新規性ありの場合に実施される。
収集された構成情報は、構成情報DB21に格納され、各製品単位の情報としてデータベース管理される。
【0047】
[脆弱性情報の収集]
脆弱性情報の収集(
図3:S302)は、
図4(b)に示すように、脆弱性情報収集部12により、脆弱性情報の収集(S403)が行われる。
脆弱性情報の収集は、CVE,JVNなどの脆弱性情報源サーバ40にインターネット100を介してアクセスすることにより、必要な情報が収集・取得される。
脆弱性情報としては、上述のとおり、対象とソフトウェアを特定するためのソフト名,バージョン情報,脆弱性の識別情報(ID),脆弱性の深刻度を示す情報(CVSS値),脆弱性再現手法などがある。
静寂性情報の収集は、定期的(例えば1日1回所定の時刻)に実施され、また、新たな脆弱性情報や脆弱性再現手法が報告・公開される都度実施される。
収集された脆弱性情報は、脆弱性DB22に格納され、各脆弱性単位の情報としてデータベース管理される。
【0048】
[対象製品の洗い出し]
対象製品の洗い出し(
図3:S303)は、
図5(a)に示すように、対象製品洗い出し部13により、構成情報DB21及び脆弱性DB22の格納情報に基づく項目の抽出(S501)が行われる。この項目の抽出処理は、構成情報DB21や脆弱性DB22が更新される都度実施される。
具体的には、項目の抽出処理(S501)は、まず、構成情報・脆弱性情報に基づき、脆弱性情報中に当該対象製品に実装されているソフトウェアのソフト名及びバージョンと一致するものがあるか否かの判定が行われる(S502)。一致するものがなければ処理は終了し、全ての脆弱性について同様の処理が繰り返される。
【0049】
次に、脆弱性情報中に、対象製品とソフトウェア名及びバージョンが一致する情報がある場合には、該当する脆弱性情報に示されるCVSS値についての判定が行われ(S503)、CVSS値が所定の閾値(例えばCVSS値4.0)以上であるか否かが判定される。CVSS値が閾値以下の場合には、脆弱性としての危険度が低く対象製品への影響がないものと判断でき、処理は終了し、全ての脆弱性について同様の処理が繰り返される。
CVSS値が所定の閾値を超える場合には、当該脆弱性についての影響調査を行う必要があるとして、影響調査DB24に所定の影響調査情報が記録され(S504)、次処理の影響調査(
図3:S304)が実行される。
【0050】
以上の処理が、構成情報DB21及び脆弱性DB22に登録されている全対象製品及び全脆弱性について繰り返し実行される。
影響調査DB24に記録される影響調査情報としては、上述のとおり、実行される影響調査と対象製品・ソフトウェアを特定するための識別情報があり、また、影響調査が実行されると、その影響調査の結果を示す情報も、対応する影響調査情報に対応付けて記録される(
図5:S509)。
【0051】
[影響調査]
影響調査(
図3:S304)は、影響調査部14により実行され、
図5(b)に示すように、影響調査DB24の格納情報に基づく影響調査対象項目の抽出(S505)が行われる。この対象項目の抽出処理は、上述した対象製品洗い出し処理において影響調査DB24が更新される都度実施される。
具体的には、項目の抽出処理(S505)は、まず、構成情報による影響調査(S506)が実行される。
【0052】
[構成情報による影響調査]
図6(a)に、構成情報による影響調査における構成情報と脆弱性再現フローの一例を示す。
同図中、矢印が「×」印の箇所に到達する場合に、脆弱性が再現する(影響ありと判定される)ことを表現している。
また、矢印は脆弱性再現の流れを表しており、この矢印が通過する各構成要素が一つでも存在しない/ブロックしている場合には、脆弱性は再現しないと判定することができる。
構成情報による影響調査では、これら各構成要素の存在の有無、及び設定情報による活性/非活性状態を確認することにより、脆弱性が再現するかを根拠付けて確認・判定が実行される。
【0053】
以下の表1に、構成情報による影響調査における調査方法と影響があると判定される条件をします。表中の(1)~(7)は、
図6(a)に示す(1)~(7)に対応している。
【表1】
【0054】
上記のような構成情報による影響調査により「影響あり」と判定された脆弱性については、再現手法が存在するか否かが判断される(S507)。
そして、該当する再現手法が存在する場合には、その再現手法による影響調査(S508)が実行される。
【0055】
[再現手法による影響調査]
図6(b)に、脆弱性再現手法による影響調査の実行を模式的に示す。
同図に示すように、再現手法による影響調査では、脆弱性の概念実証(脆弱性PoC:Proof of Concept)プログラムを用いて、脆弱性が再現するか否かが確認・判定される。
脆弱性PoCは、一般的にセキュリティ研究者が公開しているものや、脆弱性の技術情報などから独自でプログラムを作成したものがあり、これらの脆弱性PoCを再現手法による影響調査に用いることができる。なお、このような脆弱性PoCは、脆弱性情報源サーバ40から取得され、脆弱性DB22に記憶されている。
【0056】
なお、脆弱性PoCは、特定環境向け(例えば特定VersionのライブラリやOSのバイナリ構造/IP/ポート番号向け等)に作られていることがほとんどである。
これらの特定環境向けの脆弱性PoCを各対象製品別に手動によりカスタマイズするのは時間がかかり非効率となる。
そこで、本システム1では、そのような特定環境向けの脆弱性PoCを自動的に調整できるようにしている。
具体的には、予め用意したバイナリ情報/IP/ポート番号向けの情報を自動反映できるようにしておく。これによって。新たな脆弱性PoCが得られた際の脆弱性の再現を効率的に行うことができる。
【0057】
以上のような脆弱性再現手法(プログラム化された脆弱性PoC)は、対象製品に対してリモート/ローカルから適用・実行し、その結果、影響があると判断できるエラーが出力された場合や、通常の動作と異なる動きが発生した場合に、脆弱性の影響があると判定される。
ここで、影響があると判定される場合としては、例えば以下のような事象がる。
・アプリやサービスが停止する(OSのSIGNALによる強制停止等)。
・OSが停止する(Kernel panic等)。
・ハードウェアが動かなくなる/再起動する。
そして、以上の再現手法による影響調査の終了後は、影響調査結果が影響調査DB24に記録され(S509)、処理は終了となる。
【0058】
[結果レポート]
結果レポート(
図3:S305)は、
図7(a)に示すように、結果レポート部15により実行され、まず、影響調査DB24の格納情報が参照・検索され、上述した影響調査が行われた結果、「影響あり」の項目がある新規の影響調査情報の抽出が実行される(S701)。
次に、抽出された影響調査情報に基づいて、上述した所定のフォーマット・項目で構成されたレポート情報が生成される(S702)。生成されたレポート情報は、レポートDB25に格納される。
【0059】
次いで、レポートDB25に格納されたレポート情報が、ユーザDB26に記憶されている所定のユーザ情報に基づいて、該当するユーザ端末30に送信される(S703)。
このレポート情報の送信は、週次や月次等の定期的なスケジュールで送信されるようにすることができるが、新規の「影響あり」項目が抽出される都度送信されることが望ましく、特に影響度が深刻なものについては、日次や随時送信することが好ましい。
【0060】
[製品対応の判断WF記録]
製品対応の判断WF記録(
図3:S306)は、
図7(b)に示すように、製品対応判断WF記録部16により実行され、所定のワークフロー情報が、担当者や開発上長などの関係者の端末装置で表示・確認・承認等されることにより必要な処理が行われる。
具体的には、まず、開発担当者によるレポート結果の確認(S704)が行われる。開発担当者は、自己が操作する端末装置等を介してワークフロー情報を表示させ、そこからレポートDB25に格納されているレポート情報にアクセスし、関連するレポート結果を表示・確認することができる。
次に、レポート結果を確認した開発担当者は、自己が操作する端末装置等を介しワークフロー情報を表示させ、そこから対応状況DB27にアクセスして、該当するレポート結果に対する対応有無と判断理由を入力・記載することができる(S705)。記載された入力情報は、影響調査に対する対応状況を示す情報として、対応状況DB27に記憶・格納される。
【0061】
また、対応状況DB27に格納された対応状況については、開発上長による承認が行われる(S706)。開発上長は、自己が操作する端末装置等を介してワークフロー情報を表示させ、そこから対応状況DB27に格納されている対応状況情報にアクセスし、対応状況の内容を表示・確認し、承認を行うことができる。承認の有無や内容、対応の要否等を示す情報は、ワークフロー情報画面から入力され、対応する対応状況情報とともに対応状況DB27に記録・更新される。
ここで、開発上長による承認の結果、対応が必要である認定・入力された場合には(S707)、必要な対応が実施され(S708)、対応結果が対応状況DB27に記録された後(S709)、再度開発上長による承認を経ることにより(S710)、処理が完了となる。
【0062】
[監査]
監査(
図3:S307)は、
図7(c)に示すように、監査処理部17により実行され、所定のワークフロー情報が、担当者や開発上長などの関係者の端末装置で表示・確認・承認等されることにより必要な処理が行われる。
まず、対応状況DBが参照され、監査対象となる項目が抽出され(S711)、監査担当者による監査が行えるように、所定の端末装置等を介して監査対象情報が出力・表示される。
【0063】
そして、抽出・出力された監査対象情報は、端末装置等を介して出力・表示され、監査担当者による各種確認等が行われ、監査対象情報に対して必要な情報が入力されると、それらの情報が監査結果情報として対応状況DB27に記録される(S712)。
これによって、脆弱性の影響調査・対応状況などの結果が、責任のある監査担当者によって監査・承認されたことが記録され、必要な関係者が対応状況DB27を参照することによって随時確認等することができるようになる。
【0064】
以上説明したように、本システム1によれば、公開/発見された脆弱性再現手法に対する脆弱性管理業務(製品の構成情報の収集,脆弱性情報の収集,対象製品の洗い出し,影響調査,結果レポート,製品対応の判断WF記録,監査)を効率化することができる。
また、公開/発見されている脆弱性再現手法(脆弱性PoCや再現手順)を用いて、対象製品の実行ファイルに対する影響調査(影響有無の調査と根拠付けを導く調査)を新たな手法によって自動化することができる。
これによって、複数の異なる製品に実装されるソフトウェアの脆弱性について、迅速かつ的確な対応が可能となり、実際の製品に対する影響調査や関係者等への報告等も効率的に行うことが可能となる。このため、特にIoT製品を対象とするPSIRTに好適な脆弱性管理システムを実現することができる。
【0065】
なお、以上のような本実施形態に係る本システム1を構成する脆弱性管理サーバ10やユーザ端末30のハードウェア構成の一例は
図8に示すとおりであり、CPU101,RAM102,ROM103,HDD104,入力装置105及び表示装置106を含む情報処理装置によって構成される。これらの構成要素はシステムバスで接続され、システムバスを介してデータのやり取りが行われる。CPU(Central Processing Unit)101は、中央処理装置ともいい、コンピュータの中心的な処理を行う部位であり、各装置の制御やデータの計算/加工を行う。RAM(Random Access Memory)102は、メモリ装置の一種で、データの消去・書き換えが可能なものであり、ROM(Read Only Memory)103は、半導体などを用いたメモリ装置の一種で、データ書き込みは製造時1回のみで、利用時には記録されたデータの読み出しのみできるものである。HDD(Hard Disk Drive)104は、磁性体の性質を利用し、情報を記録し読み出す補助記憶装置である。入力装置105は、ユーザがコンピュータに対して操作指示を行うため、あるいは、文字等を入力するために使用され、具体的には、キーボード,マウス等で構成される。表示装置106は、例えば液晶ディスプレイ等で構成され、タッチパネル機能を有するものであってもよい。この他、図示しない通信機能も有し、この通信機能により他の端末との通信が可能となる。
【0066】
以上、本発明について好ましい実施形態を示して説明したが、本発明は、上述した実施形態に限定されるものではなく、本発明の範囲で種々の変更実施が可能であることは言うまでもない。
例えば、上述した実施形態では、本発明が対象とする対象製品として、PSIRTが対象とする例えば自動車,カーナビ,家電製品などの組込み系の製品・デバイス等のIoT製品を例にとって説明したが、本発明を適用可能な対象製品としては、脆弱性の管理が必要となるソフトウェアが実装される製品であれば、特に限定されるものではない。
したがって、例えばCSIRTが対象とするPCやWebサーバ,OA機器などについても、本発明を適用してソフトウェアの脆弱性管理を実施することができる。
【産業上の利用可能性】
【0067】
本発明は、例えばインターネットなどのネットワークに接続可能な製品に実装されるソフトウェアの脆弱性を管理するためのPSIRTやCSIRTなどの脆弱性管理システムとして好適に利用可能である。
【符号の説明】
【0068】
1 脆弱性管理システム
10 脆弱性管理サーバ
11 構成情報収集部
12 脆弱性情報収集部
13 対象製品洗い出し部
14 影響調査部
15 結果レポート部
16 製品対応判断WF記録部
17 監査処理部
21 構成情報DB
22 脆弱性DB
24 影響調査DB
25 レポートDB
26 ユーザDB
27 対応状況DB
30 ユーザ端末
40 脆弱性情報源サーバ