Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7741782B2 - 情報処理装置、情報処理方法及びコンピュータプログラム - Google Patents
[go: Go Back, main page]

JP7741782B2 - 情報処理装置、情報処理方法及びコンピュータプログラム - Google Patents

情報処理装置、情報処理方法及びコンピュータプログラム

Info

Publication number
JP7741782B2
JP7741782B2 JP2022147083A JP2022147083A JP7741782B2 JP 7741782 B2 JP7741782 B2 JP 7741782B2 JP 2022147083 A JP2022147083 A JP 2022147083A JP 2022147083 A JP2022147083 A JP 2022147083A JP 7741782 B2 JP7741782 B2 JP 7741782B2
Authority
JP
Japan
Prior art keywords
vulnerability
information
software
causal
causal element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022147083A
Other languages
English (en)
Other versions
JP2024042396A (ja
Inventor
龍也 上原
遵 金井
竜一 小池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2022147083A priority Critical patent/JP7741782B2/ja
Priority to US18/175,728 priority patent/US12393695B2/en
Publication of JP2024042396A publication Critical patent/JP2024042396A/ja
Application granted granted Critical
Publication of JP7741782B2 publication Critical patent/JP7741782B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明の実施形態は、情報処理装置、情報処理方法及びコンピュータプログラムに関する。
コンピュータを用いた各種システム・製品にはOS(Operating System)等のソフトウェアが搭載されており、ソフトウェアは多数のコンポーネント(要素)から構成されている。それらのソフトウェアには、システム構築時または製品開発時には脆弱性が発見されていなくとも、時間の経過と共に様々な脆弱性が発見される可能性がある。そのため、システム構築後または製品出荷後においても、システム・製品の製造者(ユーザ)は、システムまたは製品に搭載されているソフトウェアに脆弱性が含まれていないか確認する必要がある。
脆弱性を一般に周知するために、発見された脆弱性に関する情報(脆弱性情報)を収集・公開するサイトが存在する。そのため、検査対象のシステムに含まれるソフトウェアの情報を予め抽出しておき、公開された脆弱性情報に記載されたソフトウェアの情報と照合することにより、自動で脆弱性の検出を行うことができる。
しかしながら、検査対象のシステム・製品に特定のソフトウェアが含まれているか否かのみで脆弱性の有無を判断した場合、重要でない脆弱性情報も多数該当する。例えば、ソフトウェアであるOSに含まれている要素の中には、利用されていない要素も多く、そのような要素が脆弱性を有していても、比較的安全性が高いと考えられる。ユーザは、検出された脆弱性から、脆弱性の原因となる要素(原因要素)を特定し、当該原因要素が、対象となるシステム・製品で有効であるかを脆弱性情報ごとに判断する必要がある。
特許第4751431号公報
本発明の実施形態は、対象ソフトウェアの脆弱性の調査を支援する情報処理装置、情報処理方法及びコンピュータプログラムを提供する。
本実施形態に係る情報処理装置は、脆弱性を一意に特定する脆弱性識別子と、前記脆弱性が含まれるソフトウェアを一意に特定するソフトウェア識別子と、前記脆弱性の内容を示す脆弱性記述と、を含む1つ以上の脆弱性情報を格納した脆弱性データベースと、前記脆弱性データベースにおいて、対象機器に設けられている対象ソフトウェアのソフトウェア識別子にマッチする脆弱性情報を特定するマッチング部と、前記マッチング部により特定される前記脆弱性情報における前記脆弱性記述から前記脆弱性の原因となる原因要素を特定する原因要素特定部と、特定した前記原因要素の名称から前記原因要素のタイプを決定するタイプ決定部と、前記対象ソフトウェアのソフトウェア識別子と前記原因要素のタイプとに基づき、前記対象ソフトウェアの脆弱性に関する調査方法を決定し、前記調査方法を示す情報を出力する出力部と、を備える。
第1実施形態に係る情報処理装置を示すブロック図。 脆弱性情報の一例を示す図。 抽出ルールの一例を示す図。 決定ルールの一例を示す図。 原因要素情報の一例を示す図。 構成情報の一例を示す図。 調査方法情報の一例を示す図。 出力部によって出力される脆弱性調査情報の一例を示す図。 出力部によって出力される脆弱性調査情報の別の例を示す図。 第1フェーズの動作を説明するフローチャート。 第2フェーズの動作を説明するフローチャート。 第2実施形態に係る情報処理装置を示すブロック図。 設定情報の一例を示す図。 要素タイプ毎の設定識別子および設定値の関係の一例を示す図。 第3フェーズの動作を説明するフローチャート。 第4フェーズの動作を説明するフローチャート。 各実施形態に係る情報処理装置のハードウェア構成を示す図。
以下、図面を参照しながら、本発明の実施形態について説明する。以下の説明で登場するソフトウェアおよびコマンドは架空のものであり、利用コマンド等についてはソフトウェア毎に異なり、適宜変更される必要がある。
(第1実施形態)
図1は、第1実施形態に係る情報処理装置100のブロック図である。情報処理装置100は、公開された脆弱性情報から脆弱性の原因となる要素(原因要素)を特定し(第1フェーズ)、脆弱性調査対象であるシステムまたは製品に脆弱性が含まれるか否かの判定を行う(第2フェーズ)。
情報処理装置100は、脆弱性情報記憶部101と、原因要素抽出部(原因要素特定部)102と、抽出ルール記憶部103と、タイプ決定部104と、決定ルール記憶部105と、原因要素記憶部106と、マッチング部107と、構成情報記憶部108と、脆弱性調査方法出力部109と、調査方法記憶部110とを、備える。
各記憶部103、105、106、108、110は、例えば、RAM(Random Access Memory)、フラッシュメモリ、ハードディスクなどの記憶媒体によって構成される。ブロック101、102、104、107、109は、例えば、CPU、MPU、ASICなどのプロッセッサ又は回路によって構成されることができる。以下、情報処理装置100について詳細に説明する。
脆弱性情報記憶部101は、ソフトウェアの脆弱性情報を格納する。ここで、本実施形態におけるソフトウェアは、OS(Operating System)を想定しているが、ソフトウェアはOSに限られない。OSの例として、Windows(登録商標)があるが、その他のOSでもよい。脆弱性情報記憶部101は、NVD(National Vulnerability Database)のような公開された脆弱性情報サイトから、インターネット経由で取得された脆弱性情報を格納してもよいし、CD-ROMなどの記憶媒体を介して取得された脆弱性情報を格納してもよい。
図2は、脆弱性情報記憶部101に格納されたソフトウェアの脆弱性情報の一例を示す。図2に示されるように、脆弱性情報は、「脆弱性ID(脆弱性識別子)」、「ソフトウェア名称」、「バージョン条件」、「ソフトウェア識別子」、「脆弱性内容」(脆弱性記述)、「深刻度」、「脆弱性タイプ」、「登録日時」の項目を含む。
「脆弱性ID」は、脆弱性情報に付けられる識別子である。1つの脆弱性情報に対して1つの脆弱性IDが紐づけられている。脆弱性IDは、独自の識別子でもよいし、共通脆弱性識別子(CVE:Common Vulnerabilities and Exposures)が用いられてもよい。
「ソフトウェア名称」は、脆弱性情報が示す脆弱性が検出されたソフトウェアの名称を示す。
「バージョン条件」は、脆弱性が検出されたソフトウェアの、脆弱性が存在するバージョンの範囲を示す。「バージョン条件」は、脆弱性が存在するバージョンであってもよいし、脆弱性が存在するバージョンの範囲(例えば、「5.0.6未満」)であってもよい。
「ソフトウェア識別子」は、当該ソフトウェアの識別子を示す。本実施形態では、ソフトウェアの識別子として、NIST(National Institute of Standards and Technology)が規定したCPE(Common Platform Enumeration)が用いられているが、他の識別子が用いられてもよい。ソフトウェアの名称によってソフトウェアを一意に識別可能な場合はソフトウェアの名称をソフトウェア識別子として用いることも可能である。
「脆弱性内容」は、対象となる脆弱性情報の内容を示す。例えば、脆弱性内容は、脆弱性の種別、対象および原因を含む。脆弱性内容は、自然言語で記述されている。
「深刻度」は、対象となる脆弱性の影響度を示す。深刻度には、例えば、CVSS(Common Vulnerability Scoring System)が用いられる。
「脆弱性タイプ」は、対象となる脆弱性のタイプを示す。脆弱性タイプには、例えば、CWE(Common Weakness Enumeration)が用いられてもよいし、独自に規定された分類が用いられてもよい。
「登録日時」は、脆弱性情報が脆弱性情報記憶部101に登録(格納)された日時を表す。
原因要素抽出部102は、抽出ルールを用いて、脆弱性情報記憶部101に格納された脆弱性情報から、脆弱性の原因要素を抽出(特定)する。そして、原因要素抽出部102は、脆弱性情報と共に抽出された原因要素を、タイプ決定部104に出力する。
また、原因要素抽出部102は、第1フェーズに関して同じ処理を繰り返すことを防ぐために、前回の第1フェーズの実行日時を記憶しておき、脆弱性情報に含まれる登録日時と比較する。ある脆弱性情報に含まれる登録日時の方が前回の実行日時より過去である場合、当該脆弱性情報に関しては既に前回の第1フェーズで処理済みということになるため、別の脆弱性情報が選択し直される。
また、原因要素抽出部102は、脆弱性情報に含まれる深刻度が所定の閾値より小さい場合は、当該脆弱性情報を処理対象としなくてもよい。これにより、最終的にユーザに通知される脆弱性の数を減らすことができるため、ユーザの負担を軽減することができる。
抽出ルール記憶部103は、抽出ルールを格納する。
図3に、抽出ルール記憶部103に格納された抽出ルールの一例を示す。抽出ルールは、例えば、「照合パターン」(第1照合パターン)、「原因要素」、「要素タイプ」の項目を含む。
「照合パターン」は、脆弱性情報の脆弱性内容から原因要素を抽出するためのパターンを示す。照合パターンは、例えば、正規表現を用いて記述されている。脆弱性情報の脆弱性内容が決まった形式で記述されているとは限らないため、照合パターンは、考えられるあらゆるパターンで記述されていることが望ましい。
「原因要素」は、照合パターンがある脆弱性内容とマッチングした場合に、当該脆弱性内容のうち、原因要素を表す部分を表す。原因要素が「$n」(n=1,2,3・・・)と示される場合、照合パターンに含まれる丸括弧で囲まれる部分のうち、前からn番目のものを指す。
「要素タイプ」は、抽出された原因要素のタイプを表す。要素タイプは、後述する調査方法を特定するために、原因要素に付与される。
要素タイプが「*」である場合は、抽出ルールによっては要素タイプが決定できないことを表す。本実施形態では、要素タイプとして、以下の4つを想定するものとするが、これは本実施形態におけるソフトウェアとしてOSを想定しているためである。要素タイプはこれらに限定されず、例えば、特定のアプリケーションを要素タイプとして指定してもよい。
service:原因要素がサービスプロセス
driver:原因要素がOSのドライバ
function:原因要素がOSの拡張機能
kernel:原因要素がカーネルのコンパイルオプション
抽出ルール記憶部103に格納されている抽出ルールは、例えば脆弱性情報サイト上の脆弱性情報に基づいて更新されてもよい。或いは、ユーザによって手動で新たな抽出ルールが追加されてもよい。
例えば、原因要素抽出部102が、図2に示される脆弱性の原因要素を、図3に示される抽出ルール1を用いて抽出する場合を考える。
原因要素抽出部102は、脆弱性情報記憶部101に格納された未処理の脆弱性情報のうちの1つを取得する。ここでは例として、脆弱性ID:00001の脆弱性情報(以下、脆弱性情報Aとする)が取得されたものとする(図2参照)。
原因要素抽出部102は、抽出ルール記憶部103に格納された抽出ルールのうちの1つを取得し、取得した脆弱性情報Aの脆弱性内容とのマッチングを行う。マッチングが成功しなかった場合、未選択(未マッチング)の別の抽出ルールを取得し、再度マッチングを行う。ここで、未選択とは、脆弱性情報Aに対して未選択という意味である。
脆弱性情報Aの場合、その脆弱性内容は、抽出ルール1(図3参照)の照合パターンとマッチングする。そして、抽出ルール1の照合パターンの丸括弧で囲まれる部分に、「DAB service」が対応する。そして、抽出ルール1の「原因要素」が「$1」なので、原因要素として「DAB service」が抽出される。抽出された「DAB service」の要素タイプは、この時点では分からない。「DAB service」の要素タイプを決定するためには、決定ルールを用いる必要がある。抽出ルール1の「要素タイプ」が「*」なのはそのためである。
ここで、例えば、抽出ルール2が用いられる場合、照合パターンが「([^の]*)のドライバに不備が」であるから、当該照合パターンとマッチした時点で、抽出された原因要素のドライバに不備があることが確定している。そのため、要素タイプは「driver」に決定される。
また、原因要素抽出部102は、ある脆弱性情報に対して、全ての抽出ルールとのマッチングが失敗した場合、脆弱性情報記憶部101における、当該脆弱性情報の登録日時を現在の日時に更新してもよい。
タイプ決定部104は、原因要素抽出部102から取得した原因要素から、決定ルールを用いて、当該原因要素の要素タイプを決定する。
決定ルール記憶部105は、決定ルールを格納する。
図4に、決定ルール記憶部105に格納された決定ルールの一例を示す。決定ルールは、例えば、「照合パターン」(第2照合パターン)、「標準名」、「要素タイプ」の項目を含む。
「照合パターン」は、原因要素抽出部102から出力された原因要素とマッチングを行うためのパターンを示す。照合パターンは、例えば、正規表現を用いて記述されている。
「標準名」は、原因要素の標準名を示す。脆弱性情報記憶部101に格納されている脆弱性情報は、同一の要素に対して複数の名称が用いられている(表記ゆれまたは誤字がある)場合があるため、要素の名称を標準名に統一する必要がある。
標準名は、照合パターンがある原因要素とマッチングした場合に、当該原因要素のうち、標準名を表す部分を表す。標準名が「$n」(n=1,2,3・・・)と示される場合、照合パターンに含まれる丸括弧で囲まれる部分のうち、前からn番目のものを指す。或いは、標準名には、例えば、図4に示される決定ルール5のように、標準名がそのまま用いられてもよい(この場合「DDDD」が標準名)。
「要素タイプ」は、マッチングした原因要素の要素タイプを表す。
決定ルール記憶部105に格納されている決定ルールは、例えば脆弱性情報サイト上の脆弱性情報に基づいて更新されてもよい。或いは、ユーザによって手動で新たな決定ルールが追加されてもよい。
タイプ決定部104は、決定ルール記憶部105に格納された決定ルールを1つ取得し、取得した原因要素とのマッチングを行い、当該原因要素のタイプ分け(分類)を行う。ここでは例として、図3の抽出ルール1で抽出された原因要素(原因要素Bとする)とのマッチングを行うものとする。マッチングが成功しなかった場合、未選択(未マッチング)の別の決定ルールを取得して再度マッチングを行う。ここで、未選択とは、原因要素Bに対して未選択という意味である。
この場合、原因要素Bは、決定ルール3(図4参照)の照合パターンとマッチングする。そして、決定ルール3の照合パターンの丸括弧で囲まれる部分に、「DAB」が対応する。そして、決定ルール3の「標準名」が「$1」なので、標準名として「DAB」が決定(抽出)される。また、決定ルール3の「要素タイプ」が「service」なので、要素タイプは「service」に決定される。
また、マッチング前の時点で、原因要素の要素タイプが、抽出ルールに基づいて既に決定されている場合、タイプ決定部104は、標準名の決定のみを行う。
また、タイプ決定部104は、ある原因要素に対して、全ての決定ルールとのマッチングが失敗した場合、脆弱性情報記憶部101における、当該原因要素が抽出された脆弱性情報の登録日時を現在の日時に更新してもよい。或いは、タイプ決定部104は、当該脆弱性情報の脆弱性情報の登録日時を現在の日時に更新し、脆弱性情報記憶部101に格納するように原因要素抽出部102に命令してもよい。
そして、タイプ決定部104は、原因要素抽出部102から取得した原因要素の脆弱性情報(脆弱性ID)、原因要素の標準名および要素タイプを、原因要素記憶部106に格納する。
原因要素記憶部106は、脆弱性の原因要素の情報(原因要素情報)を格納する。
図5は、原因要素記憶部106に格納された原因要素情報の一例を示す図である。原因要素情報は、例えば、「脆弱性ID」、「標準名」、「要素タイプ」の項目を含む。
「脆弱性ID」は、タイプ決定部104によって出力されたある原因要素に対応する脆弱性情報の脆弱性IDを示す。原因要素情報の脆弱性IDは、脆弱性情報記憶部101に記録された脆弱性情報の脆弱性IDと共通である。
「標準名」は、当該原因要素の標準名を示す。「要素タイプ」は、当該原因要素の種別を表す。
例えば、原因要素Bから求められた原因要素情報(原因要素情報Bとする)は、図5の一行目に格納されている。
マッチング部107は、構成情報記憶部108に格納された脆弱性の調査対象となるシステムまたは製品に含まれるソフトウェアを示す情報(構成情報)と、脆弱性情報記憶部101に格納された脆弱性情報とのマッチングを行う。そして、脆弱性情報に記載されたソフトウェアが、調査対象のシステムに搭載されているか否かを判定する。搭載されていると判定された場合、当該脆弱性情報を出力部109に出力する。
構成情報記憶部108は、構成情報を格納する。
図6は、構成情報記憶部108に格納された構成情報の一例を示す図である。構成情報は、例えば、「構成番号」、「搭載機器名」、「ソフトウェア名称」、「バージョン」、「ソフトウェア識別子」、「確認日時」の項目を含む。
「構成番号」は、ある構成情報を一意に識別する番号(識別子)を示す。1つの構成情報に対し1つのユニークな構成番号が割り振られている。
「搭載機器名」は、当該構成情報が示すソフトウェアが搭載された機器の名称を示す。
「ソフトウェア名称」は、当該構成情報が示すソフトウェアの名称を示す。
「バージョン」は、当該構成情報が示すソフトウェアのバージョンの情報を示す。
「ソフトウェア識別子」は、当該構成情報が示すソフトウェアの識別子を示す。「ソフトウェア識別子」は、脆弱性情報記憶部101の「ソフトウェア識別子」と同一の形式(CPE)を用いることとする。
「確認日時」は、当該構成情報と脆弱性情報記憶部101に記録された脆弱性情報とのマッチング(つまり、当該構成情報が示すソフトウェアに脆弱性が含まれている可能性があるか否かの確認)を最後に実施した日時を表す。
例えば、構成番号00001で表される構成情報(以下、構成情報Cとする)は、「XXX01」という機器に搭載されている、「aaa OS」というソフトウェアの、バージョン「5.0.1」を指している。また、構成情報Cは、ソフトウェア識別子では「cpe:/o:mmm:aaa:」と表され、2022年4月22日の12時34分56秒に最後の確認が行われたことがわかる。
マッチング部107は、1つの構成情報に対し、マッチングする脆弱性情報があるか判定する。構成情報と脆弱性情報のソフトウェア識別子が一致し、かつ、構成情報のバージョンが脆弱性情報のバージョン条件を満たすとき、マッチング成功とみなされる。
例えば、マッチング部107が構成情報Cと脆弱性情報Aのマッチングを行う場合、構成情報Cと脆弱性情報Aのソフトウェア識別子は同じであり、また、構成情報Cのバージョンは脆弱性情報Aのバージョン条件を満たすため、マッチングは成功する。そして、マッチング部107は、機器「XXX01」には脆弱性(を含むソフトウェア)が含まれていると判定する。そして、マッチング部107は、脆弱性情報Aと構成情報Cを出力部109に出力する。
なお、ソフトウェア識別子としてCPEが用いられており、脆弱性情報と構成情報のソフトウェア識別子の粒度が異なる場合、マッチング部107は、両者のソフトウェア識別子の粒度を揃えてマッチングを行う。例えば、一方のソフトウェア識別子にバージョン情報(バージョンまたはバージョン条件)が含まれていない場合、マッチング部107は、バージョン情報を考慮せずにマッチングを行う。
また、マッチング部107は、取得した1つの構成情報に対し、マッチングする脆弱性情報が存在しない場合、構成情報記憶部108における、当該構成情報の確認日時を現在の日時に更新してもよい。
出力部109は、マッチング部107から受領した脆弱性情報と、原因要素記憶部106に格納された脆弱性情報に対応する要素タイプから、調査方法情報を用いて脆弱性の調査方法を特定し、脆弱性調査情報を出力する。出力部109は、例えば、ウェブブラウザ上に脆弱性調査情報を表示してもよいし、メール等を用いて脆弱性調査情報をユーザに通知してもよい。
調査方法記憶部110は、調査方法情報を格納する。
図7は、調査方法情報の一例を示す図である。調査方法情報は、例えば、「要素タイプ」、「ソフトウェア識別子」、「調査方法」の項目を含む。
「要素タイプ」は、ある調査方法によって調査される対象となる、原因要素の要素タイプである。
「ソフトウェア識別子」は、当該ソフトウェアの識別子である。調査方法は要素タイプおよびソフトウェア識別子毎に異なる。
「調査方法」は、当該ソフトウェアに原因要素が含まれているか否かを具体的に調査する方法を示す。図7に示される[要素]の部分は、出力される際には原因要素の名称(標準名)に置換される。
例えば、出力部109は、マッチング部107から脆弱性情報A(図2の一行目)と構成情報C(図6の一行目)を受領する。そして、出力部109は、脆弱性情報Aに含まれる脆弱性IDと同じ脆弱性IDを有する原因要素情報B(図5の一行目)を、原因要素記憶部106から取得し、脆弱性情報Aが示す脆弱性の原因要素の要素タイプが「service」であることを特定する。
そして、出力部109は、調査方法記憶部110に格納された調査方法情報の中から、要素タイプが「service」であり、ソフトウェア識別子が脆弱性情報Aと同じ調査方法情報(調査方法情報Dとする)を特定する。調査方法情報Dは、図7の一行目に示されている。
図8は、出力部109によって出力される脆弱性調査情報の一例を示す図である。脆弱性調査情報は、例えば、「製品」、「脆弱性」、「調査方法」の項目を含む。例えば、図8の「製品」は、構成情報Cが示すソフトウェアが搭載されている機器に対応している。また、図8の「脆弱性」は、脆弱性情報Aの脆弱性内容に対応している。また、図8の「調査方法」は、調査方法情報Dの調査方法に対応している。
調査方法情報Dの場合を例に、図8を参照しながら、ユーザが、脆弱性情報Aが示す脆弱性を調査する流れを説明する。
まず、ユーザは、製品XXX01に脆弱性が含まれていることを把握する。次に、ユーザは、aaa OSに含まれるDAB serviceに脆弱性が含まれていることを把握する。次に、ユーザは製品XXX01にログインし、コマンド「Get-Service」を実行する。すると、aaa OSに搭載されている全てのサービスが出力される。この出力の中に「DAB」が存在しない場合、または、「DAB」が存在するが「DAB」の起動モードが「Auto」および「Enable」以外の場合、ユーザは安全性が高いと判断する。起動モードが「Auto」または「Enable」の場合、ユーザは安全性が低いと判断する。
このように、ユーザは、図8を参照することで、検査対象のシステムまたは製品に搭載されている、構成情報Cが示すソフトウェアに、脆弱性情報Aが示す脆弱性が含まれている可能性があること、および当該脆弱性の内容とその具体的な調査方法を知ることができる。
なお、出力部109は、調査方法を特定できなかった場合は、図9のように調査方法以外の情報を出力する。
次に、情報処理装置100の動作について説明する。
図10は、情報処理装置100が行う第1フェーズの一例を示すフローチャートである。以下、図10を参照して、第1フェーズについて説明する。第1フェーズは、新規の脆弱性情報が取得され、脆弱性情報記憶部101に格納された時点で開始されてもよいし、特定の時刻に開始されてもよい。
まず、原因要素抽出部102が、脆弱性情報記憶部101に格納された脆弱性情報(図2参照)のうち、未処理の脆弱性情報が存在するか否かを判定する(ステップS101)。
未処理の脆弱性情報が存在しない(全ての脆弱性情報が処理されている)場合、第1フェーズの処理を終了する(ステップS101:No)。
未処理の脆弱性情報が存在している場合、ステップS102に移行する(ステップS101:Yes)。
次に、原因要素抽出部102が、脆弱性情報記憶部101に格納された未処理の脆弱性情報(図2参照)のうちの1つを取得する(ステップS102)。
次に、原因要素抽出部102は、同じ処理を再実行することを防ぐため、取得された脆弱性情報に含まれる「登録日時」と、前回の第1フェーズの実行日時を比較する(ステップS103)。
「登録日時」の方が過去である場合は、ステップS101へ戻り、別の脆弱性情報を選択し直す(ステップS103:No)。
前回の第1フェーズの実行日時の方が過去である場合は、ステップS104に移行する(ステップS103:Yes)
次に、原因要素抽出部102は、抽出ルール記憶部103に、取得した1つの脆弱性情報に対して未選択の抽出ルールが格納されているか否か判定する(ステップS104)。
抽出ルール記憶部103に未選択の抽出ルールが格納されていない(全ての抽出ルールとマッチング失敗した)と判定された場合、ステップS115に移行する(ステップS104:No)。
次に、原因要素抽出部102は、取得した1つの脆弱性情報の登録日時を現在の日時に更新し、脆弱性情報記憶部101に格納する(ステップS115)。その後、ステップS101に戻り、別の脆弱性情報が選択し直される。
抽出ルール記憶部103に未選択の抽出ルールが格納されていると判定された場合、ステップS105に移行する(ステップS104:Yes)。
次に、原因要素抽出部102は、抽出ルール記憶部104に格納された未選択の抽出ルール(図3参照)のうちの1つを取得する(ステップS105)。
次に、原因要素抽出部102は、取得した脆弱性情報に含まれる脆弱性内容に対して、取得した抽出ルールの照合パターンをマッチングする(ステップS106)。
次に、原因要素抽出部102は、マッチングが成功したか否か判定する(ステップS107)。
マッチングが成功しなかった場合、ステップS104に戻り、別の抽出ルールを選択し直す(ステップS107:No)。
マッチングが成功した場合、ステップS108に移行する(ステップS107:Yes)。
次に、原因要素抽出部102は、取得した脆弱性情報から、抽出ルールに基づいて原因要素(および要素タイプ)を取得する(ステップS108)。
次に、タイプ決定部104が、決定ルール記憶部105に未選択の決定ルール(図4参照)が格納されているか否か判定する(ステップS109)。
決定ルール記憶部105に未選択の決定ルールが格納されていない(全ての決定ルールとマッチング失敗した)場合は、ステップS115へ移行する(ステップS109:No)。
決定ルール記憶部105に未選択の決定ルールが格納されている場合は、ステップS110へ移行する(ステップS109:Yes)。
次に、決定ルール記憶部105に格納された未選択の決定ルールのうちの1つを取得する(ステップS110)。
次に、タイプ決定部104は、取得した原因要素に対して、取得した決定ルールの照合パターンをマッチングさせる(ステップS111)。
次に、タイプ決定部104は、マッチングが成功したか否かを判定する(ステップS112)。
マッチングが成功しなかった場合、ステップS109に戻り、別の決定ルールを選択し直す(ステップS112:No)。
マッチングが成功した場合、ステップS113に移行する(ステップS112:Yes)。
次に、タイプ決定部104は、取得した原因要素の「標準名」を、取得した決定ルールの「標準名」に置換する。また、取得した原因要素の要素タイプを、取得した決定ルールの「要素タイプ」に決定する(ステップS113)。
次に、取得した脆弱性情報の脆弱性ID、取得した原因要素の標準名、取得した原因要素の要素タイプを含む原因要素情報(図5参照)を、原因要素記憶部106に格納する(ステップS114)。その後、ステップS001に戻り、別の脆弱性情報についても同様の処理(ステップS101~S115)を行う。
以上、第1フェーズによって、公開された脆弱性情報から脆弱性の原因要素が特定され、脆弱性IDと紐づけられた原因要素情報が得られる。
図11は、情報処理装置100が行う第2フェーズの一例を示すフローチャートである。以下、図11を参照して、第2フェーズについて説明する。第2フェーズは、脆弱性情報記憶部101に新規の脆弱性情報が登録された時点、構成情報記憶部108に新規の構成情報が登録された時点または特定の時刻のいずれか、または複数の組み合わせに基づくタイミングで実行される。
まず、マッチング部107が、構成情報記憶部108に格納された構成情報のうち、未処理の構成情報が存在するか否か判定する(ステップS201)。
構成情報記憶部108に格納された構成情報が全て処理されていた場合、第2フェーズを終了する(ステップS201:No)
構成情報記憶部108に格納された構成情報に未処理の構成情報が含まれていた場合、ステップS202に移行する(ステップS201:Yes)。
次に、マッチング部107が、構成情報記憶部108に格納されている未処理の構成情報のうちの1つを取り出す(ステップS202)。
次に、マッチング部107は、脆弱性情報記憶部101内に、取得した構成情報に対して未選択の脆弱性情報が格納されているか否か判定する(ステップS203)。
脆弱性情報記憶部101内に未選択の脆弱性情報が格納されていない(全ての脆弱性情報が取得した構成情報とマッチングしない)場合、ステップS215に移行する(ステップS203:No)。
次に、構成情報記憶部108において、取得した構成情報の「確認日時」に実行時の現在時刻をセット(ステップS215)、ステップS201に戻り、別の構成情報を取得し直す。
脆弱性情報記憶部101内に未処理の脆弱性情報が格納されている場合、ステップS204に移行する(ステップS203:Yes)。
次に、マッチング部107は、脆弱性情報記憶部101に格納された未選択の脆弱性情報のうちの1つを取得する(ステップS204)。
次に、マッチング部107は、取得した脆弱性情報の「登録日時」と取得した構成情報の「確認日時」を比較する(ステップS205)。
「登録情報」の方が過去であればステップS203に戻り(ステップS205:No)、別の脆弱性情報を選択し直す。
「確認日時」の方が過去であれば、ステップS206に移行する(ステップS205:Yes)。
次に、マッチング部107は、取得した脆弱性情報の「ソフトウェア識別子」と取得した構成情報の「ソフトウェア識別子」が一致しているか否か判定する(ステップS206)。
ソフトウェア識別子が不一致ならば、ステップS203に戻り(ステップS206:No)、別の脆弱性情報を選択し直す。
ソフトウェア識別子が一致していればステップS207へ移行する(ステップS206:Yes)。
次に、マッチング部107は、取得した構成情報の「バージョン」が、取得した脆弱性情報の「バージョン条件」を満たすか判定する(ステップS207)。
取得した構成情報の「バージョン」が取得した脆弱性情報の「バージョン条件」を満たさない場合、ステップS203に戻り(ステップS207:No)、別の脆弱性情報を選択し直す。
取得した構成情報の「バージョン」が取得した脆弱性情報の「バージョン条件」を満たす場合、ステップS208に移行する(ステップS207:Yes)。
次に、マッチング部107は、取得した脆弱性情報と構成情報を出力部109に出力する(ステップS208)。
次に、出力部109が、原因要素記憶部106から、マッチング部107から受領した脆弱性情報の脆弱性IDと一致する脆弱性IDを有する原因要素情報を検索する(ステップS209)。
次に、出力部109は、ステップS209の検索結果が存在するか否か判定する(ステップS210)。
検索結果が存在しない場合、ステップS213に移行する(ステップS210:No)。
そして、出力部109は、マッチング部107から受領した構成情報と脆弱性情報に基づき、脆弱性が含まれる製品またはシステムと、脆弱性の内容を出力する(ステップS213)。
検索結果が存在する場合、ステップS211に移行する(ステップS210:Yes)。
次に、出力部109は、検索の結果得られた原因要素情報の要素タイプと一致する要素タイプを有し、かつ、取得した脆弱性情報のソフトウェア識別子と一致するソフトウェア識別子を有する、調査方法情報を、調査方法記憶部110内で検索する(ステップS211)。
次に、出力部109は、ステップS210における検索の結果が存在するか否か判定する(ステップS212)。
検索結果が存在しない場合、ステップS213に移行する(ステップS212:No)。
検索結果が存在する場合、ステップS214に移行する(ステップS212:Yes)。
次に、出力部109は、検索の結果得られた調査方法情報の調査方法における[要素]の部分を、取得した原因要素情報の標準名に置換し、置換後の調査方法を、脆弱性が含まれる製品またはシステムと、脆弱性の内容と併せて出力し(ステップS214)、ステップS103に戻る。
以上、第2フェーズによって、脆弱性判定対象であるシステムまたは製品に脆弱性が含まれるか否かの判定を行うことができ、また、脆弱性の具体的な調査方法を含む脆弱性調査情報を出力することができる。
以上、第1実施形態によれば、調査が必要な公開された脆弱性情報から、当該脆弱性情報が示す脆弱性の原因要素の要素タイプを特定することで、当該脆弱性の具体的な調査方法を含む脆弱性調査情報を出力することができる。このため、ユーザが公開された脆弱性情報を分析し、安全性判定のための適切な調査方法を判断する必要がなくなり、ユーザの負担を大幅に軽減できる。
(第2実施形態)
第1実施形態では、検出された脆弱性を全てユーザに通知していた。しかし、実際には、検出された脆弱性の全てが問題となる訳ではない。例えば、OSのドライバのように対応するハードウェアが存在しない場合や、OS自体の機能として有効化されない場合、脆弱性が発現しない場合がある。
上記の実情を鑑みて、第2実施形態では、ソフトウェアがOSの場合、OSの設定情報に基づき、起動されないソフトウェアを自動で判定することにより、ユーザの負担をさらに軽減することを目的とする。
図12は本実施形態に係る情報処理装置100Aのブロック図である。上述した第1実施形態における図1と同じ名称または機能の要素には同じ符号を付している。以後、変更または追加された事項を除き説明を省略する。
情報処理装置100Aは、公開された脆弱性情報から脆弱性の原因要素を特定し(第1フェーズ)、脆弱性判定対象であるシステムまたは製品に対して設定情報の収集を行い(第3フェーズ)、構成情報から脆弱性情報を参照して、当該システムまたは製品に脆弱性が含まれるか否かの判定を行う(第4フェーズ)。
情報処理装置100Aは、要素101~109に加えて、安全性判定部201と、設定情報記憶部202と、設定情報収集部203と、を備える。図示していないが、情報処理装置100Aは、調査方法記憶部110を備えていてもよい。
安全性判定部201は、まず、マッチング部107から、マッチングした脆弱性情報を受領する。そして、安全性判定部201は、原因要素記憶部106に格納された脆弱性情報に対応する要素タイプ、およびシステムまたは製品の設定情報(より詳細には調査対象のソフトウェアの設定情報)に基づき、調査対象のソフトウェアの安全性を判定し、判定結果を出力部109に出力する。
設定情報記憶部202は、設定情報を格納する。
図13は、設定情報記憶部202に記録された設定情報の一例である。設定情報は例えば、「構成番号」、「要素タイプ」、「設定識別子」、「設定値」の項目を含む。
「構成番号」は、調査対象のソフトウェアを特定する構成情報の識別子である。ここでの構成番号は、構成情報記憶部108に記憶された構成情報に付けられた構成番号と共通である。
「要素タイプ」は、調査対象のソフトウェアの要素タイプを示す。
「設定識別子」は、調査対象のソフトウェアにおける設定項目の名称(設定項目名)を示す。
「設定値」は、設定項目に対するある値を示す。設定識別子および設定値として取り得る値は、調査対象のソフトウェアの要素タイプによって決定される。
図14は、要素タイプ毎の設定識別子および設定値の関係の一例である。例えば、あるソフトウェアの要素タイプが「service」または「driver」であり、設定値が「OFF」の場合、当該ソフトウェアは起動されない。または、あるソフトウェアの要素タイプが「function」であり、設定値が「disable」の場合、当該ソフトウェアが有する一部の機能は有効化されない。または、あるソフトウェアが特定のOSであり、その要素タイプが「kernel」であり、設定値が「0」または「null」の場合、当該特定のOSの一部の機能は有効化されない。
つまり、上記のような設定値を有するソフトウェアが機器に搭載されている場合、当該ソフトウェアは実際に動作しないか、もしくは脆弱性のある機能が無効化されている可能性が高いため、当該ソフトウェアに含まれる脆弱性は安全である可能性が高い。
設定情報収集部203は、調査対象のシステムまたは製品に対して設定情報を収集し、設定情報記憶部202に設定情報を格納する。具体的には以下の通りである。
設定情報収集部203は、要素タイプが「service」の場合に必要な設定情報を設定情報記憶部202に格納する。即ち、対象OSで設定されている全サービスの起動情報を設定情報記憶部202に格納する。
例えば、設定情報収集部203は、コマンド「Get-Service」を実行し、対象OSに含まれる全てのサービスとその起動モードを取得する。そして、設定情報収集部203は、取得したサービス名を設定識別子の項目(列)に設定し、その起動モードが「Auto」もしくは「Enable」の場合は設定値の項目(列)を「ON」に、それ以外の場合は、「OFF」に設定する(図14参照)。
同様に、設定情報収集部203は、要素タイプが「driver」の場合に必要な設定情報、要素タイプが「function」の場合に必要な設定情報を取得し、設定情報記憶部202に格納する。要素タイプが「driver」の場合は、設定情報収集のためにコマンド「Get-Driver」が用いられればよい。
また、設定情報収集部203は、対象ソフトウェアが特定のOSであるか否かを判定し、対象ソフトウェアが特定のOSである場合は、要素タイプが「kernel」の場合に必要な設定情報を取得し、設定情報記憶部202に格納する。
次に、情報処理装置100Aの動作について説明する。第1フェーズについては、第1実施形態における第1フェーズと同一の動作となるため、説明を割愛する。
図15は、設定情報収集部203が行う第3フェーズの一例を示すフローチャートである。以下、図15を参照して、第3フェーズについて説明する。第3フェーズ(設定情報の収集)は、対象のソフトウェア毎に行われる。
まず、設定情報収集部203が、対象ソフトウェアのソフトウェア識別子に基づき、対象ソフトウェアがOSであるか否かを判定する(ステップS301)。
対象のソフトウェアがOSの場合、ステップS302に移行する(ステップS301:Yes)。
対象のソフトウェアがOSでない場合、第3フェーズを終了する(ステップS301:No)。
次に、設定情報収集部203は、要素タイプがserviceの場合に必要な設定情報を設定情報記憶部202に格納する(ステップS302)。
次に、要素タイプがdriverの場合に必要な設定情報を設定情報記憶部202に格納する(ステップS303)。
次に、要素タイプがfunctionの場合に必要な設定情報を設定情報記憶部202に格納する(ステップS304)。
次に、対象のソフトウェアが特定のOSであるか否かを判定する(ステップS305)。
対象のソフトウェアが特定のOSである場合は、ステップS306に移行する(ステップS305:Yes)。
対象のソフトウェアが特定のOSでない場合は、第3フェーズを終了する(ステップS305:No)。
次に、要素タイプがkernelの場合に必要な設定情報を設定情報記憶部202に格納する(ステップS306)。
なお、ステップS302/S303/S304/S306における設定情報記憶部202への設定情報の格納は、手動で行われてもよいし、スクリプトなどによって自動で行われてもよい。また、OSによってはステップS302/S303/S304/S306の対象となる機能を有さない場合もあるため、S302/S303/S304/S306のうち、一部のステップを省略してもよい。
図16は、第4フェーズの一例を示すフローチャートである。以下、図16を参照して、第4フェーズについて説明する。ステップS201~S207、ステップS215については、第2フェーズと同一の動作のため説明を省略する。
ステップS207の次に、安全性判定部201は、原因要素記憶部106から、取得した脆弱性情報の脆弱性IDと一致する脆弱性IDを有する原因要素情報を検索する(ステップS401)。
次に、安全性判定部201は、ステップS401の検索結果が存在するか否か判定する(ステップS402)。
ステップS401の検索結果が存在しない場合、ステップS405に移行する(ステップS402:No)。
ステップS401の検索結果が存在する場合、ステップS403に移行する(ステップS402:Yes)。
次に、安全性判定部201は、取得した原因要素の要素タイプと同じ要素タイプを有し、かつ、取得した構成情報の構成番号と同じ構成番号を有する設定情報を、設定情報記憶部202に格納された設定情報から検索する(ステップS403)。
次に、安全性判定部201は、ステップS403の検索結果が存在するか否か判定する(ステップS404)。
ステップS403の検索結果が存在する場合、ステップS406に移行し(ステップS404:No)、ステップS406~S410により対象ソフトウェアの安全性を判定する。
次に、安全性判定部201は、取得した原因要素の要素タイプが「service」または「driver」であるか否か判定する(ステップS406)。
取得した原因要素の要素タイプが「service」または「driver」の場合(ステップS406:Yes)、設定値が「ON」であるか否か判定する(ステップS407)。
設定値が「ON」の場合、ステップS405に移行し(ステップS407:Yes)、設定値が「OFF」の場合、ステップS204に戻り(ステップS407:No)、別の脆弱性を選択し直す。設定値が「ON」の場合、対象ソフトウェアに該当する脆弱性がある場合に対応し、設定値が「OFF」の場合、対象ソフトウェアに該当する脆弱性がない場合に対応する。
取得した原因要素の要素タイプが「service」および「driver」以外の場合(ステップS406:No)、安全性判定部201は、取得した原因要素の要素タイプが「function」か否か判定する(ステップS408)。
取得した原因要素の要素タイプが「function」である場合(ステップS408:Yes)、設定値が「enable」であるか否か判定する(ステップS409)。
設定値が「enable」の場合、ステップS405に移行し(ステップS409:Yes)、設定値が「disable」の場合、ステップS204に戻り(ステップS407:No)、別の脆弱性を選択し直す。設定値が「enable」の場合、対象ソフトウェアに該当する脆弱性がある場合に対応し、設定値が「disable」の場合、対象ソフトウェアに該当する脆弱性がない場合に対応する。
取得した原因要素の要素タイプが「kernel」である場合(ステップS408:No)、設定値が「0」および「null」以外であるか否か判定する(ステップS410)。
設定値が「0」および「null」以外の場合、ステップS405に移行し(ステップS410:Yes)、設定値が「0」または「null」の場合(ステップS410:No)、ステップS204に戻り、別の脆弱性を選択し直す。設定値が「0」および「null」以外の場合、対象ソフトウェアに該当する脆弱性がある場合に対応し、設定値が「0」または「null」の場合、対象ソフトウェアに該当する脆弱性がない場合に対応する。
ステップS403の検索結果が存在しない場合、ステップS405に移行する(ステップS404:Yes)。
次に、安全性判定部201は、マッチング部107から受領した構成情報と脆弱性情報に基づき、脆弱性が含まれる製品またはシステムと、脆弱性の内容を出力部109に出力する。出力部109は、安全性判定部201から受領した情報に基づく脆弱性調査情報をユーザに通知するために出力する(ステップS405)。例えば出力部109は、図9の形の脆弱性調査情報(脆弱性の存在を示す情報)を出力する。
なお、本実施形態では、ステップS407/409/410がNoの場合は、安全性が高いため、ユーザに通知していないが、安全性が高い旨を追加してユーザに通知してもよい。
上述したように、本実施形態によれば、脆弱性検査対象のソフトウェアがOSの場合、OSの設定情報に基づき、脆弱性の安全性の調査を一部自動化することができる。したがって、本実施形態を用いることにより、ユーザの負担を更に軽減することができる。
また、第1実施形態および第2実施形態では、要素タイプを、OSに関する「service」、「driver」、「function」、「kernel」の4つに限定しているが、さらに追加してもよい。例えば、特定のアプリケーションを要素タイプとして指定し、設定情報としてその設定ファイルを用いることで、OSに限らず、より幅広いソフトウェアの安全性判定について、ユーザの負担を軽減することができる。
(ハードウェア構成)
図22は、各実施形態に係る情報処理装置のハードウェア構成を示す。情報処理装置は、コンピュータ装置600により構成される。コンピュータ装置600は、CPU601と、入力インタフェース602と、表示装置603と、通信装置604と、主記憶装置605と、外部記憶装置606とを備え、これらはバス607により相互に接続されている。
CPU(中央演算装置)601は、主記憶装置605上で、コンピュータプログラムである情報処理プログラムを実行する。情報処理プログラムは、情報処理装置の上述の各機能構成を実現するプログラムのことである。情報処理プログラムは、1つのプログラムではなく、複数のプログラムやスクリプトの組み合わせにより実現されていてもよい。CPU601が、情報処理プログラムを実行することにより、各機能構成は実現される。
入力インタフェース602は、キーボード、マウス、及びタッチパネルなどの入力装置からの操作信号を、情報処理装置に入力するための回路である。入力インタフェース602は各実施形態に係る情報処理装置の入力部に対応する。
表示装置603は、情報処理装置から出力されるデータを表示する。表示装置603は、例えば、LCD(液晶ディスプレイ)、有機エレクトロルミネッセンスディスプレイ、CRT(ブラウン管)、又はPDP(プラズマディスプレイ)であるが、これに限られない。コンピュータ装置600から出力されたデータは、この表示装置603に表示することができる。表示装置603は各実施形態に係る情報処理装置の出力部に対応する。
通信装置604は、情報処理装置が外部装置と無線又は有線で通信するための回路である。データは、通信装置604を介して外部装置から入力することができる。外部装置から入力したデータを、主記憶装置605や外部記憶装置606に格納することができる。
主記憶装置605は、情報処理プログラム、情報処理プログラムの実行に必要なデータ、及び情報処理プログラムの実行により生成されたデータなどを記憶する。情報処理プログラムは、主記憶装置605上で展開され、実行される。主記憶装置605は、例えば、RAM、DRAM、SRAMであるが、これに限られない。各実施形態に係る情報処理装置の各記憶部又はデータベースは、主記憶装置605上に構築されてもよい。
外部記憶装置606は、情報処理プログラム、情報処理プログラムの実行に必要なデータ、及び情報処理プログラムの実行により生成されたデータなどを記憶する。これらの情報処理プログラムやデータは、情報処理プログラムの実行の際に、主記憶装置605に読み出される。外部記憶装置606は、例えば、ハードディスク、光ディスク、フラッシュメモリ、及び磁気テープであるが、これに限られない。情報処理装置の各記憶部又はデータベースは、外部記憶装置606上に構築されてもよい。
なお、情報処理プログラムは、コンピュータ装置600に予めインストールされていてもよいし、CD-ROMなどの記憶媒体に記憶されていてもよい。また、情報処理プログラムは、インターネット上にアップロードされていてもよい。
また、情報処理装置は、単一のコンピュータ装置600により構成されてもよいし、相互に接続された複数のコンピュータ装置600からなるシステムとして構成されてもよい。
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
本実施形態は、以下のように構成することもできる。
[項目1]
脆弱性を一意に特定する脆弱性識別子と、前記脆弱性が含まれるソフトウェアを一意に特定するソフトウェア識別子と、前記脆弱性の内容を示す脆弱性記述と、を含む1つ以上の脆弱性情報を格納した脆弱性データベースと、
前記脆弱性データベースにおいて、対象機器に設けられている対象ソフトウェアのソフトウェア識別子にマッチする脆弱性情報を特定するマッチング部と、
前記マッチング部により特定される前記脆弱性情報における前記脆弱性記述から前記脆弱性の原因となる原因要素を特定する原因要素特定部と、
特定した前記原因要素の名称から前記原因要素のタイプを決定するタイプ決定部と、
前記対象ソフトウェアのソフトウェア識別子と前記原因要素のタイプとに基づき、前記対象ソフトウェアの脆弱性に関する調査方法を決定し、前記調査方法を示す情報を出力する出力部と
を備えた情報処理装置。
[項目2]
前記原因要素特定部は、前記脆弱性データベースにおける前記脆弱性情報ごとに、前記脆弱性記述から前記脆弱性の原因となる原因要素を特定し、
前記タイプ決定部は、特定された前記原因要素の名称から前記原因要素のタイプを決定し、
前記脆弱性情報の前記脆弱性識別子と、前記原因要素のタイプとを含む原因要素情報とを原因要素データベースに格納し、
前記出力部は、前記マッチング部により特定される前記脆弱性情報に含まれる前記脆弱性識別子にマッチする前記原因要素のタイプを前記原因要素データベースにおいて特定し、前記対象ソフトウェアのソフトウェア識別子と、特定した前記原因要素のタイプとに基づき、前記調査方法を決定する
項目1に記載の情報処理装置。
[項目3]
前記脆弱性データベースにおける前記脆弱性情報は、前記ソフトウェアのバージョン条件を含み、
前記マッチング部は、前記対象ソフトウェアの前記ソフトウェア識別子にマッチし、前記対象ソフトウェアのバージョンが前記バージョン条件を満たす脆弱性情報を特定する
項目1または2に記載の情報処理装置。
[項目4]
原因要素のタイプと、ソフトウェア識別子と、調査方法の内容を示しかつ前記原因要素の名称を変数として含む調査方法記述とを含む調査方法情報を格納した調査方法データベースをさらに備え、
前記出力部は、前記対象ソフトウェアのソフトウェア識別子と前記タイプ決定部により決定された前記原因要素のタイプとにマッチする調査方法情報を特定し、特定した前記調査方法情報の前記調査方法記述における前記変数を、前記原因要素特定部により特定された原因要素の名称に置換し、置換後の前記調査方法記述を含む情報を、前記調査方法を示す情報として出力する
項目1~3のいずれか一項に記載の情報処理装置。
[項目5]
前記原因要素特定部は、前記脆弱性記述に対して1つ以上の第1照合パターンを適用してマッチする第1照合パターンを特定し、特定した第1照合パターンで指定される箇所における記述部分を前記脆弱性記述から抽出し、抽出した記述部分が示す対象を前記原因要素とする
項目1~4のいずれか一項に記載の情報処理装置。
[項目6]
前記タイプ決定部は、それぞれ原因要素タイプが対応づいた1つ以上の第2照合パターンを前記抽出した記述部分に適用してマッチする第2照合パターンを特定し、特定した前記第2照合パターンに対応する前記原因要素タイプを、前記原因要素のタイプに決定する
項目5に記載の情報処理装置。
[項目7]
前記タイプ決定部は、特定した前記第2照合パターンで指定される箇所における記述部分を前記抽出した記述部分から抽出し、抽出した記述部分が示す対象を前記原因要素の標準名とし、
前記調査方法を示す情報は、前記原因要素の標準名を含む
項目6に記載の情報処理装置。
[項目8]
前記対象ソフトウェアについて前記原因要素特定部により特定される前記原因要素の設定項目の設定値を取得し、前記設定値に基づき、前記対象ソフトウェアの前記脆弱性に対する安全性を判定する安全性判定部を備え、
前記出力部は、前記安全性判定部の判定結果に基づき、前記脆弱性の存在を示す情報を出力する
項目1~7のいずれか一項に記載の情報処理装置。
[項目9]
前記対象ソフトウェアはOS(Operating System)である
項目1~8のいずれか一項に記載の情報処理装置。
[項目10]
脆弱性を一意に特定する脆弱性識別子と、前記脆弱性が含まれるソフトウェアを一意に特定するソフトウェア識別子と、前記脆弱性の内容を示す脆弱性記述と、を含む1つ以上の脆弱性情報を格納した脆弱性データベースにアクセスし、対象機器に設けられている対象ソフトウェアのソフトウェア識別子にマッチする脆弱性情報を特定し、
特定される前記脆弱性情報における前記脆弱性記述から前記脆弱性の原因となる原因要素を特定し、
特定した前記原因要素の名称から前記原因要素のタイプを決定し、
前記対象ソフトウェアのソフトウェア識別子と前記原因要素のタイプとに基づき、前記対象ソフトウェアの脆弱性に関する調査方法を決定し、前記調査方法を示す情報を出力する
情報処理方法。
[項目11]
脆弱性を一意に特定する脆弱性識別子と、前記脆弱性が含まれるソフトウェアを一意に特定するソフトウェア識別子と、前記脆弱性の内容を示す脆弱性記述と、を含む1つ以上の脆弱性情報を格納した脆弱性データベースにアクセスして、対象機器に設けられている対象ソフトウェアのソフトウェア識別子にマッチする脆弱性情報を特定するステップと、
特定される前記脆弱性情報における前記脆弱性記述から前記脆弱性の原因となる原因要素を特定するステップと、
特定した前記原因要素の名称から前記原因要素のタイプを決定するステップと、
前記対象ソフトウェアのソフトウェア識別子と前記原因要素のタイプとに基づき、前記対象ソフトウェアの脆弱性に関する調査方法を決定し、前記調査方法を示す情報を出力するステップと
をコンピュータに実行させるためのコンピュータプログラム。
100、100A 情報処理装置
101 脆弱性情報記憶部
102 原因要素抽出部(原因要素特定部)
103 抽出ルール記憶部
104 タイプ決定部
105 決定ルール記憶部
106 原因要素記憶部
107 マッチング部
108 構成情報記憶部
109 出力部
110 調査方法記憶部
201 安全性判定部
202 設定情報記憶部
203 設定情報収集部
600 コンピュータ装置
601 CPU
602 入力インタフェース
603 表示装置
604 通信装置
605 主記憶装置
606 外部記憶装置
607 バス

Claims (11)

  1. 脆弱性を一意に特定する脆弱性識別子と、前記脆弱性が含まれるソフトウェアを一意に特定するソフトウェア識別子と、前記脆弱性の内容を示す脆弱性記述と、を含む1つ以上の脆弱性情報を格納した脆弱性データベースと、
    前記脆弱性データベースにおいて、対象機器に設けられている対象ソフトウェアのソフトウェア識別子にマッチする脆弱性情報を特定するマッチング部と、
    前記マッチング部により特定される前記脆弱性情報における前記脆弱性記述から前記脆弱性の原因となる原因要素を特定する原因要素特定部と、
    特定した前記原因要素の名称から前記原因要素のタイプを決定するタイプ決定部と、
    前記対象ソフトウェアのソフトウェア識別子と前記原因要素のタイプとに基づき、前記対象ソフトウェアの脆弱性に関する調査方法を決定し、前記調査方法を示す情報を出力する出力部と
    を備えた情報処理装置。
  2. 前記原因要素特定部は、前記脆弱性データベースにおける前記脆弱性情報ごとに、前記脆弱性記述から前記脆弱性の原因となる原因要素を特定し、
    前記タイプ決定部は、特定された前記原因要素の名称から前記原因要素のタイプを決定し、
    前記脆弱性情報の前記脆弱性識別子と、前記原因要素のタイプとを含む原因要素情報とを原因要素データベースに格納し、
    前記出力部は、前記マッチング部により特定される前記脆弱性情報に含まれる前記脆弱性識別子にマッチする前記原因要素のタイプを前記原因要素データベースにおいて特定し、前記対象ソフトウェアのソフトウェア識別子と、特定した前記原因要素のタイプとに基づき、前記調査方法を決定する
    請求項1に記載の情報処理装置。
  3. 前記脆弱性データベースにおける前記脆弱性情報は、前記ソフトウェアのバージョン条件を含み、
    前記マッチング部は、前記対象ソフトウェアの前記ソフトウェア識別子にマッチし、前記対象ソフトウェアのバージョンが前記バージョン条件を満たす脆弱性情報を特定する
    請求項1に記載の情報処理装置。
  4. 原因要素のタイプと、ソフトウェア識別子と、調査方法の内容を示しかつ前記原因要素の名称を変数として含む調査方法記述とを含む調査方法情報を格納した調査方法データベースをさらに備え、
    前記出力部は、前記対象ソフトウェアのソフトウェア識別子と前記タイプ決定部により決定された前記原因要素のタイプとにマッチする調査方法情報を特定し、特定した前記調査方法情報の前記調査方法記述における前記変数を、前記原因要素特定部により特定された原因要素の名称に置換し、置換後の前記調査方法記述を含む情報を、前記調査方法を示す情報として出力する
    請求項1に記載の情報処理装置。
  5. 前記原因要素特定部は、前記脆弱性記述に対して1つ以上の第1照合パターンを適用してマッチする第1照合パターンを特定し、特定した第1照合パターンで指定される箇所における記述部分を前記脆弱性記述から抽出し、抽出した記述部分が示す対象を前記原因要素とする
    請求項1に記載の情報処理装置。
  6. 前記タイプ決定部は、それぞれ原因要素タイプが対応づいた1つ以上の第2照合パターンを前記抽出した記述部分に適用してマッチする第2照合パターンを特定し、特定した前記第2照合パターンに対応する前記原因要素タイプを、前記原因要素のタイプに決定する
    請求項5に記載の情報処理装置。
  7. 前記タイプ決定部は、特定した前記第2照合パターンで指定される箇所における記述部分を前記抽出した記述部分から抽出し、抽出した記述部分が示す対象を前記原因要素の標準名とし、
    前記調査方法を示す情報は、前記原因要素の標準名を含む
    請求項6に記載の情報処理装置。
  8. 前記対象ソフトウェアについて前記原因要素特定部により特定される前記原因要素の設定項目の設定値を取得し、前記設定値に基づき、前記対象ソフトウェアの前記脆弱性に対する安全性を判定する安全性判定部を備え、
    前記出力部は、前記安全性判定部の判定結果に基づき、前記脆弱性の存在を示す情報を出力する
    請求項1に記載の情報処理装置。
  9. 前記対象ソフトウェアはOS(Operating System)である
    請求項1に記載の情報処理装置。
  10. 脆弱性を一意に特定する脆弱性識別子と、前記脆弱性が含まれるソフトウェアを一意に特定するソフトウェア識別子と、前記脆弱性の内容を示す脆弱性記述と、を含む1つ以上の脆弱性情報を格納した脆弱性データベースにアクセスし、対象機器に設けられている対象ソフトウェアのソフトウェア識別子にマッチする脆弱性情報を特定し、
    特定される前記脆弱性情報における前記脆弱性記述から前記脆弱性の原因となる原因要素を特定し、
    特定した前記原因要素の名称から前記原因要素のタイプを決定し、
    前記対象ソフトウェアのソフトウェア識別子と前記原因要素のタイプとに基づき、前記対象ソフトウェアの脆弱性に関する調査方法を決定し、前記調査方法を示す情報を出力する
    コンピュータが実行する、情報処理方法。
  11. 脆弱性を一意に特定する脆弱性識別子と、前記脆弱性が含まれるソフトウェアを一意に特定するソフトウェア識別子と、前記脆弱性の内容を示す脆弱性記述と、を含む1つ以上の脆弱性情報を格納した脆弱性データベースにアクセスして、対象機器に設けられている対象ソフトウェアのソフトウェア識別子にマッチする脆弱性情報を特定するステップと、
    特定される前記脆弱性情報における前記脆弱性記述から前記脆弱性の原因となる原因要素を特定するステップと、
    特定した前記原因要素の名称から前記原因要素のタイプを決定するステップと、
    前記対象ソフトウェアのソフトウェア識別子と前記原因要素のタイプとに基づき、前記対象ソフトウェアの脆弱性に関する調査方法を決定し、前記調査方法を示す情報を出力するステップと
    をコンピュータに実行させるためのコンピュータプログラム。
JP2022147083A 2022-09-15 2022-09-15 情報処理装置、情報処理方法及びコンピュータプログラム Active JP7741782B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022147083A JP7741782B2 (ja) 2022-09-15 2022-09-15 情報処理装置、情報処理方法及びコンピュータプログラム
US18/175,728 US12393695B2 (en) 2022-09-15 2023-02-28 Information processing apparatus, information processing method, and non-transitory computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022147083A JP7741782B2 (ja) 2022-09-15 2022-09-15 情報処理装置、情報処理方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2024042396A JP2024042396A (ja) 2024-03-28
JP7741782B2 true JP7741782B2 (ja) 2025-09-18

Family

ID=90243796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022147083A Active JP7741782B2 (ja) 2022-09-15 2022-09-15 情報処理装置、情報処理方法及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US12393695B2 (ja)
JP (1) JP7741782B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2025177888A (ja) * 2024-05-24 2025-12-05 株式会社日立製作所 脆弱性分析装置、脆弱性分析方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058514A (ja) 2005-08-24 2007-03-08 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2009048652A (ja) 2003-04-24 2009-03-05 Nec Corp 情報表示システムおよび情報表示方法
JP2020021309A (ja) 2018-08-01 2020-02-06 株式会社野村総合研究所 脆弱性管理システム及びプログラム
JP7008893B2 (ja) 2020-01-17 2022-01-25 三菱電機株式会社 情報処理装置及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4222184B2 (ja) 2003-04-24 2009-02-12 日本電気株式会社 セキュリティ管理支援システム、セキュリティ管理支援方法およびプログラム
JP2005293267A (ja) 2004-03-31 2005-10-20 Ricoh Co Ltd 情報セキュリティマネジメント支援システム及びプログラム
US20060265324A1 (en) * 2005-05-18 2006-11-23 Alcatel Security risk analysis systems and methods
JP4751431B2 (ja) 2008-09-12 2011-08-17 株式会社東芝 脆弱性判定装置及びプログラム
US8825689B2 (en) * 2012-05-21 2014-09-02 Sonatype, Inc. Method and system for matching unknown software component to known software component
US9256746B2 (en) * 2012-12-14 2016-02-09 Vmware, Inc. Device and method for remediating vulnerabilities
RU2724796C1 (ru) * 2019-02-07 2020-06-25 Акционерное общество "Лаборатория Касперского" Система и способ защиты автоматизированных систем при помощи шлюза

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009048652A (ja) 2003-04-24 2009-03-05 Nec Corp 情報表示システムおよび情報表示方法
JP2007058514A (ja) 2005-08-24 2007-03-08 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2020021309A (ja) 2018-08-01 2020-02-06 株式会社野村総合研究所 脆弱性管理システム及びプログラム
JP7008893B2 (ja) 2020-01-17 2022-01-25 三菱電機株式会社 情報処理装置及びプログラム

Also Published As

Publication number Publication date
US12393695B2 (en) 2025-08-19
US20240095371A1 (en) 2024-03-21
JP2024042396A (ja) 2024-03-28

Similar Documents

Publication Publication Date Title
US10713149B2 (en) Processing automation scripts of software
EP3835987A1 (en) Method and system for automatically identifying and correcting security vulnerabilities in containers
EP3671512A1 (en) Automated software vulnerability determination
US8621278B2 (en) System and method for automated solution of functionality problems in computer systems
CN102483780B (zh) 防病毒扫描
RU2514140C1 (ru) Система и способ увеличения качества обнаружений вредоносных объектов с использованием правил и приоритетов
Farhang et al. An empirical study of android security bulletins in different vendors
US20150207811A1 (en) Vulnerability vector information analysis
US11977872B2 (en) Method and system for code maintenance
CN112166419B (zh) 检测软件漏洞的电子装置和操作该电子装置的方法
NO343315B1 (no) Systemanalyse og håndtering
KR101138748B1 (ko) 악성 코드 차단 장치, 시스템 및 방법
US20150213272A1 (en) Conjoint vulnerability identifiers
CN116610326A (zh) 区块链智能合约的安全性检测方法、设备及存储介质
JP7741782B2 (ja) 情報処理装置、情報処理方法及びコンピュータプログラム
CN114969762A (zh) 漏洞信息处理方法、服务装置和漏洞检测模块
CN115982713A (zh) 漏洞修复方法、装置、电子设备和计算机可读存储介质
CN111966630B (zh) 文件类型的检测方法、装置、设备和介质
US20120310849A1 (en) System and method for validating design of an electronic product
JP7670147B2 (ja) 攻撃分析支援装置、攻撃分析支援方法、及びプログラム
US11481546B2 (en) Screen discrimination apparatus, screen discrimination method and program
US9465687B2 (en) Information processing apparatus and information processing method
US20220206934A1 (en) Test apparatus, test method and program
JP6885255B2 (ja) フロー生成プログラム、フロー生成装置及びフロー生成方法
JP2005190330A (ja) ソースプログラムのレビュー支援システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250703

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250905

R150 Certificate of patent or registration of utility model

Ref document number: 7741782

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150