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

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

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

特開2023-25861モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム
<>
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図1
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図2
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図3
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図4
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図5
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図6
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図7
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図8
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図9
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図10
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図11
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図12
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図13
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図14
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図15
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図16
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図17
  • 特開-モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023025861
(43)【公開日】2023-02-24
(54)【発明の名称】モデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラム
(51)【国際特許分類】
   G06F 21/62 20130101AFI20230216BHJP
   G06F 21/55 20130101ALI20230216BHJP
   G06N 20/00 20190101ALI20230216BHJP
   G06F 16/2458 20190101ALI20230216BHJP
【FI】
G06F21/62
G06F21/55
G06N20/00
G06F16/2458
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021131268
(22)【出願日】2021-08-11
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】奥田 哲矢
(72)【発明者】
【氏名】三浦 尭之
(72)【発明者】
【氏名】長谷川 聡
(72)【発明者】
【氏名】岩花 一輝
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175FB04
(57)【要約】
【課題】エッジAI環境のようなメモリ量の少ない環境でもモデル抽出攻撃の検知を行うことを可能とする。
【解決手段】セキュア領域を有するモデル抽出攻撃検知装置であって、前記セキュア領域上に機械学習モデルと分析部を備え、前記分析部は、ユーザからのクエリと、当該クエリに対する前記機械学習モデルによる推論結果とに基づいて、前記クエリの情報量を算出し、前記情報量の分布に基づいて、モデル抽出攻撃の有無を判定する。
【選択図】図17
【特許請求の範囲】
【請求項1】
セキュア領域を有するモデル抽出攻撃検知装置であって、
前記セキュア領域上に機械学習モデルと分析部を備え、
前記分析部は、ユーザからのクエリと、当該クエリに対する前記機械学習モデルによる推論結果とに基づいて、前記クエリの情報量を算出し、前記情報量の分布に基づいて、モデル抽出攻撃の有無を判定する
モデル抽出攻撃検知装置。
【請求項2】
前記分析部は、前記分布の平均が閾値よりも大きく、かつ、前記分布の分散が閾値よりも小さい場合に、モデル抽出攻撃有りであると判定する
請求項1に記載のモデル抽出攻撃検知装置。
【請求項3】
請求項1又は2に記載の前記モデル抽出攻撃検知装置と、リソース管理装置と、認証装置とを備えるリモート認可制御システムであって、
前記モデル抽出攻撃検知装置が、前記認証装置から、前記モデル抽出攻撃検知装置における前記セキュア領域上にアクセス制御リスト、及び、前記分析部に相当するプログラムをダウンロードし、
前記モデル抽出攻撃検知装置が、前記リソース管理装置から、前記セキュア領域上に前記機械学習モデルのステートをダウンロードし、
前記モデル抽出攻撃検知装置が、ユーザから前記機械学習モデルの利用要求を受信した場合に、前記アクセス制御リストに基づいて、前記ユーザによる前記機械学習モデルの利用可否を判断し、利用可であり、かつ、前記分析部によりモデル抽出攻撃をしていないと判定される場合に、前記機械学習モデルを前記ユーザに利用させる
リモート認可制御システム。
【請求項4】
前記認証装置は、初期登録時に、前記ユーザのユーザIDと、前記セキュア領域のIDとを紐付けて登録し、
前記ユーザによる前記機械学習モデルの要求時において、前記ユーザから送信されたユーザIDと、前記モデル抽出攻撃検知装置から取得した前記セキュア領域のIDとが登録情報として登録されているか否かを確認することにより、不正の有無を判断する
請求項3に記載のリモート認可制御システム。
【請求項5】
セキュア領域を有するモデル抽出攻撃検知装置が実行するモデル抽出攻撃検知方法であって、
前記セキュア領域上に機械学習モデルと分析部が備えられ、
前記分析部が、ユーザからのクエリと、当該クエリに対する前記機械学習モデルによる推論結果とに基づいて、前記クエリの情報量を算出し、前記情報量の分布に基づいて、モデル抽出攻撃の有無を判定する
モデル抽出攻撃検知方法。
【請求項6】
コンピュータを、請求項1又は2に記載の前記モデル抽出攻撃検知装置における分析部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、TEE上で実行されるDNN(Deep Neural Network)に対するモデル抽出攻撃への対策に関連するものである。
【背景技術】
【0002】
近年、AI(特にDNN)のサービス活用が非常に活発である。各社は独自のDNNを開発することでサービス競争を行っているため、DNNのステートやパラメータを改ざんや漏洩から守ることはビジネスの上で非常に重要である。
【0003】
そこで、DNNをTEE(Trusted Execution Environment)上で安全に実行する技術が知られている(非特許文献1)。TEEにより、データを外部に漏洩させないセキュア領域を実現でき、TEE上でDNNを実行することで、DNNの情報が直接的に外部に漏洩することを防止できる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】A. Gangal, M. Ye and S. Wei, "HybridTEE: Secure Mobile DNN Execution Using Hybrid Trusted Execution Environment," 2020 Asian Hardware Oriented Security and Trust Symposium (AsianHOST), Kolkata, India, 2020, pp. 1-6, doi: 10.1109/AsianHOST51057.2020.9358260.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、上記の従来技術では、DNNに対するクエリの制限は行っていないため、クエリとレスポンスのみから元モデルを復元するモデル抽出攻撃(Model Extraction/Stealing)によるモデルの詐取を防げないという課題があった。
【0006】
モデル抽出攻撃は、現状10^4程度と非常に多いクエリ数が必要であり、クラウドAI等ではレート制限等によるアクセス制御で対策が可能である。しかし、エッジAI等では、純粋なアクセス制御のみでは対策ができない。また、研究の進展によりモデル抽出攻撃に必要なクエリ数が減少することも予想されるため、今後大きな脅威になる可能性がある。特に、システム管理者の手を離れたエッジAI環境においては、メモリ量が少ないこともあり、従来技術ではモデル抽出攻撃の検知及び対策が難しい。
【0007】
本発明は上記の点に鑑みてなされたものであり、エッジAI環境のようなメモリ量の少ない環境でもモデル抽出攻撃の検知を行うことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
開示の技術によれば、セキュア領域を有するモデル抽出攻撃検知装置であって、
前記セキュア領域上に機械学習モデルと分析部を備え、
前記分析部は、ユーザからのクエリと、当該クエリに対する前記機械学習モデルによる推論結果とに基づいて、前記クエリの情報量を算出し、前記情報量の分布に基づいて、モデル抽出攻撃の有無を判定する
モデル抽出攻撃検知装置が提供される。
【発明の効果】
【0009】
開示の技術によれば、エッジAI環境のようなメモリ量の少ない環境でもモデル抽出攻撃の検知を行うことが可能となる。
【図面の簡単な説明】
【0010】
図1】実施例1のシステム構成図である。
図2】実施例1のシーケンス図である。
図3】モデル抽出攻撃を説明するための図である。
図4】モデル抽出攻撃の検知方法を説明するための図である。
図5】モデル抽出攻撃の検知方法を説明するための図である。
図6】モデル抽出攻撃の検知方法を説明するための図である。
図7】モデル抽出攻撃の検知方法を説明するための図である。
図8】モデルサービス提供装置10の構成図である。
図9】実施例2におけるシステム構成図である。
図10】リソースアクセス装置の構成図である。
図11】リソース管理装置の構成図である。
図12】認証装置の構成図である。
図13】実施例2における具体的なシステム構成図である。
図14】実施例2におけるシーケンス図である。
図15】実施例2におけるシーケンス図である。
図16】実施例2におけるシーケンス図である。
図17】実施例2におけるシーケンス図である。
図18】装置のハードウェア構成図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【0012】
(実施の形態の概要)
OSとは独立してクリティカルな処理を安全に実行できる機能であるTEE(Trusted Execution Environment)が近年のマシンには含まれている。当該マシンには、サーバ等の他、スマートフォン等の端末も含まれている。
【0013】
TEE機能を持つマシンは、データを外部に漏洩させないセキュア領域(これをEnclaveと呼んでもよい)を有する。特に、Intel(登録商標)のSGX等のTEEにおいては、セキュア領域内で正しいプログラムが動作していることをセキュア領域外(例えば、マシンと通信する遠隔のユーザやサーバ等)に対して保証する仕組み(リモートアテステーション)が備えられている。なお、本実施の形態で使用する「リモートアテステーション」は、Intel(登録商標)のSGXにおける仕組みを想定しているが、これに限定されるわけではなく、同様の機能を持つ仕組みであればどのようなものを使用してもよい。
【0014】
本実施の形態では、リモートアテステーションによる認証の後に、ACL(各リソースに対するユーザのアクセス可否を記述したリスト)、モデル抽出攻撃検知のための分析を行うプログラム(「分析機能」と呼ぶ)、及びリソースがTEEのセキュア領域内にダウンロードされる。
【0015】
本実施の形態では、上記リソースはDNNのステート(パラメータと呼んでもよい)である。TEE上のACLによりリソース利用可と判断され、かつ、モデル抽出攻撃をしていないと判断されれば、ユーザからのDNN利用が可能になる。
【0016】
モデル抽出攻撃検知のための分析機能に関しては、上記のTEE環境が、メモリ量の少ないエッジ環境(例:基地局の近くに設置されたMECサーバ等)に置かれる場合でも、モデル抽出攻撃を検知することが可能である。
【0017】
本実施の形態におけるモデル抽出攻撃検知のための分析機能に関しては、TEE環境に限らずに使用することが可能である。以下、まず、モデル抽出攻撃検知のための分析機能を実施例1として説明し、その後に、上述したTEE環境のアクセス制御の下で、モデル抽出攻撃検知のための分析機能を用いる場合の例を実施例2として説明する。
【0018】
(実施例1:モデル抽出攻撃検知のための分析機能について)
図1に、実施例1におけるシステム構成例を示す。図1に示すように、本システムでは、モデルサービス提供装置10、及び端末30がネットワーク20に説明されている。なお、モデルサービス提供装置10を「モデル抽出攻撃検知装置」と呼んでもよい。モデルサービス提供装置10は、例えばエッジ環境に備えられるサーバである。端末30は、PCやスマートフォン等のユーザが使用する一般的な端末である。
【0019】
モデルサービス提供装置10は、DNNを備える。実施例1ではTEE環境に限定されないが、モデルサービス提供装置10がTEE環境を備え、TEE環境上でDNNが動作することとしてもよい。また、DNNは機械学習モデルの一例である。
【0020】
図2に示すように、モデルサービス提供装置10は、端末30からクエリを受信し(S101)、クエリに対するDNNによる推論結果(分類結果等)をレスポンスとして端末30に返す(S102)。
【0021】
悪意のある端末30は、上記のクエリとレスポンスを利用して、モデルサービス提供装置10におけるDNN(モデル)の情報(パラメータ等)を抽出するモデル抽出攻撃を行う。
【0022】
図3を参照して、モデル抽出攻撃の例を説明する。「参考文献1:[HKT+2020] Yu, H., Yang, K., Zhang, T., Tsai, Y. Y., Ho, T. Y., & Jin, Y. Cloudleak: Large-scale deep learning models stealing through adversarial examples. NDSS 2020.」、「参考文献2: [JSD+2019] M. Juuti, S. Szyller, A. Dmitrenko, S. Marchal, and N. Asokan. PRADA: protecting against DNN model stealing attacks. IEEE Euro S&P, 2019」に記載のように、被害者モデル(攻撃対象のモデル)の境界付近(分類の境界付近)のデータを用いることにより、効率よくモデルの情報を盗むことが可能であることが知られている。分類の境界付近のデータは攻撃者によって意図的に作成可能である。
【0023】
図3に示すように、攻撃者は、予測したモデルから分類の境界付近のクエリを作成し、被害者モデルにクエリを送信することで推論結果をレスポンスとして得る(S2)。このクエリと推論結果に基づき学習を行って、モデルを更新する(S3)。これにより、被害者モデルを直接的に盗むことなく、被害者モデルと同等の海賊版モデルを作成することができる。
【0024】
<モデル抽出攻撃検知の課題>
上記のような攻撃のためのクエリのデータ分布は、正規のデータ分布から外れた異常なデータ分布となるため、クエリのデータ分布を基に攻撃を検知することが可能である(参考文献2:[JSD+2019])。
【0025】
しかし、クエリのデータ分布を調べるためには、クエリ自体を一定数保存する必要があるため、TEE環境やエッジ環境等のようにメモリ量が少ない環境で実現することが難しい。
【0026】
また、決定木モデルで攻撃者のクエリの情報量を計算し、一定の情報量を得た場合に攻撃であると判断する技術も知られている(参考文献3:[KMA+2018] M.Kesarwani, B.Mukhoty, V.Arya, and S.Mehta. 2018. Model Extraction Warning in MLaaS Paradigm. ACSAC 2018.)。
【0027】
上記の手法でも、クエリそのものを保存しており、TEE環境やエッジ環境等のようにメモリ量が少ない環境で実現することが難しい。
【0028】
<提案手法>
本実施の形態におけるモデルサービス提供装置10は、以下で説明する手法により、クエリ自身を保存することなく、モデル抽出攻撃を検知することが可能である。そのため、メモリ量が少ない環境でも実現可能である。
【0029】
モデルサービス提供装置10は、モデルの出力結果である確信度を利用する。図4に示すように、攻撃に使用される分類の境界付近のクエリによる出力結果の確信度は低く、また、クラス間の確信度の差が小さい。確信度の低いクエリにより、攻撃者はより多くのモデルの情報を得ることができる。
【0030】
モデルサービス提供装置10は、クエリとレスポンスから得られる確信度から、攻撃者が得るエントロピー(情報量と呼んでもよい)を計算する。より具体的には、一般的な方法で、クエリとレスポンスから検知用の決定木を学習して、決定木におけるエントロピー(情報量)を計算する。決定木からエントロピーを計算すること自体は参考文献3:[KMA+2018]に開示されている。すなわち、下記の式により、エントロピーを計算する。
【0031】
Entropy(y)=‐Σ i=1log(y
「Σ i=1log(y)」は、「ylog(y)」をi=1~kだけ足し合わせる計算である。y=f(x)は確信度である。yは、クエリxがクラスiである確信度(確率)である。
【0032】
xが分類の境界付近となるデータである場合、確信度は小さくなるため、Entropy(y)は大きくなる。
【0033】
本実施の形態では、モデルサービス提供装置10は、多くのクエリ‐レスポンスのペアを用いてエントロピーの分布を得て、当該分布からモデル抽出攻撃の有無を判断する。そのため、既存手法(参考文献3:[KMA+2018])のようにクエリそのものを保存する必要がないので、メモリ量を削減できる。
【0034】
つまり、M次元クエリを保存した場合にはO(m)のオーダーの量になるのに対し、エントロピーを保存した場合にはO(1)のオーダーの量になり、メモリ量を大幅に削減することができる。
【0035】
具体的には、例えば、図5のAに示すように、エントロピーの分布の平均が一定値より大きく、分散が一定値より小さい場合に、モデル抽出攻撃有であると判断する。また、正常なクエリ群(a)とモデル抽出攻撃(b)とを比較した図6の例においては、(b)における点線の○で囲んだ部分の分布が異常な分布に相当する。
【0036】
また、モデルサービス提供装置10は、図7に示すような混合ガウス分布クラスタリングにより判定を行ってもよい。
【0037】
これは、あるデータがどのガウス分布に属するかを推定する手法であり、クラスタ数を指定し、クラスタ毎のガウス分布の平均μと標準偏差σを計算する。平均μと標準偏差σに閾値を設定し、例えば、平均が閾値より大きく、標準偏差が閾値より小さい分布のデータを異常なガウス分布としてクラスタリングされたデータであると判断し、そのデータをモデル抽出攻撃のデータであると判定する。
【0038】
<モデルサービス提供装置100の構成例>
図8に、モデルサービス提供装置10の構成例を示す。図7に示すように、モデルサービス提供装置10は、モデル11、クエリカウント部12、クエリエントロピー分析部13、判定部14を有する。クエリエントロピー分析部を「分析部」と呼んでもよい。モデル11は、クエリに対して推論結果(レスポンス)を返すDNNである。
【0039】
クエリカウント部12は、端末30から受信するクエリの回数を計測し、回数が予め定めた閾値を超えた場合に、異常(モデル抽出攻撃)であると判定する。なお、閾値と比較するクエリの回数は、所定の時間内での回数であってもよい。
【0040】
クエリエントロピー分析部13は、クエリと、DNN11による推論結果とに基づいて、前述したクエリエントロピーを算出し、クエリエントロピーの分布を計算し、分布に基づいて、モデル抽出攻撃の検知を行う。例えば、前述したように、分布の平均が閾値よりも大きく、分散が閾値よりも小さい場合に、異常(モデル抽出攻撃)であると判定する。
【0041】
なお、上記の閾値との比較判定は、判定部14が行うこととしてもよい。また、判定部190が、クエリ回数が閾値を超え、かつ、「分布の平均が閾値よりも大きく、分散が閾値よりも小さい」ことを検知した場合に、異常(モデル抽出攻撃)であると判定してもよい。また、クエリ回数の条件を用いずに、「分布の平均が閾値よりも大きく、分散が閾値よりも小さい」ことを検知した場合に、異常(モデル抽出攻撃)であると判定してもよい。また、クエリエントロピーを用いずに、クエリ回数が閾値を超えた場合に、異常(モデル抽出攻撃)であると判定してもよい。
【0042】
上記の処理において、モデルサービス提供装置10において保存しておく情報は、クエリ自体ではなく、クエリ回数やクエリエントロピー(情報量)の分布の情報であるので、消費されるメモリ量は小さい。
【0043】
上記の判定処理により、異常(モデル抽出攻撃)が検知された場合に、例えば判定部14が、モデル抽出攻撃を行っている端末30からのアクセスを遮断するなどの対策を実行する。
【0044】
(実施例2)
デジタルコンテンツの利用可否を制御する技術として、DRM(Digital Rights Management)やアクセス制御リスト(ACL(Access Control List))によるアクセス制御が知られている。
【0045】
従来のACLによるアクセス制御では、ユーザがリソースを使用する際にアクセス制御リストなどを用いてアクセス可否を判定し、許可されている場合、サーバからユーザ端末にリソースをダウンロードして利用する。そのため、ダウンロード待ち時間が長くなる問題があった。
【0046】
実施例2においては、上記の点に鑑みて、従来技術よりも安全でかつ利用時の待ち時間を短縮できるリソースの利用可否制御技術(リモート認可制御システム)を採用するとともに、その技術の中で、実施例1で説明したモデル抽出攻撃検知の技術を使用する。
【0047】
<実施例2:システム構成>
図9に、実施例2におけるリモート認可制御システムの構成例を示す。図9に示すように、実施例2におけるリモート認可制御システムは、リソースアクセス装置100、リソース管理装置200、認証装置300、ユーザ端末400を有し、それぞれネットワークに接続されている。リソースアクセス装置を「モデル抽出攻撃検知装置」と呼んでもよい。
【0048】
また、リソースアクセス装置100、リソース管理装置200、認証装置300をそれぞれ、「Local Authorization & Resource Server」、「Central Resource Server」、「Central Authorization Server」と呼んでもよい。
【0049】
リソースアクセス装置100、リソース管理装置200、認証装置300はそれぞれ、物理マシンであってもよいし、クラウド上の仮想マシンであってもよい。なお、リソースアクセス装置100は、ネットワークのエッジ、あるいはユーザが存在するローカルのネットワーク上等に設置されることを想定している。つまり、リソースアクセス装置100はエッジAI環境に相当する。
【0050】
リソースアクセス装置100はTEEを有する装置であり、認証装置300からACL及び分析機能(例:クエリエントロピー分析部に相当するプログラム)をダウンロードし、TEEのセキュア領域上においてACL、分析機能を管理するとともに、ACL及びモデル抽出攻撃検知結果を用いたリソースアクセス制御を実行する。また、リソースアクセス装置100は、TEEの環境において、DNN(Deep Neural Network)等の任意のアプリケーションを実行することができる。
【0051】
リソース管理装置200は、リソースの管理を行う。認証装置300は、認証処理を行うとともに、ACL、分析機能を管理し、ACL、分析機能の発行制御等を行う。ユーザ端末400は、PC、スマートフォン等のブラウザを備える一般的な端末である。
【0052】
(実施例2:装置の機能構成例)
図10に、リソースアクセス装置100の機能構成例を示す。図9に示すように、リソースアクセス装置100は、セキュア領域110、通信部120、データ格納部130、データ処理部140を有する。
【0053】
セキュア領域110は、前述したEnclaveであり、機密性が保たれた保護領域である。この中のデータやプログラムについては、外部からその内容を知ることができない。セキュア領域110の外部では、通常のデータ格納、データ処理(プログラム実行)、送受信を行うことが可能である。
【0054】
セキュア領域110内では機密性を保ったままデータ格納、データ処理(プログラムの実行)が可能である。図10には、セキュア領域110内でこれらを行う機能部として、セキュアデータ格納部111、セキュア処理部112が示されている。後述するように、セキュア領域110においてアプリケーション160、DNN、分析機能等が実行される。また、セキュア領域110の外ではアプリケーション150が実行される。
【0055】
セキュア領域110自体は既存技術により実現可能である。セキュア領域110を実現する既存技術としてどのような技術を使用してもよい。例えば、メインのCPUやメモリとはハードウェア的に独立した別チップとしてセキュア領域110を実現してもよいし、暗号技術・認証技術を活用してソフトウェア的にセキュア領域110を実現してもよい。ソフトウェア的にセキュア領域110を実現する技術として、例えば、前述したSGXがあり、本実施の形態では一例としてSGXを使用することを想定している。
【0056】
本実施の形態におけるセキュア領域110は、リソースアクセス装置100において、ホストアプリケーション(セキュア領域外で動作するアプリケーション)からの命令により動的に起動(生成)される隔離された実行環境である。
【0057】
図11に、リソース管理装置200の機能構成図を示す。図11に示すように、リソース管理装置200は、認証処理部210、リソース制御部220、リソース格納部230を有する。認証処理部210は、セキュア領域110に対するリモートアテステーション、認証装置300との間の相互認証等を行う。
【0058】
リソース格納部230にはリソース(本実施例2ではステート)が格納されている。なお、リソース格納部230は、リソース管理装置200の外部にあってもよい。リソース制御部220は、リソースのダウンロード等を行う。
【0059】
図12に、認証装置300の機能構成図を示す。図12に示すように、認証装置300は、認証処理部310、データ格納部320、ACL制御部330、ACL格納部340を有する。認証処理部310は、セキュア領域110に対するリモートアテステーション、リソース管理装置200との間の相互認証、ユーザIDとTEE IDを用いた不正検知等を行う。データ格納部320には、登録情報等が格納される。なお、データ格納部320は、認証装置300の外部にあってもよい。
【0060】
ACL格納部340にはACL、分析機能(プログラム)が格納されている。なお、ACL格納部340は、認証装置300の外部にあってもよい。ACL制御部330は、ACL、分析機能のダウンロード等を行う。
【0061】
以下、より具体的な構成と動作の例を説明する。
【0062】
<実施例2の具体例>
図13は、実施例2の構成図である。セキュア領域110の外部(REE上)には、アプリケーション150(以降、APP(REE)150と記述する)が動作しており、APP(REE)150によりユーザ端末400に対する要求/応答処理、セキュア領域110の生成、セキュア領域110との通信等が実行される。
【0063】
また、セキュア領域110では、DNN(Deep Neural Network)が推論を実行する。DNNの重みパラメータが「リソース」に相当し、実施例2ではこれをステート(state)と呼ぶ。
【0064】
また、前述したクエリカウント部12、クエリエントロピー分析部13、判定部14に相当するクエリカウント部170、クエリエントロピー分析部180、判定部190がセキュア領域110内で動作する。「クエリカウント部170、クエリエントロピー分析部180、判定部190」をまとめて「分析機能」と呼ぶ。
【0065】
セキュア領域110内ではTEE上のアプリケーション160(以降、APP(TEE)160と記述する)が動作しており、APP(TEE)160により、ACL、分析機能、及びステートの取得、ACLによるアクセス制御等が実行される。
【0066】
認証装置300から、リソースアクセス装置100におけるセキュア領域110内にACL、分析機能がダウンロードされる。また、リソース管理装置200からセキュア領域110内にステートがダウンロードされる。ACLには、各DNNに対するユーザのアクセス可否が記述されている。
【0067】
ユーザ端末400がDNN利用を要求すると、認証装置300による認証に成功した場合にのみ、セキュア領域110のAPP(TEE)160により、ACLを用いたアクセス制御及びモデル抽出攻撃検知が実行され、DNN利用OKである場合に、DNNによる推論結果がユーザ端末400に提供される。
【0068】
なお、実施例2では推論の手法としてDNNを使用しているが、DNN以外の機械学習の手法を使用してもよい。DNNは機械学習モデルの一例である。
【0069】
以下、実施例2の詳細動作を図14図16のシーケンスを参照して説明する。なお、実際の処理においては、リモートアテステーションの仲介を行う第三者検証機関や、公開鍵の正当性を証明する認証局等も使用されるが、これらは一般的な技術であるため、シーケンスには記載されていない。
【0070】
<初期登録時の動作>
図14は、ユーザ(ユーザ端末400)がDNNを利用するために必要な初期登録時の動作を示している。
【0071】
S201において、ユーザ端末400は、DRM初期化要求をリソースアクセス装置100に送信する。リソースアクセス装置100のAPP(REE)150は、S202において、DRM初期化要求を受信すると、セキュア領域110を生成する。セキュア領域110において、以降の処理を行うAPP(TEE)160が起動される。APP(TEE)160は、S203において、認証装置300に対してTEE初期登録要求を送信する。
【0072】
なお、DNNの構造はセキュア領域110の生成時に固定されるが、重みパラメータ(ステート)は後から変更可能である。
【0073】
TEE初期登録要求を受信した認証装置300の認証処理部310は、S204において、セキュア領域110に対するリモートアテステーションを実行する。ここではリモートアテステーションに成功したとする。以降の処理においてもリモートアテステーションに成功したものとして説明を行う。
【0074】
認証処理部310は、リモートアテステーションにより、セキュア領域110のID(TEE IDと記載する)を取得し、セキュア領域110の署名鍵に対応する公開鍵(Attestation Public Key)とともにデータ格納部320に格納する。
【0075】
なお、上記の例の他、予めTEE ID及び公開鍵が認証装置300に登録されている場合(あるいは所定のサーバに登録されている場合)において、S203で、リソースアクセス装置100が、使用するTEE IDを認証装置300に送信し、認証装置300において登録されているTEE IDが使用されることを確認することとしてもよい。
【0076】
S205において、認証処理部310は、初期登録完了の通知をリソースアクセス装置100に送信する。S206において、APP(TEE)160は、ユーザ初期登録要求をAPP(REE)150に送信する。S207において、APP(REE)150は、ユーザ初期登録要求をユーザ端末400に送信する。
【0077】
S208において、ユーザ端末400は、ユーザID、パスワード、及び同意を示す情報(「ID/PW/同意」と記載)をリソースアクセス装置100に送信する。同意を示す情報は、APP(REE)150とセキュア領域110のAPP(TEE)160を紐付けて使用することに同意することを示す情報である。
【0078】
ID/PW/同意は、APP(REE)150からAPP(TEE)160に渡され、APP(TEE)160から認証装置300に送信される(S209、S210)。
【0079】
ID/PW/同意を受信した認証装置300の認証処理部310は、ユーザIDとパスワードのハッシュ値をデータ格納部320に格納する。データ格納部320では、TEE IDとユーザIDとが対応付けられており、ユーザIDとTEE IDを結合する仮想的なテーブルが構成されている。なお、実際にユーザIDとTEE IDを対応付けて保存するテーブルを使用してもよい。
【0080】
S211において、認証処理部310は、バックチャネルで初期登録完了の通知をリソースアクセス装置100に送信する。APP(TEE)160からAPP(REE)150を経由してユーザ端末400に対してDRM初期化完了の通知が送信される(S212、S213)。
【0081】
<DNN利用前のステートDL時の動作>
図15は、ユーザ(ユーザ端末400)がDNNを利用する前における、リソースアクセス装置100にステートがダウンロードされるまでの動作を示している。
【0082】
S221において、ユーザ端末400が、DRM起動要求をリソースアクセス装置100に送信する。S222において、APP(REE)150がセキュア領域110を生成する。また、セキュア領域110において以降の処理を実行するAPP(TEE)160が読み込まれ、起動される。なお、セキュア領域110が起動中であれば、S222は不要である。
【0083】
S223において、APP(TEE)160は、アクセス制御リスト(ACL)要求を認証装置300に送信する。
【0084】
認証装置300のACL格納部340には、各リソースに対するユーザのアクセス可否を記述したACLが格納されている。また、ACL格納部340には、分析機能も格納されている。
【0085】
認証処理部310は、S224においてセキュア領域110に対するリモートアテステーションを実行し、S225において、ACL及び分析機能をACL格納部340から読み出し、それぞれ署名を付してAPP(TEE)160に送信する。
【0086】
署名付きのACL、署名付きの分析機能を受信したAPP(TEE)160は、S226において、署名検証用公開鍵を認証装置300に要求する。S227において、認証装置300の認証処理部310は、公開鍵の情報をAPP(TEE)160に送信する。
【0087】
S228において、APP(TEE)160は、受信した公開鍵を用いて、ACL及び分析機能の署名検証を行う。ここでは署名検証に成功したとする。以降の署名検証についても成功したものとして説明する。
【0088】
S229、S230において、APP(TEE)160からAPP(REE)150、ユーザ端末400に対してDRM起動完了が通知される。
【0089】
S231において、ユーザ端末400は、リソースアクセス装置100に対してステートDL要求を送信する。リソースアクセス装置100において、ステートDL要求はAPP(REE)150からAPP(TEE)160に通知される(S232)。
【0090】
S233において、APP(TEE)160は、ステートDL要求をリソース管理装置200に送信する。S234において、リソース管理装置200の認証処理部210は、セキュア領域110に対してリモートアテステーションを実行して、アテステーション情報を取得する。また、認証処理部310は、認証装置300との間で相互TLS認証を行う(S235)。
【0091】
アテステーション情報は、リソースアクセス装置100においてセキュア領域110に対して使用しているハードウェア及びソフトウェアに関する情報に署名が付されたものである。
【0092】
S236において、認証処理部210は、アテステーション情報を認証装置300に送信する。これは署名検証の依頼に相当する。認証装置300の認証処理部310は、公開鍵(Attestation Public Key)を用いてアテステーション情報を検証し、検証結果(認証結果)をアテステーション結果としてリソース管理装置200に送信する(S237)。
【0093】
リソース管理装置200のリソース格納部230にはステートが格納されている。S237のアテステーション結果により、リソース管理装置200の認証処理部210が、セキュア領域110の正当性(真正性)を確認すると、リソース制御部220は、リソース格納部230からステートを取得し、署名を付してAPP(TEE)160に送信する(S238)。S239において、APP(TEE)160は、ステートの署名検証を行う。
【0094】
S240において、APP(REE)150はユーザ端末400に対してステートDL完了通知を送信する。
【0095】
<DNN利用時の動作>
図16は、ユーザ(ユーザ端末400)がDNNを利用する前までの動作を示している。S251において、ユーザ端末400は、DNN利用要求をリソースアクセス装置100に送信する。
【0096】
S252において、APP(REE)150がAPP(TEE)160にDNN利用要求を送信する。DNN利用要求を受信したAPP(TEE)160は、認証/認可要求をAPP(REE)150に送信する(S253)。S254において、APP(REE)150がユーザ端末400に対して認証/認可要求を送信する。
【0097】
S255において、ユーザ端末400は、ID/PW/同意をリソースアクセス装置100に送信する。S256において、APP(REE)150はID/PW/同意をAPP(TEE)160に送信し、S257において、APP(TEE)160がID/PW/同意を認証装置300に送信する。
【0098】
認証装置300の認証処理部310は、S258において、セキュア領域110に対してリモートアテステーションを実行し、セキュア領域110のTEE IDを取得する。認証処理部320は、S257において取得したユーザIDとS258において取得したTEE IDとが紐づけられてデータ格納部320に格納されているか否かを確認することで、ユーザからのDNN利用要求の正当性を検証する(不正の有無の判断を行う)。これにより、ユーザID(及びパスワード)とTEEのいずれかが不正に利用された場合において不正を検知することができる。
【0099】
ここでは上記の検証(認証)に成功したものとし、認証処理部310は、S259において、認証結果をAPP(TEE)160に送信する。認証結果を受信したAPP(TEE)160は、S260において、セキュア領域110内に保持されているACLを用いて、ユーザから要求されたDNN利用の可否を判定する。
【0100】
なお、ここでのACLによる判定は、ACLの現時点の情報に基づく判定である。後述するモデル抽出攻撃の有無判定の結果、あるユーザに対するアクセス制御の内容が変更される場合がある(例:アクセス可―>アクセス不可)。
【0101】
S260において、ACLに基づいてユーザによるDNN利用がOKであると判断されたとすると、ステートがDNNに設定され、リソースアクセス装置100は、ユーザ端末400から送信されたクエリの受信を開始する。
【0102】
ユーザ端末400から順次送信されるクエリは、セキュア領域110におけるDNN及び分析機能(クエリカウント部170、クエリエントロピー分析部180)が受信する。
【0103】
図17に示すように、クエリカウント部160は、ユーザ端末400から受信するクエリの回数を計測し、回数が予め定めた閾値を超えた場合に、異常(モデル抽出攻撃)であると判定する(S261)。なお、閾値と比較するクエリの回数は、所定の時間内での回数であってもよい。
【0104】
また、クエリエントロピー分析部180は、クエリとDNNによる推論結果に基づいて、前述したクエリエントロピーを算出し、クエリエントロピーの分布を計算し、分布に基づいて、モデル抽出攻撃の検知を行う(S262)。例えば、前述したように、分布の平均が閾値よりも大きく、分散が閾値よりも小さい場合に、異常(モデル抽出攻撃)であると判定する。
【0105】
なお、上記の閾値との比較判定は、判定部190が行うこととしてもよい。また、判定部190が、クエリ回数が閾値を超え、かつ、「分布の平均が閾値よりも大きく、分散が閾値よりも小さい」ことを検知した場合に、異常(モデル抽出攻撃)であると判定してもよい。また、クエリ回数の条件を用いずに、「分布の平均が閾値よりも大きく、分散が閾値よりも小さい」ことを検知した場合に、異常(モデル抽出攻撃)であると判定してもよい。また、クエリエントロピーを用いずに、クエリ回数が閾値を超えた場合に、異常(モデル抽出攻撃)であると判定してもよい。
【0106】
上記の処理において、セキュア領域110のセキュアデータ格納部に保存される情報は、クエリ自体ではなく、クエリ回数、クエリエントロピー(情報量)の分布の情報であるので、消費されるメモリ量は小さい。
【0107】
上記の判定処理により、異常が検知された場合に、例えば判定部190が、ACLに、当該ユーザ(異常クエリを発出したユーザ端末400のユーザ)のアクセス拒否を記録する。
【0108】
S264において、APP160から認証装置300に対し、当該ユーザのアクセス許否について、アクセス制御DB及びACLの更新を要求し、認証装置300において更新がなされる。
【0109】
S265において、DNN実行結果がAPP(REE)150に送信される。S266において、APP(REE)150は、DNN実行結果をユーザ端末400に送信する。
【0110】
ユーザ端末400におけるDNNの利用が終了すると、S267おいて、ユーザ端末400は、APP(REE)150に対して実行結果削除を要求する。これにより、リソースアクセス装置100において、セキュア領域110の外側にある実行結果が削除される。S268において、削除完了通知がユーザ端末400に送信される。
【0111】
実施例2では、ステートは、セキュア領域110内に保持され、使用されるときにはDNNに設定されるので、ステートは外部から知ることができない。また、モデル抽出攻撃を防止できる。つまり、実施例2では、DNN実行結果のみがユーザに知られるので守るべき知的財産(ステート等)が守られる。
【0112】
(ハードウェア構成例)
モデル抽出攻撃検知装置、モデルサービス提供装置10、リソースアクセス装置100、リソース管理装置200、認証装置300はいずれも、例えば、コンピュータにプログラムを実行させることにより実現できる。このコンピュータは、物理的なコンピュータであってもよいし、クラウド上の仮想マシンであってもよい。モデル抽出攻撃検知装置、モデルサービス提供装置10、リソースアクセス装置100、リソース管理装置200、認証装置300を総称して「装置」と呼ぶ。
【0113】
すなわち、当該装置は、コンピュータに内蔵されるCPUやメモリ等のハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【0114】
図18は、上記コンピュータのハードウェア構成例を示す図である。図18のコンピュータは、それぞれバスBSで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、入力装置1007、出力装置1008等を有する。なお、これらのうち、一部の装置を備えないこととしてもよい。例えば、表示を行わない場合、表示装置1006を備えなくてもよい。
【0115】
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0116】
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、当該装置に係る機能を実現する。インタフェース装置1005は、ネットワークに接続するためのインタフェースとして用いられ、送信部及び受信部として機能する。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。
【0117】
(実施の形態のまとめ、効果)
以上説明したように、本実施の形態では、TEEによるアクセス制御に加えて、クエリ回数及びクエリに関する統計分布を、TEE上で遠隔管理して、一定のクエリ回数及びクエリ分布の異常値判定基準を満たした場合には、当該ユーザによるクエリを遮断する。
【0118】
これにより、システム管理者の手を離れたエッジ環境においても、モデル抽出攻撃を検知することができ、対策が可能となる。
【0119】
また、クエリの特徴量分布ではなく、エントロピー(情報量)分布を利用することで、メモリ使用量を低減することが可能である。これにより、計算リソースの乏しいエッジ環境でも、モデル抽出攻撃検知を行うことができる。
【0120】
(付記)
本明細書には、少なくとも下記各項のモデル抽出攻撃検知装置、リモート認可制御システム、モデル抽出攻撃検知方法、及びプログラムが開示されている。
(第1項)
セキュア領域を有するモデル抽出攻撃検知装置であって、
前記セキュア領域上に機械学習モデルと分析部を備え、
前記分析部は、ユーザからのクエリと、当該クエリに対する前記機械学習モデルによる推論結果とに基づいて、前記クエリの情報量を算出し、前記情報量の分布に基づいて、モデル抽出攻撃の有無を判定する
モデル抽出攻撃検知装置。
(第2項)
前記分析部は、前記分布の平均が閾値よりも大きく、かつ、前記分布の分散が閾値よりも小さい場合に、モデル抽出攻撃有りであると判定する
第1項に記載のモデル抽出攻撃検知装置。
(第3項)
第1項又は第2項に記載の前記モデル抽出攻撃検知装置と、リソース管理装置と、認証装置とを備えるリモート認可制御システムであって、
前記モデル抽出攻撃検知装置が、前記認証装置から、前記モデル抽出攻撃検知装置における前記セキュア領域上にアクセス制御リスト、及び、前記分析部に相当するプログラムをダウンロードし、
前記モデル抽出攻撃検知装置が、前記リソース管理装置から、前記セキュア領域上に前記機械学習モデルのステートをダウンロードし、
前記モデル抽出攻撃検知装置が、ユーザから前記機械学習モデルの利用要求を受信した場合に、前記アクセス制御リストに基づいて、前記ユーザによる前記機械学習モデルの利用可否を判断し、利用可であり、かつ、前記分析部によりモデル抽出攻撃をしていないと判定される場合に、前記機械学習モデルを前記ユーザに利用させる
リモート認可制御システム。
(第4項)
前記認証装置は、初期登録時に、前記ユーザのユーザIDと、前記セキュア領域のIDとを紐付けて登録し、
前記ユーザによる前記機械学習モデルの要求時において、前記ユーザから送信されたユーザIDと、前記モデル抽出攻撃検知装置から取得した前記セキュア領域のIDとが登録情報として登録されているか否かを確認することにより、不正の有無を判断する
第3項に記載のリモート認可制御システム。
(第5項)
セキュア領域を有するモデル抽出攻撃検知装置が実行するモデル抽出攻撃検知方法であって、
前記セキュア領域上に機械学習モデルと分析部が備えられ、
前記分析部が、ユーザからのクエリと、当該クエリに対する前記機械学習モデルによる推論結果とに基づいて、前記クエリの情報量を算出し、前記情報量の分布に基づいて、モデル抽出攻撃の有無を判定する
モデル抽出攻撃検知方法。
(第6項)
コンピュータを、第1項又は第2項に記載の前記モデル抽出攻撃検知装置における分析部として機能させるためのプログラム。
【0121】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0122】
10 モデルサービス提供装置
11 モデル
12 クエリカウント部
13 クエリエントロピー分析部
14 判定部
20 ネットワーク
100 リソースアクセス装置
110 セキュア領域
111 セキュアデータ格納部
112 セキュア処理部
120 通信部
130 データ格納部
140 データ処理部
150 APP(REE)
160 APP(TEE)
170 クエリカウント部
180 クエリエントロピー分析部
190 判定部
200 リソース管理装置
210 認証処理部
220 リソース制御部
230 リソース格納部
300 認証装置
310 認証処理部
320 データ格納部
330 ACL制御部
340 ACL格納部
400 ユーザ端末
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置
1008 出力装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18