IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許7501615セキュリティ検査装置、セキュリティ検査方法、及びプログラム
<>
  • 特許-セキュリティ検査装置、セキュリティ検査方法、及びプログラム 図1
  • 特許-セキュリティ検査装置、セキュリティ検査方法、及びプログラム 図2
  • 特許-セキュリティ検査装置、セキュリティ検査方法、及びプログラム 図3
  • 特許-セキュリティ検査装置、セキュリティ検査方法、及びプログラム 図4
  • 特許-セキュリティ検査装置、セキュリティ検査方法、及びプログラム 図5
  • 特許-セキュリティ検査装置、セキュリティ検査方法、及びプログラム 図6
  • 特許-セキュリティ検査装置、セキュリティ検査方法、及びプログラム 図7
  • 特許-セキュリティ検査装置、セキュリティ検査方法、及びプログラム 図8
  • 特許-セキュリティ検査装置、セキュリティ検査方法、及びプログラム 図9
  • 特許-セキュリティ検査装置、セキュリティ検査方法、及びプログラム 図10
  • 特許-セキュリティ検査装置、セキュリティ検査方法、及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-10
(45)【発行日】2024-06-18
(54)【発明の名称】セキュリティ検査装置、セキュリティ検査方法、及びプログラム
(51)【国際特許分類】
   G06F 21/57 20130101AFI20240611BHJP
