(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】生成方法、生成プログラム及び情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20241126BHJP
【FI】
G06N20/00
(21)【出願番号】P 2023572306
(86)(22)【出願日】2022-01-07
(86)【国際出願番号】 JP2022000325
(87)【国際公開番号】W WO2023132048
(87)【国際公開日】2023-07-13
【審査請求日】2024-03-29
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】矢嶋 純
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2021-60872(JP,A)
【文献】米国特許出願公開第2020/0410399(US,A1)
【文献】国際公開第2021/144978(WO,A1)
【文献】中国特許出願公開第113810365(CN,A)
【文献】浅井 健志、河内 清人,サイバー攻撃対策の選定方法の提案,2017年 暗号と情報セキュリティシンポジウム(SCIS2017)予稿集,日本,電子情報通信学会,2017年01月24日
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
成立する攻撃を示す情報が対応付けられた第1ノード及び前記第1ノードに階層的に繋がり且つ前記攻撃を成立させるための条件が対応付けられた複数の第2ノードを含む攻撃ツリーの構造を表す木構造情報と、前記複数の第2ノードそれぞれに対応付けられた前記条件を満たさなくする対応の困難さを示す困難度情報と、前記複数の第2ノードが満たされているか否かを示す条件合致状況情報を受け付け、
前記木構造情報、前記困難度情報及び前記条件合致状況情報を基に、前記複数の第2ノードそれぞれに対応付けられた前記条件の組合せのうち、前記攻撃が不成立となる組み合わせである不成立条件候補毎に、前記不成立条件候補の採用の優先度を示す提供情報を生成する
処理をコンピュータに実行させることを特徴とする生成方法。
【請求項2】
前記木構造情報を示す論理式を展開及び分解して論理積で結ばれた個別論理式を生成して、前記不成立条件候補とすることを特徴とする請求項1に記載の生成方法。
【請求項3】
前記木構造情報及び前記条件合致状況情報を基に、前記攻撃ツリーの中の同一の条件が対応付けられた前記第2ノードの合計数を求め、含まれる各前記条件について前記合計数が多いほど高くなり且つ前記困難度情報に登録された前記困難さが低いほど低くなるように前記不成立条件候補の優先度を決定することを特徴とする請求項1に記載の生成方法。
【請求項4】
前記合計数が多いほど高くなり且つ前記困難度情報に登録された前記困難さが低いほど低くなるように更新後スコアを算出し、
前記更新後スコアを基に、前記不成立条件候補の優先度判定用スコアを求め、
前記優先度判定用スコアにしたがって各前記不成立条件候補の優先度を決定する
ことを特徴とする請求項3に記載の生成方法。
【請求項5】
成立する攻撃を示す情報が対応付けられた第1ノード及び前記第1ノードに階層的に繋がり且つ前記攻撃を成立させるための条件が対応付けられた複数の第2ノードを含む攻撃ツリーの構造を表す木構造情報と、前記複数の第2ノードそれぞれに対応付けられた前記条件を満たさなくする対応の困難さを示す困難度情報と、前記複数の第2ノードが満たされているか否かを示す条件合致状況情報を受け付け、
前記木構造情報、前記困難度情報及び前記条件合致状況情報を基に、前記複数の第2ノードそれぞれに対応付けられた前記条件の組合せのうち、前記攻撃が不成立となる組み合わせである不成立条件候補毎に、前記不成立条件候補の採用の優先度を示す提供情報を生成する
処理をコンピュータに実行させることを特徴とする生成プログラム。
【請求項6】
成立する攻撃を示す情報が対応付けられた第1ノード及び前記第1ノードに階層的に繋がり且つ前記攻撃を成立させるための条件が対応付けられた複数の第2ノードを含む攻撃ツリーの構造を表す木構造情報と、前記複数の第2ノードそれぞれに対応付けられた前記条件を満たさなくする対応の困難さを示す困難度情報と、前記複数の第2ノードが満たされているか否かを示す条件合致状況情報を受け付け、前記木構造情報、前記困難度情報及び前記条件合致状況情報を基に、前記複数の第2ノードそれぞれに対応付けられた前記条件の組合せのうち、前記攻撃が不成立となる組み合わせである不成立条件候補毎に、前記不成立条件候補の採用の優先度を示す提供情報を生成する順位付部
を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生成方法、生成プログラム及び情報処理装置に関する。
【背景技術】
【0002】
人工知能(AI:Artificial Intelligence)により、与えられたデータに基づき所定の情報の推定や様々な対象物を認識する技術が知られている。特に機械学習により実現されるAIに対しては、高い関心が寄せられている。以下では、機械学習により生成された学習モデルを用いて推定や認識を行なうシステムを、機械学習システムと呼ぶ。このような機械学習システムで実現されるAIに対して、様々な攻撃が加えられる危険がある。
【0003】
例えば、Adversarial Exampleと呼ばれる攻撃がある。これは、元の画像に対して、巧みに計算されたノイズを加えることで、人間には元の画像と同様の対象物と認識されるが、機械学習システムには他の物として認識される画像を作成して、意図的にAIに誤った推定を行わせる攻撃である。例えば、パンダの画像に対してノイズを加え、人にはパンダに見えるが、機械学習システムを用いて分類するとテナガザルと判定される画像を生成することが可能である。その他にも機械学習システムに対する攻撃には様々な手法が存在する。
【0004】
このように、機械学習システムは様々な攻撃による多くの危険にさらされている。そこで、機械学習システムの開発時に、どの様な攻撃がその機械学習システムに対して適用可能であるかをセキュリティ分析して、対応を検討することが重要である。
【0005】
機械学習システムにおいて攻撃に対する対応としては、大きく分けて、仕様を変更する方法と攻撃専用の対策を機械学習システムに対して適用する方法との2つの方法が考えられる。仕様を変更する方法は、機械学習システムへの攻撃が仕様と密接に関係していることから、攻撃ができなくなるように機械学習システムの仕様を変更する方法である。また、攻撃専用の対策を機械学習システムに対して適用する方法としては、攻撃が成功し難い学習モデルに訓練し直したり、攻撃の検知手法を実装して被害を緩和したりする方法などがある。ここでは、このうちの機械学習システムの仕様変更による敵対的攻撃対策について考える。
【0006】
ここで、一般的なIT(Internet Technology)セキュリティにおけるセキュリティ分析手法として、アタックツリー(攻撃ツリー)分析と呼ばれる手法が存在する。アタックツリー分析は、以下のような手順で行われる。攻撃対象となるシステムに対する考えられる被害を最上位のトップノードとしてそこから下に向けて分岐していく木を構成する。各ノードについて、そのノードが成立する条件を考えて枝や葉を設定することで、下への分岐を設定してアタックツリーを生成する。枝や葉が定まれば、そのアタックツリーが成立しなくなる条件が特定されるため、アタックツリーが成立しなくなるようにシステムを仕様変更することができる。これにより、想定した被害を与える攻撃への耐性を有するシステムが生成できる。
【0007】
一般的なアタックツリーでは、始めは構造が決定されていない状態であり、仕様が定まってから各ノードや分岐の情報が設定される。これに対して、機械学習システムへの攻撃や被害は種類が限られている。そのため、機械学習システムに対してアタックツリー分析を行なう場合、機械学習システムの仕様が決定される前に各ノードや分岐の情報が登録されたアタックツリーを生成することが可能である。そのため、機械学習システムでは、予めアタックツリーを生成しておき、各ノードに登録された条件と仕様とを照らし合わせてチェックすることで、各攻撃が成立するか否かを判定できる。
【0008】
なお、システムの安全性に関する技術として、攻撃の手順を表す攻撃経路の情報から、対処する攻撃活動の組合せを抽出し、攻撃活動毎の対策候補の有用度と攻撃活動の組合せの重要度とを基に評価値を計算して攻撃活動の組合せ毎に対策を決定する技術がある。また、機械学習システムに関する所定情報から訓練済みモデルへのアクセス可能性を示す情報を生成し、生成した情報とクエリや訓練済みモデルの操作可能性を示す情報とに基づいて攻撃の可能性を求める技術がある。また、アタックツリーを生成し、攻撃が成功する確率を各ノードに割り当て、最終的な攻撃の確率を算出して提供する技術がある。また、アタックツリーを生成し、攻撃による影響に基づいて攻撃のスコアを算出し、スコアにしたがって攻撃に対してランキングを付ける技術がある。
【先行技術文献】
【特許文献】
【0009】
【文献】国際公開第2018/134909号
【文献】特開2021-60872号公報
【文献】米国特許出願公開第2009/0113549号明細書
【文献】米国特許第10749890号明細書
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、機械学習システムに対するアタックツリーでは、アタックツリーを攻撃毎に構成した際に、ある攻撃についてのアタックツリーの内部に別の攻撃のアタックツリーが存在するなど、枝葉で構成される小さな階層を表す部分木の重複が存在し、入れ子構造となる場合が多い。また、同一の内容のノードが複数の部分木に存在する場合も多い。さらに、特定のノードについて条件を満たさなくすることが仕様として困難な場合もある。例えば、使用者に結果を出力するといった内容のノードがある場合、このノードを不成立にすることはシステムとして意味がなくなるため、このノードの条件を満たさなくすることは困難である。機械学習システムに対するアタックツリーにおいては以上のような複雑な特徴が存在するため、一般的なアタックツリー分析技術では、どの条件を満たさなくするのが適切か優先順位を付けて提示することは困難である。そのため、攻撃への対策としての適切な仕様変更を決定することは難しく、機械学習システムの安全性を向上させることは困難である。
【0011】
また、上述した技術を用いた場合、攻撃に対する評価を得ることなどは可能であるが、攻撃への対策のためのアタックツリーを不成立にする条件を優先順位付けして提示することは困難である。そのため、攻撃への対策としての適切な仕様変更を決定することは難しく、機械学習システムの安全性を向上させることは困難である。
【0012】
開示の技術は、上記に鑑みてなされたものであって、機械学習システムの安全性を向上させる生成方法、生成プログラム及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
本願の開示する生成方法、生成プログラム及び情報処理装置の一つの態様において、成立する攻撃を示す情報が対応付けられた第1ノード及び第1ノードに階層的に繋がり且つ攻撃を成立させる条件が対応付けられた複数の第2ノードを含む攻撃ツリーの構造を表す木構造情報と、複数の第2ノードそれぞれに対応付けられた条件を満たさなくする対応の困難さを示す困難度情報と、複数の第2ノードが満たされているか否かを示す条件合致状況情報を受け付け、木構造情報、困難度情報及び条件合致状況情報を基に、複数の第2ノードそれぞれに対応付けられた条件の組合せのうち、攻撃が不成立となる組み合わせである不成立条件候補毎に、不成立条件候補の採用の優先度を示す提供情報を生成する。
【発明の効果】
【0014】
1つの側面では、本発明は、機械学習システムの安全性を向上させることができる。
【図面の簡単な説明】
【0015】
【
図2】
図2は、アタックツリーの一例を示す図である。
【
図4】
図4は、条件合致状況情報の一例を示す図である。
【
図6】
図6は、優先度付き仕様変更候補リストの一例を示す図である。
【
図7】
図7は、アタックツリーの具体例を示す図である。
【
図9】
図9は、Adversarial Example条件について最上位攻撃達成条件を否定する論理式の展開を示す図である。
【
図11】
図11は、論理式の冗長表現の省略を説明するための図である。
【
図12】
図12は、Poisoning条件についての不成立条件候補の抽出を説明するための図である。
【
図13】
図13は、不成立条件候補の統合を説明するための図である。
【
図14】
図14は、統合後の不成立条件候補の展開を説明するための図である。
【
図16】
図16は、アタックツリーに条件合致状況情報を付加した図である。
【
図18】
図18は、各不成立条件候補の優先度判定用スコアの算出を説明するための図である。
【
図19】
図19は、優先度付き仕様変更候補リストの具体例を示す図である。
【
図20】
図20は、実施例に係る情報処理装置による優先度付き仕様変更候補リストの生成処理のフローチャートである。
【
図21】
図21は、情報処理装置のハードウェア構成図である。
【発明を実施するための形態】
【0016】
以下に、本願の開示する生成方法、生成プログラム及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する生成方法、生成プログラム及び情報処理装置が限定されるものではない。
【実施例1】
【0017】
図1は、情報処理装置のブロック図である。本実施例に係る情報処理装置1は、論理分析部11、抽出部12、順位付部13、出力部14及び記憶部15を有する。
【0018】
記憶部15は、木構造情報101、成立ツリー群102及び不成立条件候補群103を記憶する。記憶部15は、論理分析部11、抽出部12及び順位付部13の各部から利用可能である。
【0019】
木構造情報101は、攻撃を防ぐために仕様を変更する対象となる機械学習システムに対するアタックツリー(攻撃ツリー)の木構造を表す情報である。
図2は、アタックツリーの一例を示す図である。
図2に示すアタックツリーは、機械学習システムが攻撃シナリオA1で攻撃される場合のアタックツリーである。
【0020】
以下では、1つのアタックツリーを「木」と呼ぶ場合がある。また、
図2のアタックツリーは、最上位の第1ノードに示された攻撃シナリオA1による攻撃を達成するための各条件#2B,#3,#4B,#6B及び#7Aが記された複数の第2ノードを有する。また、アタックツリーは、そのアタックツリーに含まれる他の攻撃シナリオの達成を内容とするノードを有する。以下では、アタックツリーにおける最上位の第1ノードに記載された攻撃を達成するための条件が記された第2ノード及びアタックツリーに含まれる他の攻撃シナリオの達成を内容とするノードを「葉」と呼ぶ。また、各条件間の関係性を表す論理記号を「枝分岐」と呼ぶ。葉である第2ノードは枝分岐により階層的に第1ノードに接続される。また、アタックツリーに含まれる特定の攻撃シナリオの達成を内容とするノードから下に延びる枝分岐及び葉をまとめたものを「部分木」と呼ぶ。すなわち、部分木は、その部分木の最上位に記載された特定の攻撃に対するアタックツリーと考えることもできる。
【0021】
木構造情報101は、各葉に記述された条件を枝分岐で示される論理条件を用いて結び付けた論理式である。例えば、
図2のアタックツリーを表す木構造情報101は、各条件を符号で表すと、
図3に示す論理式で表される。
図3は、木構造情報の一例を示す図である。機械学習システムに対するアタックツリーは予め作成できるので、木構造情報101は予め作成されて、情報処理装置1に入力されて記憶部15に記憶される。アタックツリーは1つでも良いし複数でもよいので、木構造情報101は、アタックツリーの数に合わせて1つ以上作成され記憶部15に記憶される。
【0022】
また、成立ツリー群102は、アタックツリーのうち最上位の攻撃が成立するアタックツリーの木構造情報101をまとめた集合である。成立ツリー群102は、論理分析部11により生成されて記憶部15に格納される。
【0023】
不成立条件候補群103は、アタックツリーの最上位の攻撃を達成させないために満たさなくする条件の組合せの候補である不成立条件候補をまとめた集合である。不成立条件候補群103は、抽出部12により生成されて記憶部15に格納される。
【0024】
論理分析部11は、各アタックツリーの木構造情報101を記憶部15から取得する。さらに、論理分析部11は、入力端末2により入力された条件合致状況情報22を取得する。
【0025】
図4は、条件合致状況情報の一例を示す図である。例えば、
図2におけるアタックツリーに対する条件合致状況情報22には、
図4に示すように、条件#2B,#3,#4B,#6B及び#7Aのそれぞれが現在の機械学習システムの仕様において満たされているか否かを示す情報が格納される。
図4の条件合致状況情報22は、条件#2B,#4B及び#6Bが満たされており、且つ、条件#3及び#7Aが満たされていないことを表す。
【0026】
図1に戻って説明を続ける。論理分析部11は、各アタックツリーの木構造情報101と条件合致状況情報22とから、各アタックツリーにおいて最上位の第1ノードに示される攻撃が達成されてアタックツリーが成立するか否かを示すアタックツリーの成立状況を判定する。例えば、
図2のアタックツリーに対して
図4で示した条件合致状況情報22の入力を受けた場合、論理分析部11は、条件#6Bが満たされ、且つ、条件#7Aが満たされることから、
図2に示すアタックツリーが成立すると判定する。そして、論理分析部11は、アタックツリーが成立する木構造情報101を抽出してまとめて成立ツリー群102として記憶部15に記憶させる。その後、論理分析部11は、成立ツリー群102の生成完了を抽出部12に通知する。
【0027】
抽出部12は、成立ツリー群102の生成完了の通知を論理分析部11から受ける。そして、抽出部12は、成立ツリー群102に含まれる各木構造情報101を記憶部15から取得する。次に、抽出部12は、取得した木構造情報101からその木構造情報101で表されるアタックツリーを不成立にさせる条件を表す論理式を生成する。次に、抽出部12は、論理式をANDのみを含む個別論理式に分解して、アタックツリーを不成立にさせる最小単位の条件の候補である不成立条件候補を生成する。不成立条件候補は、そのいずれかが満たされた場合に、元のアタックツリーが不成立となる条件である。アタックツリーが複数ある場合には、抽出部12は、各アタックツリーの不成立所条件候補を統合して、全てのアタックツリーを不成立とする不成立条件候補を生成する。その後、抽出部12は、生成した不成立条件候補を含む不成立条件候補群103を記憶部15に記憶させる。さらに、抽出部12は、不成立条件候補群103の抽出完了を順位付部13に通知する。
【0028】
例えば、
図3に示した木構造情報101を用いる場合、抽出部12は、
図3に示す木構造情報101の論理式の全体を否定する論理式を生成する。そして、抽出部12は、生成した論理式から
図2に示すアタックツリーを不成立にさせる条件を表す論理式として、((~#6B)&((~#2B)|(~3)))|((~#4B)&(~7A))を生成する。ここで、「~」は、条件の否定(NOT)を表す。さらに、抽出部12は、この論理式をANDで接続される最小単位の論理式に分解して、~#6Bかつ~#2B、~#6Bかつ~#3、~#4Bかつ~7Aの3つを生成する。抽出部12は、この3つの論理式を不成立条件候補とする。すなわち、この3つの不成立条件候補のいずれかが満たされれば、
図2に示すアタックツリーが不成立となる。
【0029】
図1に戻って説明を続ける。順位付部13は、不成立条件候補群103の抽出完了の通知を抽出部12から受ける。次に、順位付部13は、入力端末2から入力された困難度情報21を取得する。
【0030】
図5は、困難度情報の一例を示す図である。困難度情報21は、各葉に書かれている条件を満たさなくすることがどれくらい難しいかを、条件毎に表す情報である。本実施例では、困難度を10段階で表し、数字が大きいほど困難であるとした。例えば、
図5に示す困難度情報であれば、条件#3及び#7Aは、条件を満たさなくすることが非常に難しい。これに対して、条件#2Bは、条件を満たさなくすることが比較的容易である。以下では、各条件に対する困難度の値を困難さパラメータと呼ぶ。
【0031】
図1に戻って説明を続ける。次に、順位付部13は、成立ツリー群102を記憶部15から取得する。さらに、順位付部13は、入力端末2から入力された条件合致状況情報22を取得する。
【0032】
次に、順位付部13は、成立ツリー群102に含まれる全てのアタックツリーを展開して、成立していない部分木を除き、同じ条件が記述されている葉で条件が満たされている葉の数を数える。すなわち、順位付部13は、成立していないアタックツリー及び部分木の葉、及び、成立しているアタックツリーであっても条件が満たされていない葉は数に含めない。以下では、同じ条件が記述されている葉で条件が満たされている葉の数を、「同じ葉の数」と呼ぶ。
【0033】
次に、順位付部13は、1を同じ葉の数で割った値をそれら葉に記述されている条件の基礎スコアとして条件毎に記憶する。例えば、成立しているアタックツリーの中で、同じ条件が記述されている葉で条件が満たされている葉の数が3つあった場合、順位付部13は、その条件の基礎スコアを1/3と算出する。このようにすることで、順位付部13は、条件が重複していればしているほどその条件の基礎スコアを低くすることができる。
【0034】
次に、順位付部13は、条件毎に基礎スコアに困難さパラメータを乗算して各条件に対する更新後スコアを算出する。すなわち、更新後スコアは、その条件について同じ葉の数が多いほど低くなり、その条件を満たさなくすることが困難であるほど高くなる。例えば、ある条件について同じ葉の数が5であり且つ困難さパラメータが4であれば、順位付部13は、その条件の更新後スコアを(1/5)×4=4/5と算出する。また、他の条件について同じ葉の数が2であり且つ困難さパラメータが7であれば、順位付部13は、その条件の更新後スコアを(1/2)×7=7/2と算出する。順位付部13は、成立するアタックツリー含まれる全ての条件について更新後スコアを算出する。
【0035】
次に、順位付部13は、不成立条件候補群103を記憶部15から取得する。そして、順位付部13は、各不成立条件候補について、各々に含まれる各条件の更新後スコアを用いて優先度判定用スコアを算出する。この際、順位付部13は、各条件の否定のスコアとして、算出した各条件の更新後スコアを用いる。また、順位付部13は、「かつ(AND)」については更新後スコアを加算して不成立条件候補の優先度判定用スコアを算出する。例えば、NOT(条件P)かつNOT(条件Q)かつNOT(条件R)という不成立条件候補であり、条件P、条件Q、条件Rのそれぞれの更新後スコアが2、4/5、4である場合で説明する。この場合、順位付部13は、その不成立条件候補の優先度判定用スコアを2+4/5+4=6.8と算出する。この際、順位付部13は、既に満たされていない条件については更新後スコアを0とする。
【0036】
その後、順位付部13は、優先度判定用スコアの低い順に昇順で不成立条件候補をソートして優先度順に並べる。そして、順位付部13は、優先度順にソートした不成立条件候補の情報を出力部14へ出力する。
【0037】
出力部14は、優先度順に並べられた不成立条件候補の情報の入力を順位付部13から取得する。そして、出力部14は、並べられた順に優先度を付加して不成立条件候補を並べて
図6に示す優先度付き仕様変更候補リスト100を生成して出力する。
図6は、優先度付き仕様変更候補リストの一例を示す図である。例えば、出力部14は、モニタなどに優先度付き仕様変更候補リスト100を表示させて、どの条件を満たさなくするのが良いか優先順位を付けて利用者に対して提示する。
【0038】
次に、具体例を用いて、本実施例に係る情報処理装置1による優先度判定用スコアの算出処理の全体を説明する。
図7は、アタックツリーの具体例を示す図である。ここでは、アタックツリー201及び202の2つが存在する場合で説明する。
【0039】
アタックツリー201は、Adversarial Example/Evasionによる攻撃の条件を表す。アタックツリー201は、条件#2A、#2B、#3、#4B、#6B又は#7Aが記述された8つの葉を有する。アタックツリー202は、Poisoningによる攻撃の条件を表す。アタックツリー202は、条件#1、#2B、#3、#4B、#6B及び#7Aが記述された6つの葉を有する。
【0040】
条件#1は、「攻撃者が学習処理を実行できる」という条件である。条件#2Aは、「攻撃者が推定処理を1回程度以上実行できる」という条件である。条件#2Bは、「攻撃者が推定処理を千回程度実行できる」という条件である。条件#3は、「攻撃者が出力結果を入手できる」という条件である。条件#4Bは、「攻撃者がシステムのデータを1個以上入手できる」という条件である。条件#6Bは、「攻撃者が学習済みモデルを入手できる」という条件である。条件#7Aは、「攻撃者が類似データを1個以上入手できる」という条件である。
【0041】
図8は、入力情報の一例を示す図である。情報処理装置1は、
図8に示す、木構造情報101,困難度情報21及び条件合致状況情報22を取得する。
【0042】
この場合、木構造情報101は、
図8に示すように、アタックツリー201の構造を表すAdversarial Example条件の論理式及びアタックツリー202の構造を表すPoisoning条件の論理式を含む。
【0043】
また、困難度情報21は、アタックツリー201及び202の葉に記述された、条件#1、#2A、#2B、#3、#4B、#6B及び#7Aの困難さパラメータを含む。条件#1の困難さパラメータは10である。また、条件#2Aの困難さパラメータは5である。また、条件#2Bの困難さパラメータは5である。また、条件#3の困難さパラメータは10である。また、条件#4Bの困難さパラメータは4である。また、条件#6Bの困難さパラメータは3である。また、条件#7Aの困難さパラメータは8である。
【0044】
また、条件合致状況情報22は、アタックツリー201及び202の葉に記述された、条件#1、#2A、#2B、#3、#4B、#6B及び#7Aの条件合致状況を含む。条件#1は満たされている。また、条件#2Aは満たされている。また、条件#2Bは満たされている。また、条件#3は満たされている。また、条件#4Bは満たされている。また、条件#6Bは満たされていない。また、条件#7Aは満たされている。
【0045】
論理分析部11は、木構造情報101と条件合致状況情報22とを用いて、アタックツリー201及び202のいずれも成立していると判定し、両方の木構造を含む
図2に示した木構造情報101を成立ツリー群102として格納する。
【0046】
抽出部12は、成立ツリー群102に登録された2つの論理式のうちAdversarial Example条件の論理式を取得する。
図9は、Adversarial Example条件について最上位攻撃成立条件を否定する論理式の展開を示す図である。抽出部12は、取得した論理式の全体を否定する
図9に示す論理式211を生成する。次に、抽出部12は、論理式211を成立させるための条件を表す論理式212を生成する。次に、抽出部12は、論理式212を展開して論理式213を生成する。抽出部12は、論理式213をさらに展開して論理式214を生成する。これにより、Adversarial Example条件を否定する論理式の展開が完了する。
【0047】
図10は、論理式の分解を説明するための図である。次に、抽出部12は、
図9の展開が完了した論理式214をORで分けるように分解して、
図10の論理式群215に示すように1つずつの論理式とする。ここで、抽出部12は、ANDで繋がれた論理式の中に同じ条件が含まれる場合、その条件を1つにまとめる。次に、抽出部12は、分解した論理式のうち同一の論理式を1つにまとめて、論理式群216とする。これにより、展開された論理式の分解が完了する。
【0048】
図11は、論理式の冗長表現の省略を説明するための図である。次に、抽出部12は、論理式群217に示すように、同じ条件式の後ろにANDがついている場合、冗長な条件と考えられるため、ANDの後ろの条件を取り除いた論理式にまとめる。
【0049】
例えば、論理式群217における3つの論理式219において(NOT(#6B))AND(NOT(#2B))は同一である。この場合、(NOT(#6B))AND(NOT(#2B))が成立すれば、後のANDで繋がる条件は成否がいずれであっても元の論理式は否定される。すなわち、3つの論理式219は、すべて(NOT(#6B))AND(NOT(#2B))という論理式に含まれる。そこで、抽出部12は、3つの論理式219を、(NOT(#6B))AND(NOT(#2B))という論理式にまとめる。このようにして
図10の論理式群216における冗長表現を省略して、抽出部12は、論理式群218を生成する。
【0050】
この論理式群218に含まれる4つの論理式で示される条件がAdversarial Example条件についての不成立条件候補である。すなわち、この論理式群218に含まれる4つの論理式のいずれかを成立させることで、Adversarial Example/Evasionによる攻撃を回避できる。
【0051】
次に、抽出部12は、成立ツリー群102に登録された2つの論理式のうちPoisoning条件の論理式を取得する。
図12は、Poisoning条件についての不成立条件候補の抽出を説明するための図である。抽出部12は、取得した論理式の全体を否定する
図12に示す論理式221を生成する。次に、抽出部12は、論理式221を成立するための論理式222を生成する。次に、抽出部12は、論理式222を展開して論理式223を生成する。次に、抽出部12は、論理式223を分解して、冗長表現があれば省略することで、論理式群224を生成する。
【0052】
この論理式群224含まれる4つの論理式で示される条件がPoisoning条件についての不成立条件候補である。すなわち、この論理式群224に含まれる4つの論理式のいずれかを成立させることで、Poisoningによる攻撃を回避できる。
【0053】
さらに、抽出部12は、論理式群218で示されるAdversarial Example条件についての不成立条件候補と論理式群224で示されるPoisoning条件についての不成立条件候補とを統合する。
図13は、不成立条件候補の統合を説明するための図である。抽出部12は、
図13の論理式群231に示すように論理式群218と論理式群224とをANDで結ぶことで、不成立条件候補の統合を行なう。
【0054】
図14は、統合後の不成立条件候補の展開を説明するための図である。次に、抽出部12は、
図13に示す論理式において、論理式群218の各論理式と論理式群224との全ての組合せを生成し、それぞれの組合せにおいて論理式をANDで結ぶことで、統合した不成立条件候補の展開を実行する。これにより、抽出部12は、
図14に示す論理式群232を生成する。この際、抽出部12は、論理式233に示すように、同じ条件を示す論理式を1つにまとめる。さらに、抽出部12は、冗長表現の省略を実行する。
【0055】
図15は、最終的な不成立条件候補を示す図である。以上の処理を行うことで、抽出部12は、
図15に示す論理式群234を算出する。この論理式群234含まれる4つの論理式で示される条件がAdversarial Example条件及びPoisoning条件についての不成立条件候補である。すなわち、この論理式群234に含まれる4つの論理式のいずれかを成立させることで、Adversarial Exampleによる攻撃及びPoisoningによる攻撃のいずれも回避できる。抽出部12は、この論理式群234に含まれる4つの論理式を不成立条件候補群103として記憶部15に格納する。
【0056】
順位付部13は、成立ツリー群102に含まれる木構造と条件合致状況情報を組み合わせる。
図16は、アタックツリーに条件合致状況情報を付加した図である。この場合、アタックツリー201及び202のいずれも成立する。そこで、アタックツリー201及び202のそれぞれの各葉及び枝分岐の条件合致状況を付加すると、アタックツリー201及び202は、
図16のように表される。
図16では、枝分岐の上に葉がある場合、その葉に条件合致状況を付加した。
【0057】
順位付部13は、アタックツリー201のうち部分木240は成立していないので、同一の葉の数の勘定から取り除く。そして、順位付部13は、アタックツリー201及び202のうちの同一の葉の数を数える。ここでは、順位付部13は、条件#1の葉は1個、条件#2Aの葉は0個、条件#2Bの葉は2個、条件#3の葉は2個、条件#4Bの葉は2個、条件#6Bの葉は0個、条件#7Aの葉は2個とする。次に、順位付部13は、数えた同一の葉の数から、各条件の基礎スコアを算出する。ここでは、順位付部13は、条件#1の基礎スコアは1、条件#2Aの基礎スコアは0、条件#2Bの基礎スコアは1/2、条件#3の基礎スコアは1/2、条件#4Bの基礎スコアは1/2、条件#6Bの基礎スコアは0、条件#7Aの基礎スコアは1/2とする。
【0058】
そして、順位付部13は、困難度情報21に含まれる各困難さパラメータと基礎スコアとを掛け合わせて、各条件の更新後スコアを算出する。
図17は、算出される更新後スコアを示す図である。ここでは、順位付部13は、更新後スコア241に示すように各条件の更新後スコアを算出する。条件#1の更新後スコアは10である。また、条件#2Aの更新後スコアは0である。また、条件#2Bの更新後スコアは5/2である。また、条件#3の更新後スコアは5である。また、条件#4Bの更新後スコアは2である。また、条件#6Bの更新後スコアは0である。また、条件#7Aの更新後スコアは4である。
【0059】
図18は、各不成立条件候補の優先度判定用スコアの算出を説明するための図である。次に、順位付部13は、
図15の論理式群234で表される不成立条件候補群103に含まれる各不成立条件候補に算出した条件の更新後スコアを用いて、
図18の優先度判定用スコア242に示すように各不成立条件候補の優先度判定用スコアを算出する。例えば、((NOT(#6B)AND(NOT(#2B)))という不成立条件候補を例に説明する。この場合、NOT(#6B)の更新後スコアが0であり、NOT(#2B)の更新後スコアが5/2であるので、順位付部13は、0+2/5=5/2として優先度判定用スコアを算出する。ここで、順位付部13は、各条件の否定の値として、既に算出したそれぞれの条件の更新後スコアを用いる。
【0060】
順位付部13は、算出した優先度判定用スコアの低い順に昇順で
図15の論理式群234で示される不成立条件候補をソートする。そして、順位付部13は、ソートした不成立条件候補の情報を出力部14へ出力する。
【0061】
図19は、優先度付き仕様変更リストの具体例を示す図である。出力部14は、優先度にしたがってソートされた各不成立条件候補に順位を付加して並べた優先度付き仕様変更候補リスト250を生成する。ここでは、出力部14は、優先度を順位として表した。また、出力部14は、各不成立条件候補に仕様の変更を促す文言を付加して優先度付き仕様変更候補リスト250を生成した。出力部14は、生成した優先度付き仕様変更候補リスト250を利用者に提供する。
【0062】
図20は、実施例に係る情報処理装置による優先度付き仕様変更候補リストの生成処理のフローチャートである。次に、
図20を参照して、情報処理装置1による優先度付き仕様変更候補リストの生成処理の流れを説明する。
【0063】
情報処理装置1は、予め木構造情報101を取得して記憶部15に格納する。また、情報処理装置1は、入力端末2から入力された困難度情報21及び条件合致状況情報22を取得する(ステップS1)。
【0064】
次に、論理分析部11は、木構造情報101及び条件合致状況情報22を用いて成立するアタックツリーを特定して、成立するアタックツリーそれぞれの木構造情報101を含む成立ツリー群102を生成する(ステップS2)。論理分析部11は、成立ツリー群102を記憶部15に格納する。
【0065】
次に、抽出部12は、成立ツリー群102に含まれる木構造情報101を用いて成立するアタックツリーを不成立とするための各不成立条件候補を含む不成立条件候補群103を生成する(ステップS3)。抽出部12は、不成立条件候補群103を記憶部15に格納する。
【0066】
順位付部13は、成立ツリー群102に含まれる木構造情報101を取得する。そして、順位付部13は、木構造情報101における同じ葉の数を数えて条件毎に基準スコアを算出する(ステップS4)。
【0067】
次に、順位付部13は、困難度情報21に登録された各条件の困難さパラメータを取得して、困難さパラメータ及び基準スコアを用いて、条件毎に更新後スコアを算出する(ステップS5)。
【0068】
次に、順位付部13は、不成立条件候補群103を取得して、各条件の更新後スコアを用いて不成立条件候補毎の優先度判定用スコアを算出する(ステップS6)。その後、順位付部13は、優先度判定用スコアの低い順に不成立条件候補を昇順にソートして、上から順に優先度を付ける。そして、順位付部13は、優先度判定用スコアの低い順に昇順にソートされた不成立条件候補の情報を出力部14へ出力する。
【0069】
出力部14は、優先度判定用スコアの低い順に昇順にソートされた不成立条件候補の情報の入力を順位付部13から取得する。そして、出力部14は、ソート順に優先度を付加して不成立条件候補を並べて
図6に示す優先度付き仕様変更候補リストを作成する。その後、出力部14は、優先度付き仕様変更候補リストを出力して利用者に提供する(ステップS7)。
【0070】
ここで、本実施例では、困難さパラメータを条件毎に異ならせたが、困難さパラメータを各条件で同じとしてもよい。その場合、順位付部13は、更新後スコアを用いずに基礎スコアにより不成立条件候補の順位付けを行うことが可能である。
【0071】
また、困難度情報21を入力端末2から入力されるものとして説明したが、情報処理装置1は、困難度情報21を予め取得して計算テーブルとして記憶部15に記憶して、その計算テーブルを用いて更新後スコアを算出してもよい。
【0072】
また、不成立条件候補群103について不成立条件候補となる条件の組み合わせが大量となる場合には、抽出部12は、各木や各部分木の単位で更新後スコアを評価して、スコアが大きいものは組み合わせる前に除外してもよい。攻撃毎に不成立条件候補を抽出して最後にANDで組み合わせて統合するためその最後の統合により不成立条件候補が大量に増える。そこで、抽出部12は、最後の統合の前に明らかにスコアが大きくなり優先度が低くなる木や部分木を除外しておく。これにより、不成立条件候補となる条件の組み合わせが大量となることを防ぐことが可能となる。
【0073】
また、順位付部13は、最終的に出力する優先度付き仕様変更候補リストにおいて基礎スコアが0の条件を含む不成立条件候補を除外してもよい。また、順位付部13は、基礎スコアが0の条件は式過多除外して不成立条件候補の優先度判定用スコアを評価してもよい。これは、基礎スコアが0の条件を除外することで不成立条件候補が簡単になることもあるためである。
【0074】
他にも、順位付部13は、本実施例では基礎スコアの算出時に葉の数で除算しているが、葉の数が少ないほど点が高くなるように基礎スコアを算出することができれば他の算出方法を用いてもよい。また、更新後スコアについても、順位付部13は、葉の数が少ないものとこんなんどが低いものが優先されるように算出できるのであれば、困難さパラメータと基礎スコアとの乗算以外の算出方法を用いてもよい。また、不成立条件候補の導出は必ずしも最小となるように変形しなくてもよい。言い換えれば、順位付部13は、冗長な表現のまま優先度判定用スコア算出及び仕様変更候補リストの作成を行ってもよい。
【0075】
以上に説明したように、本実施例に係る情報処理装置は、機械学習システムに対する攻撃を想定したアタックツリーの木構造情報を用いて、全ての攻撃を防ぐための不成立条件候補を抽出する。そして、情報処理装置は、各葉の成立不成立を表す条件合致状況情報及び困難情報を用いて、重複が多い方が高く且つ不成立にすることが容易である方が高くなるように各不成立条件候補のスコアを算出して、不成立条件候補の優先度を決定して利用者に通知する。重複が多いほど1つの仕様の変更で攻撃を防ぎやすくなり、且つ、不成立にすることが容易な仕様ほど変更し易いため、利用者は、攻撃に対する対策を講じやすい仕様の変更を把握することが可能となる。したがって、攻撃への対応の選定を効率化することができ、機械学習システムに対する攻撃を防ぐことが容易となり、機械学習システムの安全性を向上させることは可能となる。
【0076】
(ハードウェア構成)
図21は、情報処理装置のハードウェア構成図である。以上の実施例で説明した情報処理装置1は、
図21のようなハードウェア構成で実現することが可能である。例えば、情報処理装置1は、CPU(Central Processing Unit)91、メモリ92、ハードディスク93及びネットワークインタフェース94を有する。CPU91は、バスを介して、メモリ92、ハードディスク93及びネットワークインタフェース94と接続される。
【0077】
ネットワークインタフェース94は、情報処理装置1と外部装置との通信のためのインタフェースである。ネットワークインタフェース94は、例えば、CPU91と入力端末2との間の通信を中継する。
【0078】
ハードディスク93は、補助記憶装置である。ハードディスク93は、
図1に例示した記憶部15の機能を実現する。また、ハードディスク93は、
図1に例示した、論理分析部11、抽出部12、順位付部13及び出力部14の機能を実現するためのプログラムを含む各種プログラムを格納する。
【0079】
メモリ92は、主記憶装置である。メモリ92は、例えば、DRAM(Dynamic Random Access Memory)である。
【0080】
CPU91は、ハードディスク93に格納された各種プログラムを読み出してメモリ92に展開して実行する。これにより、CPU91は、
図1に例示した、論理分析部11、抽出部12、順位付部13及び出力部14の機能を実現する。
【符号の説明】
【0081】
1 情報処理装置
2 入力端末
11 論理分析部
12 抽出部
13 順位付部
14 出力部
15 記憶部
21 困難度情報
22 条件合致状況情報
101 木構造情報
102 成立ツリー群
103 不成立条件候補群