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

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

▶ 三菱電機株式会社の特許一覧

特許7403686開発側セキュリティ分析支援装置およびセキュリティ分析支援システム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-14
(45)【発行日】2023-12-22
(54)【発明の名称】開発側セキュリティ分析支援装置およびセキュリティ分析支援システム
(51)【国際特許分類】
   G06F 21/57 20130101AFI20231215BHJP
   G06F 8/20 20180101ALI20231215BHJP
   G06F 21/55 20130101ALI20231215BHJP
【FI】
G06F21/57 370
G06F8/20
G06F21/55 320
【請求項の数】 7
(21)【出願番号】P 2022565298
(86)(22)【出願日】2021-11-19
(86)【国際出願番号】 JP2021042560
(87)【国際公開番号】W WO2022113895
(87)【国際公開日】2022-06-02
【審査請求日】2022-11-14
(31)【優先権主張番号】PCT/JP2020/044522
(32)【優先日】2020-11-30
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】100088672
【弁理士】
【氏名又は名称】吉竹 英俊
(74)【代理人】
【識別番号】100088845
【弁理士】
【氏名又は名称】有田 貴弘
(72)【発明者】
【氏名】宮下 修治
(72)【発明者】
【氏名】石原 新士
(72)【発明者】
【氏名】古賀 陽一郎
【審査官】中里 裕正
(56)【参考文献】
【文献】特表2020-524855(JP,A)
【文献】特開2010-26547(JP,A)
【文献】特開2005-316779(JP,A)
【文献】国際公開第2017/217301(WO,A1)
【文献】米国特許出願公開第2007/0239999(US,A1)
【文献】米国特許第7966659(US,B1)
【文献】米国特許第10785243(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
G06F 8/20
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
開発対象に合うセキュリティ要求を予測するためのセキュリティ要求予測モデルに、前記開発対象の特徴と、前記開発対象の要求仕様と、前記開発対象が準拠する予め定められた規定とを含むデータを入力して、前記セキュリティ要求を推論するセキュリティ要求推論部と、
前記セキュリティ要求推論部が推論した前記セキュリティ要求に基づいて、セキュリティ要求とセキュリティ要件との対応を示す情報を格納した第1のデータベースから、前記セキュリティ要求に対応するセキュリティ要件を取得するセキュリティ要件取得部と、
前記開発対象に合うセキュリティ機能を実現する設計情報を選定するための設計情報選定モデルに、前記セキュリティ要件取得部が取得した前記セキュリティ要件を入力して、前記設計情報を推論するセキュリティ機能推論部と、
を備える、開発側セキュリティ分析支援装置。
【請求項2】
データウェアハウスに格納された前記開発対象に対する脅威、並びに前記脅威に対する対策に関する情報に含まれる前記開発対象の特徴、前記開発対象の要求仕様、および前記開発対象が準拠する予め定められた規定からなる第1の入力と、前記第1の入力に対する正解ラベルとなる前記セキュリティ要求とを教師データとして学習することにより、前記開発対象に合う前記セキュリティ要求を予測する前記セキュリティ要求予測モデルを生成する第1のモデル生成部と、
前記データウェアハウスに格納された情報に含まれる前記セキュリティ要件からなる第2の入力と、前記第2の入力に対する正解ラベルとなるセキュリティ機能の選定とを教師データとして学習することにより、前記開発対象に対する前記設計情報を選定する前記設計情報選定モデルを生成する第2のモデル生成部と、
を備える、請求項1に記載の開発側セキュリティ分析支援装置。
【請求項3】
前記設計情報、動作ログ、および脆弱性情報からなる状態と、前記状態に対するデータウェアハウスに格納された情報に含まれるセキュリティテストケースからなる第3の入力とを含む学習データを用いて強化学習することにより、予測されるテスト結果に対する報酬基準から、前記開発対象に対するセキュリティテストケースを探索的に出力するセキュリティテストモデルを生成する第3のモデル生成部をさらに備える、請求項1または2に記載の開発側セキュリティ分析支援装置。
【請求項4】
前記要求仕様はシステム構成図を含む、請求項1から3のいずれか1項に記載の開発側セキュリティ分析支援装置。
【請求項5】
前記セキュリティ要求は、脅威、信頼境界、および責任分界を含む、請求項1から4のいずれか1項に記載の開発側セキュリティ分析支援装置。
【請求項6】
前記設計情報は、障害分類、対策、攻撃者、および攻撃ルートを含む、請求項1から5のいずれか1項に記載の開発側セキュリティ分析支援装置。
【請求項7】
請求項1から6のいずれか1項に記載の開発側セキュリティ分析支援装置と、
用側セキュリティ分析支援装置と、
を備え、
前記運用側セキュリティ分析支援装置は、
シグネチャおよびアラートルールを取得し、当該シグネチャおよびアラートルールを更新するコマンドを発行する異常検知データ比較部と、
前記異常検知データ比較部で更新された前記シグネチャおよびアラートルールを適用した運用対象の動作情報、製品情報、および障害情報を含む運用ログ情報を受信して運用保守解析データベースに格納する通信部と、
前記運用保守解析データベースから前記運用ログ情報を取得する運用ログデータ取得部と、
市場における前記運用対象製品の運用から得られる知見情報を予測するための機械学習を行った学習済みのセキュリティ監視モデルに前記運用ログデータ取得部が取得した前記運用ログ情報を入力し、前記セキュリティ監視モデルを用いて演算処理を実行することで、前記知見情報を予測するセキュリティ監視モデル推論部と、
を備え、
前記開発側セキュリティ分析支援装置と前記運用側セキュリティ分析支援装置とがセキュリティに関する情報を相互に補完的に連携する、セキュリティ分析支援システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、対象製品に対する攻撃を検知し、保守・運用を行う開発側セキュリティ分析支援装置およびセキュリティ分析支援システムに関する。
【背景技術】
【0002】
従来の製品セキュリティの分析装置は、対象システムに含まれる機能アプリケーションについてシステム仕様情報を用いてモデル化した機能アプリケーションモデル情報と、事例システムに含まれる脆弱性についてシステム仕様情報を用いてモデル化した脆弱性モデル情報とに基づいて、対象システムの脅威分析を行っていた(例えば、特許文献1参照)。また、他の脅威分析に関する技術も開示されている(例えば、非特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2019/093059号
【非特許文献】
【0004】
【文献】“マイクロソフト脅威モデリングツール 2018 ファーストステップガイド”、[online]、マイクロソフト社、[令和2年7月1日検索]、インターネット<URL : https://docs.microsoft.com/ja-jp/azure/security/develop/threat-modeling-tool>
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の脅威分析に係る技術では、製品セキュリティ上の脅威および脆弱性の分析作業に関して、ソフトウェアの概念設計レベルの「要件抽出」しか取り上げられておらず、より具体的なシステムレベルにおける要求分析の「要件抽出」及びシステム設計の「機能選定」は別途開発者の手作業が必要となっていた。そのため、セキュリティに関して「要件抽出」から「機能選定」までの工数が増大すると共に、作業者の熟練度によって品質が一定ではなく属人的となっていた。
【0006】
更に、製品の「開発側」および「運用側」は、両者間における情報の連携が自動化できておらず、運用側で見つかった新たな脅威について「開発側」へのフィードバックが遅れる場合があった。一方、「開発側」で既知となった脆弱性およびその対策について「運用側」に迅速かつ十分に展開できていなかった。
【0007】
このように、従来の脅威分析に係る技術では、効率的にセキュリティの品質を向上させることができなかった。
【0008】
本開示は、このような問題を解決するためになされたものであり、効率的にセキュリティの品質を向上させることが可能な開発側セキュリティ分析支援装置およびセキュリティ分析支援システムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記の課題を解決するために、本開示による開発側セキュリティ分析支援装置は、開発対象に合うセキュリティ要求を予測するためのセキュリティ要求予測モデルに、開発対象の特徴と、開発対象の要求仕様と、開発対象が準拠する予め定められた規定とを含むデータを入力して、セキュリティ要求を推論するセキュリティ要求推論部と、セキュリティ要求推論部が推論したセキュリティ要求に基づいて、セキュリティ要求とセキュリティ要件との対応を示す情報を格納した第1のデータベースから、セキュリティ要求に対応するセキュリティ要件を取得するセキュリティ要件取得部と、開発対象に合うセキュリティ機能を実現する設計情報を選定するための設計情報選定モデルに、セキュリティ要件取得部が取得したセキュリティ要件を入力して、設計情報を推論するセキュリティ機能推論部とを備える。
【発明の効果】
【0010】
本開示によれば、効率的にセキュリティの品質を向上させることが可能となる。
【0011】
本開示の目的、特徴、態様、および利点は、以下の詳細な説明と添付図面とによって、より明白となる。
【図面の簡単な説明】
【0012】
図1】実施の形態1による開発側セキュリティ分析支援装置の全体構成の概要を示すブロック図である。
図2】実施の形態1による開発側セキュリティ分析支援装置の構成の詳細を示すブロック図である。
図3】実施の形態1による開発側セキュリティ分析支援装置の構成の詳細を示すブロック図である。
図4】実施の形態1による開発側セキュリティ分析支援装置の構成の詳細を示すブロック図である。
図5】実施の形態1による製品の特徴確認シートの一例を示す図である。
図6】実施の形態1による製品の特徴確認シートの一例を示す図である。
図7】実施の形態1によるシステム特徴DBの一例を示す図である。
図8】実施の形態1による障害DBの一例を示す図である。
図9】実施の形態1による脅威DBの一例を示す図である。
図10】実施の形態1による対策DBの一例を示す図である。
図11】実施の形態1による脆弱性情報DBの一例を示す図である。
図12】実施の形態1による運用ログ・シグネチャDBの一例を示す図である。
図13】実施の形態1によるプロジェクトDBの一例を示す図である。
図14】実施の形態1による仕様書・設計書DBの一例を示す図である。
図15】実施の形態1によるセキュリティ規格DBの一例を示す図である。
図16】実施の形態1による法令・規制DBの一例を示す図である。
図17】3層のニューラルネットワークを説明するための図である。
図18】実施の形態1による学習部におけるデータの取得および蓄積を示すフローチャートである。
図19】実施の形態1による学習部におけるデータの取得および蓄積を示すフローチャートである。
図20】実施の形態1による学習部におけるセキュリティ要求予測モデルの生成処理を示すフローチャートである。
図21】実施の形態1による学習部における設計情報選定モデルの生成処理を示すフローチャートである。
図22】実施の形態1による推論部における推論処理を示すフローチャートである。
図23】実施の形態1によるセキュリティ要件情報シートの一例を示す図である。
図24】実施の形態1によるセキュリティ要件情報シートの一例を示す図である。
図25】実施の形態1によるセキュリティ設計情報シートの一例を示す図である。
図26】実施の形態2による運用側セキュリティ分析支援装置の全体構成の概要を示すブロック図である。
図27】実施の形態2による運用側セキュリティ分析支援装置の構成の詳細を示すブロック図である。
図28】実施の形態2によるシグネチャ更新リストファイルの一例を示す図である。
図29】実施の形態2による運用・保守解析DBの一例を示す図である。
図30】実施の形態2による学習部におけるセキュリティ監視モデルの生成処理を示すフローチャートである。
図31】実施の形態2による推論部における推論処理を示すフローチャートである。
図32】実施の形態2による推論部における推論処理を示すフローチャートである。
図33】実施の形態2による市場における製品の運用から得られる知見ファイルの一例を示す図である。
図34】実施の形態2による市場における製品の運用から得られる知見ファイルの一例を示す図である。
図35】実施の形態3による運用側セキュリティ分析支援装置の構成の詳細を示すブロック図である。
図36】実施の形態3による推論部における推論処理を示すフローチャートである。
図37】実施の形態4による開発側セキュリティ分析支援装置の全体構成の概要を示すブロック図である。
図38】実施の形態4による開発側セキュリティ分析支援装置の構成の詳細を示すブロック図である。
図39】実施の形態4による統合DHの構成を示すブロック図である。
図40】実施の形態4によるセキュリティテスト・アラートルールDBの一例を示す図である。
図41】実施の形態4によるセキュリティテスト判定結果の一例を示す図である。
図42】実施の形態4によるテスト部におけるデータの取得、セキュリティテストモデルの生成、および推論処理を示すフローチャートである。
図43】実施の形態4によるテスト部におけるデータの取得、セキュリティテストモデルの生成、および推論処理を示すフローチャートである。
【発明を実施するための形態】
【0013】
<実施の形態1>
<1.構成>
図1は、実施の形態1による開発側セキュリティ分析支援装置10の構成を示すブロック図である。図2,3,4は、開発側セキュリティ分析支援装置10の構成の詳細を示すブロック図である。図2および図3はBL1-BL2で繋がっており、図3および図4はBL3-BL4で繋がっている。
【0014】
開発側セキュリティ分析支援装置10は、これから開発する製品のセキュリティ要求の抽出及びセキュリティ機能の選定に関する開発者の分析支援を行う装置である。製品の開発が完了して市場に出荷された後は、製品(フィールド)90(後述の図26,27参照)となり、運用側セキュリティ分析支援装置50から運用ログ監視の知見をフィードバックして連携し、類似の製品開発のプロジェクトにおけるセキュリティ要求の抽出及びセキュリティ機能の選定をより迅速に実施できるようにする。なお、本開示におけるプロジェクトとは、ソフトウェア開発及び設計を伴った製品(装置)開発やシステム開発等を行うプロジェクトのことをいう。
【0015】
開発側セキュリティ分析支援装置10は、主記憶部100と、補助記憶部200と、インターフェース部300と、プロセッサ400とを備えている。また、開発側セキュリティ分析支援装置10は、表示装置500および入出力装置600と接続されている。開発側セキュリティ分析支援装置10は、例えば、パーソナルコンピュータである。
【0016】
プロセッサ400は、信号線を介して他のハードウェアと接続されている。プロセッサ400は、中央演算処理装置(CPU:Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)、マイコン、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)等で実現できる。プロセッサ400は、後述する補助記憶部200に記憶されたOS(Operating System)、アプリケーションプログラム、及び種々のデータを読み込んで演算処理を実行することにより、種々の機能を実現する。プロセッサ400は、後述する機能的構成を含む。当該機能的構成は、ファームウェアにより実現されてもよい。プロセッサ400と、後述する主記憶部100及び補助記憶部200とをまとめたハードウェアのことを「プロセッシングサーキットリ」ともいう。
【0017】
主記憶部100は、揮発性の記憶部である。主記憶部100は、RAM(Random Access Memory)等で実現できる。主記憶部100は、開発側セキュリティ分析支援装置10において使用され、生成され、入出力され、或いは送受信されるデータを一時的に記憶する。また、主記憶部100は、データ収集部101、マルチモーダル特徴解析部102、データ一次加工統合部103、セキュリティ要求抽出データ取得前処理部104、セキュリティ要求予測モデル生成部105(第1のモデル生成部)、セキュリティ機能選定データ取得前処理部106、設計情報選定モデル生成部107(第2のモデル生成部)、製品企画データ取得部108、セキュリティ要求推論部109、コスト・スケジュール調整部110、セキュリティ要件取得部111、セキュリティ機能推論部112、セキュリティ監視データ取得前処理部113、セキュリティ監視モデル生成部114、脅威・対策比較連携更新部115を含む。
【0018】
データ収集部101は、過去のプロジェクトデータ、脆弱性解析結果情報、仕様書・設計書、法令・規制情報、セキュリティ規格、過去の市場における製品の運用ログ及びインシデント・シグネチャ情報のそれぞれの既存のデータを収集し、データレイク210へ送信する。
【0019】
マルチモーダル特徴解析部102は、自然言語処理と画像認識結果とをかけあわせて、システム構成に応じた製品の仕様、準拠する法令・規制及び規格、脅威、信頼境界、責任分界、コスト、期間、障害分類、対策、攻撃者、攻撃ルート、障害情報、動作ログ、シグネチャの各特徴とそれらの関係を整理する。ここで、法令・規制及び規格は「予め定められた規定」とも記載する。
【0020】
データ一次加工統合部103は、自然言語処理の構文解析結果からデータのチェック、クレンジング、機密情報や不要な文字を削除する。
【0021】
セキュリティ要求抽出データ取得前処理部104は、製品の特徴、要求仕様(システム構成図を含む仕様)、準拠する法令・規制、セキュリティ規格の各入力と、当該各入力に対する正解ラベルとなるセキュリティ要求(脅威、信頼境界、責任分界)との対応関係を示す教師データを取得し、準備する。また、セキュリティ要求抽出データ取得前処理部104は、準備したデータに対して機械学習できるように前処理をする。
【0022】
セキュリティ要求予測モデル生成部105は、セキュリティ要求抽出データ取得前処理部104が前処理した教師データを用いて教師あり学習を行い、セキュリティ要求(脅威、信頼境界、責任分界)を予測するモデル(セキュリティ要求予測モデル)を生成する。
【0023】
セキュリティ機能選定データ取得前処理部106は、セキュリティ要件(脅威、信頼境界、責任分界、コスト、スケジュール)と、当該セキュリティ要件に対する正解ラベルとなるセキュリティ機能の選定(障害分類、対策、攻撃者、攻撃ルート)との対応関係を示す教師データを取得し、準備する。また、セキュリティ機能選定データ取得前処理部106は、準備したデータに対して機械学習できるように前処理をする。
【0024】
設計情報選定モデル生成部107は、セキュリティ機能選定データ取得前処理部106が前処理した教師データを用いて教師あり学習を行い、セキュリティ機能の選定(障害分類、対策、攻撃者、攻撃ルート)を行うモデル(設計情報選定モデル)を生成する。
【0025】
製品企画データ取得部108は、入出力装置600を介して開発者が入力した開発対象製品の特徴確認シート、準拠する法令・規制及びセキュリティ規格、要求仕様(システム構成図を含む仕様)の各データ(製品企画データ)を取得する。特徴確認シートの一例を図5,6に示す。図5および図6はBL6-BL7で繋がっている。
【0026】
セキュリティ要求推論部109は、開発対象製品の特徴確認シート、準拠する法令・規制及び規格、要求仕様(システム構成図を含む仕様)の各データを入力として、教師あり学習モデルよりマルチモーダルな推論を行い(セキュリティ要求予測モデルで推論を行い)、開発対象製品について想定されるセキュリティ要求(脅威、信頼境界、責任分界)を出力する。
【0027】
コスト・スケジュール調整部110は、開発対象製品から想定される脅威、信頼境界、責任分界からコストとスケジュールを算出する。
【0028】
セキュリティ要件取得部111は、コストとスケジュールに準じた開発対象製品のセキュリティ要件のデータを取得し、セキュリティ機能推論部112へデータを入力する。
【0029】
セキュリティ機能推論部112は、コストとスケジュールに準じた開発対象製品のセキュリティ要件を入力として、設計情報選定モデルで推論を行い、セキュリティ要件に対応するセキュリティ設計情報(セキュリティ機能の推奨案)を出力する。セキュリティ設計情報は、開発対象製品に合うセキュリティ機能を実現する設計情報である。
【0030】
セキュリティ監視データ取得前処理部113は、準備したデータを前処理し、セキュリティ監視モデル生成部114へ伝送する。
【0031】
セキュリティ監視モデル生成部114は、運用ログ・シグネチャDB(Database、以下同様)、障害DB、システム特徴DBの製品情報、障害情報、動作ログ(正常、異常)データの入力に対する正解ラベルとなる障害分類、脅威、シグネチャ、対策、攻撃者、攻撃ルートを出力できるように半教師あり学習より推論を行うモデル(セキュリティ監視モデル)を生成する。
【0032】
脅威・対策比較連携更新部115は、異常データの障害分類、脅威、シグネチャ、対策、攻撃者、攻撃ルートで漏れていた内容がある場合は、統合データウェアハウス(DH:Data Ware House)240の情報を更新する。以下、統合データウェアハウス240は統合DH240と標記する。
【0033】
補助記憶部200は、不揮発性の記憶部である。補助記憶部200は、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等で実現できる。補助記憶部200は、OS、アプリケーションプログラム、種々のデータを記憶している。OSの少なくとも一部は、主記憶部100にロードされて、プロセッサ400によって実行される。
【0034】
補助記憶部200は、データ収集部101から収集した構造化データ及び非構造化データの両方が保管されるデータレイク210を含む。また、補助記憶部200は、図3に示すように、統合DH240として、構造化データに変換後の複数のデータベースであるシステム特徴DB241、障害DB242、脅威DB243、対策DB244、脆弱性情報DB245、運用ログ・シグネチャDB246、プロジェクトDB247、仕様書・設計書DB248、セキュリティ規格DB249、法令・規制DB250を含む。
【0035】
さらに、補助記憶部200は、教師あり学習の機械学習に基づいて生成されたセキュリティ要求予測モデルを記憶するセキュリティ要求予測モデル記憶データベース220、及び教師あり学習の機械学習に基づいて生成された設計情報選定モデルを記憶する設計情報選定モデル記憶データベース230を含む。
【0036】
システム特徴DB241は、製品のシステムの特徴としてセキュリティインシデントが発生した場合の健康(Health)、安全(Safety)、環境(Environment)における影響度(Effect)の度合いを格納する。システム特徴DB241のサンプルデータを図7に示す。
【0037】
障害DB242は、セキュリティインシデントが発生した際の障害の発生状況、その原因分析及び対策内容等を格納する。また、障害DB242は、障害発生日時、障害分類、製品部類、ユニット名、製品シリアルNo.、障害内容、原因、対策等の情報で構成される。障害DB242のサンプルデータを図8に示す。
【0038】
脅威DB243は、製品に対して想定される脅威の種類を網羅し、その脅威を実行する攻撃者及び対応するセキュリティ要件などを格納する。また、脅威DB243は、想定脅威、実行者、セキュリティ要件、想定する障害、攻撃ルート等の情報で構成される。脅威DB243のサンプルデータを図9に示す。
【0039】
対策DB244は、製品に対して想定される脅威の種類、そのセキュリティ要件及び対応する対策内容等を格納する。対策DB244は、想定脅威、セキュリティ要件、セキュリティ機能の候補等の情報で構成される。対策DB244のサンプルデータを図10に示す。
【0040】
脆弱性情報DB245は、製品を構成するソフトウェアに関連する脆弱性、CWE(Common Weakness Enumeration)分類、対応するシグネチャ等を格納する。脆弱性情報DB245は、脆弱性のタイトル、ソフトウェア種別、最終更新日、対策、CWE、シグネチャ導入状況、対応するシグネチャ番号で構成される。脆弱性情報DB245のサンプルデータを図11に示す。
【0041】
運用ログ・シグネチャDB246は、既存の市場へ出荷済になっている製品の異常発生時の運用ログデータ及び信頼境界上の機器のIPS(Intrusion Prevention System)機能が異常を検出したシグネチャ番号を格納する。なお、シグネチャとは、特定のマルウェア検体等の異常動作に共通する一続きのバイト(バイトシーケンス)のことである。また、運用ログ・シグネチャDB246は、ログNo.、製品シリアルNo.、製品コード、検出されたシグネチャ番号、検出日時等の情報で構成される。運用ログ・シグネチャDB246のサンプルデータを図12に示す。
【0042】
プロジェクトDB247は、製品開発のプロジェクトにおいて、システム試験で取得した試験結果の異常時及び正常時のログや想定している信頼境界上の機器などを格納する。また、プロジェクトDB247は、プロジェクトID、ユニット名、製品コード、ソフトウェア種別、製品群、試験ログNo.(正常)、試験ログNo.(異常)、信頼境界上の機器の情報で構成される。プロジェクトDB247のサンプルデータを図13に示す。
【0043】
仕様書・設計書DB248は、セキュリティに関する要件、要求及び設計書のトレーサビリティがどのようになっているかを示し、要求、要件、外部設計書のそれぞれの対応関係の情報で構成される。仕様書・設計書DB248のサンプルデータを図14に示す。
【0044】
セキュリティ規格DB249は、製品が汎用的に準拠するセキュリティ規格名と、個別のプロジェクトごとに追加で準拠する規格名を格納する。また、セキュリティ規格DB249は、種別、規格名等の情報で構成される。セキュリティ規格DB249のサンプルデータを図15に示す。
【0045】
法令・規制DB250は、国内及び海外の地域区分において、どのようなセキュリティ関連の法令・規制が製品に適用されるのかを示している。また、法令・規制DB250は、地域区分、法令・規制の名称、製品群等の情報で構成される。法令・規制DB250のサンプルデータを図16に示す。
【0046】
セキュリティ要求予測モデル記憶DB220は、セキュリティ要求予測モデル生成部105で生成された教師あり学習により学習済みのセキュリティ要求予測モデルを保管する。
【0047】
設計情報選定モデル記憶DB230は、設計情報選定モデル生成部107で生成された教師あり学習により学習済みの設計情報選定モデルを保管する。
【0048】
表示装置500は、ユーザ操作に従って文字列および画像を表示する。表示装置500は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイなどで構成される。なお、表示装置500は、開発側セキュリティ分析支援装置10と一体に構成されてもよい。
【0049】
入出力装置600は、キーボード、マウス、テンキーなどで構成される。ユーザは、入出力装置600を介して開発側セキュリティ分析支援装置10を操作する。また、入出力装置600は、表示装置500と一体して配置され、ユーザのタッチ操作を受け付け可能なタッチパネルを含んでもよい。なお、入出力装置600は、開発側セキュリティ分析支援装置10と一体に構成されてもよい。
【0050】
インターフェース部300は、運用側セキュリティ分析支援装置50と各種データを送受信する。インターフェース部300は、図示しないレシーバおよびトランスミッタを備える。レシーバは、運用側セキュリティ分析支援装置50からの各種データを受信する。トランスミッタは、プロセッサ400からの各種データを運用側セキュリティ分析支援装置50に送信する。インターフェース部300は、通信チップ、NIC(Network Interface Card)等で実現できる。
【0051】
図2~4に示すように、開発側セキュリティ分析支援装置10は、セキュリティ要求予測モデル生成部105及び設計情報選定モデル生成部107を中心とする学習部と、セキュリティ要求推論部109及びセキュリティ機能推論部112を中心とする推論部とに大別される。
【0052】
なお、学習部及び推論部は、対象製品のセキュリティ要求及びセキュリティ要求機能選定の出力を学習するために使用されるが、例えば、ネットワークを介して対象製品に接続され、この対象製品とは別個の装置であってもよい。また、学習部及び推論部は、対象製品に内蔵されていてもよい。さらに、学習部及び推論部は、クラウドサーバ上に存在していてもよい。
【0053】
セキュリティ要求予測モデル生成部105及び設計情報選定モデル生成部107が用いる学習アルゴリズムは、教師あり学習の公知のアルゴリズムを用いることができる。以下では、一例として、ニューラルネットワークを適用した場合について説明する。
【0054】
セキュリティ要求予測モデル生成部105及び設計情報選定モデル生成部107は、例えば、ニューラルネットワークモデルに従って、いわゆる教師あり学習により出力を行う学習をする。ここで、教師あり学習とは、入力と結果(ラベル)のデータの組を学習部に与えることで、それらの学習用データにある特徴を学習し、入力から結果を推論する手法をいう。
【0055】
ニューラルネットワークは、複数のニューロンからなる入力層、複数のニューロンからなる中間層(隠れ層)、及び複数のニューロンからなる出力層で構成される。中間層は、1層又は2層以上でもよい。
【0056】
例えば、図17に示すような3層のニューラルネットワークであれば、複数の入力が入力層(X1‐X3)に入力されると、その値に重みW1(w11‐w16)を掛けて中間層(Y1‐Y2)に入力され、その結果にさらに重みW2(w21‐w26)を掛けて出力層(Z1‐Z3)から出力される。この出力結果は、重みW1とW2の値によって変わる。
【0057】
本開示において、以下の2つのニューラルネットワークのモデルにおいて学習が行われる。1つ目のニューラルネットワークは、セキュリティ要求抽出データ取得前処理部104によって取得される入力インプットデータ(製品の特徴、要求仕様(システム構成図を含む仕様)、準拠する法令・規制及びセキュリティ規格)と、それに対応する正解である入力(セキュリティ要求(脅威、信頼境界、責任分界))の組合せに基づいて作成される学習用データに従って、いわゆる教師あり学習により出力を学習する。
【0058】
また、2つ目のニューラルネットワークは、セキュリティ機能選定データ取得前処理部106によって取得される入力(セキュリティ要件(脅威、信頼境界、責任分界、コスト、スケジュール))と、それに対応する正解である入力(セキュリティ機能の選定(障害分類、対策、攻撃者、攻撃ルート))の組合せに基づいて作成される学習用データに従って、いわゆる教師あり学習により出力を学習する。
【0059】
すなわち、ニューラルネットワークは、入力層に入力としてインプットデータを入力して出力層から出力された結果が、インプットデータ(正解)に近づくように、重みW1とW2を調整することで学習する。
【0060】
セキュリティ要求予測モデル生成部105及び設計情報選定モデル生成部107は、以上のような学習を実行することで学習済モデル(セキュリティ要求予測モデル、設計情報選定モデル)を生成して出力する。
【0061】
<2.動作>
次に、以上のように構成される開発側セキュリティ分析支援装置10の学習部及び推論部の動作について、図18~22を参照して説明する。
【0062】
<2‐1.学習フェーズ>
<2‐1‐1.データ取得ステップ>
図18,19は、学習部におけるデータ取得と蓄積に関するフローチャートである。以下、図18,19に示すフローチャートに即して学習部の動作を説明する。
【0063】
ステップS101において、データ収集部101は、既存のデータである過去のプロジェクトデータ601、脆弱性解析結果情報602、仕様書・設計書603、法令・規制情報604、セキュリティ規格605、過去の市場における製品の運用ログ及びインシデント・シグネチャ情報606を収集し、データレイク210へ送信する。
【0064】
ステップS102において、データレイク210は、データ収集部101から送信されたデータを蓄積する。ステップS103において、データレイク210は、蓄積したデータが構造化データであるかどうかを判定する。構造化データでない場合は、ステップS104において、そのデータに規則性があるかどうかを判定する。規則性がない場合は、ステップS105において、そのデータがテキストデータかどうかを判定する。
【0065】
テキストデータである場合は、ステップS106において、自然言語処理の構文解析を実施し、その結果から製品企画の要求仕様を抽出する。テキストデータでない場合、つまり画像データ等の場合は、ステップS107において、システム構成図に対する画像認識の処理を行い、その結果からシステム構成及び信頼境界を識別する。
【0066】
ステップS108において、マルチモーダル特徴解析部102は、ステップS106及びステップS107の処理結果を受けて、自然言語処理と画像認識結果をかけあわせて、システム構成に応じた製品の仕様、準拠する法令・規制及び規格、脅威、信頼境界、責任分界、コスト、期間、障害分類、対策、攻撃者、攻撃ルート、障害情報、動作情報、シグネチャの特徴と関係を整理する。
【0067】
ステップS109において、データ一次加工統合部103は、JSON形式へ統一する。ステップS110において、データ一次加工統合部103は、自然言語処理の構文解析結果からデータのチェック、クレンジング、機密情報および不要な文字を削除する。
【0068】
ステップS111において、データ一次加工統合部103は、すべてのデータをCSV形式へ変換する。ステップS112において、統合DH240は、システム特徴DB241、障害DB242、脅威DB243、対策DB244、脆弱性情報DB245、運用ログ・シグネチャDB246、プロジェクトDB247、仕様書・設計書DB248、セキュリティ規格DB249、法令・規制DB250へデータを格納する。
【0069】
<2‐1‐2.セキュリティ要求予測モデル生成ステップ>
図20は、学習部におけるセキュリティ要求予測モデルの学習処理に関するフローチャートである。以下、図20に示すフローチャートに即して、学習部の動作を説明する。
【0070】
ステップS201において、セキュリティ要求抽出データ取得前処理部104は、製品の特徴、要求仕様、準拠する法令・規制及びセキュリティ規格の入力と、当該入力に対する正解ラベルとなるセキュリティ要求(脅威、信頼境界、責任分界)との対応関係を示す教師データを取得し、機械学習の前処理を行う準備をする。
【0071】
ステップS202において、セキュリティ要求抽出データ取得前処理部104は、準備したデータを機械学習できるよう、前処理する。ステップS203において、セキュリティ要求予測モデル生成部105は、前処理した教師データを用いて教師あり学習を行い、セキュリティ要求(脅威、信頼境界、責任分界)を予測するモデルを生成する。ステップS204において、セキュリティ要求予測モデル記憶DB220は、生成された予測モデルを自身のDBへ格納する。
【0072】
<2‐1‐3.設計情報選定モデル生成ステップ>
図21は、学習部における設計情報選定モデルの学習処理に関するフローチャートである。以下、図21に示すフローチャートに即して、学習部の動作を説明する。
【0073】
ステップS301において、セキュリティ機能選定データ取得前処理部106は、セキュリティ要件(脅威、信頼境界、責任分界、コスト、スケジュール)と、当該セキュリティ要件に対する正解ラベルとなるセキュリティ機能の選定(障害分類、対策、攻撃者、攻撃ルート)との対応関係を示す教師データを取得し、機械学習の前処理を行う準備する。
【0074】
ステップS302において、セキュリティ機能選定データ取得前処理部106は、準備したデータを機械学習できるよう、前処理する。
【0075】
ステップS303において、設計情報選定モデル生成部107は、前処理した教師データを用いて教師あり学習を行い、セキュリティ機能の選定(障害分類、対策、攻撃者、攻撃ルート)を予測するモデルを生成する。ステップS304において、設計情報選定モデル記憶DB230は、生成された予測モデルを自身のDBへ格納する。
【0076】
<2‐2.推論フェーズ>
図22は、推論部の推論処理に関するフローチャートである。以下、図22に示すフローチャートに即して、推論部の動作を説明する。
【0077】
ステップS401において、製品企画データ取得部108は、入出力装置600を介して開発者が入力した開発対象製品の特徴確認シート653と準拠する法令・規制及び規格651、要求仕様(システム構成図を含む仕様)652を取得する。
【0078】
ステップS402において、製品企画データ取得部108は、取得した製品の開発対象製品の特徴確認シート653と準拠する法令・規制及び規格651、要求仕様652の中にあるデータの特徴量を収集し、セキュリティ要求推論部109へ入力する。
【0079】
ステップS403において、セキュリティ要求推論部109は、開発対象製品の特徴、要求仕様(システム構成図を含む仕様)、準拠する法令・規制、セキュリティ規格を入力として、教師あり学習モデルよりマルチモーダルな推論を行い(セキュリティ要求予測モデルで推論を行い)、開発対象のセキュリティ要求(脅威、信頼境界、責任分界)を出力する。なお、セキュリティ要求予測モデルにおける推論では、想定する脅威に対するセキュリティ要件のクラス分類のために、システム特徴DB241、障害DB242、脅威DB243、プロジェクトDB247、仕様書・設計書DB248、セキュリティ規格DB249、法令・規制DB250を参照する。
【0080】
ステップS404において、コスト・スケジュール調整部110は、開発対象製品から想定される脅威、信頼境界、責任分界点からコストとスケジュールを算出し、開発対象製品のセキュリティ要件情報シート654を出力する。セキュリティ要件情報シート654の一例を図23,24に示す。
【0081】
ステップS405において、セキュリティ要件取得部111は、コストとスケジュールに準じた開発対象製品のセキュリティ要件となる開発対象製品のセキュリティ要件情報シート654のデータを取得し、セキュリティ機能推論部112へデータを入力する。
【0082】
ステップS406において、セキュリティ機能推論部112は、コストとスケジュールに準じた開発対象製品のセキュリティ要件を入力として、設計情報選定モデルで推論を行い、セキュリティ要件に対応するセキュリティ機能の推奨案となる開発対象製品のセキュリティ設計情報シート655を出力する。なお、設計情報選定モデルにおける推論では、想定する脅威に対するセキュリティ要件に対応する機能の候補の対応関係をクラス分類するために対策DB244を参照する。セキュリティ設計情報シート655の一例を図25に示す。
【0083】
<3.効果>
実施の形態1によれば、開発側セキュリティ分析支援装置10では、システムレベルにおけるセキュリティ分析に関する「要件抽出」に加えて「機能選定」を一気通貫で自動的に行う。そのため、製品出荷前の既知の脅威に対するセキュリティ分析の時間短縮の効果があり、属人的でない効率的なセキュリティ品質向上を達成できる。すなわち、効率的にセキュリティの品質を向上させることが可能となる。
【0084】
<実施の形態2>
実施の形態1で説明した開発側セキュリティ分析支援装置10は、開発対象製品のセキュリティ設計情報シート655等を生成して動作を終了する。実施の形態2で説明する運用側セキュリティ分析支援装置50は、脆弱性情報DB245と運用ログ・シグネチャDB246に蓄積されている脆弱性情報と運用ログデータの情報に基づいて、セキュリティ監視モデルを学習させる。そして、実際の市場における製品(運用対象製品)の運用ログから異常を検知し、運用側の製品のIPSのシグネチャを更新すると共に開発側の脅威や対策の内容も更新する。
【0085】
<1.構成>
図26は、実施の形態2による運用側セキュリティ分析支援装置50の構成を示すブロック図である。図27は、運用側セキュリティ分析支援装置50の構成の詳細を示すブロック図である。
【0086】
運用側セキュリティ分析支援装置50は、製品の開発が完了して市場に出荷後の運用ログを解析して異常判定を行い、シグネチャを更新すると共にこれから開発する製品についてセキュリティ分析を行う開発側セキュリティ分析支援装置に対してフィードバックを行う。
【0087】
運用側セキュリティ分析支援装置50は、主記憶部900と、補助記憶部1000と、開発側セキュリティ分析支援装置と通信を行う通信部700と、製品90(フィールド)と通信を行う通信部1100と、プロセッサ800とを備えている。また、運用側セキュリティ分析支援装置50は、表示装置1200および入出力装置1300と接続されている。運用側セキュリティ分析支援装置50は、例えば、パーソナルコンピュータである。
【0088】
プロセッサ800は、信号線を介して他のハードウェアと接続されている。プロセッサ800は、中央演算処理装置(CPU)、MPU、DSP、GPU、マイコン、FPGA、ASIC等で実現できる。プロセッサ800は、後述する補助記憶部1000に記憶されたOS、アプリケーションプログラム、種々のデータを読み込んで演算処理を実行することにより、種々の機能を実現する。プロセッサ800は、後述する機能的構成を含む。当該機能的構成は、ファームウェアにより実現されてもよい。プロセッサ800と、後述する主記憶部900及び補助記憶部1000とをまとめたハードウェアを「プロセッシングサーキットリ」ともいう。
【0089】
主記憶部900は、揮発性の記憶部である。主記憶部900は、RAM等で実現できる。主記憶部900は、運用側セキュリティ分析支援装置50において使用され、生成され、入出力され、或いは送受信されるデータを一時的に記憶する。さらに、主記憶部900は、運用ログデータ取得部901、運用ログデータ前処理部902、セキュリティ監視モデル推論部903、シグネチャデータ比較部904、シグネチャ情報更新部905を含む。
【0090】
運用ログデータ取得部901は、運用・保守解析DB1002に保管されている運用・保守解析のログデータを取得する。
【0091】
運用ログデータ前処理部902は、運用ログデータを機械学習が行えるようにデータ変換の前処理をする。
【0092】
セキュリティ監視モデル推論部903は、製品情報、障害情報、動作情報(正常、異常)を入力として、半教師あり学習モデルより推論を行い、障害異常データの障害分類、脅威、シグネチャ、対策、攻撃者、攻撃ルートを出力する。
【0093】
シグネチャデータ比較部904は、開発側セキュリティ分析支援装置10のインターフェース部300へ異常データの障害分類、脅威、シグネチャ、対策、攻撃者、攻撃ルートの情報を送信する。また、シグネチャデータ比較部904は、ログデータに異常があった場合、現状登録済のシグネチャのデータと比較後、シグネチャ更新リストファイルを作成してシグネチャ情報更新部905へ伝送する。シグネチャ更新リストファイルの一例を図28に示す。
【0094】
シグネチャ情報更新部905は、シグネチャの更新のデータと、その更新コマンドを発行し、集中コントローラ2004へシグネチャデータを配信する。
【0095】
補助記憶部1000は、不揮発性の記憶部である。補助記憶部1000は、ROM、HDD、フラッシュメモリ等で実現できる。補助記憶部1000は、OS、アプリケーションプログラム、種々のデータを記憶している。OSの少なくとも一部は、主記憶部900にロードされて、プロセッサ800によって実行される。
【0096】
補助記憶部1000は、半教師あり学習の機械学習に基づいて生成されたセキュリティ監視モデルを記憶するセキュリティ監視モデル記憶DB1001と、市場における製品の運用ログデータを蓄積する運用・保守解析DB1002とを含む。
【0097】
セキュリティ監視モデル記憶DB1001は、セキュリティ監視モデル生成部114で生成された半教師あり学習により学習済みのセキュリティ監視モデルを記憶する。
【0098】
運用・保守解析DB1002は、ログNo.、製品シリアルNo.、製品コード、対応済シグネチャ番号、ログ取得日時、障害情報、動作情報等の情報で構成される。運用・保守解析DB1002のサンプルデータを図29に示す。
【0099】
表示装置1200は、運用・保守担当者の操作に従って文字列および画像を表示する。表示装置1200は、液晶ディスプレイ、有機ELディスプレイなどで構成される。なお、表示装置1200は、運用側セキュリティ分析支援装置50と一体に構成してもよい。
【0100】
入出力装置1300は、キーボード、マウス、テンキーなどで構成される。運用・保守担当者は、入出力装置1300を介して運用側セキュリティ分析支援装置50を操作する。また、入出力装置1300は、表示装置1200と一体に構成し、保守・運用担当者のタッチ操作を受け付け可能なタッチパネルを含んでもよい。
【0101】
通信部700は、運用側セキュリティ分析支援装置50と開発側セキュリティ分析支援装置10との間で各種データを送受信する。通信部700及び通信部1100は、図示しないレシーバ及びトランスミッタを備える。レシーバは、開発側セキュリティ分析支援装置10及び遠隔監視装置2001からの各種データを受信する。トランスミッタは、プロセッサ800からの各種データを開発側セキュリティ分析支援装置10及び遠隔監視装置2001に送信する。通信部700及び通信部1100は、通信チップ、NIC等で実現できる。
【0102】
運用側セキュリティ分析支援装置50は、セキュリティ監視モデル生成部114を中心とする学習部と、セキュリティ監視モデル推論部903を中心とする推論部とに大別される。
【0103】
なお、学習部及び推論部は、対象製品のセキュリティ要求及びセキュリティ要求機能選定の出力を学習するために使用されるが、例えば、ネットワークを介して対象製品に接続され、この対象製品とは別個の装置であってもよい。また、学習部及び推論部は、対象製品に内蔵されていてもよい。さらに、学習部及び推論部は、クラウドサーバ上に存在していてもよい。
【0104】
セキュリティ監視モデル生成部114が用いる学習アルゴリズムは、半教師あり学習の公知のアルゴリズムを用いることができる。一例として、ニューラルネットワークを適用した場合について説明する。
【0105】
セキュリティ監視モデル生成部114は、例えば、ニューラルネットワークモデルに従って、いわゆる半教師あり学習により出力を行う学習をする。ここで、半教師あり学習とは、入力と結果(ラベル)のデータの組を学習装置に与えることで、それらの学習用データにある特徴を学習し、入力から結果を推論する手法をいう。
【0106】
ニューラルネットワークは、複数のニューロンからなる入力層、複数のニューロンからなる中間層(隠れ層)、及び複数のニューロンからなる出力層で構成される。中間層は、1層又は2層以上でもよい。
【0107】
例えば、図17に示すような3層のニューラルネットワークであれば、複数の入力が入力層(X1‐X3)に入力されると、その値に重みW1(w11‐w16)を掛けて中間層(Y1‐Y2)に入力され、その結果にさらに重みW2(w21‐w26)を掛けて出力層(Z1‐Z3)から出力される。この出力結果は、重みW1とW2の値によって変わる。
【0108】
本開示では、以下のニューラルネットワークのモデルにおいて学習が行われる。ニューラルネットワークは、セキュリティ監視データ取得前処理部113によって取得される入力インプットデータ(製品情報、障害情報、動作情報(正常、異常))と、それに対応する正解である入力(障害分類、脅威、シグネチャ、対策、攻撃者、攻撃ルート)との組合せに基づいて作成される学習用データに従って、いわゆる半教師あり学習により出力を学習する。
【0109】
すなわち、ニューラルネットワークは、入力層に入力としてインプットデータを入力して出力層から出力された結果が、インプットデータ(正解)に近づくように、重みW1とW2を調整することで学習する。
【0110】
セキュリティ監視モデル生成部114は、以上のような学習を実行することで学習済モデル(セキュリティ監視モデル)を生成して出力する。
【0111】
<2.動作>
次に、以上のように構成される運用側セキュリティ分析支援装置50の学習部及び推論部の動作について、図30~32を参照して説明する。
【0112】
<2-1.学習フェーズ>
図30は、学習部におけるセキュリティ監視モデルの学習処理に関するフローチャートである。以下、図30に示すフローチャートに即して、学習部の動作を説明する。
【0113】
ステップS501において、セキュリティ監視データ取得前処理部113は、製品情報、障害情報、動作情報(正常、異常)の入力と、当該入力に対する正解ラベルとなる障害分類、脅威、シグネチャ、対策、攻撃者、攻撃ルートとの対応関係を示す教師データを取得する。
【0114】
ステップS502において、セキュリティ監視データ取得前処理部113は、機械学習の前処理を行い、セキュリティ監視モデル生成部114へ伝送する。
【0115】
ステップS503において、セキュリティ監視モデル生成部114は、前処理した教師データを用いて教師あり学習を行い、障害分類、脅威、シグネチャ、対策、攻撃者、攻撃ルートを予測するモデル(セキュリティ監視モデル)を生成する。
【0116】
ステップS504において、開発側セキュリティ分析支援装置10のインターフェース部300は、運用側セキュリティ分析支援装置50の通信部700へデータを送信する。
【0117】
ステップS505において、セキュリティ監視モデル記憶DB1001は、生成された予測モデル(セキュリティ監視モデル)を自身のDBへ格納する。
【0118】
<2-2.推論フェーズ>
図31,32は、推論部の推論処理に関するフローチャートである。以下、図31,32に示すフローチャートに即して、推論部の動作を説明する。
【0119】
ステップS601において、遠隔監視装置2001は、保守用の通信回線を介して運転データのログを、通信部1100へ送信する。ステップS602において、通信部1100は、受信した運転データのログデータを運用・保守解析DB1002へ保存・蓄積する。
【0120】
ステップS603において、運用ログデータ取得部901は、運用・保守解析DB1002から運用ログを取得し、運用ログデータ前処理部902へ伝送する。ステップS604において、運用ログデータ前処理部902は、運用ログから製品情報、障害情報、動作情報(正常、異常)を抽出し、セキュリティ監視モデル推論部903へ入力する。
【0121】
ステップS605において、セキュリティ監視モデル推論部903は、製品情報、障害情報、動作情報(正常、異常)を入力として、半教師あり学習モデルより推論を行い、異常データの障害分類、脅威、シグネチャ、対策、攻撃者、攻撃ルートを出力し、シグネチャデータ比較部904へ伝送する。このとき出力されるデータは、図27に示す市場における製品の運用から得られる知見ファイル1301(知見情報)に相当し、当該知見ファイルの一例を図33,34に示す。図33および図34はBL10-BL11で繋がっている。
【0122】
ステップS606において、シグネチャデータ比較部904は、開発側セキュリティ分析支援装置10のインターフェース部300へ異常データの障害分類、脅威、シグネチャ、対策、攻撃者、攻撃ルートを送信する。
【0123】
ステップS607において、開発側セキュリティ分析支援装置10のインターフェース部300は、異常データの障害分類、脅威、シグネチャ、対策、攻撃者、攻撃ルートを受信し、脅威・対策比較連携更新部115へデータを転送する。
【0124】
ステップS608において、脅威・対策比較連携更新部115は、異常データの障害分類、脅威、シグネチャ、対策、攻撃者、攻撃ルートの内容を既存のDBの値と比較し、漏れていた内容がある場合は、統合DH240の情報を更新する。
【0125】
なお、ステップS605の処理後にログデータに異常があった場合、ステップS609において、シグネチャデータ比較部904は、現状登録済のシグネチャのデータと比較し、シグネチャ更新リストファイル1302を作成し、シグネチャ情報更新部905へ伝送する。なお、シグネチャが未登録の場合は、製品側のIDS(Intrusion Detection System)に対して登録を要求する。
【0126】
ステップS610において、シグネチャ情報更新部905は、シグネチャの更新のデータとその更新コマンドを発行する。ステップS611において、発行されたシグネチャの更新コマンドとそのデータは、セキュリティ上の信頼境界となる製品の集中コントローラ2004へ伝送され、集中コントローラ2004のIPSへ最新のシグネチャを適用する。
【0127】
<3.効果>
実施の形態2によれば、製品出荷後の運用において、運用側セキュリティ分析支援装置50では、クラウド上にセキュリティ監視機構を含み、開発側セキュリティ分析支援装置10と連携可能である。そのため、製品出荷後における未知の脅威および脆弱性に対する攻撃の兆候を把握することによって、早急な不正アクセス検知、及び開発側セキュリティ分析支援装置10へ迅速にフィードバックなどを行うことができるため、開発側セキュリティ分析支援装置10と運用側セキュリティ分析支援装置50との相互連携の効果を達成できる。すなわち、効率的にセキュリティの品質を向上させることが可能となる。
【0128】
<実施の形態3>
実施の形態2で説明した運用側セキュリティ分析支援装置50は、ステップS605の処理後にログデータに異常があった場合に、シグネチャ更新リストファイル1302を作成する。実施の形態3で説明する運用側セキュリティ分析支援装置50は、ステップS605の処理後にログデータに異常があった場合に、アラートルール更新リストファイル1303を作成する。
【0129】
<1.構成>
図35は、実施の形態3による運用側セキュリティ分析支援装置50の構成の詳細を示すブロック図である。図26に示す実施の形態2による運用側セキュリティ分析支援装置50と、図35に示す実施の形態3による運用側セキュリティ分析支援装置50とを比較すると、図26のシグネチャデータ比較部904が図35では異常検知データ比較部906となり、図26のシグネチャ情報更新部905が図35ではアラートルール情報更新部907となっている。その他の構成は、実施の形態2による運用側セキュリティ分析支援装置50と同様であるため、ここでは詳細な説明を省略する。
【0130】
<2.動作>
図36は、実施の形態3による推論部における推論処理を示すフローチャートである。なお、図36に示す「C」の接続元の動作は、実施の形態2で説明した図31に示すフローチャート(ステップS601~ステップS608)と同様である。ただし、図31のステップS606において「シグネチャデータ比較部」を「異常検知比較部」に読み替える必要がある。以下では、図36に示すステップS701~ステップS703について説明する。
【0131】
ステップS605の処理後にログデータに異常があった場合、ステップS701において、異常検知データ比較部906は、現状登録済のシグネチャのデータおよび平常時のログと比較し、アラートルール更新リストファイル1303を作成し、アラートルール情報更新部907へ伝送する。
【0132】
ステップS702において、アラートルール情報更新部907は、シグネチャの更新データと、異常検知するルール(以下、「アラートルール」という)とを更新するコマンドを発行する。
【0133】
ステップS703において、発行されたシグネチャの更新のデータおよびアラートルールの更新コマンドとそのデータは、セキュリティ上の信頼境界となる製品の集中コントローラ2004へ伝送される。
【0134】
<3.効果>
実施の形態3によれば、実施の形態2による効果に加えて、ログデータに異常があった場合にアラートルールの更新コマンドを開発側セキュリティ分析支援装置10へ迅速にフィードバックを行うことができる。従って、開発側セキュリティ分析支援装置10と運用側セキュリティ分析支援装置50との相互連携の効果を達成できる。すなわち、効率的にセキュリティの品質を向上させることが可能となる。
【0135】
<実施の形態4>
実施の形態1で説明した開発側セキュリティ分析支援装置10は、開発対象製品のセキュリティ設計情報シート655等を生成して動作を終了する。実施の形態4で説明する開発側セキュリティ分析支援装置10では、テスト部は、学習部から取得する脅威、脆弱性、セキュリティテストのテストケース、テストデータ、セキュリティ対策及び運用ログの情報からセキュリティテストモデルを学習して生成する。そして、テスト部は、推論部で生成された開発対象製品のセキュリティ設計情報(開発対象製品のセキュリティ設計情報シート655)を基にセキュリティテストモデルを活用することにより、セキュリティテストの判定結果の予測と脆弱性を検出できる可能性が高いテストケースの探索的な生成を繰り返し実施する。
【0136】
<1.構成>
図37は、実施の形態4による開発側セキュリティ分析支援装置10の構成を示すブロック図である。図38は、開発側セキュリティ分析支援装置10におけるテスト部の詳細を示すブロック図である。テスト部は推論部に含まれている。なお、開発側セキュリティ分析支援装置10における学習部および推論部の構成は、統合HD240を除いて実施の形態1と同様である。図39に示すように、統合HD240は、セキュリティテスト・アラートルールDB251を含む。セキュリティテスト・アラートルールDB251のサンプルデータを図40に示す。
【0137】
セキュリティテストデータ取得前処理部116は、脅威、脆弱性、セキュリティテストのテストケース、テストデータ、セキュリティ対策及び運用ログの情報を学習部の統合HD240から取得し、それらのデータを機械学習できるよう、前処理する。
【0138】
セキュリティテストモデル生成部117(第3のモデル生成部)は、前処理したデータを用いて機械学習を活用し、攻撃モデル(テストケースの生成・実施)と防御モデル(セキュリティ対策の実施)によるセキュリティテストを行うモデルを生成する。機械学習に関しては、例えば、強化学習(Reinforcement Learning)を適用して攻撃モデルと防御モデルを生成する。強化学習では、ある環境内におけるエージェント(行動主体)が、現在の状態(環境のパラメータ)を観測し、取るべき行動を決定する。エージェントの行動により環境が動的に変化し、エージェントには環境の変化に応じて報酬が与えられる。エージェントはこれを繰り返し、一連の行動を通じて報酬が最も多く得られる行動方針を学習する。
【0139】
セキュリティテスト報酬計算部118は、強化学習によって学習済モデルを生成する場合、セキュリティテスト関数更新部123を備えたセキュリティテストモデル生成部117と連携している。攻撃が成功した場合は、報酬を増大し、防御が成功した場合は報酬を減少するような基準に基づいて、報酬を算出する。
【0140】
セキュリティテスト判定データ取得部119は、セキュリティテストモデル推論部122によるセキュリティテスト判定結果656から、報酬計算に必要な情報と脅威及びその対策が既知であるか比較するための情報を取得する。セキュリティテスト判定結果656のサンプルデータを図41に示す。
【0141】
セキュリティ設計情報取得部120は、コストとスケジュールに準じた開発対象製品のセキュリティ要件に対応する設計情報のデータ(開発対象製品のセキュリティ設計情報シート655)を取得し、セキュリティテスト入出力観測部121へデータを投入する。
【0142】
セキュリティテスト入出力観測部121は、当該製品の製品情報、セキュリティ要求、責任分界、セキュリティ設計情報、およびフィードバックされるセキュリティテスト判定結果656から、信頼境界、動作ログ(テスト結果)等のテスト条件に対応する状態である脆弱性情報、攻撃モデルのインプットとなる脅威に基づくセキュリティテストケース及びテストデータ、および防御モデルのセキュリティ機能に基づくセキュリティ対策を生成する。
【0143】
セキュリティテストモデル推論部122は、所定のテストスイートを活用し、セキュリティテストのテストケースに対する過去の判定結果から出力結果を予測することにより、セキュリティテスト判定結果を出力する。
【0144】
セキュリティテスト関数更新部123は、セキュリティテストモデル生成部117に内包され、セキュリティテスト報酬計算部118によって計算される報酬に従って、テストケース生成及びテスト判定結果の予測出力を決定するための関数を更新する。そして、更新した関数をセキュリティテストモデル記憶DB260に出力する。例えばQ学習の場合、下記の式(1)で表される行動価値関数Q(s,a)について、テストケースに対する判定結果を予測してその出力を算出するための関数として用いる。

【0145】
<2.動作>
図42,43は、テスト部におけるデータの取得、セキュリティテストモデルの生成、および推論処理を示すフローチャートである。以下、図42,43に示すフローチャートに即してテスト部の動作を説明する。
【0146】
<2-1.学習フェーズ>
<2‐1‐1.データ取得ステップ>
ステップS801において、セキュリティテストデータ取得前処理部116は、統合DH240の脅威DB243の脅威、脆弱性情報DB245の脆弱性、セキュリティテスト・アラートルールDB251のセキュリティテストケース及びテストデータ、対策DB244のセキュリティ対策、運用ログ・シグネチャDB246の運用ログをそれぞれ取得する。
【0147】
ステップS802において、セキュリティテストデータ取得前処理部116は、取得したデータを機械学習できるよう、データクレンジングなどの前処理を実施する。
【0148】
<2‐1‐2.セキュリティテストモデル生成ステップ>
ステップS803において、セキュリティテストモデル生成部117は、前処理したデータを用いて強化学習より、探索的なテストケースの生成及びテスト判定結果の予測するためのセキュリティテストを行うモデルを生成する。つまり、該当のセキュリティ対策及び脆弱性、脅威に相当するテストケースと入力として、テストケースの予測結果を出力として得て、より脆弱性を検出できるテストケースを生成してテスト結果を予測することを探索的に繰り返して実施する。
【0149】
強化学習の代表的な手法として、Q学習(Q - learning)やTD学習(TD - learning)が知られている。例えば、Q学習の場合、行動価値関数Q(s,a)の一般的な更新式は式(1)で表される。
【0150】
式(1)において、sは時刻tにおける環境の状態を表し、aは時刻tにおける行動を表す。行動aにより、状態はst+1に変わる。rt+1はその状態の変化によってもらえる報酬を表し、γは割引率を表し、αは学習係数を表す。なお、γは0<γ≦1、αは0<α≦1の範囲とする。正常操作,異常操作に対するテストケースの生成とその実施が行動aとなり、正常操作及び異常操作に対するテストケースに対する動作ログおよびテスト結果の予測結果、既知・未知の脆弱性と脅威が状態sとなり、時刻tの状態sにおける最良の行動aを学習する。
【0151】
式(1)で表される更新式は、時刻t+1における最もQ値の高い行動aの行動価値Qが、時刻tにおいて実行された行動aの行動価値Qよりも大きければ、行動価値Qを大きくし、逆の場合は、行動価値Qを小さくする。換言すれば、時刻tにおける行動aの行動価値Qを、時刻t+1における最良の行動価値に近づけるように、行動価値関数Q(s,a)を更新する。それにより、或る環境における最良の行動価値が、それ以前の環境における行動価値に順次伝播していくようになる。
【0152】
ステップS804において、セキュリティテストモデル生成部117は、ステップ801~803、ステップ805、ステップ806~809のような学習を繰り返し実行する。セキュリティテストモデル記憶DB260は、セキュリティテスト関数更新部123によって更新された行動価値関数Q(s,a)、すなわち、学習済のセキュリティテストモデルを記憶する。
【0153】
ステップS805において、セキュリティテスト報酬計算部118は、攻撃が成功した場合はセキュリティテストモデルの報酬を増大させる(例えば「1」の報酬を与える)。他方、防御が成功した場合はセキュリティテストモデルの報酬を減少させる(例えば「-1」の報酬を与える)。このような報酬を算出は、次のような基準(報酬基準)に基づく。すなわち、セキュリティテストモデルの報酬は、正常操作,異常操作に対するテストケース生成とその実施(行動)、テストケースに対する動作ログ及びそのテスト結果の予測、既知・未知の脆弱性と脅威(状態)に基づいて計算される。
【0154】
<2-2.推論フェーズ>
ステップS806において、セキュリティ設計情報取得部120は、コストとスケジュールに準じた開発対象製品のセキュリティ要件に対応する設計情報のデータ(開発対象製品のセキュリティ設計情報シート655)を取得し、セキュリティテスト入出力観測部121へデータを投入する。
【0155】
ステップS807において、セキュリティテスト入出力観測部121は、当該製品の製品情報、セキュリティ要求、責任分界、セキュリティ設計情報とフィードバックされるセキュリティテスト判定結果656から、信頼境界、動作ログ(テスト結果)等のテスト条件に対応する状態である脆弱性情報、セキュリティテストモデルのインプットとなる脅威に基づくセキュリティテストケース及びテストデータとそのテストの予測結果を観測する。
【0156】
ステップS808において、セキュリティテストモデル推論部122は、当該製品のテストスイートを活用したテスト実績より、セキュリティテスト判定結果656を予測して出力する。強化学習により学習した脅威に相当するテストケースとその対策を入力として、セキュリティテストモデル記憶DB260に保管した学習済モデルを利用して、予測されるログやテスト結果を推論する。なお、予測されたログやセキュリティテスト結果は、ステップS807へフィードバックし、逐次的なセキュリティテストの推論で参照可能とする。
【0157】
なお、実施の形態4では、セキュリティテストモデル推論部122が用いる学習アルゴリズムに強化学習を適用した場合について説明したが、これに限られるものではない。学習アルゴリズムについては、強化学習以外にも、敵対的逆強化学習等を適用することも可能である。
【0158】
ステップS809において、セキュリティテスト判定データ取得部119は、セキュリティテスト判定結果656より、報酬計算に必要な情報と脅威及びその対策が既知であるか比較するための情報を取得する。取得した情報は、逐次のセキュリティテストのフィードバックとして、セキュリティテスト報酬計算部118及び脅威・対策比較連携更新部115へ伝達する。
【0159】
ステップS810において、脅威・対策比較連携更新部115は、異常データの障害分類、脅威、シグネチャ、対策、攻撃者、攻撃ルートで既知でなく、未知の内容がある場合は、統合DH240の情報を更新する。
【0160】
ステップS811において、統合DH240は、更新対象のデータがある場合は、該当するDBであるシステム特徴DB241、障害DB242、脅威DB243、対策DB244、脆弱性情報DB245、運用ログ・シグネチャDB246、プロジェクトDB247、仕様書・設計書DB248、セキュリティ規格DB249、法令・規制DB250、セキュリティテスト・アラートルールDB251へデータを格納する。
【0161】
<3.効果>
実施の形態4によれば、製品開発の工程において、開発側セキュリティ分析支援装置10では、学習部、推論部、およびテスト部が相互に連携可能であるため、高品質な製品が求められる製品開発を効率的に実施することができる。また、テスト部で強化学習等の機械学習を活用することにより、既知の脆弱性や脅威だけではなく、未知の脆弱性および脅威にも対応したテストケースに基づく試験結果について、過去の試験結果の実績データから予測する。これにより、必要となる対策が分かるため、製品の開発と運用で相互にセキュリティ強化を行うことができる。
【0162】
なお、本開示の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。
【0163】
本開示は詳細に説明されたが、上記した説明は、すべての態様において、例示であって、限定的なものではない。例示されていない無数の変形例が想定され得るものと解される。
【符号の説明】
【0164】
10 開発側セキュリティ分析支援装置、50 運用側セキュリティ分析支援装置、90 製品、100 主記憶部、101 データ収集部、102 マルチモーダル特徴解析部、103 データ一次加工統合部、104 セキュリティ要求抽出データ取得前処理部、105 セキュリティ要求予測モデル生成部、106 セキュリティ機能選定データ取得前処理部、107 設計情報選定モデル生成部、108 製品企画データ取得部、109 セキュリティ要求推論部、110 コスト・スケジュール調整部、111 セキュリティ要件取得部、112 セキュリティ機能推論部、113 セキュリティ監視データ取得前処理部、114 セキュリティ監視モデル生成部、115 脅威・対策比較連携更新部、116 セキュリティテストデータ取得前処理部、117 セキュリティテストモデル生成部、118 セキュリティテスト報酬計算部、119 セキュリティテスト判定データ取得部、120 セキュリティ設計情報取得部、121 セキュリティテスト入出力観測部、122 セキュリティテストモデル推論部、123 セキュリティテスト関数更新部、200 補助記憶部、210 データレイク、220 セキュリティ要求予測モデル記憶DB、230 設計情報選定モデル記憶DB、240 統合DH、241 システム特徴DB、242 障害DB、243 脅威DB、244 対策DB、245 脆弱性情報DB、246 運用ログ・シグネチャDB、247 プロジェクトDB、248 仕様書・設計書DB、249 セキュリティ規格DB、250 法令・規制DB、251 セキュリティテスト・アラートルールDB、260 セキュリティテストモデル記憶DB、300 インターフェース部、400 プロセッサ、500 表示装置、600 入出力装置、601 過去のプロジェクトデータ、602 脆弱性解析結果、603 仕様書・設計書、604 法令・規制情報、605 セキュリティ規格、606 過去の市場における製品の運用ログおよびインシデント・シグネチャ情報、651 準拠する法令・規制及びセキュリティ規格、652 開発対象製品の要求仕様、653 開発対象製品の特徴確認シート、654 開発対象製品のセキュリティ要件情報シート、655 開発対象製品のセキュリティ設計情報シート、656 セキュリティテスト判定結果、700 通信部、800 プロセッサ、900 主記憶部、901 運用ログデータ取得部、902 運用ログデータ前処理部、903 セキュリティ監視モデル推論部、904 シグネチャデータ比較部、905 シグネチャ情報更新部、906 異常検知データ比較部、907 アラートルール情報更新部、1000 補助記憶部、1001 セキュリティ監視モデル記憶DB、1002 運用・保守解析DB、1100 通信部、1301 市場における製品の運用から得られる知見ファイル、1302 シグネチャ更新リストファイル、1303 アラートルール更新リストファイル、2001 遠隔監視装置、2002 室内機、2003 室外機、2004 集中コントローラ、2005 無線LAN、2006 スマートフォン、2007 パソコン、2008 リモコン。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43