【FI】
G06F21/57 370
【請求項の数】 10
(21)【出願番号】P 2022516799
(86)(22)【出願日】2020-04-24
(86)【国際出願番号】 JP2020017709
(87)【国際公開番号】W WO2021214982
(87)【国際公開日】2021-10-28
【審査請求日】2022-10-11
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100141519
【弁理士】
【氏名又は名称】梶田 邦之
(72)【発明者】
【氏名】園田 健太郎
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2009-129206(JP,A)
【文献】特開2007-141169(JP,A)
【文献】特開2013-008304(JP,A)
【文献】特開2016-095631(JP,A)
【文献】国際公開第2014/050431(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
ソフトウェア及びハードウェアの少なくとも1つに関するシステムであってセキュリティ検査の対象となる前記システムの構成に関する1以上の構成情報を取得する取得手段と、
前記1以上の構成情報のそれぞれが、前記セキュリティ検査のための検査項目として設定された1種類以上のセキュリティ機能のそれぞれに関連付けられるか否かの判断を行う判断手段と、
前記判断に関する情報を生成する生成手段と、
を備え、
前記1種類以上のセキュリティ機能のそれぞれは、複数の項目集合のうちの1以上の項目集合に属し、
前記判断に関する前記情報は、前記複数の項目集合のそれぞれにおいて、対応する項目集合に属するセキュリティ機能に関連付けられる構成情報の出現数を示す情報を含む、セキュリティ検査装置。
【請求項2】
前記1以上の構成情報のそれぞれは、前記システムの構成に関するテキストデータを示し、
前記関連付けられるか否かの判断は、前記1以上の構成情報のそれぞれにより示されるテキストデータと、前記セキュリティ検査のための検査項目として設定された前記1種類以上のセキュリティ機能のそれぞれに関するテキストデータとの照合により行われる、請求項1記載のセキュリティ検査装置。
【請求項3】
前記1以上の構成情報は、前記システムを実行させるためのソースコードの構成に関する情報を含む、請求項1又は2記載のセキュリティ検査装置。
【請求項4】
前記1以上の構成情報は、前記システムを構成する部品表に関する情報を含む、請求項1乃至3のうちいずれか1項記載のセキュリティ検査装置。
【請求項5】
前記判断に関する前記情報は、前記1以上の構成情報のそれぞれが、前記1種類以上のセキュリティ機能のそれぞれに関連付けられたか否かを示す情報を含む、請求項1乃至4のうちいずれか1項記載のセキュリティ検査装置。
【請求項6】
前記複数の項目集合は、複数の第1項目集合と、前記複数の第1項目集合のそれぞれから細分化される複数の第2項目集合とを、含み、
前記1種類以上のセキュリティ機能のそれぞれは、前記複数の第1項目集合のうちの1つの第1項目集合と、当該1つの第1項目集合から細分化される複数の第2項目集合のうちの1つの第2項目集合とに属する、請求項1乃至5のうちいずれか1項記載のセキュリティ検査装置。
【請求項7】
前記判断に関する前記情報は、前記第1項目集合から細分化される複数の第2項目集合のうち、所定数以上の第2項目集合のそれぞれに属するセキュリティ機能に関連付けられる構成情報があるか否かを示す情報を含む、請求項6記載のセキュリティ検査装置。
【請求項8】
前記セキュリティ検査のための検査項目として設定されるべきセキュリティ機能を更新する更新処理手段を更に備える、請求項1乃至7のうちいずれか1項記載のセキュリティ検査装置。
【請求項9】
コンピュータにより行われるセキュリティ検査方法であって、
ソフトウェア及びハードウェアの少なくとも1つに関するシステムであってセキュリティ検査の対象となる前記システムの構成に関する1以上の構成情報を取得することと、
前記1以上の構成情報のそれぞれが、前記セキュリティ検査のための検査項目として設定された1種類以上のセキュリティ機能のそれぞれに関連付けられるか否かの判断を行うことと、
前記判断に関する情報を生成することと、
を備え、
前記1種類以上のセキュリティ機能のそれぞれは、複数の項目集合のうちの1以上の項目集合に属し、
前記判断に関する前記情報は、前記複数の項目集合のそれぞれにおいて、対応する項目集合に属するセキュリティ機能に関連付けられる構成情報の出現数を示す情報を含む、セキュリティ検査方法。
【請求項10】
ソフトウェア及びハードウェアの少なくとも1つに関するシステムであってセキュリティ検査の対象となる前記システムの構成に関する1以上の構成情報を取得することと、
前記1以上の構成情報のそれぞれが、前記セキュリティ検査のための検査項目として設定された1種類以上のセキュリティ機能のそれぞれに関連付けられるか否かの判断を行うことと、
前記判断に関する情報を生成することと、
をコンピュータに実行させるためのプログラムであり、
前記1種類以上のセキュリティ機能のそれぞれは、複数の項目集合のうちの1以上の項目集合に属し、
前記判断に関する前記情報は、前記複数の項目集合のそれぞれにおいて、対応する項目集合に属するセキュリティ機能に関連付けられる構成情報の出現数を示す情報を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア及びハードウェアの少なくとも1つに関するシステムのセキュリティ検査を行うセキュリティ検査装置、セキュリティ検査方法、及びプログラムに関する。
【背景技術】
【0002】
ソフトウェア及びハードウェアなどにより構成されるシステムのセキュリティ検査を行うサービスが提供されている。例えば企業は、このようなサービスを利用することで、当該企業が有するシステム(例えば、端末からのアクセスに応じてデータ処理を実行するウェブシステム)のセキュリティ上の欠陥、脆弱性を把握することができる。そして、当該企業は、把握した情報などに基づいて、セキュリティ上の対策を講じることが可能となる。
【0003】
上述したセキュリティ検査には、例えば、上述したようなシステムで使用されるオペレーティングシステム(OS)及びアプリケーションに関する脆弱性の有無を検査する脆弱性診断と呼ばれるサービスが存在する。
【0004】
例えば、特許文献1には、ソースコードに記載された関数等と既知の脆弱性情報とを照合して、照合が成功した場合にそのソースコードに記載の関数等に脆弱性が含まれていると判定することが開示されている。特許文献2には、脆弱性検査ツールで用いられる複数の脆弱性情報を互いに比較することにより常に最新の脆弱性情報に基づいた脆弱性検査項目を準備して、正確にかつ簡易に脆弱性検査を実施することが記載されている。
【0005】
また、特許文献3には、ネットワーク又はシステムへの新規参加者が、接続すべきシステム等に対してセキュリティに関するセルフチェックを行うこと、チェック結果をネットワーク又はシステムの管理者に提供すること、当該管理者が当該セルフチェックの結果を評価して接続可否の判定を行うことが開示されている。
【0006】
また、特許文献4には、webアプリケーションのセキュリティ検査に特化したモデルを用いたモデル検査を行うことにより、検査時間の短縮化、及び検査の網羅性を確保することが記載されている。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2019-003309号公報
【文献】特開2004-102479号公報
【文献】特開2014-233078号公報
【文献】特開2008-262311号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述した脆弱性診断は、主に検査ツール及びソフトウェアを用いて検査することが多く、実質的に自動化を図ることが可能である。このような脆弱性診断ツール及びソフトウェアを用いた検査では、既知の脆弱性を素早く且つ網羅的に検査及び検出することが可能である。
【0009】
しかしながら、二要素認証の有無、又は個人情報登録時のメール送信機能等など、脆弱性以外のセキュリティに関する構造上の欠陥、言い換えればシステムのセキュリティアーキテクチャ又はセキュリティデザインといった構造上の欠陥を検出することが難しいという問題があった。
【0010】
本発明の目的は、ソフトウェア及びハードウェアの少なくとも1つに関するシステムのセキュリティに関する構造上の欠陥を適切に検出することを可能にするセキュリティ検査装置、セキュリティ検査方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0011】
本発明の一つの態様によれば、セキュリティ検査装置は、ソフトウェア及びハードウェアの少なくとも1つに関するシステムであってセキュリティ検査の対象となる上記システムの構成に関する1以上の構成情報を取得する取得部と、上記1以上の構成情報のそれぞれが、上記セキュリティ検査のための検査項目として設定された1種類以上のセキュリティ機能のそれぞれに関連付けられるか否かの判断を行う判断部と、上記判断に関する情報を生成する生成部と、を備える。
【0012】
本発明の一つの態様によれば、セキュリティ検査方法は、ソフトウェア及びハードウェアの少なくとも1つに関するシステムであってセキュリティ検査の対象となる上記システムの構成に関する1以上の構成情報を取得することと、上記1以上の構成情報のそれぞれが、上記セキュリティ検査のための検査項目として設定された1種類以上のセキュリティ機能のそれぞれに関連付けられるか否かの判断を行うことと、上記判断に関する情報を生成することと、を備える。
【0013】
本発明の一つの態様によれば、プログラムは、ソフトウェア及びハードウェアの少なくとも1つに関するシステムであってセキュリティ検査の対象となる上記システムの構成に関する1以上の構成情報を取得することと、上記1以上の構成情報のそれぞれが、上記セキュリティ検査のための検査項目として設定された1種類以上のセキュリティ機能のそれぞれに関連付けられるか否かの判断を行うことと、上記判断に関する情報を生成することと、をコンピュータに実行させるためのプログラムである。
【発明の効果】
【0014】
本発明の一つの態様によれば、ソフトウェア及びハードウェアの少なくとも1つに関するシステムのセキュリティに関する構造上の欠陥を適切に検出することが可能になる。なお、本発明により、当該効果の代わりに、又は当該効果とともに、他の効果が奏されてもよい。
【図面の簡単な説明】
【0015】
図1図1は、第1の実施形態に係るセキュリティ検査装置100aの概略的な構成の例を示すブロック図である。
図2図2は、ソースコード210から関数名221及びコメント文章223をそれぞれ抽出するための処理の具体例を示す図である。
図3図3は、ウェブシステムを実現するためのソフトウェアを構成するBOMの具体例を示す図である。
図4図4は、BOMに関する情報から生成されるテーブル列400の具体例を示す図である。
図5図5は、セキュリティ検査装置100a(記憶部120)が記憶するチェックリスト500の具体例を示す図である。
図6図6は、上述したチェックリスト500を用いてセキュリティ検査装置100a(判断部133)により行われる判断処理を説明するための説明図である。
図7図7は、上記出現数を示す上記情報の具体例に係るテーブル列710、720を示す図である。
図8図8は、構成情報の強調表示に関する処理を説明するための説明図である。
図9図9は、セキュリティ検査装置100aの全体の処理の流れを説明するための説明図である。
図10図10は、変形例に係るセキュリティ検査装置100bの概略的な構成の例を示すブロック図である。
図11図11は、第2の実施形態に係るセキュリティ検査装置100cの概略的な構成の例を示すブロック図である。
【発明を実施するための形態】
【0016】
以下、添付の図面を参照して本発明の実施形態を詳細に説明する。なお、本明細書及び図面において、同様に説明されることが可能な要素については、同一の符号を付することにより重複説明が省略され得る。
【0017】
説明は、以下の順序で行われる。
1.本発明の実施形態の概要
2.第1の実施形態
2.1.セキュリティ検査装置100aの構成
2.2.動作例
2.3.変形例
3.第2の実施形態
3.1.セキュリティ検査装置100cの構成
3.2.動作例
4.他の実施形態
【0018】
<<1.本発明の実施形態の概要>>
まず、本発明の実施形態の概要を説明する。
【0019】
(1)技術的課題
ソフトウェア及びハードウェアなどにより構成されるシステムのセキュリティ検査を行うサービスが提供されている。例えば企業は、このようなサービスを利用することで、当該企業が有するシステム(例えば、端末からのアクセスに応じてデータ処理を実行するウェブシステム)のセキュリティ上の欠陥、脆弱性を把握することができる。そして、当該企業は、把握した情報などに基づいて、セキュリティ上の対策を講じることが可能となる。
【0020】
上述したセキュリティ検査には、例えば、上述したようなシステムで使用されるオペレーティングシステム(OS)及びアプリケーションに関する脆弱性の有無を検査する脆弱性診断と呼ばれるサービスが存在する。
【0021】
上述した脆弱性診断は、主に検査ツール及びソフトウェアを用いて検査することが多く、実質的に自動化を図ることが可能である。このような脆弱性診断ツール及びソフトウェアを用いた検査では、既知の脆弱性を素早く且つ網羅的に検査及び検出することが可能である。
【0022】
しかしながら、二要素認証の有無、又は個人情報登録時のメール送信機能等など、脆弱性以外のセキュリティに関する構造上の欠陥、言い換えればシステムのセキュリティアーキテクチャ又はセキュリティデザインといった構造上の欠陥を検出することが難しいという問題があった。
【0023】
そこで、本実施形態では、ソフトウェア及びハードウェアの少なくとも1つに関するシステムのセキュリティに関する構造上の欠陥を適切に検出することを目的とする。より具体的には、既知の脆弱性診断ツール又はソフトウェアでは検出が困難なセキュリティアーキテクチャ又はデザインといった、上記システムの構造上の欠陥を自動的に検出することを目的とする。
【0024】
(2)技術的特徴
本発明の実施形態では、ソフトウェア及びハードウェアの少なくとも1つに関するシステムであってセキュリティ検査の対象となる上記システムの構成に関する1以上の構成情報を取得し、上記1以上の構成情報のそれぞれが、上記セキュリティ検査のための検査項目として設定された1種類以上のセキュリティ機能のそれぞれに関連付けられるか否かの判断を行い、上記判断に関する情報を生成する。
【0025】
これにより、例えば、ソフトウェア及びハードウェアの少なくとも1つに関するシステムのセキュリティに関する構造上の欠陥を適切に検出することが可能になる。なお、上述した技術的特徴は本発明の実施形態の具体的な一例であり、当然ながら、本発明の実施形態は、上述した技術的特徴に限定されない。
【0026】
<<2.第1の実施形態>>
続いて、図1図10を参照して、第1の実施形態を説明する。
【0027】
<2.1.セキュリティ検査装置100aの構成>
図1を参照して、第1の実施形態に係るセキュリティ検査装置100aの構成の例を説明する。図1は、第1の実施形態に係るセキュリティ検査装置100aの概略的な構成の例を示すブロック図である。図1を参照すると、セキュリティ検査装置100aは、ネットワーク通信部110、記憶部120、及び処理部130を備える。
【0028】
(1)ネットワーク通信部110
ネットワーク通信部110は、ネットワークから信号を受信し、ネットワークへ信号を送信する。
【0029】
(2)記憶部120
記憶部120は、セキュリティ検査装置100aの動作のためのプログラム(命令)及びパラメータ、並びに様々なデータを、一時的に又は恒久的に記憶する。当該プログラムは、セキュリティ検査装置100aの動作のための1つ以上の命令を含む。
【0030】
(3)処理部130
処理部130は、セキュリティ検査装置100aの様々な機能を提供する。処理部130は、取得部131、判断部133、生成部135、及び出力部137を備える。なお、処理部130は、これらの構成要素以外の他の構成要素をさらに含みうる。すなわち、処理部130は、これらの構成要素の動作以外の動作も行いうる。取得部131、判断部133、生成部135、及び出力部137の具体的な動作は、後に詳細に説明する。
【0031】
(4)実装例
ネットワーク通信部110は、ネットワークアダプタ並びに/又はネットワークインタフェースカード等により実装されてもよい。記憶部120は、メモリ(例えば、不揮発性メモリ及び/若しくは揮発性メモリ)並びに/又はハードディスク等により実装されてもよい。処理部130は、1つ以上のプロセッサにより実装されてもよい。取得部131、判断部133、生成部135、及び出力部137は、同一のプロセッサにより実装されてもよく、別々に異なるプロセッサにより実装されてもよい。上記メモリ(記憶部120)は、上記1つ以上のプロセッサ内に含まれていてもよく、又は、上記1つ以上のプロセッサ外にあってもよい。
【0032】
セキュリティ検査装置100aは、プログラム(命令)を記憶するメモリと、当該プログラム(命令)を実行可能な1つ以上のプロセッサとを含んでもよい。当該1つ以上のプロセッサは、上記プログラムを実行して、処理部130の動作(取得部131、判断部133、生成部135、及び/又は出力部137の動作)を行ってもよい。上記プログラムは、処理部130の動作(取得部131、判断部133、生成部135、及び/又は出力部137の動作)をプロセッサに実行させるためのプログラムであってもよい。
【0033】
<2.2.動作例>
次に、第1の実施形態に係る動作例について説明する。
【0034】
第1の実施形態によれば、セキュリティ検査装置100a(取得部131)は、ソフトウェア及びハードウェアの少なくとも1つに関するシステムであってセキュリティ検査の対象となる上記システムの構成に関する1以上の構成情報を取得する。セキュリティ検査装置100a(判断部133)は、上記1以上の構成情報のそれぞれが、上記セキュリティ検査のための検査項目として設定された1種類以上のセキュリティ機能のそれぞれに関連付けられるか否かの判断を行う。セキュリティ検査装置100a(生成部135)は、上記判断に関する情報を生成する。
【0035】
上記システムとは、ソフトウェア及びハードウェアの少なくとも1つから構成される検査対象のシステムである。より具体的には、上記システムは、例えば端末からのアクセスに応じてデータの記憶および処理などを実行するためのソフトウェア資源及び/又はハードウェア資源から構成されるウェブシステムである。上記ウェブシステムには、セキュリティを確保するため、認証及び暗号などの種々のセキュリティ機能を有する。
【0036】
本動作例では、上記システムの具体例としてウェブシステムを参照して説明する。このようなウェブシステムに限らず、ソフトウェア及びハードウェアの少なくとも1つに関するシステムであれば、本動作例を適用してもよい。
【0037】
上記ウェブシステムの構成に関する情報には、例えば、部品の再利用の観点などから、上記ウェブシステムが有する機能を表す名称及びコメントなどに含まれることが予測される。第1の実施形態によれば、このような予測に基づいて、ウェブシステムのセキュリティに関する構造上の欠陥を適切に検出することが可能となる。
【0038】
すなわち、第1の実施形態によれば、上記ウェブシステムの構成に関する構成情報が、上記検査項目として設定されたセキュリティ機能に関連付けられるか否かの判断を行うことにより、ウェブシステムのセキュリティに関する構造上の欠陥を適切に検出することが可能となる。
【0039】
(1)構成情報
具体的に、上記1以上の構成情報のそれぞれは、上記ウェブシステムの構成に関するテキストデータ(例えば、上記ウェブシステムの構成に関連するキーワードの文字列データ)を示す。
【0040】
この場合、上記関連付けられるか否かの判断は、上記1以上の構成情報のそれぞれにより示されるテキストデータと、上記セキュリティ検査のための検査項目として設定された上記1種類以上のセキュリティ機能のそれぞれに関するテキストデータとの照合により行われる。上記照合は、例えば、照合対象となるキーワード同士が所定の適合条件(一致又は類似など)を満たしているか否かの判断である。例えば、キーワード同士の類似判断は、例えば編集距離など任意の方法が用いられる。
【0041】
すなわち、セキュリティ検査装置100a(判断部133)は、上記構成情報により示されるテキストデータと、いずれかのセキュリティ機能を表すテキストデータ(例えば、キーワード)のうちの何れかのテキストデータと間の照合に成功した場合、上記ウェブシステムの構成に関する構成情報が、上記照合に成功したセキュリティ機能に関連付けられると判断する。一方、セキュリティ検査装置100a(判断部133)は、上記照合に失敗した場合、上記ウェブシステムの構成に関する構成情報がいずれのセキュリティ機能に関連付けられないと判断する。
【0042】
(1-1)ソースコードの構成に関する情報
上記1以上の構成情報は、上記ウェブシステムを実行させるためのソースコードの構成に関する情報を含む。例えば、上記ソースコードは、上記ウェブシステムを実行させるためのプログラムが記載されたテキストファイル、統合開発環境(IDE、Integrated Development Environmentとも呼ぶ。)を用いて作成されたプログラムからエクスポートされたデータファイル、又は任意の形式のデータファイルであってもよい。
【0043】
また、上記ソースコードの構成に関する情報は、例えば、上記ソースコードから抽出可能な関数名及びコメント文章などのテキストデータである。例えば、ネットワーク通信部110により上記ソースコードが受信された場合、セキュリティ検査装置100a(取得部131)は、上記ソースコードから、当該ソースコードに含まれる関数名及びコメント文章などのテキストデータを抽出(取得)する。
【0044】
図2は、ソースコード210から関数名221及びコメント文章223をそれぞれ抽出するための処理の具体例を示す図である。図2を参照すると、セキュリティ検査装置100a(取得部131)は、php言語により記述されたソースコード210から、ソースコード210内の関数に相当する文字列(関数名221)、およびコメントに相当する文字列(コメント文章223)を抽出する。
【0045】
より具体的には、関数名221を抽出する処理は、次のようにして行われる。すなわち、セキュリティ検査装置100a(取得部131)は、例えば、php言語の公式の関数リファレンス(マニュアル)を検索キーワードとして用いることにより、ソースコード210から関数名221を検索および抽出することができる。この抽出処理では、関数名221だけでなく関数に用いられる変数なども抽出されてもよい。
【0046】
また、上述したコメント文章223を抽出するための処理は、次のようにして行われる。すなわち、セキュリティ検査装置100a(取得部131)は、php言語でコメント文章を表現する文字列(ソースコード210に記載された「//」)に後続する文字列を、コメント文章223として抽出することができる。
【0047】
(1-2)部品表(Bills Of Materials)に関する情報
上記1以上の構成情報は、上記ウェブシステムを構成する部品表(以下、BOMとも呼ぶ。)に関する情報をさらに含んでもよい。例えば、BOMは、ウェブシステムを実現するためのソフトウェア及びハードウェアを構成する複数の部品の一覧性が確保された情報である。言い換えれば、BOMは、上述したソフトウェア及びハードウェアの製品開発において、実装及び組み立てのために必要となる部品情報が一覧にまとめられた情報である。
【0048】
図3は、ウェブシステムを実現するためのソフトウェアを構成するBOMの具体例を示す図である。図3を参照すると、BOMは、PN用のテーブル310(Parts Number)とPS用のテーブル320(Part Structure)で構成される。PN310は、各々の部品を識別可能な番号(識別子)である。PS320は、上記識別子に関連付けられる部品がどのように構成されているかを表す情報である。
【0049】
具体的に、図3に示すPN用のテーブル310の例では、PN0001に対応する部品の機能が機能名「ログイン処理」であることを示し、PN0002に対応する部品の機能が機能名「認証処理」であることを示し、PN0003に対応する部品の機能が機能名「エスケープ処理」であることを示す。また、図3に示すPS用のテーブル320の例では、ソフトウェアAがPN0001-PN0003にそれぞれ関連付けられる3つの部品から構成されていることを示し、ソフトウェアBがPN0002に関連付けられる1つの部品から構成されていることを示す。
【0050】
例えば、ネットワーク通信部110によりBOMに関する情報が受信された場合、セキュリティ検査装置100a(取得部131)は、BOMに関する情報を取得する。そして、セキュリティ検査装置100a(取得部131)は、PSで示されるソフトウェアと、PSで示されるPNと、PNに関連する機能名とを互いに関連付けたテーブル列を生成する。図4は、BOMに関する情報から生成されるテーブル列400の具体例を示す図である。テーブル列400のデータは、例えば記憶部120及び判断部133に提供される。なお、BOMに関する情報は、図4に示すような形式に限らず、任意の形式でセキュリティ検査装置100a(記憶部120)などに記憶(保持)されてもよい。
【0051】
(2)検査項目
具体的に、上記検査項目は、上記1種類以上のセキュリティ機能の各々を含んでいるか否かを確認するために用いられる。また、上記1種類以上のセキュリティ機能の各々に関連する複数の検査項目は、例えば、セキュリティ検査装置100a(記憶部120)が記憶するチェックリスト内において一覧化されてもよい。
【0052】
具体的に、上記チェックリストは、セキュリティの欠陥の有無の確認対象となるセキュリティ機能に関連付けられた検査項目が一覧化されたものである。例えば、検査項目は、セキュリティ機能に関連付けられるキーワードである。
【0053】
(2-1)項目集合
上記1種類以上のセキュリティ機能のそれぞれは、複数の項目集合のうちの1以上の項目集合に属してもよい。すなわち、上記1種類以上のセキュリティ機能は、「認証」、「暗号」、「個人情報削除」などの機能の属性などに基づいて、各々の項目集合に分類されてもよい。
【0054】
さらに、上記複数の項目集合は、複数の第1項目集合と、上記複数の第1項目集合のそれぞれから細分化される複数の第2項目集合とを、含んでもよい。この場合、上記1種類以上のセキュリティ機能のそれぞれは、上記複数の第1項目集合のうちの1つの第1項目集合と、当該1つの第1項目集合から細分化される複数の第2項目集合のうちの1つの第2項目集合とに属する。
【0055】
具体例として、上記第1項目集合のそれぞれは「大項目」と呼んでもよく、上記第2項目集合のそれぞれは「小項目」と呼んでもよい。例えば「認証」という大項目が設定されている場合、大項目「認証」から、「多要素認証」、「パスワード認証」、「トークン認証」、及び「顔認証」の合計4つの小項目に細分化される。
【0056】
-チェックリストの具体例
図5は、セキュリティ検査装置100a(記憶部120)が記憶するチェックリスト500の具体例を示す図である。図5を参照すると、チェックリスト500は、例えば、複数(例えば4種類)の大項目510と、各々の大項目から細分化される複数の小項目520と、各々の小項目に属するセキュリティ機能に関連付けられる表現530(関数名、コメント文章、BOM内のPNに関連付けられる機能名など)とが互いに関連付けられたテーブル列であってもよい。例えば、小項目520に設定されている「パスワード認証」は、表現530に設定されている「password,pw,pwa」に関連付けられている。上記チェックリストは、図5に示すような形式に限らず、任意の形式でセキュリティ検査装置100a(記憶部120)などに保持されてもよい。
【0057】
(2-2)チェックリストを用いた判断処理の例
図6は、上述したチェックリスト500を用いてセキュリティ検査装置100a(判断部133)により行われる判断処理を説明するための説明図である。
【0058】
セキュリティ検査装置100a(判断部133)は、記憶部120に記憶されるチェックリスト500内の表現530をそれぞれ検索キーワードに設定して、取得部131により取得された各々の構成情報(関数名、コメント文章、BOM内のPNに関連付けられる機能名など)がヒット(出現)するか否かを判断する。次いで、セキュリティ検査装置100a(判断部133)は、図6に示すような、各々の検索キーワード及びその検索キーワードが属する項目ごとに、関連付けられる構成情報がヒット(出現)したか否かを示す情報600を得て、当該情報を生成部135に提供する。
【0059】
(3)判断に関する情報
セキュリティ検査装置100a(生成部135)により生成される上記判断に関する上記情報は、上記1以上の構成情報のそれぞれが、上記1種類以上のセキュリティ機能のそれぞれに関連付けられたか否かを示す情報を含んでもよい。
【0060】
一例として、セキュリティ検査装置100a(生成部135)は、上述したように判断部133から提供された情報(図6に示す情報600)を、上記判断に関する上記情報として生成してもよい。
【0061】
-出現数を示す情報
また、セキュリティ検査装置100a(生成部135)により生成される上記判断に関する上記情報は、上記複数の項目集合のそれぞれにおいて、対応する項目集合に属するセキュリティ機能に関連付けられる構成情報の出現数を示す情報を含んでもよい。
【0062】
一例として、セキュリティ検査装置100a(生成部135)は、上述したように判断部133から提供された情報(図6に示す情報600)を参照して、複数の大項目のそれぞれについて、対応する大項目(例えば「認証」)に属するセキュリティ機能に関連付けられる構成情報(例えばpassword、2fa、one timeなど)の出現数を示す情報を生成する。
【0063】
図7は、上記出現数を示す上記情報の具体例に係るテーブル列710、720を示す図である。
【0064】
テーブル列710では、大項目「認証」に属するセキュリティ機能の出現数が「0」であること、大項目「暗号」に属するセキュリティ機能の出現数が「1」であること、大項目「個人情報削除」に属するセキュリティ機能の出現数が「0」であること、及び大項目「エスケープ処理」に属するセキュリティ機能の出現数が「2」であることがそれぞれ示されている。
【0065】
このような図7に示すテーブル列710は、セキュリティ検査装置100a(出力部137)によって、ユーザ(検査者)などに視認可能に表示される。これにより、セキュリティ検査装置100aのユーザは、検査対象である上記ウェブシステムが有するセキュリティ機能の数を、大項目ごとに認識することが可能になる。例えば、図7に示す例に当てはめれば、ユーザは、上記ウェブシステムに、認証が実装されていない可能性があること、及び文字列のエスケープ処理は実装されている可能性があること、などを認識することができる。
【0066】
また、上記出現数を示す上記情報は、上述したテーブル列710に限らず、例えばユーザが検査結果を参照しやすくするためのデータ整形処理が施されてもよい。例えば、図7に示すテーブル列720は、上記データ整形処理が施されたものであり、テーブル列710に対して上記出現数が多い大項目が上位へ移動するように並び替えられている。
【0067】
-細分化された各々の集合に属する構成情報の出現を考慮した情報の生成
また、セキュリティ検査装置100a(生成部135)により生成される上記判断に関する上記情報は、上記第1項目集合(大項目)から細分化される複数の第2項目集合(小項目)のうち、所定数以上の第2項目集合(小項目)のそれぞれに属するセキュリティ機能に関連付けられる構成情報があるか否かを示す情報を含んでもよい。
【0068】
例えば、図5に示した大項目「認証」に着目すると、セキュリティ検査装置100a(生成部135)は、判断部133から提供された情報に基づいて、大項目「認証」から細分化される合計6種類の小項目「パスワード認証、多要素認証、トークン認証、及び顔認証」のうち、4種類(所定数)以上の小集合のそれぞれに属する構成情報(関数名、コメント文章、BOMに関する情報)がヒットされたという条件を満たすか否かを判断する。そして、当該条件を満たす場合には、大項目「認証」に「良好」などを割り当てた情報を、上記判断に関する上記情報として生成してもよい。
【0069】
また、図5に示した大項目「暗号」に着目すると、セキュリティ検査装置100a(生成部135)は、判断部133から提供された情報に基づいて、大項目「暗号」から細分化される合計2種類の小項目「AES及び3DES」のうち、半数である1種類(所定数)以上の小集合のそれぞれに属する構成情報(関数名、コメント文章、BOMに関する情報)がヒットされたという条件を満たすか否かを判断する。そして、当該条件を満たさない場合には、大項目「暗号」に「不良(又は欠陥)」などを割り当てた情報を、上記判断に関する上記情報として生成してもよい。
【0070】
なお、上記所定数は、上記の例に限らず、1つの大項目から細分化される小項目の総数であってもよい。例えば大項目「認証」に着目した場合、上記所定数は「6」であってもよい。
【0071】
このような情報が例えば出力部137によりウェブ画面上に表示出力されることで、ユーザに対して、各々の小項目に属する構成情報がどの程度出現しているかを分かりやすい形式で提示することができる。例えば、チェックリストに多数の小項目が存在している場合には、小項目ごとに構成情報の出現数を示す情報をユーザに提示する場合に比べて、より分かりやすい形式で判断部133による検索結果を提示することができる。
【0072】
-構成情報の強調表示
例えば、セキュリティ検査装置100a(生成部135)により生成される上記判断に関する上記情報は、各々の検索キーワードに関連付けられる構成情報(関数名、コメント文章など)が出現したソースコード内の位置情報を含んでもよい。
【0073】
図8は、構成情報の強調表示に関する処理を説明するための説明図である。図8を参照すると、セキュリティ検査装置100a(出力部137)は、上記判断に関する上記情報に含まれる上記位置情報を用いて、各々の検索キーワードに関連付けられる構成情報(関数名、コメント文章など)が出現したソースコード内の位置情報を、ユーザに対して視認可能に提示することができる。
【0074】
例えば図8に示す例では、セキュリティ検査装置100a(出力部137)により表示されるウェブ画面において検査項目「エスケープ処理」へのクリック操作が行われると、ソースコード上において検索対象となるキーワードが強調表示された画面が当該ウェブ画面上に表示される。
【0075】
-その他
セキュリティ検査装置100a(生成部135)により生成される上記判断に関する上記情報は、上述した例に限らない。例えば、上記判断に関する上記情報は、検索キーワードに関連付けられる構成情報(例えば、ソースコード内の関数名及びコメント文章)が、所定の順序で出現するか否かを示す情報を含んでもよい。
【0076】
具体的には、セキュリティ検査装置100a(生成部135)は、検索キーワードに関連付けられる関数名が、ソースコード内において所定の順序で出現するという条件を満たすか否かを判断してもよい。そして、当該条件を満たす場合には「ウェブシステムのセキュリティ機能が良好である」を示す情報を、上記判断に関する上記情報として生成してもよい。当該条件を満たさない場合には「ウェブシステムのセキュリティ機能が不良である」を示す情報を、上記判断に関する上記情報として生成してもよい。
【0077】
(4)処理の流れ
次に、図9を参照して、セキュリティ検査装置100aの全体の処理の流れについて説明する。図9は、セキュリティ検査装置100aの全体の処理の流れを説明するための説明図である。
【0078】
図9を参照すると、ステップST901において、セキュリティ検査装置100a(取得部131)は、例えばネットワーク通信部110により受信されたソースコードから、当該ソースコード内の関数に相当する文字列(関数名)、およびコメントに相当する文字列(コメント文章)を抽出する。セキュリティ検査装置100a(取得部131)は、抽出された関数名及びコメント文章をそれぞれ示す情報(例えば、テキストデータ)を、判断部133に提供する。
【0079】
次に、ステップST903において、セキュリティ検査装置100a(取得部131)は、例えばネットワーク通信部110により受信されたBOMに関する情報を取得する。セキュリティ検査装置100a(取得部131)は、取得したBOMに関する情報を、判断部133に提供する。
【0080】
次に、ステップST905において、セキュリティ検査装置100a(記憶部120)は、例えばネットワーク通信部110により受信されたチェックリストを記憶する。セキュリティ検査装置100a(記憶部120)は、例えば判断部133からのアクセスに応じて、チェックリストを判断部133に提供する。
【0081】
次に、ステップST907において、セキュリティ検査装置100a(判断部133)は、記憶部120に記憶されるチェックリストに示される項目及び表現をそれぞれ検索キーワードに設定して、取得部131により提供された情報(関数名、コメント文章、BOM内のPNに関連付けられる機能名など)がヒットするか否かを判断する。セキュリティ検査装置100a(判断部133)は、当該判断結果を示す情報を生成部135に提供する。
【0082】
次に、ステップS909において、セキュリティ検査装置100a(生成部135)は、判断部133により提供された当該判断結果を示す情報に基づいて、ユーザが認識可能なレポート情報(例えば、上述した図6乃至図8に示す情報)を生成する。このようなレポート情報は、例えば出力部137によって、ユーザに視認可能なウェブ画面上に表示される。
【0083】
上記図9に示す処理によれば、セキュリティ検査の対象となるウェブシステムに関するソースコード及びBOMに対して、予め用意したセキュリティ機能を示すキーワードが一覧化されたチェックリストを用いて検索処理を実行する。この検索処理により得られる検索結果がレポート情報として出力される。ユーザ(検査者)は、当該レポート情報を参照し、セキュリティ検査の対象となるウェブシステムに関するセキュリティのアーキテクチャ及びデザイン上の不備(例えば欠陥)の有無を容易に確認することができる。
【0084】
<2.3.変形例>
次に、変形例に係る第1の実施形態について説明する。図10は、変形例に係るセキュリティ検査装置100bの概略的な構成の例を示すブロック図である。図10を参照すると、セキュリティ検査装置100bは、処理部130が、上記セキュリティ検査のための検査項目として設定されるべきセキュリティ機能を更新する更新処理部139を更に備える点で、上述したセキュリティ検査装置100aと異なる。以下では、更新処理部139に関連する処理について説明する。
【0085】
具体的に、更新処理部139は、ネットワーク通信部110を用いて、例えば、政府機関又はセキュリティ関連ベンダなどにより公開されているセキュリティのガイドラインに関するドキュメントデータを取得する。なお、更新処理部139の取得対象となるドキュメントデータは、セキュリティ検査の対象となるウェブシステムを実行するためのソフトウェアの詳細設計書などを示すドキュメントデータであってもよい。
【0086】
次に、更新処理部139は、上述のようにして取得したドキュメントデータから、新たに検査項目として設定されるべきキーワードを抽出する。そして、更新処理部139は、抽出されたキーワードをチェックリストに新たに登録することにより、当該チェックリストを更新する。より具体的には、例えばチェックリストが、上述した図5に示すように「大項目」と「小項目」と「表現」とによって分類されている場合には、更新処理部139は、ドキュメントデータから、各分類に関連するキーワードを抽出して、抽出したキーワードを各々の分類に登録する。なお、抽出されたキーワードは、チェックリストに既に登録されているキーワードに類似しているか否かが更新処理部139により判別されてもよい。キーワード同士の類似判断は、例えば編集距離など任意の方法が用いられる。また、非類似と判別されたキーワードのみがチェックリストに新たに登録されてもよい。
【0087】
更新処理部139により行われるチェックリストの更新の頻度は、例えば、「1ヶ月に1度」というように予めセキュリティ検査装置100bのユーザ操作に応じて設定されてもよい。また、更新処理部139は、ドキュメントデータで示される各種ガイドラインがウェブサイトで新規公開されること、又は既存ガイドラインが更新されることを常時監視してもよく、これらの監視対象のドキュメントデータを取得したタイミングで、上述したようなチェックリストの更新処理を行ってもよい。
【0088】
また、更新処理部139は、機械学習などの技術を用いて、例えばインターネットを介して取得可能なデータの中から、検索キーワードとなりうる表現(ソースコード内の関数名及びコメント文章、BOMに関する情報)を抽出して、抽出された検索キーワードがチェックリストに含まれるように、チェックリストの更新処理を行ってもよい。
【0089】
以上のように、変形例に係るセキュリティ検査装置100bによれば、記憶部120に保持(記憶)されるチェックリストを、政府機関又はセキュリティ関連ベンダなどにより公開されているセキュリティのガイドラインなどを示すドキュメントデータを定期的又は不定期に参照することにより当該チェックリストを逐次更新する。これにより、セキュリティ検査装置100bは、常に最新のチェックリストに基づいてセキュリティ機能に関する検査を行うことができる。
【0090】
<<3.第2の実施形態>>
続いて、図11を参照して本発明の第2の実施形態を説明する。上述した第1の実施形態は、具体的な実施形態であるが、第2の実施形態は、より一般化された実施形態である。
【0091】
<3.1.セキュリティ検査装置100cの構成>
図11は、第2の実施形態に係るセキュリティ検査装置100cの概略的な構成の例を示すブロック図である。図11を参照すると、セキュリティ検査装置100cは、取得部151、判断部153、及び生成部155を備える。
【0092】
取得部151、判断部153、及び生成部155は、1つ以上のプロセッサと、メモリ(例えば、不揮発性メモリ及び/若しくは揮発性メモリ)並びに/又はハードディスクとにより実装されてもよい。取得部151、判断部153、及び生成部155は、同一のプロセッサにより実装されてもよく、別々に異なるプロセッサにより実装されてもよい。上記メモリは、上記1つ以上のプロセッサ内に含まれていてもよく、又は、上記1つ以上のプロセッサ外にあってもよい。
【0093】
<3.2.動作例>
第2の実施形態に係る動作例を説明する。
【0094】
第2の実施形態によれば、セキュリティ検査装置100c(取得部151)は、ソフトウェア及びハードウェアの少なくとも1つに関するシステムであってセキュリティ検査の対象となる上記システムの構成に関する1以上の構成情報を取得する。セキュリティ検査装置100c(判断部153)は、上記1以上の構成情報のそれぞれが、上記セキュリティ検査のための検査項目として設定された1種類以上のセキュリティ機能のそれぞれに関連付けられるか否かの判断を行う。セキュリティ検査装置100c(生成部155)は、上記判断に関する情報を生成する。
【0095】
-第1の実施形態との関係
一例として、第2の実施形態に係るセキュリティ検査装置100cが備える取得部151、判断部153、及び生成部155は、それぞれ、第1の実施形態に係るセキュリティ検査装置100a、100bが備える取得部151、判断部153、及び生成部155の動作を行ってもよい。この場合に、第1の実施形態についての説明は、第2の実施形態にも適用されうる。なお、第2の実施形態は、この例に限定されない。
【0096】
以上、第2の実施形態を説明した。第2の実施形態によれば、ソフトウェア及びハードウェアの少なくとも1つに関するシステムの構成に関する構成情報が、上記検査項目として設定されたセキュリティ機能に関連付けられるか否かの判断を行うことにより、上記システムのセキュリティに関する構造上の欠陥を適切に検出することが可能となる。
【0097】
<<4.他の実施形態>>
以上、本発明の実施形態を説明したが、本発明はこれらの実施形態に限定されるものではない。これらの実施形態は例示にすぎないということ、及び、本発明のスコープ及び精神から逸脱することなく様々な変形が可能であるということは、当業者に理解されるであろう。
【0098】
例えば、本明細書に記載されている処理におけるステップは、必ずしもシーケンス図に記載された順序に沿って時系列に実行されなくてよい。例えば、処理におけるステップは、シーケンス図として記載した順序と異なる順序で実行されても、並列的に実行されてもよい。また、処理におけるステップの一部が削除されてもよく、さらなるステップが処理に追加されてもよい。
【0099】
また、本明細書において説明したセキュリティ検査装置の構成要素(例えば、取得部、判断部、及び/又は生成部)を備える装置(例えば、セキュリティ検査装置を構成する複数の装置(又はユニット)のうちの1つ以上の装置(又はユニット)、又は上記複数の装置(又はユニット)のうちの1つのためのモジュール)が提供されてもよい。また、上記構成要素の処理を含む方法が提供されてもよく、上記構成要素の処理をプロセッサに実行させるためのプログラムが提供されてもよい。また、当該プログラムを記録したコンピュータに読み取り可能な非一時的記録媒体(Non-transitory computer readable medium)が提供されてもよい。当然ながら、このような装置、モジュール、方法、プログラム、及びコンピュータに読み取り可能な非一時的記録媒体も本発明に含まれる。
【0100】
上記実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【0101】
(付記1)
ソフトウェア及びハードウェアの少なくとも1つに関するシステムであってセキュリティ検査の対象となる前記システムの構成に関する1以上の構成情報を取得する取得部と、
前記1以上の構成情報のそれぞれが、前記セキュリティ検査のための検査項目として設定された1種類以上のセキュリティ機能のそれぞれに関連付けられるか否かの判断を行う判断部と、
前記判断に関する情報を生成する生成部と、
を備える、セキュリティ検査装置。
【0102】
(付記2)
前記1以上の構成情報のそれぞれは、前記システムの構成に関するテキストデータを示し、
前記関連付けられるか否かの判断は、前記1以上の構成情報のそれぞれにより示されるテキストデータと、前記セキュリティ検査のための検査項目として設定された前記1種類以上のセキュリティ機能のそれぞれに関するテキストデータとの照合により行われる、付記1記載のセキュリティ検査装置。
【0103】
(付記3)
前記1以上の構成情報は、前記システムを実行させるためのソースコードの構成に関する情報を含む、付記1又は2記載のセキュリティ検査装置。
【0104】
(付記4)
前記1以上の構成情報は、前記システムを構成する部品表に関する情報を含む、付記1乃至3のうちいずれか1項記載のセキュリティ検査装置。
【0105】
(付記5)
前記判断に関する前記情報は、前記1以上の構成情報のそれぞれが、前記1種類以上のセキュリティ機能のそれぞれに関連付けられたか否かを示す情報を含む、付記1乃至4のうちいずれか1項記載のセキュリティ検査装置。
【0106】
(付記6)
前記1種類以上のセキュリティ機能のそれぞれは、複数の項目集合のうちの1以上の項目集合に属する、付記1乃至5のうちいずれか1項記載のセキュリティ検査装置。
【0107】
(付記7)
前記判断に関する前記情報は、前記複数の項目集合のそれぞれにおいて、対応する項目集合に属するセキュリティ機能に関連付けられる構成情報の出現数を示す情報を含む、付記6記載のセキュリティ検査装置。
【0108】
(付記8)
前記複数の項目集合は、複数の第1項目集合と、前記複数の第1項目集合のそれぞれから細分化される複数の第2項目集合とを、含み、
前記1種類以上のセキュリティ機能のそれぞれは、前記複数の第1項目集合のうちの1つの第1項目集合と、当該1つの第1項目集合から細分化される複数の第2項目集合のうちの1つの第2項目集合とに属する、付記6又は7記載のセキュリティ検査装置。
【0109】
(付記9)
前記判断に関する前記情報は、前記第1項目集合から細分化される複数の第2項目集合のうち、所定数以上の第2項目集合のそれぞれに属するセキュリティ機能に関連付けられる構成情報があるか否かを示す情報を含む、付記8記載のセキュリティ検査装置。
【0110】
(付記10)
前記セキュリティ検査のための検査項目として設定されるべきセキュリティ機能を更新する更新処理部を更に備える、付記1乃至9のうちいずれか1項記載のセキュリティ検査装置。
【0111】
(付記11)
ソフトウェア及びハードウェアの少なくとも1つに関するシステムであってセキュリティ検査の対象となる前記システムの構成に関する1以上の構成情報を取得することと、
前記1以上の構成情報のそれぞれが、前記セキュリティ検査のための検査項目として設定された1種類以上のセキュリティ機能のそれぞれに関連付けられるか否かの判断を行うことと、
前記判断に関する情報を生成することと、
を備える、セキュリティ検査方法。
【0112】
(付記12)
ソフトウェア及びハードウェアの少なくとも1つに関するシステムであってセキュリティ検査の対象となる前記システムの構成に関する1以上の構成情報を取得することと、
前記1以上の構成情報のそれぞれが、前記セキュリティ検査のための検査項目として設定された1種類以上のセキュリティ機能のそれぞれに関連付けられるか否かの判断を行うことと、
前記判断に関する情報を生成することと、
をコンピュータに実行させるためのプログラム。
【産業上の利用可能性】
【0113】
ソフトウェア及びハードウェアの少なくとも1つに関するシステムのセキュリティに関する構造上の欠陥を適切に検出することが可能となる。
【符号の説明】
【0114】
100a、100b、100c セキュリティ検査装置
131、151 取得部
133、153 判断部
135、155 生成部
137 出力部

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11