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

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

▶ ディープキープ リミテッドの特許一覧

特表2024-517124機械学習、人工知能、および深層学習のユニットを保護するためのデバイス、システム、および方法
<>
  • 特表-機械学習、人工知能、および深層学習のユニットを保護するためのデバイス、システム、および方法 図1
  • 特表-機械学習、人工知能、および深層学習のユニットを保護するためのデバイス、システム、および方法 図2
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-19
(54)【発明の名称】機械学習、人工知能、および深層学習のユニットを保護するためのデバイス、システム、および方法
(51)【国際特許分類】
   G06F 21/55 20130101AFI20240412BHJP
   G06N 20/00 20190101ALI20240412BHJP
【FI】
G06F21/55 320
G06N20/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023564679
(86)(22)【出願日】2022-04-14
(85)【翻訳文提出日】2023-12-15
(86)【国際出願番号】 IL2022050397
(87)【国際公開番号】W WO2022224246
(87)【国際公開日】2022-10-27
(31)【優先権主張番号】63/176,375
(32)【優先日】2021-04-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.JAVASCRIPT
3.VERILOG
4.VISUAL BASIC
5.MATLAB
6.PYTHON
(71)【出願人】
【識別番号】523397001
【氏名又は名称】ディープキープ リミテッド
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(72)【発明者】
【氏名】オハヨン,ロニー
(72)【発明者】
【氏名】ワグナー,ジョナサン
(57)【要約】
機械学習エンジン、人工知能エンジン、及び深層学習エンジンを保護するシステムおよび方法。オフライン保護ユニットは、被保護エンジンの1以上の特徴を分析するように、及び攻撃に対しての被保護エンジンの脆弱性を低くするために被保護エンジンの動作特性または動作パラメータを変更することにより、攻撃に対しての被保護エンジンのオフラインの強化を行うように、構成される。オンライン保護ユニットは、(i)前記被保護エンジンの入力として向けられた入力と、(ii)被保護エンジンにより生成された出力とのうちの少なくとも1つの分析を行うように、及び分析に基づいて、攻撃に対しての被保護エンジンの脆弱性を低くするために被保護エンジンの動作特性または動作パラメータを動的に変化させることにより、攻撃に対しての被保護エンジンのオンラインの強化を動的に行うように、構成される。
【特許請求の範囲】
【請求項1】
システムであって、
コードを実行するように構成された1以上のプロセッサを含み、
前記1以上のプロセッサは、コードを格納するように構成された1以上のメモリ・ユニットと動作において関連し、
前記システムは、機械学習(ML)ユニットと深層学習(DL)ユニットと人工知能(AI)ユニットとニューラル・ネットワーク(NN)・ユニットとを含むグループから選択されたユニットである被保護エンジンを保護するように構成され、
前記システムは、悪意のある入力および悪意のあるクエリおよび悪意のあるトレーニング・データおよび悪意のある攻撃から前記被保護エンジンを保護するように構成され、
前記システムは、
(a)オフライン保護ユニットであって、前記被保護エンジンの1以上の特徴を分析するため、および攻撃に対しての前記被保護エンジンの脆弱性を低くするために前記被保護エンジンの1以上の動作特性または動作パラメータを変更することにより、攻撃に対しての前記被保護エンジンのオフラインの強化を行うための、オフライン保護ユニットと、
(b)オンライン保護ユニットであって、(i)前記被保護エンジンの入力として向けられた1以上の入力と、(ii)前記被保護エンジンにより生成された1以上の出力とのうちの少なくとも1つの分析を行うため、および、前記分析に基づいて、攻撃に対しての前記被保護エンジンの脆弱性を低くするために前記被保護エンジンの1以上の動作特性または動作パラメータを動的に変化させることにより、攻撃に対しての前記被保護エンジンのオンラインの強化を動的に行うための、オンライン保護ユニットと
のうちの少なくとも1つを含む、
システム。
【請求項2】
請求項1のシステムであって、
前記被保護エンジンは、MLモデルとDLモデルとAIモデルとを含むグループから選択された被保護モデルを用い、
前記オフライン保護ユニットと前記オンライン保護ユニットとのうちの少なくとも1つは、前記被保護モデルを、特定の攻撃に対して脆弱である変更前モデル・バージョンから、前記特定の攻撃に対して全く脆弱ではない又は脆弱性が低い変更後モデル・バージョンへと、自動的に変更する、
システム。
【請求項3】
請求項1および2の何れか1つの請求項のシステムであって、
前記被保護エンジンは被保護データセットに基づいて動作し、
前記オフライン保護ユニットと前記オンライン保護ユニットとのうちの少なくとも1つは、前記被保護データセットを、特定の攻撃に対して前記被保護エンジンを脆弱にする変更前データセット・バージョンから、前記特定の攻撃に対して前記被保護エンジンを全く脆弱ではないように又は脆弱性が低くなるようにする変更後データセット・バージョンへと、自動的に変更する、
システム。
【請求項4】
請求項1ないし3の何れか1つの請求項のシステムであって、
前記被保護エンジンは被保護データセットに基づいて動作し、
前記オフライン保護ユニットと前記オンライン保護ユニットとのうちの少なくとも1つは、
前記被保護データセットを、特定の攻撃に対して前記被保護エンジンを脆弱にする変更前データセット・バージョンから、前記特定の攻撃に対して前記被保護エンジンを全く脆弱ではないように又は脆弱性が低くなるようにする変更後データセット・バージョンへと、自動的に変更し、
それは、敵対的データを生成して前記被保護データセットへ付加することにより、および前記変更後データセット・バージョンに基づいて前記被保護エンジンの再トレーニングを開始することによりなされる、
システム。
【請求項5】
請求項1ないし4の何れか1つの請求項のシステムであって、
前記被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用い、
前記オフライン保護ユニットと前記オンライン保護ユニットとのうちの少なくとも1つは、
前記被保護アーキテクチャを、特定の攻撃に対して前記被保護エンジンを脆弱にする変更前アーキテクチャ・バージョンから、前記特定の攻撃に対して前記被保護エンジンを全く脆弱ではないように又は脆弱性が低くなるようにする変更後アーキテクチャ・バージョンへと自動的に変更し、
それは、前記パイプライン動作の数または順を変更すること、又は前記動作パラメータの特定の値の1以上のものを変更することによりなされる、
システム。
【請求項6】
請求項1ないし5の何れか1つの請求項のシステムであって、
前記被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用い、
前記オフライン保護ユニットと前記オンライン保護ユニットとのうちの少なくとも1つは、
前記被保護アーキテクチャを、特定の攻撃に対して前記被保護エンジンを脆弱にする変更前アーキテクチャ・バージョンから、前記特定の攻撃に対して前記被保護エンジンを全く脆弱ではないように又は脆弱性が低くなるようにする変更後アーキテクチャ・バージョンへと、自動的に変更し、
それは、前記被保護エンジンが受け取った入力に対して更なる動作を行う前処理ユニットを前記被保護アーキテクチャへ付加することによりなされる、
システム。
【請求項7】
請求項1ないし6の何れか1つの請求項のシステムであって、
前記被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用い、
前記オフライン保護ユニットと前記オンライン保護ユニットとのうちの少なくとも1つは、
前記被保護アーキテクチャを、特定の攻撃に対して前記被保護エンジンを脆弱にする変更前アーキテクチャ・バージョンから、前記特定の攻撃に対して前記被保護エンジンを全く脆弱ではないように又は脆弱性が低くなるようにする変更後アーキテクチャ・バージョンへと、自動的に変更し、
それは、前記被保護エンジンが生成した出力が意図された受信者へ送られる前に、前記出力に対して更なる動作を行う後処理ユニットを前記被保護アーキテクチャへ付加することによりなされる、
システム。
【請求項8】
請求項1ないし7の何れか1つの請求項のシステムであって、
前記被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用い、
前記オフライン保護ユニットと前記オンライン保護ユニットとのうちの少なくとも1つは、
前記被保護アーキテクチャを、特定の攻撃に対して前記被保護エンジンを脆弱にする変更前アーキテクチャ・バージョンから、前記特定の攻撃に対して前記被保護エンジンを全く脆弱ではないように又は脆弱性が低くなるようにする変更後アーキテクチャ・バージョンへと、自動的に変更し、
それは、入力を分析して、特定の入力または特定の入力のグループが前記被保護エンジンへの攻撃と関連するか否かを決定する攻撃検出ユニットを前記被保護アーキテクチャのパイプラインへ付加することによりなされる、
システム。
【請求項9】
請求項1ないし8の何れか1つの請求項のシステムであって、
前記被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用い、
前記オフライン保護ユニットと前記オンライン保護ユニットとのうちの少なくとも1つは、
前記被保護アーキテクチャを自動的に変更し、
それは、
(i)特定の受信者が前記被保護エンジンへ提出できるクエリの数についてレート制限することと、
(ii)前記被保護エンジンへ入来するクエリの少なくとも幾つかを廃棄することと、
(iii)前記被保護エンジンへ入来するクエリの少なくとも幾つかを隔離することと
のうちの少なくとも1つのことを行うことによりなされる、
システム。
【請求項10】
請求項1ないし9の何れか1つの請求項のシステムであって、
前記被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用い、
前記オフライン保護ユニットと前記オンライン保護ユニットとのうちの少なくとも1つは、
前記被保護アーキテクチャを自動的に変更し、
それは、特定の受信者へ向けて前記被保護エンジンから出力される応答を意図的に遅延させることによりなされる、
システム。
【請求項11】
請求項1ないし10の何れか1つの請求項のシステムであって、
前記被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用い、
前記オフライン保護ユニットと前記オンライン保護ユニットとのうちの少なくとも1つは、
前記被保護アーキテクチャを自動的に変更し、
それは、悪意のあるクエリの発信元であると決定された特定の受信者へ向けて前記被保護エンジンから誤った出力を意図的に提供することによりなされる、
システム。
【請求項12】
請求項1ないし11の何れか1つの請求項のシステムであって、
前記オフライン保護ユニットと前記オンライン保護ユニットとのうちの少なくとも1つは、
二次的MLエンジンと二次的DLエンジンと二次的AIエンジンとを含むグループから選択された二次的エンジンを用いて、
特定の発信元エンティティーから受け取った入力クエリの二次的な分類を行い、また、
前記二次的エンジンにより行われた前記入力クエリの分類に基づいて、前記入力クエリが前記被保護エンジンへの悪意のある攻撃の一部であるか否かを決定する、
システム。
【請求項13】
請求項1ないし12の何れか1つの請求項のシステムであって、
AIベースの潜入テスト・ユニットを更に含み、これは、
制御された形で前記被保護エンジンに対して自動の的潜入テストを行うように構成され、また、
様々なタイプの攻撃に対しての前記被保護エンジンの障害許容力の量的なレベルを推定するように構成される、
システム。
【請求項14】
請求項1ないし13の何れか1つの請求項のシステムであって、
防御ポリシー構築器ユニットを含み、これは、
前記被保護エンジンについてのユーザ構成可能な複数の動作制約により定められるものであるユーザ構成可能な防御ポリシーを構築するように構成され、また、
複数の使用可能な保護スキームのプールからの特定の保護スキームを動的に選択および呼び出しおよび施行するように構成され、前記特定の保護スキームは、攻撃から前記被保護エンジンを保護しつつも前記ユーザ構成可能な動作制約に従うようにする、
システム。
【請求項15】
請求項1ないし14の何れか1つの請求項のシステムであって、
ユーザが(i)前記被保護エンジンを保護するための防御目標と、(ii)前記被保護エンジンおよび/または前記システムが従うべき動作制約とを入力することを可能にする防御ポリシー構築ユニットと、
前記ユーザにより提供された前記防御目標および前記動作制約に基づいて動作するものであり、前記被保護エンジンに対しての攻撃を妨げる又は軽減するための特定の防御技術の組を動的に選択および適用するように構成されたものである防御最適化ユニットと
を含むシステム。
【請求項16】
請求項1ないし15の何れか1つの請求項のシステムであって、
防御最適化ユニットは、複数の異なるAIエンジンおよび/またはMLエンジンおよび/またはDLエンジンの保護についての履歴データのAIベースの分析に基づいて、前記被保護エンジンを保護するために選択および適用されるべき、有効な防御技術のAIベースの推定またはAIベースの予測に基づいて、動作する、
システム。
【請求項17】
請求項1ないし16の何れか1つの請求項のシステムであって、前記被保護エンジンが攻撃されていると判定されたことに応答して、1以上の決定論的な及び非AIベースの軽減技術を選択するように及び活性化するように構成される攻撃軽減ユニットを含むシステム。
【請求項18】
請求項1ないし17の何れか1つの請求項のシステムであって、
攻撃軽減ユニットを含み、これは、
前記被保護エンジンが攻撃されていると判定されたことに応答して、1以上のAIベースの非決定論的な軽減技術を選択するように及び活性化するように構成される、
システム。
【請求項19】
請求項1ないし18の何れか1つの請求項のシステムであって、
前記被保護エンジンにより用いられるモデルを変更せずに、および変更されたデータセットについて前記被保護エンジンを再トレーニングせずに、および前記被保護エンジンにより行われる動作の内部パイプラインへのアクセス無しで、前記被保護エンジンに対しての検出された攻撃を阻止する前処理動作および/または後処理動作を行うように構成される非侵入性防御ユニットを含むシステム。
【請求項20】
請求項1ないし19の何れか1つの請求項のシステムであって、
前記被保護エンジンは、前記被保護エンジンから離れており且つ前記被保護エンジンと同じ場所に配されていないリモートのクラウド・コンピューティング・ベースのシステムである前記システムにより、悪意のあるクエリおよび悪意のある入力から保護される、
システム。
【請求項21】
請求項1ないし20の何れか1つの請求項のシステムであって、
前記被保護エンジンは、2以上のAIまたはMLまたはDLのエンジンの組み合わせ又はカスケード又はパイプラインの中にある1つの被保護エンジンであり、
前記システムは、前記の組み合わせ又はカスケード又はパイプラインの少なくとも一部を保護するための保護動作を行う、
システム。
【請求項22】
請求項1ないし21の何れか1つの請求項のシステムであって、
前記オンライン保護ユニットは、前記被保護エンジンへ向けられた入力信号の防御的前処理を行う前処理モジュールを導入するように及び呼び出すように構成される、
システム。
【請求項23】
請求項1ないし22の何れか1つの請求項のシステムであって、
前記オンライン保護ユニットは、前記被保護エンジンにより生成され出力された出力信号が意図された受信者へ送られる前に前記出力信号の防御的後処理を行う後処理モジュールを導入するように及び呼び出すように構成される、
システム。
【請求項24】
請求項1ないし23の何れか1つの請求項のシステムであって、
前記オンライン保護ユニットは、前記被保護エンジンの動作アーキテクチャを、スタンドアロンまたは独立の被保護エンジンから、スタンドアロンまたは独立の被保護エンジンと比べて攻撃に対しての障害許容力が高い複数エンジンのパイプラインまたは複数エンジンのカスケードの構造の一部である被保護エンジンへと変更するように、構成される、
システム。
【請求項25】
コンピュータ化された方法であって、
前記方法は、コードを実行するように構成された1以上のプロセッサを用いることによりインプリメントされるものであり、前記1以上のプロセッサは、コードを格納するように構成された1以上のメモリ・ユニットと動作において関連し、
コンピュータ化された前記方法は、
機械学習(ML)ユニットと深層学習(DL)ユニットと人工知能(AI)ユニットとニューラル・ネットワーク(NN)・ユニットとを含むグループから選択されたユニットである被保護エンジンを保護することと、
悪意のある入力および悪意のあるクエリおよび悪意のあるトレーニング・データおよび悪意のある攻撃から前記被保護エンジンを保護することとを、
(a)前記被保護エンジンの1以上の特徴を分析するように、および攻撃に対しての前記被保護エンジンの脆弱性を低くするように前記被保護エンジンの1以上の動作特性または動作パラメータを変更することにより、攻撃に対しての前記被保護エンジンのオフラインの強化を行うように、オフライン保護ユニットを動作させることと、
(b)(i)前記被保護エンジンの入力として向けられた1以上の入力と、(ii)前記被保護エンジンにより生成された1以上の出力とのうちの少なくとも1つの分析を行うように、および、前記分析に基づいて、攻撃に対しての前記被保護エンジンの脆弱性を低くするように前記被保護エンジンの1以上の動作特性または動作パラメータを動的に変化させることにより、攻撃に対しての前記被保護エンジンのオンラインの強化を動的に行うように、オンライン保護ユニットを動作させることと
のうちの少なくとも1つのことを行うことにより、
行うこと
を含む方法。
【請求項26】
命令を格納する非一時的なストレージ媒体であって、前記命令は、機械により実行されたときに前記機械にコンピュータ化された方法を行わせるものであり、
前記コンピュータ化された方法は、
機械学習(ML)ユニットと深層学習(DL)ユニットと人工知能(AI)ユニットとニューラル・ネットワーク(NN)・ユニットとを含むグループから選択されたユニットである被保護エンジンを保護することと、
悪意のある入力および悪意のあるクエリおよび悪意のあるトレーニング・データおよび悪意のある攻撃から前記被保護エンジンを保護することとを、
(a)前記被保護エンジンの1以上の特徴を分析するように、および攻撃に対しての前記被保護エンジンの脆弱性を低くするように前記被保護エンジンの1以上の動作特性または動作パラメータを変更することにより、攻撃に対しての前記被保護エンジンのオフラインの強化を行うように、オフライン保護ユニットを動作させることと、
(b)(i)前記被保護エンジンの入力として向けられた1以上の入力と、(ii)前記被保護エンジンにより生成された1以上の出力とのうちの少なくとも1つの分析を行うように、および、前記分析に基づいて、攻撃に対しての前記被保護エンジンの脆弱性を低くするように前記被保護エンジンの1以上の動作特性または動作パラメータを動的に変化させることにより、攻撃に対しての前記被保護エンジンのオンラインの強化を動的に行うように、オンライン保護ユニットを動作させることと
のうちの少なくとも1つのことを行うことにより、
行うこと
を含む、
ストレージ媒体。

【発明の詳細な説明】
【技術分野】
【0001】
関連する出願の相互参照
[0001] この特許出願は、2021年4月19日に出願された63/176375からの優先権および利益を主張するものであり、この参照により、63/176375の全体がここに組み込まれる。
【0002】
分野
[0002] 幾つかの実施形態は、電子システムの分野に関連する。
【背景技術】
【0003】
[0003] 数百万人が、デスクトップ・コンピュータ、ラップトップ・コンピュータ、スマートフォン、タブレットなどのような電子デバイスを日常的に用いる。電子デバイスは様々なタスクを行うために用いられ、タスクは、例えば、購入や取引をオンラインで行うこと、動画を見たりデジタル・コンテンツを消費したりすること、電子メール(Eメール)メッセージを送信および受信すること、オンライン・チャットやインスタント・メッセージング(IM)に関与すること、音声会議やビデオ会議に参加すること、ゲームを行うことなどである。
【0004】
[0004] 幾つかのコンピュータ・サーバやアプリケーションは、データを分析して分析結果やインサイトを得るために、機械学習(ML)、深層学習(DL)、人工知能(AI)、および他の技術を用いることができる。
【発明の概要】
【0005】
[0005] 幾つかの実施形態は、機械学習、人工知能、および深層学習のユニットまたはエンジンを保護するためのデバイスおよび方法、および、強化学習を行う、またはニューラル・ネットワーク(NN)を用いる、またはAIタスクを行うユニットまたはエンジンを含む。
【0006】
[0006] 機械学習エンジン、人工知能エンジン、および深層学習エンジンを保護するためのシステムおよび方法。オフライン保護ユニットは、被保護(protected)エンジンの1以上の特徴を分析するように、および攻撃に対する被保護エンジンの脆弱性を低下させるように被保護エンジンの動作特性や動作パラメータを変更することにより、攻撃に対しての被保護エンジンのオフラインでの強化を行うように、構成される。オンライン保護ユニットは、(i)被保護エンジンの入力へと向けられた入力と、(ii)被保護エンジンにより作成された出力とのうちの少なくとも一方の分析を行うように、および、その分析に基づいて、攻撃に対する被保護エンジンの脆弱性を低下させるように被保護エンジンの動作特性や動作パラメータを動的に変更することにより、攻撃に対しての被保護エンジンのオンラインでの強化を動的に行うように、構成される。
【0007】
[0007] 幾つかの実施形態は、更なる且つ/又は他の利益および/または利点を提供することができる。
【図面の簡単な説明】
【0008】
図1図1は、幾つかの例示的な実施形態に従ったシステムおよびそのコンポーネントの概略ブロック図を例示する。
図2図2は、幾つかの例示的な実施形態に従ったシステムおよびその多層アーキテクチャの概略ブロック図を例示する。
【発明を実施するための形態】
【0009】
[0010] 様々な電子システムや情報処理システムは、データを分析または処理するため、および出力(例えば、結果、予測、概算、量定結果、結論、インサイト、相関、推奨、アクション(例えば、ロボティック・システムのためのもの)など)を生成するため、または他のことのために、機械学習(ML)ユニットまたは分析エンジン、深層学習(DL)ユニットまたは分析エンジン、および/または人工知能(AI)ユニットまたは分析エンジンを用いる、ということを出願人は認識している。そのようなML/DL/AIユニットは、時には、或るタスクに関しての完全に決定論的であり十分であるアルゴリズムが入手可能ではないときに、そのタスクを達成するために用いられる。
【0010】
[0011] 幾つかのML/DL/AIシステムは、敵対者や競争者やハッカーや第三者による攻撃やサイバー攻撃やコンプロマイズ(compromise)の試みの対象となり得ることを、出願人は認識している。幾つかの実施形態は、そのような攻撃からML/DL/AIシステムを保護するため、またはそのような攻撃を軽減または矯正(curing)するため、またはそのような攻撃により生じた(試みられた)損傷を治療または置換(reversing)または低減または分離するための、デバイスおよび方法を提供することができる。
【0011】
[0012] 例えば、幾つかのML/DL/AIシステムは、回避攻撃や敵対的サンプル攻撃の対象となり得ることを、出願人は認識している。そのような攻撃では、例えば、ML/DL/AIシステムへ供給されるデータは「敵対的サンプル」を含むものであり、猫の正しいイメージのみを含むべきである入力の場合に、ここでは、(I)猫とラベル付けされた犬のイメージ、または(II)人間の目には猫のイメージに見えるようにするが分類ユニットを狂わせるか混乱させるようにする「ノイズ」や僅かなディテールを付加することにより操作された猫のイメージを、含むことができる。幾つかの状況では、デジタル・イメージにおける少数のピクセルのみの細かい改ざんであっても、ML/DL/AIシステムでの混乱や誤った分類の原因となり得ることを、出願人は認識している。そのような回避攻撃では、攻撃者は、ML/DL/AIシステムへの潜入や、その動作の様式の変更は試みず、むしろ、回避攻撃は、ML/DL/AIシステムへ、ML/DL/AIシステムの設計者が期待した出力とは異なる出力を最終的にML/DL/AIシステムに生成させる原因となる誤ったデータ、または誤って分類されたデータ、または機械を混乱させるデータ、またはデジタル「ノイズ」または追補で増強されたデータ、または完全に誤ったデータ、または部分的に誤ったデータ、または部分的に置換されたデータ、または他の改ざんや操作がなされたデータを、注入または供給または導入するものであると、出願人は認識している。また、そのような回避攻撃は、イメージ分析システムやコンピュータ・ビジョン・システムに限定されておらず、音声認識システム、テキスト分析システム、ビデオ分析/認識システム、イメージ分析/認識システム、オーディオ分析/認識システム、表形式データ分析システム、LIDAR分析システム、信号分析システム、時系列分析システム、マルウェア検出システム、金融システムおよびフィンテック・システム(例えば、電子権発債行システム、電子抵当証書発行システム、電子クレジット・カード発行システム、電子銀行口座開設システム、電子仲介口座または証券口座開設システム)、リアルタイムまたはほぼリアルタイムのデータまたはデータ・アイテムまたはデータ・ストリームを用いる(またはこれに処理を適用する)ML/DL/AIシステム(例えば、ライブまたはほぼライブまたはリアルタイムまたはほぼリアルタイムのビデオ・ストリーム、またはビデオ・フレーム・ストリーム、または株価ストリーム、または証券取引ストリームと、自動取引システムと、自動車両運転システム、および自律車両運転システム、先進運転支援システム(ADAS)、データの監視または感知および分析を行う自動工業システム)、「ブラックボックス」型のML/DL/AIシステム(例えば、その内部で入力信号に基づいて1以上のML/DL/AIタスクを行うもの、および出力信号を生成するものであり、ML/DL/AIタスクを行う車両のハードウェア・コンポーネントなどである)、および/または他のシステムに対して同様に行われると、出願人は認識している。
【0012】
[0013] また、幾つかのML/DL/AIシステムが、モデル窃盗攻撃および/またはデータセット窃盗攻撃を含む窃盗攻撃の対象になり得ることも、出願人は認識している。例えば、敵対者や競争者は、ML/DL/AIシステムにより生成された出力に基づいてモデル抽出やモデル再構築やモデル模倣を行うことができ、また、競争者のML/DL/AIシステム(例えば、プロプリエタリまたは非公開のデータセットで訓練されたもの)からの出力を用いる又は活用することにより、攻撃者のML/DL/AIシステム(公開されたデータセットで訓練されたもの)の能力や効率や正確度のてこ入れや改善を行うことができ、また、ML/DL/AIシステムへ送られた問い合わせに基づいての、そのML/DL/AIシステムにより用いられるデータについての推測(例えば、パーソナル・データまたはプライベート・データの抽出を含む)と、そのML/DL/AIシステムにより生成された出力の分析とを、生成することができる。
【0013】
[0014] 更に、幾つかのML/DL/AIシステムはリプログラミング攻撃の対象となり得ることを、出願人は認識している。例えば、攻撃者は、ML/DL/AIシステムの所有者が達成すること(または容易にすること)を意図していなかった新たなタスクを達成するために、攻撃者の能力を活用または悪用して、現存するML/DL/AIシステムへ問い合わせを送り、そのML/DL/AIシステムから出力を受け取る。例えば、対象物検出ML/DL/AIシステムは、テキストの光学的文字認識(OCR)を実際に行うように攻撃者により使用または悪用され得、イメージ認識ML/DL/AIシステムは、人の画像から医療診断結果を実際に生成するように攻撃者により使用または悪用され得、また、これらと同様のことがあり得る。
【0014】
[0015] 更に、幾つかのML/DL/AIシステムはポイズニング攻撃の対象となり得ることを、出願人は認識している。例えば、攻撃者は、少数または相対的に少数の入念に選択した悪意のあるサンプルをトレーニング・データセットへ注入することによる破損(corruption)ポイズニングを行い、これは、ML/DL/AIシステムの動作正確度に大きい害を与え得る又はそれを改悪し得る。別の例では、攻撃者は、シークレット・コードまたはインディシアを含む少数または相対的に少数の入念に選択した悪意のあるサンプルをトレーニング・データセットへ注入することによるバックドア・ポイズニングを行い、それにより、正常な入力があったときには、意図されたように全体的にML/DL/AIシステムを動作させるようにし、また、特定のタイプの入力(似たシークレット・コードまたはインディシアを含む)がML/DL/AIシステムへ供給されたときには、攻撃者の意図に従ってML/DL/AIシステムがそのような入力を分類するようにさせる。ポイズニング攻撃は、1以上の悪意のあるトレーニング・データ・アイテム(例えば、大きいサイズのトレーニング・データセット全体と比べて相対的に少数の悪意のあるデータ・アイテムをトレーニング・データセットへ注入する)をトレーニング・データセットへ注入または導入することにより、ML/DL/AIシステムが、一般に又は特定の後続のクエリまたは或るタイプのクエリに応答して攻撃者の望む特定の形で動作するように、ML/DL/AIシステムの動作の変更を試み得るものであることを、出願人は認識している。幾つかの状況では、そのようなポイズニング攻撃は、リアルタイムまたはほぼリアルタイムで、また、単発イベントまたは周期的なイベントのセットとして行われ得るものであり、また、AIエンジンまたはAIシステムへ向けて直接に行われるものであり得、且つ/又はAIエンジンが用いるデータを収集し且つデータを周期的に更新または付加する1以上のユニットへ向けて間接的に行われるものであり得、ユニットは(例えばであるが)レコメンダ・システムや他のAIベースのシステムを含む。
【0015】
[0016] そのような攻撃から、および他のタイプの攻撃やコンプロマイズの試みからML/DL/AIシステムを保護することに対する要求があることを、出願人は認識している。
【0016】
[0017] 図1を参照すると、図1は、幾つかの例示的な実施形態に従ったシステム100の概略ブロック図を例示する。システム100は、攻撃や悪用や悪意のある活動に対して保護されているユニット(またはサブシステム、またはシステム、またはコンピュータ、またはサーバ、またはコンピュータ化したモジュールの組)であるML/DL/AIエンジン101を、含むことができる。ML/DL/AIエンジン101はまた、ここでは、「被保護ML/DL/AIエンジン101」または「保護または評価されているML/DL/AIエンジン101」と称され得る。
【0017】
[0018] ML/DL/AIエンジン101は、例えば、サンプルまたはラベル付けされたサンプルまたは既に分類されたサンプルの大きいデータセットである訓練データベース102と、モデル104を構築および/または更新するモデル・ビルダ(builder)・ユニット103と、分類器ユニット105(またはフィーチャーイザー(feature-izer)またはフィーチャライザ(featurizer)またはラベラー(labeler)・ユニット)と、追加のユニットまたはコンポーネントを含み得る又は用い得るものであり、追加のユニットまたはコンポーネントは、例えば、評価器ユニット、性能監視ユニット、正解コレクタ(ground truth collector)・ユニット、他のユニットに対する制御および命令を行うオーケストレータ(orchestrator)・ユニット、効率的な入力の受信および出力の生成を可能にするためにアプリケーション・プログラム・インターフェース(API)とオプションとして関連するモデル・サーバ、メトリックスを提供するため及び数値的結果に関するテキスト分類を生成するためのフロントエンド・ユニットなどである。
【0018】
[0019] 幾つかの実施形態によると、ML/DL/AI保護ユニット120は、ML/DL/AIエンジン101を、その動作に対するコンプロマイズの試みやサイバー攻撃から又はそれらに対抗するように、また、そのようなML/DL/AIシステムに対する1以上の特定の攻撃から、保護することができる。例えば、ML/DL/AI保護ユニット120、またはそのコンポーネントまたはユニットまたはサブシステム(例えば、オンライン保護ユニット123、および/またはML/DL/AI保護ユニット120における他のコンポーネント)の1以上のものは、スケーラビリティを可能とすることができ且つ複数ユーザに対してクラウド・サーバを提供することができるモジュール・アーキテクチャを用いてインプリメントすることができ、また、認可されたソフトウェア・コンポーネントとしてローカルにインストールすることができ、また、ハードウェアとソフトウェアとのハイブリッドの専用ユニットとしてローカルに又はネットワーク上にインストールすることができ、また、「ML/DL/AIエンジンのためのファイアウォール・デバイス」として動作させることができ、これは、例えば、ローカルにインストールされた「ML/DL/AIエンジンのためのファイアウォール・デバイス」、または共同設置された「ML/DL/AIエンジンのためのファイアウォール・デバイス」、またはサーバ・ベースの「ML/DL/AIエンジンのためのファイアウォール・デバイス」、またはクラウド・コンピューティング・ベースの「ML/DL/AIエンジンのためのファイアウォール・デバイス」、または「ML/DL/AIエンジンのためのファイアウォール・デバイス」として、または購入または認可され得るソフトウェア・ユニットとして、またはハードウェア/ソフトウェア・ハイブリッド・ユニットとして、または他の適切な配置または構成のスキームを用いて動作する専用のローカルまたはリモートまたはクラウド・ベースのマシンまたはユニットである。更に、上述のインプリメンテーションのスキームおよび/またはアーキテクチャは、幾つかの実施形態では、ML/DL/AI保護ユニット120の全体、またはML/DL/AI保護ユニット120の特定のコンポーネント、またはML/DL/AI保護ユニット120の特定のサブセットまたはグループのコンポーネントをインプリメントするために使用でき得ることに、留意されたい。
【0019】
[0020] ML/DL/AI保護ユニット120は、例えば、様々な脅威に対してのML/DL/AIエンジン101のロバスト性を自動的または半自動的にテストまたは評価するように構成された潜入(penetration)テスト・ユニット121と、ML/DL/AIエンジン101のセキュリティおよび障害許容力(resilience)を強化するためにML/DL/AIエンジン101の構造および/または動作を変更するように動作するオフライン保護ユニット122と、リアルタイムまたはほぼリアルタイムでML/DL/AIエンジン101を保護する1以上の防御サービスを行うことができるオンライン保護ユニット123とを含むことができる。
【0020】
[0021] 幾つかの実施形態では、オフライン保護ユニット122は、ML/DL/AIエンジン101を保護するためのオフライン防御技術をインプリメントすることができる。幾つかのML/DL/AIエンジンはオフライン設定が想定され得、ML/DL/AIパイプラインは、その開発段階の間に強化または安全にされ、次に、結果として得られたセキュアなパイプラインは、入来するクエリや入力の受信および処理のために配置され使用可能とされる、ということを出願人は認識している。このアプローチとは対照的に、オンライン強化技術は、外部のコンポーネントまたはユニットにより、オンラインでML/DL/AIエンジン101へ防御を適用するように作用し、外部のコンポーネントまたはユニットは、配置におけるAIパイプラインへのインターフェースを有するもの、またはそうではなくML/DL/AIエンジン101と動作可能に関連付けされているもの、または入来するクエリに対してのゲートウェイまたはフィルタまたは監視ユニットとして動作するように構成されているものである、ということを出願人は認識している。
【0021】
[0022] 更に、幾つかの実施形態に従ったオンライン防御技術ば様々な利点を提供することができ、それは、例えば、防御技術の動的および/またはモジュール型の応用を可能とし得ること、防御技術の容易かつ/または高速の統合を可能とし得ること、「ブラックボックス」パイプラインの保護を可能とし得ること、および/またはセキュリティ手段の開発とML/DL/AI機能の開発との間のより良い分離を可能とし得ることであり、かつ/または、これは、ユーザ(即ち、ML/DL/AIシステムの所有者またはオペレータまたは管理者または開発者)が構築および微調整に努力と資源とを費やす対象である元のML/DL/AIモデルに対して非侵入性であり変更を行わない(かつ/またはその正常な動作と干渉しない)オンラインまたはクラウド・ベースまたはリモートの保護システムまたは保護層(例えば、リモートまたはクラウド・ベースの検出器ユニット)を提供することによる、と出願人は認識している。
【0022】
[0023] また、オフライン保護ユニット122を介するものなどのような「オフライン保護」は追加および/または別の利益または利点を提供し得ることを、出願人は認識している。幾つかの実施形態によると、MLDL/AIエンジン101の「オフライン保護」は、例えば、MLDL/AIエンジン101を配置する前にそれの受け取りまたは分析またはアクセスを行うこと、および攻撃に対してのML/DL/AIエンジン101のアップグレードまたはセキュリティまたは強化のために1以上の動作および/または変更および/または付加を行うことを含むことができ、そして、元のバージョンのML/DL/AIエンジン101よりも安全性が高くされた又は強化された又は障害許容力が高くされた、更新またはアップグレードまたは増補されたバージョンのML/DL/AIエンジン101を生成または返すことを含むことができ、その後にそれを使用および配置することができる。
【0023】
[0024] 幾つかの実施形態では、オフライン保護ユニット122は、幾つかの保護および強化の技術のうちの1以上のものを行うことができ(行うために用いることができ)、それらの技術は、(A)データセット強化、データセット「ハードニング(hardening)」、データセット増補、前処理動作、データ・サニタイゼーション(sanitization)動作、データ・プルーニング動作、(B)ニューラル・ネットワーク(または他のAI/ML/DLアルゴリズム)の構造および/またはアーキテクチャを変更すること、AI/ML/DLパイプラインの構造および/またはアーキテクチャを変更すること、不確かなエレメント(例えば、ディープ・ニューラル・ネットワーク(DNN)または他のコンポーネント)をそのセキュアなバージョンまたは更にセキュアなバージョンと置換すること又は除去することによるなどによってのアーキテクチャ強化またはアーキテクチャ「ハードニング」、(C)例えば、再訓練、敵対的訓練、スレッショルド変更、スレッショルド値の変更または導入、動作条件の変更または導入に基づく、システム・パラメータの変更、(D)例えば、モデルのアンサンブルを作成すること、前処理のエレメントまたはコンポーネントを付加または変更すること、後処理のエレメントまたはコンポーネントを付加または変更することによる、アーキテクチャ増補、(E)入力(または一連または1組の入力)が悪意のあるものと識別されたとき又は悪意のあるものと推定または決定されたときに通知を生成する又はフラッグを上げる又は例外をスローすることができる攻撃検出器を、AI/ML/DLパイプラインへ付加すること、(F)他の適切な技術、である。幾つかの実施形態では、保護のシステムまたはプラットフォームは、被保護エンジンが一部となっているパイプラインへ攻撃検出器(1以上)を能動的に付加することができ、かつ/または、スタンドアロンの被保護エンジンへ攻撃検出器(1以上)を付加することにより、および/またはオンラインの攻撃検出器および/またはオフラインの攻撃検出器を付加する又は呼び出すことにより、および/またはステートレスの又は必ずしも(または全く)ステートを維持する必要のない攻撃検出器(例えば、それらは、各入力信号をそれ自体により分析または分類し、以前の受信入力信号や後続の受信入力信号を無視する)を付加する又は呼び出すことにより、および/またはステートフルの又はステートを維持する攻撃検出器(例えば、それらは、各入力信号を、それ自体のみによるのではなく、1以上の以前の受信入力信号および/または後続の受信入力信号と関連して又は組み合わせて分析または分類し、それにより、一組または一連の複数の入力にわたっての予測または分析を行う)を付加する又は呼び出すことにより、そのようなパイプラインを構築することができる。
【0024】
[0025] 幾つかの実施形態では、オフライン保護動作の少なくとも幾つかは、オフライン保護ユニット122により自動的または半自動的に行われる。例えば、オフライン保護ユニット122は、ML/DL/AIエンジン101の構造および/または動作を自動的に分析することができ、ML/DL/AIエンジン101が特定のタイプの前処理コンポーネントまたは後処理コンポーネントを欠くことを自動的に検出することができ、また、自動的または半自動的に(例えば、人間の管理者の承認を条件として)、ML/DL/AIエンジン101を、欠いているコンポーネント(1以上)で増補することができる。同様に、オフライン保護ユニット122は、ML/DL/AIエンジン101の構造および/または動作を自動的に分析することができ、ML/DL/AIエンジン101が特定のフィルタ機構(例えば、特定の送信者からの入来するクエリの数または頻度を制限するレート制限用コンポーネントまたはフィルタ)を欠いていることを自動的に検出することができ、また、そのようなコンポーネントまたはフィルタを付加または導入することができる。幾つかの実施形態では、保護動作(1以上)および/または軽減動作(1以上)は、保護プラットフォームにより自動的に選択され得るものであり、これは、そのような動作選択のための1組のルールに基づくもの、および/または推定された問題または推定された攻撃の推定または定量化された重大度に基づくもの、および/またはこの特定のシステムのこの特定のML/DL/AIエンジンを保護することに関連し且つ使用可能である資源および保護技術に基づくものである。
【0025】
[0026] 例えば、保護プラットフォームまたはそのオフライン保護ユニット122は、被保護ML/DL/AIエンジンへ1秒以内に500の急速なクエリを出すことができ、そして、ML/DL/AIエンジンが適時(例えば、平均で各入力信号のNミリ秒内)に出力を生成するために努力しているところを観察することができ、そして、その後、ML/DL/AIエンジンがレート制限の前処理のフィルタまたはゲートまたは機構を欠く又は適用しない可能性が高いこと、または、そのようなレート制限モジュールが存在し得るが不適切に構成されていることを、推論することができ、そして、それに応じて保護プラットフォームは、そのような前処理のユニットまたはモジュールを付加することを自動的に推奨することができ、幾つかのインプリメンテーションでは、自動的または半自動的に、そのような前処理のモジュールまたはユニットを自動的に付加することができる。
【0026】
[0027] 同様に、保護プラットフォームは、ML/DL/AIエンジンにより生成された出力信号が、後処理のユニットまたはモジュールを欠いていること(または誤って構成されること)に起因し得る異常や不一致について苦んでいることを検出することができ、ここでの欠いているもの(誤って構成されるもの)とは、プルーニング・ルーチン、ルール・フィルタリング・スキーム、知識統合スキーム、デシジョン・ツリーまたはデシジョン・ルールまたは関連付けルールまたは分類ルールを縮小またはプルーニングまたはトランケートするためのモジュール、および/または「ノイズ的な」または不正確な出力の除去または濾過を試みる他の後処理フィルタなどである。
【0027】
[0028] 同様に、オフライン保護ユニット122は、ML/DL/AIエンジンが攻撃を受けやすくなるように又は攻撃に対して弱くなるようにする特定の条件またはスレッショルドの値をML/DL/AIエンジンが用いていることを、自動的に検出することができ、そして、そのようなスレッショルドの値を自動的に増加または低減または変更することができ、また、条件を自動的に変更またはキャンセルまたは増補することができ、これは、特定のパラメータまたはスレッショルドまたは条件の組が検出された場合になされることであり、そのような変更を行うために予め定められたルールのリストに基づくものである。他の適切な技術を用いることもできる。
【0028】
[0029] ML/DL/AI保護ユニット120は、オプションとして、攻撃軽減ユニット124を更に含むことができ、これは、上述のユニットとは別体のユニットとすることができ、また、上述のユニットのうちの1以上のものと一体化することができ、また、上述のユニットのうちの1以上のものと関連して動作することができ、また、上述のユニットのうちの1以上のものに含まれることができ、また、その中に上述のユニットのうちの1以上のものを含むことができる。例えば、攻撃軽減ユニット124は、他のユニット121-123のうちの1以上のものから入力またはインサイトを収集または受信することができ、かつ/または、そのような入力を融合して更なるインサイトを生成することができ、そして、ML/DL/AIエンジン101の特定の損傷または悪用または詐欺的使用または敵対的使用を減少または除去または停止または低下または停止させるために、1以上の軽減動作をトリガまたは開始または実行することができる。そのような軽減動作は、例えば、ML/DL/AI保護ユニット120により悪意のあるもの又は敵対的エンティティからのものと判定された入来するトラフィックまたはクエリまたはリクエストの幾つか(または殆どまたは全て)を遮断または隔離または廃棄することと、ML/DL/AI保護ユニット120により悪意のあるもの又は敵対的エンティティからのものと判定されたエンティティであるエンティティへ向けて出力されると想定されていた外向きのトラフィックまたは結果またはインサイトまたは出力の幾つか(または殆どまたは全て)を遮断または隔離または廃棄することと、そのような敵対的エンティティのリクエストまたはクエリを処理するレートまたはスピードを、および/または結果または出力をそのような敵対的エンティティへ返送するレートまたはスピードを、大幅に低下させることと、出力および/またはクエリの結果を、それらをそのような敵対的エンティティへ送る前に変更および/または操作すること、または(幾つかのインプリメンテーションでは)更に意図的に偽の結果または誤った結果または逆の結果または変更された結果またはランダム又は擬似ランダムな結果をそのような敵対的エンティティへ送ることと、悪意のあるものと判定された1以上のサンプルまたはデータ・ポイントまたはデータ・アイテムを除去または削除または排除または廃棄することなどにより、ML/DL/AIエンジン101により用いられた又は用いられるトレーニング・セットまたはトレーニング・データセットまたはサンプル・データセットのプルーニングまたは希薄化(diluting)またはパージ(purging)またはクリーニングを行うことと、オプションとして、人間の分類者を用いることにより及び/又は別のコンピュータ化されたサービスまたは別のML/DL/AIエンジンを用いることにより、1以上のトレーニング・サンプルまたはトレーニング・データ・ポイントを置換または修正または再ラベリングまたは再分類し、特定のそのようなデータ・ポイントのみを再分類または再ラベリングすることと、更新またはプルーニングまたはパージまたは希薄化されたデータセットに基づいてML/DL/AIモデルのトレーニング・セッションの再プログラミングを行うこと及び/又はML/DL/AIモデルを再構築することと、ML/DL/AIエンジン101の悪用を示す通知または警告メッセージまたは警報メッセージを生成し、そのようなメッセージを1以上の予め定めたパーティー(例えば、ML/DL/AIエンジン101の管理者エンティティ、法律執行機関)へ及び/又は1以上の動的に定められるパーティー(例えば、悪意のあるエンティティまたは敵対的エンティティと判定されているエンティティの連絡先、そのような敵対的エンティティのインターネット・サービス・プロバイダ(ISP)、そのような敵対的エンティティのドメイン・レジストラ、そのような敵対的エンティティの設備をホストするサーバ)へ、送付または送信することと、を含むことができる。幾つかの実施形態では、データセット操作および/または再プログラミングに加えて又はその代わりに、他の保護および軽減の方法を適用することができ、それは、例えば、アーキテクチャを変更すること(例えば、被保護ML/DL/AIエンジン101のエレメントまたはサブユニットを置換および/または付加および/または除去および/または隔離する、またはその1以上の動作パラメータを変更する)、現在のバージョンの被保護ML/DL/AIエンジン101を以前または前のバージョンのもの(例えば、以前のバージョンの被保護ML/DL/AIエンジン101を格納するバージョニング・ユニットまたはリポジトリから得られる)と置換すること、第1の予め定められた保護ポリシーに従った動作から第2の異なる予め定められた保護ポリシーに従った動作へと(例えば、予め定められた保護ポリシーのプールまたはバンクまたはアレイの中から)自動的に切り替えることなどにより、ユーザ(例えば、ML/DL/AIエンジン101の管理者または所有者)が、システムの要求または動作パラメータまたは動作制約を構成すること及びそれらのバランスを取ることを可能にする防御ポリシーまたは保護ポリシーを変更または更新または置換することなどである。
【0029】
[0030] 幾つかの実施形態では、ML/DL/AI保護ユニット120は、攻撃検出、攻撃軽減および保護のための半自動および/または部分的に監視されたプロセスを用いることができる。ML/DL/AI保護ユニット120は、ML/DL/AIエンジン101へ供給される入力を、(I)正当入力(例えば、非敵対的、本物、非攻撃関連)と、(II)非正当または不正入力(例えば、敵対的入力、攻撃関連入力、コンプロマイズを行う入力、悪意のある入力、偽の入力、攻撃入力、または悪用する又は乱用する入力)との何れかとして正確に分類することを達成するように動作する。
【0030】
[0031] 実証的な例では、ML/DL/AIエンジン101は、写真またはイメーシの中にある車両のナンバープレートの番号(または番号列)のイメージ分類を行うように構成される。ML/DL/AIエンジン101のエントリ・ポイントで、またはそのエントリ・ポイントのすぐ前に、入力(ナンバープレートが含まれているイメージ)が受け取られると、ML/DL/AI保護ユニット120は、入力インタセプタ/アナライザ・ユニット125を用いて、入来するイメージをインターセプトし、それに自動攻撃検出アルゴリズムを適用するが、この自動攻撃検出アルゴリズムは、偽陽性エラーを低減するように厳格に動作するように構成されており、攻撃検出アルゴリズムの出力が、イメージは悪意の無いものであることを示す場合、そのイメージは実際に攻撃と関連していない。アルゴリズムは厳格であるので、幾らかのパーセンテージの偽陽性を有さない(例えば、特定の写真は、実際には悪意のある又は攻撃に関連するものではなくても、そのように決定する)。これを改善するために、入力が攻撃に関連するものとして検出された場合には、その入力を、次に、人間のラベラー(labeler)又は人間の分類者による手動の人間による検査のためにコンピューティング・ターミナルへ自動的に送る。人間のラベラーによる写真内容の識別がML/DL/AI保護ユニット120による元の識別と同じである場合、攻撃の検出はエラーであると考えられ、そのようなエラーは無視または廃棄される(および/または更なる学習のために、およびML/DL/AI保護ユニット120がそのようなエラーから学習してシステムを改善することを可能とするために、付帯的なリポジトリへ格納される)。対照的に、人間のラベラーによる写真内容の識別がML/DL/AIエンジン101により作り出された元の識別とは異なる場合、この入力(例えば、この写真)は悪意のあるもの又は敵対的なもの又はML/DL/AIエンジン101に対する攻撃の一部であると考えられ、そのように印付け又は報告され、人間のラベラーにより設定された真ラベルまたは正解ラベルが正しい出力として用いられる。
【0031】
[0032] 幾つかの実施形態では、オプションとして、人間のラベラー(または人間の分類者)を用いる代わりに、またはそれに加えて、攻撃から(または悪意のある入力または敵対的入力から)保護されているML/DL/AIエンジン101は、二次的な(例えば、プロプリエタリまたは公的に入手可能な)同様のML/DL/AIエンジン、または複数のそのような二次的なML/DL/AIエンジンを、そのような悪意のある入力(1以上)を検出する目的のためだけに用いることができる。例えば、会社Aはそれ自体のML/DL/AIエンジン101を開発および/または運用していて、これは、具体的には動物と関連する写真内の検出物を正しく分類することに適合するようにされる。会社Aは「Tiger.jpg」という特定の写真を受信または獲得し、これはトラとして予めラベル付けまたは分類されている。そのような予め付けられたラベルや予めなされた分類に自動的に依存するのではなく、ML/DL/AI保護ユニット120(ML/DL/AIエンジン101を保護するもの)は、その特定の写真を、ビング(Bing)またはグーグル(Google)(又はこれらの双方)の「リバース・イメージ・サーチ(reverse image search)」エンジンなどのような、必ずしもこの分野(動物)に特化しているわけではない第三者の分類サービスおよび/または公共の分類サービスへ送り、そのような「二次的」エンジンは、それにより写真「Tiger.jpg」が「ソファ」または「カウチ」(例えば、それがトラの皮膚のような図案の布地を有するソファを実際に描写する)として実際に分類されることを示す。そのような「二次的」エンジン又はそのような二次的エンジンの大半のもの又はそのような二次的エンジンの少なくとも1つのものによる分類に基づいて、保護されているML/DL/AIエンジン101は、写真「Tiger.jpg」は、トラという動物として信頼すべきではないこと、および/または廃棄または削除すべきこと、または「ソファ」として分類されるべきであること、または、さもなければ、悪意のある入力または敵対的入力として対処または処理すべきことを、決定することができる。「二次的」ML/DL/AIエンジン(1以上)へのそのような問い合わせは、システムの護衛ユニットまたはフィルタリング・ユニットにより、または敵対的入力検出ユニット126により行うことができ、これは、人間のラベラー、二次的ML/DL/AIエンジン131、二次的ML/DL/AIエンジンの組、および/または他の方法を用いることにより、悪意のある入力に対してML/DL/AIエンジン101を護衛することができ、そのような悪意のある入力がML/DL/AIエンジン自体へ入力されることや到達することさえも妨ぐことができる。幾つかのエレメントは、オプションとして、「群衆の叡智(wisdom of the crowd)」技術を適用する機構を用いることができ、それにおいては、複数の二次的ML/DL/AIエンジンのそれぞれのもの(および、オプションとして、1以上の人間のラベラー)に対して、特定の入来するクエリ(被保護ML/DL/AIエンジン101へ入来するもの)に関してのその出力またはその結果について質問が行われ、優勢な結果または大多数の結果または最も頻度の高い結果(または様々な二次的ML/DL/AIエンジンの評判または信用性またはサイズまたはスピードまたは他のパラメータに基づいて様々な重みをそれらの二次的ML/DL/AIエンジンへ割り当てている、重み付けされた式の出力を結果としたもの)が、優先され、「正解(ground truth)」として用いられる。
【0032】
[0033] 幾つかの実施形態では、回避/ポイズニング攻撃軽減ユニット127は、ML/DL/AIエンジン101へ向けた回避攻撃またはポイズニング攻撃を軽減または矯正するように、構成することができる。このユニットは、「バックアップ」動作プランを反映し、これは、そのような攻撃(1以上)の検出により、および、特に、必ずしも即座に阻止することができない進行中の攻撃の検出により、トリガされる。回避/ポイズニング攻撃軽減ユニット127は、幾つかの機能およびフィーチャーを有するが、それらは、(A)専用のセンターにおいて手動分類バックアップ・サービスがセットアップされ、短期間内(例えば、15または30または60分であり、保護されているML/DL/AIエンジン101の所有者の要求に基づく)に動作できるように準備されること、(B)攻撃的入力を検出することは、誤って分類された入力を検出することよりも簡単または効率的または正確であるので(幾つかのインプリメンテーションでは)、入力クエリの全て又はNパーセント(例えば、Nは予め定められたスレッショルド値であり、50または33または25または他の値などである)に関してML/DL/AIエンジン101により、または敵対的であると判定または推定された入力(例えば、攻撃に属する又は攻撃と関連する入力)のパーセンテージに基づくスレッショルド値または条件を用いることにより、結果として誤った分類を行うことになる攻撃がML/DL/AIエンジン101に対して現在行われていることを、システムが検出すること、(C)1以上の保護ユニットにより、または1以上の保護機構により、または他のシステム・メトリクス、システム・ユーザ・レポート、またはソース(例えば、異常または過剰な数の入力が1分または1時間の間に受け取られたことや、多数の入力が特定のソースまたはエンティティから入来したことや、攻撃の可能性を示すその他のインディケータの検出)により、攻撃が特定される又は疑われること、(D)攻撃軽減ユニットが始動またはトリガされて、手近な特定のML/DL/AIエンジン101のタスクに慣れている多数の人間のラベラーにより迅速になセットアップされる手動(例えば、人間)の分類サービスへと切り替えられること、および入来するクエリが、ML/DL/AIエンジン101へではなく手動分類サービスへ送られるまたは別ルートで送られること、そして、(E)攻撃が阻止される又は終了すると、手動軽減サービスが停止され、元の自動化されたML/DL/AIエンジン101へクエリが再び送られること、である。
【0033】
[0034] 幾つかの実施形態では、保護プラットフォーム(例えば、オフライン・ユニット(1以上)において、および/またはオンライン・ユニット(1以上)において、および/またはローカルまたはオンプレミスのインプリメンテーションにおいて、および/またはクラウド・コンピューティングまたはリモート・ユニットのインプリメンテーションを介してのもの)は、2以上の反復型の回避攻撃または関連する回避攻撃のグループを検出すること、及びそれらから保護することができ、たとえ回避攻撃のそれぞれのそれ自体が必ずしも検出されなくても、複数のイベントの集合体が、分散型または複数の攻撃者として、または、複数の攻撃者または複数の悪意のあるデバイスによる、または同じデバイスから又は複数のデバイスからの反復した又は反復する(また、互いに同一である必要はない)回避攻撃を行う単一の攻撃者または単一のデバイスによる調整された反復型回避攻撃として検出されるようにする。
【0034】
[0035] 幾つかの実施形態では、システムまたはプラットフォームは、オプションとして、ML/DL/AIモデルの複数の分散型インスタンスに由来する入力信号または入力を相関させる又はマッチングさせることにより動作することができ、これは、例えば、特に、車両に関する設定におけることであり、また、そのような相関またはマッチングを、そのようなML/DL/AIモデルまたはエンジンへの攻撃の検出に用いることができる。
【0035】
[0036] 幾つかの実施形態は、様々な設定における様々なタイプの攻撃に対してのML/DL/AIエンジン101の脆弱性を評価するAIベースの潜入テスト(penetration testing)(ペンテスティング(pen-testing))ユニット128を、含むこと及び用いることができる。AIベースの潜入テスト・ユニット128は、様々な攻撃へのML/DL/AIエンジン101のロバストネス・レベルまたは障害許容力レベルを推定する。AIベースの潜入テスト・ユニット128は、特に、この特定のML/DL/AIエンジン101に対して、またはML/DL/AIエンジン101と同じタイプの複数のML/DL/AIエンジンに対して(例えば、イメージ分類エンジンに対しての履歴にある攻撃)、または一般的に複数のML/DL/AIエンジンに対して行われた潜入攻撃および潜入テスト(およびそれらの対応する結果)といった、履歴にある又は過去の攻撃についてのデータを収集または獲得し、データセットを構築するが、これは、(I)潜入テストされたML/DL/AIエンジンのモデル・フィーチャー、例えば、それらのタイプ、サイズ、アーキテクチャ・フィーチャー(例えば、レイヤのサイズおよびタイプ)などのようなもの、および(II)そのようなML/DL/AIエンジンに対して行われた潜入テストの結果、例えば、潜入テストの結果(例えば、成功または失敗、成功のレベル、成功のパーセンテージ)、潜入テストされたML/DL/AIエンジンの正確度、テストされた特定の潜入攻撃に対してのロバストネス・スコアまたは障害許容力スコアまたは脆弱性スコアなどのようなものを、表すものである。AIベースの潜入テスト(ペンテスティング)・ユニット128は、ディープ・ニューラル・ネットワークなどのようなAI技術を用いて、時間と努力とを要する潜入テスト・プロセスを実際に行わずに、評価または保護されている特定のML/DL/AIエンジン101に関して予測または概算または推測される潜入テスト結果に関する予測を生成する。
【0036】
[0037] システム100は、ML/DL/AIエンジン101を保護するためのポリシー設計ツールおよびスマート強化プロセスを更に含むことができる。ML/DL/AIエンジン101の強化は、複雑であり多目的であり制約のある最適化の問題であり得ることを、出願人は認識している。最適化は、例えば、適切であり使用可能な防御の最適な主題を見つけること又は検出すること、および最適または最高の効率の防御パラメータ値を選択または設定または決定することを含む。最適化は多目的であるが、それは、防御が、自然のモデルの正確度に伴っての様々なシナリオでの様々な攻撃に対してのロバストネスを最適にするであろうからである。最適化は制約されるが、それは、強化プロセスの期間および強化のためのメモリへの要求と共に、出力モデルの予測実行時間および計算的な要求に制限があるからである。出力モデルからの他の要求は、新たなモデルが入力モデルの幾つかの属性を変更しないこと、または強化プロセスが元のモデルへの「ブラックボックス」アクセスのみを用いることであり得る。
【0037】
[0038] 幾つかの実施形態によると、防御ポリシー設計ツールまたは防御ポリシー構築器ユニット140は、前強化(pre-fortification)ユニット141または前強化インターフェースを含むことができ、これは、ML/DL/AIエンジン101の所有者またはオペーレータが、出力モデルから(またはその動作制約の)又は強化プロセスから、その要求を構成および定義することを可能にし、それらは、例えば、予測実行時間、予測計算コスト、出力モデルへ割り当てられる総メモリ、元のモデルへの強化プロセス・アクセス・タイプ(例えば、「ブラックボックス」または「ホワイトボックス」または他のもの)、強化プロセスの期間、強化プロセスの価格/計算コスト/リソース・コスト、許可される元のモデルに対する変更のタイプ(例えば、再訓練を許可または不許可とすること、前処理の付加のみ許可すること、元のモデルを変更しないが攻撃検出レイヤを付加すること)などである。オプションとして、スマート強化ユニット143は、制約された最適化の問題のパレート最適解を見つけるためのアルゴリズムを実行する。幾つかの実施形態では、オプションとして、各モデル提案の評価は、潜入テストを少なくとも1回試みることを、含むことができる。選択プロセスは、幾つかの技術または考察のうちの1以上のものを用いることができ、それは、多目的最適化アルゴリズムを用いること、時間が限られた強化プロセスに対しての予算制限付きサーチ・アルゴリズムを用いること、高速の潜入テストの概算のためにAIベースの潜入テストを用いること、全ての関連する攻撃をカバーする最適の防御サブセットを見つけるためにカバリング(covering)・アルゴリズムを用いること、グリッド・サーチ・アルゴリズムを用いること、進化的/遺伝的アルゴリズムを用いることである。オプションとして、後強化(post-fortification)ユニット142または後強化インターフェースは、様々な強化の結果をブラウジングおよび検査することを可能とすることができるが、これは、パレート最適解を探求するために効率的な機構をオプションとして含む、要求および制約に合う最高の特定の強化の解を選択するためである。
【0038】
[0039] オプションとして、AIベースのモデル強化ユニット144は、最も適切または効率のよい強化ポリシーのAIベースの予測を行うことができ、また、使用可能かつ適切な防御の高効率の又は適切なサブセットおよびそれらの対応する高効率の防御パラメータ値を決定することができる。 例えば、AIベースのモデル強化ユニット144は、モデル、顧客の要求および制約、およびそれらに対応する強化の結果についての履歴にあるデータまたは過去のデータを、集めることができる。次に、AIベースのモデル強化ユニット144は、(I)タイプ、サイズ、アーキテクチャ・フィーチャー(例えば、レイヤのサイズおよびタイプ)などのようなモデル・フィーチャーと、(II)評価または保護されている特定のML/DL/AIエンジン101の所有者またはオペーレータにより定められた要求または制約と、(III)強化方法の結果およびそれらの対応する強化パラメータ値との、データセットを構築する。ディープ・ニューラル・ネットワークやランダム・フォレストなどのような適切なAI技術を用いて、適切な又は高効率の強化技術のサブセットおよびそれらのそれぞれのパラメータを予測または決定することができ、それらは、評価または保護されている特定のML/DL/AIエンジン101に対して最適または最も効率的な強化を提供するために予測または決定され、これがなされると同時に、定められた制約は維持されおり、また、定められた要求は達成されており、また、特定のML/DL/AIエンジン101での時間を消費し且つ計算リソースを消費する強化プロセスを多数回にわたって反復して実際に行うことはない。
【0039】
[0040] 幾つかの実施形態は、評価または保護されている特定のML/DL/AIエンジン101に対しての保護および/または強化を提供するために、関心領域(RoI)ベースの保護ユニット150を含むことができる。例えば、イメージ処理タスクのための幾つかの従来(非AIベース)のアルゴリズムは、敵対的攻撃に対して強いが正確度が低いものであり得る。例えば、所与のイメージにおける関心領域(RoI)は何であるかを検出するタスクは、研究されたタスクであり且つそれを扱う様々な非AIアルゴリズムがあるタスクである。幾つかの実施形態は、伝統的アルゴリズム(例えば、RoI検出アルゴリズム)とAIベースの保護ユニットとの双方を組み合わて、ML/DL/AIエンジン101の保護においてロバストネスと正確度との双方を達成する防御技術を、含むことができる。
【0040】
[0041] 従って、勾配(gradient)/RoI敵対的入力検出器ユニット151を用いることができる。MLモデルを用いて、特に、ディープ・ニューラル・ネットワーク(DNN)を用いてイメージを分類する場合、システムは、入力でのモデルの勾配の導出を行うことができ、例えば、勾配は、入力イメージと同じ形状を持つマトリックスである。勾配における値は、特定の入力イメージの分類プロセスにおけるピクセルの重要度のレベルである(又はそれを示す又はそれに対応する)。例えば、DNNが猫のイメージを正しく分類する場合、勾配は、分類プロセスにおける重要なピクセルが猫の鼻、耳、および目のものであったことを示す。
【0041】
[0042] 従って、幾つかのことにより入力イメージを敵対的イメージと決定することができるが、それは、(a)MLモデルに従って入力イメージの勾配を計算すること、(b)伝統的アルゴリズムまたは決定論的アルゴリズムまたは非MLアルゴリズムを用いてイメージの関心領域(RoI)を生成すること、(c)勾配とRoIとを比較することであり、それらが互いに一致またはマッチする場合、イメージが正当な入力イメージまたは非敵対的入力イメージであると認め、それらが互いに不一致または相反する又はマッチしない場合、その入力イメージを敵対的入力イメージとして拒否またはフラグを立てる。比較プロセスまたはマッチング・プロセスは、例えば、この特定的な比較タスクに関して専用的なものであるトレーニングされたMLアルゴリズムを用いて、および/または重要なピクセルの予め定められたスレッショルド値(例えば、少なくとも70パーセント、または少なくともNパーセント)が実際にRoI内にあることを実証する決定論的アルゴリズムを用いて、行うことができる。
【0042】
[0043] 幾つかの実施形態では、RoI前処理ユニット152を用いて、上記のタスクに関しての所与の入力イメージに対しての前処理動作を行うことができ、それは、例えば、(a)RoIを検出または決定すること、および(b)RoIの外部(外側)に位置するその入力イメージの全ピクセルを、(i)定数値(例えば、0)、(ii)元のイメージ・ピクセルのスムージングまたは強いスムージングに対応する値、(iii)ランダムまたは擬似ランダムな値、(iv)上記の値を組み合わせたもののうちの1つと置換することによりなされるものである。
【0043】
[0044] 幾つかの実施形態は、攻撃または敵対的入力または攻撃または悪意のある入力からML/DL/AIエンジン101を更に保護するように動作することができるアダプティブ強化ユニット155またはハイブリッド・オンライン/オフライン保護ユニット156を含むことができる。モデル強化は、多目的であり制約のある最適化タスクである。タスクは、モデルを見つけることを含み、そのモデルは、正確度およびパラメータに関して、また様々な脅威に対してのそのロバストネスに関して現在最適であるが、予測実行時間、予測CPU使用、およびメモリについてのユーザの要求による制約または他の制約がある、というものである。静的設定における最適化の問題を解決することに加えて、動的設定における最適化の問題を解決することは有益である。例えば、CPU/処理コスト、メモリ使用コスト、データベース使用コスト、および/またはリソース使用の他のコストは、時間の経過とともに動的に変化し得るものであり、同様に、ML/DL/AIエンジン101へロードされるクエリも、時間の経過とともに変化し得るものであり、また、様々な脅威の確率も時間の経過とともに変化し得うるものである(例えば、特定の日において、1つの領域または世界中のML/DL/AIエンジンが、特定の敵対者から、または特定の脆弱性または現在拡散されており動作しているマルウェアに起因して、攻撃されていることが知られている場合がある)。したがって、システムは、変化する要求及び上述のパラメータの変化する値に従って動的またはオンラインの様式で(例えば、1日に1回、1週に2回、更には、1時間に1回、または他の時間間隔で)、モデル自体、即ち、ML/DL/AIエンジン101自体およびその内部モデルを動的に調節または変更または再構成するアルゴリズム用いる。例えば、ML/DL/AIエンジン101の強化プロセスは、H時間毎に又はD日毎に実行されるようにスケジュールすることができ、且つ/又はAIベースのアルゴリズムおよびオンライン最適化アルゴリズムを用いて、脅威が変化する且つ/又はパラメータ値が変化する動的環境に対しての更なる応答を提供することができる。
【0044】
[0045] 幾つかの実施形態は、リアルタイムまたはほぼリアルタイムでML/DL/AIエンジン101保護動作を行うことができるオンライン防御および保護ユニット157を用いることができる。そのようなサービスは、ウェブ・ベースとすることができ、また、ローカルにインストールされたソフトウェア・コンポーネントおよび/またはハードウェア・コンポーネントを含むことができ、オプションとして、構成および使用を改善するためにアプリケーション・プログラミング・インターフェース(API)をサポートする。そのような動作は、例えば、(A)オンライン入力処理を含むことができ、それにおいては、被保護ML/DL/AIエンジン101は、最初に、入力アイテム(例えば、入力イメージ)をオンライン防御および保護ユニット157へ送り、次に、そのユニットから、「サニタイゼーションされた」入力または「修正された」入力(例えば、それに対して行われた敵対的操作の負の影響をキャンセルまたは軽減または低減し得る、入力への1以上の変更を適用することによる)、または承認された入力(例えば、それが正当であること又は非敵対的であること又は悪意のないことのインディケーションとともに、入力イメージが戻される)を受け取るか、または、入力アイテムが悪意のあるもの又は敵対的であり廃棄すべき又は被保護ML/DL/AIエンジン101で処理すべきではないということのインディケーションを受け取り、そして、オンライン防御および保護ユニット157から受け取った入力は、次に、被保護ML/DL/AIエンジン101へ渡されて更に処理される(承認されたものである場合)。実証的な例では、被保護ML/DL/AIエンジン101は、人間のイメージを男性または女性に分類するように動作し、オンライン防御および保護ユニット157は、入力イメージが(完全に)人間であるか非人間(例えば、犬、椅子)であるかに関しての前処理のフィルタまたは分析または検査を付加し、それにより、攻撃と関連し得るものであり且つ/又はML/DL/AIエンジンが障害を起こす又は誤った結果を出力する原因となり得るそのような入力信号から、被保護ML/DL/AIエンジンを保護する。(B)オンライン敵対的入力識別: それにおいては、被保護ML/DL/AIエンジン101は入力アイテム(例えば、入力イメージ)をオンライン防御および保護ユニット157へ送り、それから、入力アイテムが敵対的であるか非敵対的であるかを示す分類を受け取るものであり、(C)オンライン攻撃パターン検出: それにおいては、被保護ML/DL/AIエンジン101(またはそれと関連する監視コンポーネント)は、被保護ML/DL/AIエンジン101で受け取った入力の全て又は実質的に全て又は幾つかのうちの殆どを、オンライン防御および保護ユニット157へ送り、これは、次に、一連の入力を分析して攻撃パターンを特定し(例えば、犬と予めラベル付けされた一連の猫のイメージを特定する)、攻撃パターンが検出されると(例えば、互いに非常に似ているが数ビットまたはバイト(またはピクセル)においてのみ異なる一連の入力(またはイメージ)、またはサーチ/最適化プロセスの結果のように見える一連のイメージである攻撃パターンを検出することによる)、オンライン防御および保護ユニット157は、被保護ML/DL/AIエンジン101の所有者またはオペーレータへ、そのような攻撃が検出されたことを通知すること、および/または特定のソースからの又は共通の特徴を持つ特定のクエリまたは入力を、阻止または隔離または廃棄するための又は処理することを避けるようにするための、トリガを生成することができる。(D)攻撃のオンライン監視、および検出された攻撃およびMLセキュリティと関連いるキー・パフォーマンス・インディケータ(KIP)を表す関連するモデル(1以上)またはグラフまたはチャートを生成すること。(E)オンライン時間遅延: それにおいては、被保護ML/DL/AIエンジン101は、最初に、入力アイテムを、入力のソースの識別子と共にオンライン防御および保護ユニット157へ送り、オンライン防御および保護ユニット157は、その入力を処理するために被保護ML/DL/AIエンジン101へ戻す前に時間遅延(例えばT秒またはT分であり、Tは予め定められた数、または、Tは予め定められた値の範囲内でランダムまたは擬似ランダムに選択されたものである)を注入または意図的に付加するものであり、または、Tは、ML/DL/AIエンジン101の潜入テストに基づいて又はスマート強化ユニット143により生成された出力に基づいて選択されたものであり、時間遅延は、入力ソースおよび/または入力アイテム自体に応じたものであり得、時間遅延は、被保護ML/DL/AIエンジン101に対しての多数のクエリを必要とする窃盗攻撃などのような特定の攻撃の阻止または弱体化または低速化または刺激除去をすることになり得る。(F)クエリ・クォータ(quota)またはレート制限: それにおいては、被保護ML/DL/AIエンジン101は、最初に、入力アイテムを、入力のソースの識別子と共にオンライン防御および保護ユニット157へ送り、オンライン防御および保護ユニット157は、その特定のソースと関連するクエリ・クォータに従って、その特定のソースをブロックするか否かを決定するものであり、クォータは、同じソースから過去T分内に到着した複数の入力/複数のクエリの中での類似性のレベルを考慮すること、および/または他のパラメータ(例えば、スマート強化ユニット143により生成された出力または値)などのような、1以上のパラメータまたは条件に基づいて、予め定めることができ、また、動的に割り当ておよび/または構成することができる。(G)ブラックリスト・プロセス: それにおいては、被保護ML/DL/AIエンジン101は、最初に、入力を、入力のソースの識別子と共にオンライン防御および保護ユニット157へ送り、次に、オンライン防御および保護ユニット157は、ソースのブラックリストおよび/または特定の入力またはクエリのブラックリストに従って、そのソースをブロックするか否かを決定する。
【0045】
[0046] 幾つかの実施形態では、このようにして、オンライン防御および保護ユニット157は、元のMLモデルの変更を必要としない保護を可能とすることができ、また、被保護ML/DL/AIエンジン101自体の最小の変更または変更無しでの、複雑な保護技術の効率的な統合および使用を可能とすることができ、また、一連の入力または一連のクエリにわたっての(又はそれらからの)攻撃パターンを検出する行動学的防御方法を可能とすることができ、また、機密性防御方法を適用および使用することを可能とすることができ、それらの方法は、「ブラックボックス」ソリューションとしてオンライン防御および保護ユニット157のリモート・サーバにより提供され、そのソリューションは被保護ML/DL/AIエンジン101へ出力(例えば、「入力は正当である」や「入力は敵対的である」)を提供するものであり、それは、そのような決定に到達するためにそのようなリモート「ブラックボックス」ユニットが用いる方法(1以上)を露出させることなくなされるものであり、また、ML/DL/AIエンジン101(及びその元のモデル)とそれへ保護レイヤを提供するユニットとの間の分離を可能とすることができる。幾つかの実施形態では、システムにより提供されるオンライン防御は、双方のパーティーのそれぞれがそれらの機密情報を秘密に維持することを可能とすることができ、被保護ML/DL/AIエンジン101自体およびその内部の動作の方法は、攻撃から保護されながらも非開示状態で維持されることができ、且つ/又は保護サービス(ML/DL/AIエンジン101を保護するもの)は、内部の動作の方法を開示または暴露しないウェブ・ベースで又はリモートで又はローカルにインストールされた又は共に配置された又はクラウド・ベースの「ブラックボックス」保護サービスとして、提供されることができる。
【0046】
[0047] 幾つかの実施形態は、更に、オンラインのAIベースの防御ユニット158を用いることができ、これは、1以上の(リモートまたはクラウド・ベースの)AI/ML/DLエンジンを用いることができ(例えば、DNN、ランダム・フォレスト、進化的/遺伝的アルゴリズム、または他の技術を用いる)、それにより、被保護ML/DL/AIエンジン101へ及び/又は被保護ML/DL/AIエンジン101へ入ってくる特定の入力(または入力の組)に関して、何れの保護スキームまたは保護動作を適用するか(又は適用しないか)について、また、そのような入力(1以上)に対して何れの前処理動作または前分類動作を適用する又は行うかについて、何れの再トレーニングされたモデル(1以上)を適用するかについて、何れの検出アルゴリズムを適用するかについて、および/または適用可能または適切であると選択的に決定され得る他の動作について、または、オンラインのAIベースの防御ユニット158のそのようなAI/ML/DLエンジン出力に基づいて予め定められた攻撃軽減動作のプールから何れが選択されるかについて、選択を行うようにする。幾つかの実施形態では、オンラインのAIベースの防御ユニット158の機能は、システムが動的要求を扱うことを可能とする動的強化を達成する際の援助を行うことができる。例えば、データベースまたはデータセットは、様々なタイプのML/DL/AIエンジンの特徴を用いて、それらの特定のデータセットおよびモデルの特徴を用いて、それらへ向けての検出された既知の攻撃の特徴を用いて、各タイプのエンジンおよびデータセットおよび攻撃、及び特定のエンジンまたはデータセットまたはエンジン/データセット組み合わせへ向けた特定の攻撃に対しての結果を伴う特定の軽減/保護動作に関しての結果(成功/失敗、または成功のスコアまたはパーセンテージ値)と関連する軽減/保護動作を用いて、作成することができる。そのようなデータに対しては、ML/DL/AI分析または分類が行われるが、それは、特定の(例えば、新たな)被保護ML/DL/AIエンジンに対して何れの攻撃ベクトルが関連し得るか、および/またはそのような被保護ML/DL/AIエンジンへのそのような攻撃(1以上)に対して何れの軽減または保護の技術が有用または有効であるかを、推定または予測または演繹するために行われる。幾つかの実施形態では、データ保全性分析ユニットは、システムまたはプラットフォームの一部として動作することができ、ML/DL/AIエンジンにより且つ/又はそのモデルにより現在作用されている、および/またはそのようなエンジンをトレーニングするために使用された且つ/又はそのようなモデルを構築するために使用されたデータセットの保全性のレベルの推定および/または数量化を行い、システムは、予め定められたスレッショルド値より低いデータ保全性スコアに応答して、1以上の軽減動作または再トレーニング動作または敵対的トレーニング動作、またはデータセットのピュアリングまたは置換または増補の動作を、呼び出すことができる。
【0047】
[0048] オンラインのAIベースの防御ユニット158は、被保護ML/DL/AIエンジン101へ向けて入ってくる(又はその中への、又はまさに入ろうとしている)それぞれの特定の入力に対しての適切(または最適)なオンライン防御を選択する責務を負うことができる。オンラインのAIベースの防御ユニット158は、動的な強化の履歴に基づいて及び/又はスマート強化ユニット143の出力に基づいて、および/または強化の履歴からの経験またはインサイトに基づいて、常に向上するモデル(1以上)を組み合わせるAIベースのモデル強化ユニット144の出力に基づいて、インプリメントする(または動作させる)ことができる。
【0048】
[0049] システムはオンライン防御監視ユニット159を更に含むことができ、これは、画面でのディスプレイまたは通知またはダッシュボードを生成し、これは、ユーザ(例えば、被保護ML/DL/AIエンジン101の所有者またはオペーレータ)が、ユーザのML/DL/AIエンジン101へ向けて試みられた又は試みられている攻撃、および適用されている又は適用されていた保護機構およびそれらの結果を、監視することを可能にする。オンライン防御監視ユニット159は、ユーザが、例えば、検出および/または阻止および/または回避された攻撃と、そのような攻撃の成功率および/または適用された軽減動作との履歴のグラフまたはチャートまたはリストまたは他の表現とを、獲得すること、特定の使用の統計に手動でラベル付けすること、および/またはシステムにより用いられる特定のパラメータおよび制約を構成すること、それぞれのオンライン防御機構についてのCPU/メモリの使用および実行時間使用についてのデータを獲得すること、敵対的であると識別された入力のパーセンテージ(全入力の中で)や遅れずに阻止できた又は前処理動作または隔離または廃棄の対象となった敵対的入力のパーセンテージなどのような、防御の有効性の統計および防御の成功のデータ、被保護ML/DL/AIエンジン101の潜入テスト履歴についての情報または生成されたインサイト(例えば、特に、保護の属性や保護関連の特徴が動的に変えられるときに)、および/または他の関連するパラメータを獲得することを、可能とすることができる。
【0049】
[0050] システムは、攻撃調査コンソール・ユニット160を更に含むことができ、これは、攻撃調査者および/またはML/DL/AIエンジン101のオペーレータが、ML/DL/AIエンジン101に対して行われた1以上の攻撃に関しての調査動作を行うことを可能にし、それにより、必要または適切な反応または軽減動作に関しての更なる重要な情報またはインサイトを提供または生成する。例えば、攻撃調査コンソール・ユニット160は、例えば、攻撃者がモデルをだまして幾つかの入力を誤って分類させるために試みられる回避攻撃についての敵対的ラベルの分布についてのデータであって、攻撃者が達成しようとした分類の分布を示す(例えば、攻撃者が、車両のイメージの分類ではなく動物のイメージの分類への攻撃を試みたことを示す)データ、および/または攻撃のタイプ(例えば、モデル窃盗、データセット情報窃盗、ポイズニング搾取、回避、又は他の攻撃)の分布についてのデータ、および/または攻撃が「ブラックボックス」攻撃であったか「ホワイトボックス」攻撃であったかを示すデータであって、「ホワイトボックス」攻撃については、それが検出されたときには、モデル自体が窃盗されていると推定されることの警告をシステムが生成するようにされ得る、データ、および/または攻撃が既知の攻撃(例えば、1以上のオープンソース・ツールまたは以前に見られた攻撃ツールを用いる攻撃)であるか未知の攻撃(例えば、以前には見られなかった攻撃ツールまたは攻撃ベクトルまたは攻撃サーフェイスまたは攻撃技術を用いる攻撃)であるかを示すデータであって、次に、攻撃と関連する脅威またはリスクのレベルに関してのインディケーションも生成し得るデータ、および/または他のインサイトを、生成および提供することができる。攻撃調査コンソール・ユニット160は、更に、不審な入力を手動の再ラベリングまたは再分類へ効率的に送る又は届ける又は別ルートで送ること、および/または攻撃の真の又は全体の範囲または領域についてのインサイトを生成すること、および/または特定のコンポーネントおよび/またはデータ・ポイントおよび/またはデータセット(1以上)および/またはエンジン(1以上)に関してのサンドボックス動作または隔離動作を開始すること、および/または1以上のフィーチャーまたは機能について、可視化すること及び/又はサンドボックス動作を開始することを可能にすること、および/または共に又は並列に又は順に動作する2以上の保護技術または強化技術の視覚的または画面上の表現を生成すること、および/または潜入テストの結果の視覚的または画面上の表現を生成すること、および/または現在配備されている及び/又は現在使用可能な及び/又は現在使用不可能な保護技術および/または強化技術を表す又は示すダッシュボードを生成すること、および/または複合ML/DL/AIシステムまたはエンジン内の特定のML/DL/AIユニット(1以上)の強化または保護を表す視覚的または画面上の表現を生成すること、および/または他の軽減動作を行う又はトリガする(例えば、調査者が、1組の入力または特定のソースから受け取った入力または特定の特徴を共有する入力を、手動で隔離することを可能にする)ことを、可能とすることができる。
【0050】
[0051] 幾つかの状況では、ML/DL/AIエンジン101の所有者またはオペーレータは、そのML/DL/AIエンジン101やその内部モデル(1以上)またはコンポーネント(1以上)またはロジックについての情報を共有させることなく、そのML/DL/AIエンジン101のロバストネスを決定することを望み得る、ということを出願人は認識している。しかし、幾つかのタイプの攻撃は「ホワイトボックス」型の攻撃であり得、その場合、攻撃されているML/DL/AIエンジン101の特定の知識または全ての知識が既に攻撃者の手元にある、ということを出願人は認識している。幾つかの状況では、「ホワイトボックス」攻撃は、攻撃を行うために、特定の計算の結果(例えば、特定の入力についてのモデルの勾配)のみを知ることを攻撃者に要求し得る、ということを出願人は認識している。従って、非開示(undisclosed)モデル潜入テスト・ユニット162は、ML/DL/AIエンジン101に対しての「ホワイトボックス」攻撃の潜入テストを行うことができ、それと同時に、被保護ML/DL/AIエンジン101のモデルまたはコンポーネントの秘密性を維持することもできる。例えば、ML/DL/AIエンジン101をホストする、またはML/DL/AIエンジン101と動作的に関連するサーバまたはコンピュータは、それにテスト・モジュールをインストールすることにより(例えば、オプションとしては、オープンソース・モジュールとして、またはML/DL/AIエンジン101の所有者または信用のある監査役により検査され得るソース・コードを有するモジュールとして、インプリメントされる)構成することができ、インストールされたテスト・モジュールは、「ホワイトボックス」攻撃に関して必要とされる計算のみを行う(例えば、特定の入力に関してモデルの勾配を計算する)。システムは潜入テストを行い、これは、計算を行うようにテスト・モジュールへリクエストを送ることにより「ホワイトボックス」攻撃を行い、次に、その結果(1以上)を、非開示モデル潜入テスト・ユニット162(例えば、リモート潜入テスト・サーバとしてインプリメントされる)へ返送して、そこで更なる評価または分析がなされるようにする。
【0051】
[0052] 更に、システムは、たとえML/DL/AIエンジン101またはそのモデルについての情報がない場合でも、攻撃からの保護を提供することができ、これは、例えば、ML/DL/AIエンジン101の動作様式とは関係なく悪意のある又は疑わしい入力またはクエリを検出するユニットなどのような、リモートまたはクラウド・ベースの非侵入性の保護ユニット(1以上)のみを選択的に作動させることによりなされる。オプションとして、システムは、使用可能な防御オプションについてのサーチを行うことができ、各オプションについて、非開示モデル潜入テスト・ユニット162を用いて、または従来の「ブラックボックス」攻撃に対してのロバストネスについてテストする技術を用いて、または他の技術を用いて、被保護ML/DL/AIエンジン101のロバストネスを評価することができる。
【0052】
[0053] 幾つかの実施形態は、ML/DL/AIエンジン101のロバストネスを評価するために、上述のユニット121、128、162のうちの1以上のものなどのような、1以上の潜入テストのユニットまたはモジュールを用いることができる。評価は、実験的方法または決定論的方法を用いて行うことができ、例えば、ML/DL/AIエンジン101に対して特定の攻撃を行い、その攻撃の結果を分析することによりなされ、且つ/又は、他の方法、例えば、ML/DL/AIエンジン101の構造が潜入テスト・ユニットに部分的に又は完全に知られている場合には、その構造の数学的分析または計算的分析を用いることによりなされる。潜入テスト・ユニットは、モジュール型ツールとすることができ、それは、新たな攻撃や新たな理論的または計算的な評価の方法をテストすることを可能とするように、効率的に更新され得る。
【0053】
[0054] 幾つかの実施形態は、オプションとして、ML/DL/AIエンジン101に対しての侵入性防御を使用または提供することができ、これは、例えば、セキュアなトレーニング済みモデル、敵対的トレーニング、アーキテクチャ変更、アンサンブル・トレーニング、モデル再トレーニング、データセット前処理、データセット増補、データセット・サニテーションたまはサニタイゼーション、および/または他の技術を用いて提供され得る。
【0054】
[0055] 例えば、敵対的トレーニング・ユニット163は、1以上の既知の攻撃に対して敵対的トレーニング防御を適用することにより、また、オプションとして、ML/DL/AIエンジン101を実行する又はそれと動作的に関連するコンポーネントとしてのサーバに又はサーバでローカルにインストールされたコンポーネントまたはモジュールを用いることにより、被保護ML/DL/AIエンジン101のロバストネスを増加させるように、動作することができる。オプションとして、前処理ベースの敵対的トレーニングおよび/または後処理ベースの敵対的トレーニングを用いることができ、これは、非開示モデルと考えられるML/DL/AIエンジン101に関しての敵対的トレーニングを含む。オプションとして、幾つかの実施形態は、ML/DL/AIエンジン101へ付加された前処理エレメントの敵対的トレーニング、および/またはML/DL/AIエンジン101へ付加された後処理エレメントの敵対的トレーニングを用いることができ、これは、非開示モデルと考えられるML/DL/AIエンジン101に関しての敵対的トレーニングを含む。
【0055】
[0056] 幾つかの実施形態では、敵対的トレーニングを他の様式で適用することができ、例えば、ニューラル・アーキテクチャ・サーチ(NAS)技術を用いることができ、被保護ML/DL/AIエンジンにより用いられるニューラル・アーキテクチャまたはモデル、またはニューラル・アーキテクチャまたはモデルの1以上の特徴または特性は、ハイパーパラメータ・サーチ空間の一部であり、そして、NASユニットは、所与のタスクに対しての最適なアーキテクチャまたはモデルを予測または推定し、また、オプションとして、好適または最適なモデルまたはアーキテクチャは、次に、敵対的攻撃に対する強化またはロバストネスを達成するために、敵対的トレーニング・プロトコルを用いてトレーニングされる。
【0056】
[0057] オプションとして、1以上の非侵入性(non-intrusive)防御ユニット(1以上)164をシステムで用いることができ、例えば、前処理および/または後処理、回避的な入力の分類、回避分類防御、および/または元のモデルの部分的または完全な再トレーニングを必要としない他の非侵入性防御を、行うようにする。このような防御を組み込むことは、モジュールを使う形で行うことができ、それにより、開発された新たな防御をシステムへ効率的に付加することができる。
【0057】
[0058] 幾つかの実施形態では、ポイズニング検出および修復ユニット165を、ポイズニング攻撃の対象とされたモデルおよび/またはデータセットを検出および修復するように動作させることができる。このユニットは、ユーザが定めた1以上の制約の下で動作することができ、制約は、例えば、再トレーニングがここで許可されるという制約、または非開示のデータセット、または非開示のモデルである。このユニットは、モジュールを使う形で構築することができ、新たな検出方法および/または新たな修復方法を効率的に付加または使用できるようにする。
【0058】
[0059] 幾つかの実施形態は、正常な(例えば、「本番(production)の」)サーバおよび環境で実行されるML/DL/AIエンジン101に対してのリアルタイム・サービスとしてリアルタイム防御を提供することができる。そのような防御は、例えば、リアルタイム前処理、リアルタイム後処理、リアルタイム敵対的入力分類器、アンサンブルのリアルタイム前処理、リアルタイム・バックドア・ポイズニング軽減、リアルタイム・バックドア・ポイズニング搾取検出、および/またはクラウド・コンピューティング・ベースのサービスとして又はリモート・サービスとして動的に提供され得る他のサービスを、含むことができる。
【0059】
[0060] 幾つかの実施形態は、ML/DL/AIエンジン101へのアクセスを選択的に制限または限定することにより、「本番」で実行されるML/DL/AIエンジン101の保護を可能にするために、リアルタイム・モデル・アクセス制限ユニット166を用いることができ、それは、例えば、応答時間遅延および/またはユーザ・クエリ・クォータおよび/またはレート制限を導入または注入または意図的に付加することによりなされ、これは幾つかの「ブラックボックス」回避攻撃、「ブラックボックス」再プログラミング攻撃、窃盗攻撃、および/または他の攻撃に対して効果があり得る。このユニットはまた、ユーザが定めた又はユーザが構成可能なブラックリストを使用または施行することにより、様々な攻撃を阻止する際に補助を行う。オプションとして、制限パラメータは、モデルまたはML/DL/AIエンジン101の潜入テストに基づいて、動的に選択および施行することができる。
【0060】
[0061] システムは、従って、リアルタイムの検出、攻撃の阻止、攻撃の軽減、および攻撃の監視を提供することができる。例えば、ML/DL/AIエンジン101へ入来する入力および/またはML/DL/AIエンジン101により生成される出力を監視および検査し、その間も、ML/DL/AIエンジン101は、実行および動作を行い(「生産中(in production)」)、そのような入力および出力を分析して攻撃を検出してそれを軽減する。攻撃が検出され特定されると、システムは、リアルタイム又はほぼリアルタイムのクエリ阻止、リアルタイム又はほぼリアルタイムのユーザ阻止をトリガし、関連する攻撃情報を監視システムへ送り、通知を生成して管理者または1以上の受信者へ送るようにし、また、他の軽減動作(例えば、レート制限、クエリ・クォータの構成および執行、時間遅延の注入、入力またはクエリの隔離または廃棄、入力またはクエリのサニテーション、出力の意図的な変更またはランダム化(例えば、攻撃者へ反撃するため又は攻撃者を混乱させるため)、ML/DL/AIエンジン101の1以上のコンポーネントをオフラインにすること、または他の軽減動作)を行う。
【0061】
[0062] 幾つかの実施形態は、保護ポリシー構成ユニット167又はこれと似た設計および構成のツールを用いることができ、これは、ユーザが複数の依存型および非依存型のパラメータを構成、変更および最適化することを可能とし、それらのパラメータは、自然な入力についてのモデル正確度、各タイプの攻撃下でのモデル正確度、モデル予測のための計算ソース、および/または他のパラメータまたは制約などであり、攻撃や脅威に対してのML/DL/AIエンジン101のロバストネスを増加させるためのものである。保護ポリシー構成ユニット167は、ユーザが、様々なパラメータのトレードオフを明確に考慮する、選択する、承認する、および/または承認しないこと、およびユーザの要求、目標、および制約に最も適する保護スキームを選択する、定義する、または構成することを、可能にする。
【0062】
[0063] 幾つかの実施形態により保護されるML/DL/AIエンジン101は必ずしも単一ユニットまたはスタンドアローン・ユニットまたは単一コンポーネント・ユニットである必要がない、ということが明確にされ、むしろ、幾つかの実施形態は、連鎖的な又は1組の又は1グループの又は1バッチの又は1つの「コンピューティング・ファーム」の他の集合であり、互いに動作的に関連し得る又は並列的に及び/又は直列的に及び/又は協力して及び/又は同時に及び/又は順に動作し得る2以上(または多数)のML/DL/AIエンジンまたはユニット、複数コンポーネントのML/DL/AIエンジンまたはサブシステム、または複数モデルのML/DL/AIエンジンまたはサブシステム、または複数のユニットまたはコンポーネントの組み合わせ又は混成を含むML/DL/AIエンジンを、同様に保護することができる。幾つかの実施形態によると、保護システムは、同時に又は協力して又は並列的に、複数の異なる顧客または複数の異なる独立的なML/DL/AIエンジンに仕えて保護することができる、ということが強調され、ここでの複数の異なる顧客または複数の異なる独立的なML/DL/AIエンジンは、互いに完全に独立したものであり得、且つ/又は互いに離れたものであり得、且つ/又は異なるエンティティーにより所有される又は動作させられせるものであり得、且つ/又は異なるタイプのものであり得る。
【0063】
[0064] 例示を目的として、この説明の幾つかの部分は、イメージまたは写真またはグラフィカル・データ・アイテムを入力として受け取る被保護ML/DL/AIエンジンと関連し得るが、それらは限定のためではない単なる例であり、幾つかの実施形態は、他のタイプのML/DL/AIエンジンを同様に保護することができ、かつ/または他のタイプのデータを受け取る(又は処理する、又はそれに対しての動作を行う)ML/DL/AIエンジンを保護することができ、他のタイプのデータとは、例えば、テキスト・データ、数的データ、英数データ、表形式データまたは作表済みデータ、データ・アイテムまたは値のアレイまたはマトリックスまたはテーブル、フィールドまたはレコードとして配置またはフォーマットされたデータ、非グラフィカル・データ、グラフィカル・データ、ビデオ・データ、オーディオ・データ、オーディオおよびビデオ・データ、生データ、処理済みデータ、部分的に処理済みのデータ、ユーザが提供したデータ、機械が生成したデータ、センサまたは感知ユニットから集めた又は受け取ったデータ(例えば、加速計データ、ジャイロスコープ・データ、温度データ、空間識データ)、バイオメトリック・データ(例えば、指紋のスキャン、網膜のスキャン、目のスキャン、顔のスキャン、または顔のイメージ)、金融データ、財務関連のデータ、OCR向けのデータ、テキスト・ファイルまたはスプレッドシート・ファイルまたはXMLファイルまたはCSVファイルまたはデータベース・ファイルから得られた(又はそれとして提供された)データ、2以上のタイプのデータの組み合わせである入力、2以上のデータ・フォーマットの組み合わせとして提供される入力、メタデータ(例えば、どのように又はどこで又はいつ、データが集められたか又は得られたかを示すもの)が付随するデータ・アイテム、および/または他のタイプのデータである。
【0064】
[0065] ここで図2を参照するが、この図は、幾つかの例示的な実施形態に従ったシステム200の概略的なブロック図を例示する。オプションとして、システム200は、図1のシステム100の例証的なアーキテクチャのインプリメンテーションであり得る。システム200は、スケーラビリティを可能にするモジュール型のアーキテクチャを用い、単一のユーザまたは複数のユーザに対してクラウド・サービスまたはクラウド・コンピューティング・サービスとしてインプリメントすることができ、また、ローカルにインプリメントおよびインストールすることができる(例えば、被保護ML/DL/AIエンジンと同じ場所に配される認可されたソフトウェアまたはモジュールとして)。システム200のアーキテクチャおよびコンポーネントは、保護スキームの幾つかのフィーチャーのサポートを行うことができ、(a)様々な脅威または攻撃に対しての被保護ML/DL/AIエンジンのロバストネスの評価を介しての、潜入テストの、(b)攻撃に対する安全性又は障害許容力をより高くするために被保護ML/DL/AIエンジンの変更または再構成を行うことによる、オフライン保護の、(c)リアルタイム又はほぼリアルタイムで被保護ML/DL/AIエンジンのための防御サービスを提供することによる、オンライン保護の、(d)攻撃軽減サービスの、(e)特定の脆弱性および保護スキームの調査または試験またはリサーチを行うためのユーザによる手動/カスタムの実験を可能にする保護サンドボックス環境の、サポートを行うことができる。
【0065】
[0066] 幾つかの実施形態では、ハイブリッド敵対的トレーニングを用いることなどによるハイブリッドのアプローチを用いることができ、それは、例えば、クラウド・ベースのプラットフォームで又は被保護ML/DL/AIエンジンから離れて(または間隔を空けて)配されるリモート・サーバで、保護サービスの1以上のタスクまたは動作が行われ、そして、クライアント側で又は被保護ML/DL/AIエンジンで、保護サービスの1以上の他のタスクまたは動作が行われるというものであり、また、例えば、クラウド・ベースのプラットフォームが、敵対的サンプルを生成し、それらを被保護ML/DL/AIエンジンへ提供し、そして、被保護ML/DL/AIエンジンが、それらの敵対的サンプルをここでは含むデータセットに基づくトレーニングを行うというものである。他のハイブリッドまたは分散型のインプリメンテーションを用いることもできる。
【0066】
[0067] 幾つかの実施形態は、オプションとして、複数の検出器または保護ユニットをカスケードにしたもの又は検出器カスケード・サブシステムを用いることができ、これは、例えば、1組の又は一連の又は1ラインの又は1グループの検出器をインプリメントすること、および任意の入力信号(例えば、被保護ML/DL/AIエンジンへ向けられたもの)に関してそれらの検出器のうちの1つのみ又は幾つかのみ(全てではないもの)を適用することによりなされるものであり、既に活性化されていた検出器(1以上)により生成された出力(1以上)が、(i)特定の入力信号に関して適切に判定に到達しているか、または(ii)その特定の入力信号のために1以上の追加の検出器を呼び出してそれらの出力を同様に分析すべきかを(例えば、判定に到達できるか否か又は追加の検出器(1以上)を呼び出すべきか否かを)規定するようにする。幾つかの実施形態では、検出器カスケードにおいて、遅い検出器または多くの資源を要求する検出器が配される前に、速い検出器または多くの資源を要求しない検出器が配されるようにして、システムが、最初に、低速で資源への要求が高い検出または判定のプロセスを呼び出す前に、高速であり資源への要求が低い検出または判定のプロセスに基づいて判定に到達することを試みることを、可能にする。
【0067】
[0068] 幾つかの実施形態では、保護プラットフォームまたは保護システムは、「サンドボックス」実験ツールまたはフィーチャーを含むこと又は提供することができ、これは、ユーザ(例えば、被保護ML/DL/AIエンジンの所有者または管理者)が、被保護ML/DL/AIエンジンを実際に損傷をさせない制御された又は「サンドボックス化された」環境において、様々な保護方法または様々な保護スキームまたは様々な保護構成、および/または様々な脆弱性または攻撃について実験および調査および評価することを可能にする。例えば、被保護ML/DL/AIエンジンの一時的コピーを複製することができ、その一時的コピーについて、一時的な形で且つ不接触で維持される「実際の」被保護ML/DL/AIエンジンへ影響をおよぼさずに、テストまたは実験できるようにする。
【0068】
[0069] 幾つかの実施形態では、プラットフォームの1以上のフィーチャーまたは機能は、アプリケーション・プログラミング・インターフェース(API)および/またはソフトウェア開発キット(SDK)または「デブキット(dev-kit)」を介してアクセスおよび/またはプログラムすることができ、これは、ユーザ(例えば、被保護ML/DL/AIエンジンの所有者または管理者)が、プラットフォームと対話すること及び/又はスクリプトおよび/またはコード部分を作成することを可能にするが、これは、プラットフォームとの1以上の対話を自動化し、且つ/又は保護プラットフォームへコマンドを自動的に提供し、且つ/又は保護プラットフォームにより生成された出力(または警報)へ1以上の予めプログラムされたルールを自動的に適用するものである。
【0069】
[0070] 幾つかの実施形態では、保護プラットフォーム又はその機能の幾つか(必ずしも全てではない)の「クラウド・ベース」のインプリメンテーションは、リモートのクラウド・ベースのコンピュータを用いて、及び/又は「オンプレム(on-prem)」または「オンプレミス」の配置を用いてインプリメントすることができ、それにおいては、機能のうちの幾つか(または全て)が、ユーザ(被保護ML/DL/AIエンジンの所有者または管理者)の敷地内で、および/またはそのようなユーザのプライベートのインフラストラクチャで、および/またはプライベートのクラウド・ベースの配置で又は他の適切なタイプ(1以上)のソフトウェア・アズ・ア・サービス(SaaS)の配置を介して、ローカルに配置される。
【0070】
[0071] 幾つかの実施形態では、複数の保護ポリシー(または防御ポリシー)を、システムにおいて予め定めること、および/またはユーザ(被保護ML/DL/AIエンジンの所有者または管理者)により時々構成または定義または変更することができ、1以上のルールは、保護システムが、1以上の予め定められた条件が有効である場合に、および/またはトリガリング・イベントが生じたか又は検出された場合に、および/または1以上の特定のパラメータの値が予め定められたスレッショルド値を超えた場合に、および/または他のタイプの条件またはトリガに基づいて、第1の保護ポリシーから第2の異なる防御ポリシーへと自動的に切り替えることを可能にするように、更に定めることができる。例えば、保護ポリシーまたは防御ポリシーは、ユーザ(例えば、被保護ML/DL/AIエンジンの所有者または管理者)により構成され得る幾つかの条件または目標または制約を反映することができ、それらは、例えば、(i)被保護ML/DL/AIエンジンにより生成される出力の目標正確度または目標妥当性または目標正当性、(ii)達成が望まれる又は意図される保護の目標レベル、(iii)リソース関連の制約(例えば、処理サイクル、処理時間、決定までの時間(time-to-decision)、メモリ・リソース、ストレージ・リソース)、(iv)他のビジネス関連または技術関連のフィーチャー(例えば、動作の性能関連の判定を検査または説明する能力)と関連し得る制約または目標、(v)費用または予算の制約である。従って、ユーザ(例えば、被保護ML/DL/AIエンジンの所有者または管理者)は、そのように保護ポリシーまたは防御ポリシーにおいて反映され、前記の目標および/または他の目標または制約を考慮および反映する防御戦略または保護戦略を、モジュール式に定めることができる。保護プラットフォームは、次に、ユーザに対して、そのような目標を達成するために及び/又はそのような制約に従うためには保護プラットフォームの何れの保護スイート(1以上)または何れの特定のフィーチャーまたは機能が適切であり得るか又は使用可能であり得るか、についての助言を行い、幾つかの実施形態では、保護プラットフォームは、更には、第1の組の保護動作(例えば、第1保護スイート)から第2の異なる組の保護動作(例えば、第2保護スイート)へと切り替えること、および/または1以上のパラメータまたは制約の値を変更することを、自動的または自律的に選択することができる。
【0071】
[0072] 例えば、ユーザは、(i)入力の8パーセントより多くのものを阻止すべきではない又は悪意のあるものと見なすべきではない、(ii)入力の分析および攻撃の検出にRAMの6ギガバイトまで割り当てることができる、(iii)入力の分析および攻撃の検出に2つのプロセッシング・コアの450クロック・サイクルまで割り当てることができる、などのような目標を定めることができ、特定の時点で特定の保護スイートの実施がそれらの制約に達すると、保護ポリシーで定められた目標または制約の範囲内に留まるために、保護スイート(又はそれが用いるオプションのパラメータ)は、保護プラットフォームにより自動的に改造または変更される。
【0072】
[0073] 従って、幾つかの実施形態は、動的な又は動的に変化する又は動的に変化可能な保護ポリシーと、動的な又は動的に変化する又は動的に変化可能な又は動的に切り替え可能な保護スイートとを、用いることができる。動的特性は重要であるが、その理由は、例えば、コンピューティング・リソースの金額的コストが動的に変化し得るから、および/または新たな脆弱性が原因で特定のタイプの攻撃が急に増加し得るから、および/または特定のイベント(例えば、二国間での戦争、または二社間でのビジネス上の対立)が原因で特定のML/DL/AIエンジンへの攻撃が急に増加し得るからである。従って、システムは、前記の制約および前記の目標を考慮する(及びそれに従う)ものであり動的に変化する又は動的に調節するものである保護機能の集合を、提供することができ、これは、オンラインまたはクラウド・ベースのプラットフォームで、および/またはオンプレミスの配置されたユニット(1以上)で、攻撃軽減ユニット124で、および/またはシステムの他の適切なユニットで、インプリメントすることができる。
【0073】
[0074] 幾つかの実施形態では、システムは、1以上のルールまたはパラメータまたは条件または分析に基づいて、防御ポリシー、および/または特定の防御ポリシーまたは保護ポリシーまたはその目標またはその制約を強化または達成するために適用されるものである防御技術または保護機能の、動的または周期的な最適化または変更または調節(または切り替え)を行うことができ、それは、例えば、防御/保護の最適化および/または変更のパフォーマンスの履歴を考慮および分析することにより、また、特定の使用ケースからフィーチャー(例えば、保護されている特定のML/DL/AIの特徴、システム・タイプ、データセット・タイプ、データセット・サイズ、全体的データセット・フィーチャー、オートエンコーダを用いて生成されるデータセット・フィーチャー、モデル・タイプ)を抽出することによりなされるものであり、また、AIベースのシステム(例えば、ディープ・ニューラル・ネットワーク(DNN)、グラフ・ニューラル・ネットワーク(GNN)、クラスタリングの方法、ニアレスト・ネイバーの方法、これらのような方法または他の方法の組み合わせ)をトレーニングすることができ、それにより、保護ポリシーにより定められた目標からの目標(または最大数の目標)に到達するであろう有効な防御スイートおよび/または保護機能の有効な組み合わせまたは集合を予測または推定するようにし、それが行われているときにも、システムの使用の制約(例えば、動作の制約、処理リソースの制約、メモリの制約、時間の制約、偽陽性スレッショルドの制約、偽陰性スレッショルドの制約)に又は最大数のそのような制約に従うようにする。幾つかの実施形態では、オプションとして、保護ポリシーにおいて定義された様々な目標に関して第1のディファレンシャル・ウェイト式(differential weight formula)を用いることができるが、その理由は、特定の目標(例えば、攻撃の98パーセントを阻止すること)に対して、別の特定の目標(例えば、偽陽性エラーが多くとも7パーセントであること)と比べて大きい重みが割り当てられ得るからであり、また、同様に、オプションとして、保護ポリシーにおいて又はシステム管理者(例えば、被保護ML/DL/AIエンジンの所有者または管理者)により定義された様々な制約に関して第2のディファレンシャル・ウェイト式を用いることができるが、その理由は、特定の制約(例えば、RAMの使用が多くとも5ギガバイトであること)に対して、別の特定の制約(例えば、何れの入力信号に関しても、関連する全計算を、その入力信号の受信から6秒内に終了すること)と比べて大きい重み又は高い厳格性が割り当てられ得るからである。重み付きの式(weighted formula)の出力は、適用される保護ポリシーおよび/または保護機能の動的な最適化または変更(または切り替え)における考慮すべき事項として用いることができる。
【0074】
[0075] 幾つかの実施形態は、コードを実行するように構成された1以上のプロセッサを含むシステムを提供し、その1以上のプロセッサは、コードを格納するように構成された1以上のメモリ・ユニットと動作において関連する。システムは、或るグループから選択されたユニットである被保護エンジンを保護するように構成され、そのグループは、機械学習(ML)ユニット、深層学習(DL)ユニット、人工知能(AI)ユニット、およびニューラル・ネットワーク(NN)・ユニットを含む。システムは、悪意のある入力および悪意のあるクエリおよび悪意のあるトレーニング・データおよび悪意のある攻撃から被保護エンジンを保護するように構成される。システムは、(a)被保護エンジンの1以上の特徴を分析するため、および被保護エンジンの1以上の動作特性または動作パラメータを変化させることにより攻撃に対して前記被保護エンジンのオフラインでの強化を行うため、および攻撃に対してのその脆弱性を低減するためのオフライン保護ユニットと、(b)オンライン保護ユニットであって、(i)被保護エンジンへ入力されるように向けられた1以上の入力と、(ii)被保護エンジンにより生成された1以上の出力とのうちの少なくとも1つの分析を行うため、および前記の分析に基づいて、被保護エンジンの1以上の動作特性または動作パラメータを動的に変化させることにより攻撃に対して前記被保護エンジンのオンラインでの強化を動的に行うため、および攻撃に対してのその脆弱性を低減するためのオンライン保護ユニットと、のうちの少なくとも1つ(また、幾つかのインプリメンテーションでは双方)を含む。
【0075】
[0076] 幾つかの実施形態では、被保護エンジンは、MLモデルとDLモデルとAIモデルとを含むグループから選択された被保護モデルを用いるものであり、オフライン保護ユニットとオンライン保護ユニットとのうちの少なくとも1つは、前記被保護モデルを、特定の攻撃に対して脆弱である変更前モデル・バージョンから、前記特定の攻撃に対して全く脆弱ではない又は脆弱性が低い変更後モデル・バージョンへと、自動的に変更する。
【0076】
[0077] 幾つかの実施形態では、被保護エンジンは被保護データセットに基づいて動作するものであり、オフライン保護ユニットとオンライン保護ユニットとのうちの少なくとも1つは、前記被保護データセットを、特定の攻撃に対して被保護エンジンを脆弱にする変更前データセット・バージョンから、前記特定の攻撃に対して被保護エンジンを全く脆弱ではないように又は脆弱性が低くなるようにする変更後データセット・バージョンへと、自動的に変更する。
【0077】
[0078] 幾つかの実施形態では、被保護エンジンは被保護データセットに基づいて動するものであり、オフライン保護ユニットとオンライン保護ユニットとのうちの少なくとも1つは、前記被保護データセットを、特定の攻撃に対して被保護エンジンを脆弱にする変更前データセット・バージョンから、前記特定の攻撃に対して被保護エンジンを全く脆弱ではないように又は脆弱性が低くなるようにする変更後データセット・バージョンへと、自動的に変更するが、それは、敵対的データを生成して前記被保護データセットへ付加すること、および変更後データセット・バージョンに基づいて被保護エンジンの再トレーニングを開始することによりなされる。
【0078】
[0079] 幾つかの実施形態では、被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用いるものであり、オフライン保護ユニットとオンライン保護ユニットとのうちの少なくとも1つは、前記被保護アーキテクチャを、特定の攻撃に対して被保護エンジンを脆弱にする変更前アーキテクチャ・バージョンから、前記特定の攻撃に対して被保護エンジンを全く脆弱ではないように又は脆弱性が低くなるようにする変更後アーキテクチャ・バージョンへと、自動的に変更するが、それは、前記パイプライン動作の数または順を変更すること、又は前記動作パラメータの特定の値の1以上のものを変更することによりなされる。
【0079】
[0080] 幾つかの実施形態では、被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用いるものであり、オフライン保護ユニットとオンライン保護ユニットとのうちの少なくとも1つは、前記被保護アーキテクチャを、特定の攻撃に対して被保護エンジンを脆弱にする変更前アーキテクチャ・バージョンから、前記特定の攻撃に対して被保護エンジンを全く脆弱ではないように又は脆弱性が低くなるようにする変更後アーキテクチャ・バージョンへと、自動的に変更するが、それは、被保護エンジンが受け取った入力に対して更なる動作を行う前処理ユニットを前記被保護アーキテクチャへ付加することによりなされる。
【0080】
[0081] 幾つかの実施形態では、被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用いるものであり、オフライン保護ユニットとオンライン保護ユニットとのうちの少なくとも1つは、前記被保護アーキテクチャを、特定の攻撃に対して被保護エンジンを脆弱にする変更前アーキテクチャ・バージョンから、前記特定の攻撃に対して被保護エンジンを全く脆弱ではないように又は脆弱性が低くなるようにする変更後アーキテクチャ・バージョンへと、自動的に変更するが、それは、被保護エンジンが生成した出力が意図された受信者へ送られる前に、その出力に対して更なる動作を行う後処理ユニットを前記被保護アーキテクチャへ付加することによりなされる。
【0081】
[0082] 幾つかの実施形態では、被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用いるものであり、オフライン保護ユニットとオンライン保護ユニットとのうちの少なくとも1つは、前記被保護アーキテクチャを、特定の攻撃に対して被保護エンジンを脆弱にする変更前アーキテクチャ・バージョンから、前記特定の攻撃に対して被保護エンジンを全く脆弱ではないように又は脆弱性が低くなるようにする変更後アーキテクチャ・バージョンへと、自動的に変更するが、それは、入力を分析して、特定の入力または特定の入力のグループが被保護エンジンへの攻撃と関連するか否かを決定する攻撃検出ユニットを被保護アーキテクチャのパイプラインへ付加することによりなされる。
【0082】
[0083] 幾つかの実施形態では、攻撃検出ユニットは、必ずしも保護アレイまたはオフライン保護ユニットまたはオンライン保護ユニットの必須部分ではなく、むしろ、補助ユニットとすることができ、この補助ユニットは、攻撃を検出する、または特定の入力(または1組の入力)が攻撃の一部であり得ること又は悪意があり得ること又は正当ではないことを推定すること、および保護動作および/または軽減動作を呼び出すためにシステムのユニットの他の部分へ「攻撃を検出/推定したこと」の信号を送ることができる。
【0083】
[0084] 幾つかの実施形態では、オフライン保護ユニットなどのような、プラットフォームまたはシステムの補助ユニットの1以上のものは、ML/DL/AIエンジンの実行または動作が行われるところであるモデル(モデルをデジタルで表したもの)の内部構造を能動的に変更または調節ことにより、および/または前処理および/または後処理の動作、フィルタリング動作、サニタイゼーション動作、再トレーニング、敵対的トレーニング、および/または他の技術を付加することにより、動作することができ、また、攻撃に対してのML/DL/AIエンジンおよび/またはそのモデルの障害許容力をより高くする又は脆弱性を低くする又はロバストネスを高くする動作を行うことができる。
【0084】
[0085] 幾つかの実施形態では、被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用いるものであり、オフライン保護ユニットとオンライン保護ユニットとのうちの少なくとも1つは、前記被保護アーキテクチャを自動的に変更するが、それは、(i)特定の受信者が前記被保護エンジンへ提出できるクエリの数についてレート制限すること、(ii)前記被保護エンジンへ入来するクエリの少なくとも幾つかを廃棄すること、(iii)前記被保護エンジンへ入来するクエリの少なくとも幾つかを隔離すること、(iv)被保護エンジンにより生成された出力または特定の出力または特定の出力のサブセットが関連する又は意図された受信者(1以上)へ送られる前に、それを意図的に遅延させること、(v)上述の動作のうちの2以上のものの中で交互にすること又は上述の動作とは異なる動作を時々行うこと、のうちの少なくとも1つのことを行うことによりなされる。
【0085】
[0086] 幾つかの実施形態では、被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用いるものであり、オフライン保護ユニットとオンライン保護ユニットとのうちの少なくとも1つは前記被保護アーキテクチャを自動的に変更するが、それは、特定の受信者へ向けて前記被保護エンジンから出力される応答を意図的に遅延させることによりなされる。
【0086】
[0087] 幾つかの実施形態では、被保護エンジンは、動作パラメータの特定の値を用いる特定の数のパイプライン動作を有する被保護アーキテクチャを用いるものであり、オフライン保護ユニットとオンライン保護ユニットとのうちの少なくとも1つは前記被保護アーキテクチャを自動的に変更するが、それは、悪意のあるクエリの発信元であると決定された特定の受信者へ向けて前記被保護エンジンから誤った出力を意図的に提供することによりなされる。
【0087】
[0088] 幾つかの実施形態では、オフライン保護ユニットとオンライン保護ユニットとのうちの少なくとも1つは、二次的MLエンジンと二次的DLエンジンと二次的AIエンジンとを含むグループから選択される二次的エンジンを用いて、特定の発信元エンティティーから受け取った入力クエリの二次的分類を行い、そして、二次的エンジンにより行われた前記入力クエリの分類に基づいて、前記入力クエリが被保護エンジンへの悪意のある攻撃の一部であるか否かを決定する。
【0088】
[0089] 幾つかの実施形態では、システムは、更に、AIベースの潜入テスト・ユニット(またはMLベースまたはDLベースの潜入テスト・ユニット)を含み、これは、制御された形で被保護エンジンに対して自動の潜入テストを行うように構成され、また、様々なタイプの攻撃に対しての前記被保護エンジンの障害許容力の量的なレベルを推定または予測する(例えば、ML/DL/AI技術を介して)ように構成される。幾つかの実施形態では、被保護エンジンに対して行われる全ての潜入テストは、新たなデータ・サンプルまたはデータ・ポイントを付加し、これは、次に、AIベース(またはMLベースまたはDLベース)の潜入テスト・ユニットにより用いられて、潜入テスト予測モデル(1以上)が再トレーニングされ、それにより改善される。幾つかの実施形態では、AIベース(またはMLベースまたはDLベース)の潜入テスト・ユニットは、被保護エンジンに対して使用できる最も効果的な攻撃または攻撃タイプを予測または推定することができ、かつ/またはそのような攻撃のハイパーパラメータまたは被保護エンジンに対してそのような攻撃を実行できる最も有効な方法を予測または推定することができ、そして、被保護エンジンに対してのML予測された攻撃のML予測されたハイパーパラメータは、関連する又は有効な保護動作または軽減動作を呼び出す又は適用する又は選択するために(例えば、MLベース/AIベース/DLベースの予測または選択を介する、または予め定められた選択ルールの組に基づく決定論的選択プロセスによる)、保護プラットフォームにより用いられ得る。
【0089】
[0090] 同様に、オフライン保護ユニットおよび/またはオンライン保護ユニットはAIベースまたはMLベースまたはDLベースとすることができ、従って、それらは、被保護エンジンおよび/または保護プラットフォームの進行中の監視されているパフォーマンスに基づいて、連続的(周期的)に再トレーニングすることができ、従って、自律的に学習および改善を行うことができる。
【0090】
[0091] 幾つかの実施形態では、システムは防御ポリシー構築器ユニットを含み、これは、被保護エンジンについてのユーザ構成可能(user-configurable)な複数の動作制約により定められるものであるユーザ構成可能な防御ポリシーを構築するように構成され、また、複数の使用可能な保護スキームのプールからの特定の保護スキームを動的に選択および呼び出しおよび施行するように構成され、その特定の保護スキームは、攻撃から被保護エンジンを保護しつつもユーザ構成可能な動作制約に従うようにするものである。
【0091】
[0092] 幾つかの実施形態では、システムは攻撃軽減ユニットを含み、これは、被保護エンジンが攻撃されていると判定されたことに応答して、1以上の決定論的な及び非AIベースの軽減技術を選択するように及び活性化するように構成される。
【0092】
[0093] 幾つかの実施形態では、システムは攻撃軽減ユニットを含み、これは、被保護エンジンが攻撃されていると判定されたことに応答して、1以上のAIベースの非決定論的な軽減技術を選択するように及び活性化するように構成される。
【0093】
[0094] 幾つかの実施形態では、システムは非侵入性防御ユニットを含み、これは、被保護エンジンにより用いられるモデルを変更せずに、また、変更されたデータセットについて被保護エンジンを再トレーニングせずに、また、被保護エンジンにより行われる動作の内部パイプラインへのアクセス無しで、被保護エンジンに対しての検出された攻撃を阻止する前処理動作および/または後処理動作を行うように構成される。
【0094】
[0095] 幾つかの実施形態では、被保護エンジンは、前記システムにより悪意のあるクエリおよび悪意のある入力から保護され、前記システムは、前記被保護エンジンから離れており且つ前記被保護エンジンと同じ場所に配されていないリモートのクラウド・コンピューティング・ベースのシステムである。
【0095】
[0096] 幾つかの実施形態では、システムは、ユーザが(i)被保護エンジンを保護するための防御目標と、(ii)被保護エンジンおよび/またはシステムが従うべき動作制約とを入力することを可能にする防御ポリシー構築ユニットと、前記ユーザにより提供された前記防御目標および前記動作制約に基づいて動作するものであり、被保護エンジンに対しての攻撃を妨げる又は軽減するための特定の防御技術の組を動的に選択および適用するように構成されたものである防御最適化ユニットとを含む。
【0096】
[0097] 幾つかの実施形態では、防御最適化ユニットは、複数の異なるAIエンジンおよび/またはMLエンジンおよび/またはDLエンジンの保護についての履歴データのAIベースの分析に基づいて、前記被保護エンジンを保護するために選択および適用されるべき、有効な防御技術のAIベースの推定またはAIベースの予測に基づいて、動作する。
【0097】
[0098] 幾つかの実施形態では、被保護エンジンは、2以上のAIまたはMLまたはDLのエンジンの組み合わせ又はカスケード又はパイプラインの中にある1つの被保護エンジンであり、システムは、前記の組み合わせ又はカスケード又はパイプラインの少なくとも一部を保護するための保護動作を行う。
【0098】
[0099] 幾つかの実施形態では、オンライン保護ユニットは、前記被保護エンジンへ向けられた入力信号の防御的前処理を行う前処理モジュールを導入するように及び呼び出すように、構成される。
【0099】
[00100] 幾つかの実施形態では、オンライン保護ユニットは、前記被保護エンジンにより生成され出力された出力信号が意図された受信者へ送られる前にその出力信号の防御的後処理を行う後処理モジュールを導入するように及び呼び出すように、構成される。
【0100】
[00101] 幾つかの実施形態では、オンライン保護ユニットは、前記被保護エンジンの動作アーキテクチャを、(I)スタンドアロンまたは独立の被保護エンジンから、(II)スタンドアロンまたは独立の被保護エンジンと比べて攻撃に対しての障害許容力が高い複数エンジンのパイプラインまたは複数エンジンのカスケードの構造の一部である被保護エンジンへと変更するように、構成される。
【0101】
[00102] 幾つかの実施形態は、命令またはコードを記憶する非一時的なストレージ媒体またはストレージ物品を含むことができ、機械またはハードウェアのプロセッサによりその命令またはコードが実行されたときに、その機械またはハードウェアのプロセッサは説明した方法を行うようにされる。
【0102】
[00103] 幾つかの実施形態は、自動化された方法または自動化されたプロセス、または機械でインプリメントされる方法またはプロセス、または半自動化された又は部分的に自動化された方法またはプロセス、またはコンピュータまたは機械またはシステムまたは他のデバイスにより実行または遂行され得るステップ又は動作の組を、用いることができる。
【0103】
[00104] 幾つかの実施形態は、適切なハードウェア・コンポーネントおよび/またはソフトウェア・コンポーネント、コードまたはプログラムまたは機械読取可能命令を実行できるプロセッサ(例えば、中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、集積回路(IC)、ロジック・ユニットなど)、受け取ったデータおよび/または処理されたデータを格納するためのストレージ・ユニット(例えば、ハード・ディスク・ドライブ、ソリッド・ステート・デバイス)、データを短期間格納するためのメモリ・ユニット(例えば、ランダム・アクセス・メモリ(RAM)メモリ、フラッシュ・メモリ)、1以上のワイヤレス通信プロトコル(例えば、Wi-Fi通信、セルラ通信、TCP/IP通信)を用いてデータを送ること及び受け取ることが可能な送受信機、および他の適切なコンポーネント(例えば、キーボードやマウスなどのような入力ユニット、ディスプレイ・ユニットなどのような出力ユニット、電源など)を用いて、インプリメントすることができる。
【0104】
[00105] 幾つかの実施形態は、コードまたはプログラム・コードまたは機械読取可能命令または機械読取可能コードを用いることができ、これは、非一時的なストレージ媒体または非一時的なストレージ物品(例えば、CD-ROM、DVD-ROM、物理メモリ・ユニット、物理ストレージ・ユニット)へ格納することができ、プロセッサまたは機械またはコンピュータによりそのプログラムまたはコードまたは命令が実行されたときに、そのプロセッサまたは機械またはコンピュータはここで説明した方法またはプロセスを行うようにされる。そのようなコードまたは命令は、例えば、ソフトウェア、ソフトウェア・モジュール、アプリケーション、プログラム、サブルーチン、命令、命令の組、コンピューティング・コード、単語、値、記号、ストリング、変数、ソース・コード、コンパイル型コード、インタプリタ型コード、実行可能コード、静的コード、動的コードのうちの1以上のものであり得る又は1以上のものを含み得るものであり、高レベルのプログラミング言語、低レベルのプログラミング言語、オブジェクト指向のプログラミング言語、視覚的プログラミング言語、コンパイル型プログラミング言語、インタプリタ型プログラミング言語、C、C++、C#、Java、JavaScript、SQL、Ruby on Rails、Go、Cobol、Fortran、ActionScript、AJAX、XML、JSON、Lisp、Eiffel、Verilog、Hardware Description Language (HDL)、Register-Transfer Level (RTL)、BASIC、Visual BASIC、Matlab、Pascal、HTML、HTML5、CSS、Perl、Python、PHP、機械語、機械コード、アセンブリ言語などのコードまたは命令を含む(これらに限定されるわけではない)。
【0105】
[00106] ここでの説明では、例えば、「処理する」、「計算する」、「算定する」、「生成する」、「決定する」、「確立する」、「分析する」、「検査する」、「検出する」、「測定する」などのような用語を用いているが、これらは、プロセッサ、コンピュータ、コンピューティング・プラットフォーム、コンピューティング・システム、または他の電子デバイスまたはコンピューティング・デバイスの動作(1以上)および/または処理(1以上)を指すものであり得、それらのものは、自動的および/または自律的に、レジスタおよび/またはアキュムレータおよび/またはメモリ・ユニットおよび/またはストレージ・ユニットの中で物理的(例えば、電子的)な量として表されるデータを操作および/または変換して他のデータにし得るものであるか、他の適切な動作を行い得るものである。
【0106】
[00107] 幾つかの実施形態は、例えば、「決定する」、「特定する」、「比較する」、「検査する」、「質問する」、「サーチする」、「突き合わせする」、および/または「分析する」などのようなステップまたは動作を行うことができ、これらは、例えば、1以上のパラメータ値と比較され得る予め定められたスレッショルド値を用いること、(i)感知または測定または計算された値(1以上)と、(ii)予め定められた又は動的に生成されたスレッショルド値(1以上)および/または値の範囲および/または上限値および/または下限値および/または最大値および/または最小値との間での比較を用いること、感知または測定または計算されたデータと、考えられ得る値または範囲のルックアップ・テーブルまたはレジェンド・テーブルまたはレジェンド・リストまたはデータベースに格納された1以上の値との間での比較または突き合わせを用いること、データベースまたはルックアップ・テーブルに格納された複数の値や範囲の中から整合するもの及び/又は同一の結果および/または類似の結果をサーチする比較または突き合わせまたはサーチのプロセスを用いること、パラメータや値の間での又はそれらの中での類似性または整合性を決定するための1以上の等式、式、重み付きの式、および/または計算を使用すること、比較ユニット、ルックアップ・テーブル、スレッショルド値、条件、条件づけロジック、ブール演算子(1以上)、および/または他の適切なコンポーネントおよび/または動作を使用することにより、行うことができる。
【0107】
[00108] ここで用いる「複数(plurality)」および「複数(a plurality)」という用語は、例えば、「多数」や「2以上」を含む。例えば、「複数のアイテム」は、2以上のアイテムを含む。
【0108】
[00109] 「1つの実施形態」、「実施形態」、「例示的な実施形態」、「様々な実施形態」、「幾つかの実施形態」、および/またはこれらと似た用語は、そのように説明された実施形態(1以上)がオプションとして特定のフィーチャー、構造、または特徴を含み得る、ということを示し得るが、全ての実施形態が必ずその特定のフィーチャー、構造、または特徴を含むとは限らない。更に、「1つの実施形態において」という句を繰り返して使用することに関しては、同じ実施形態についての言及である場合もあるが、必ずしも同じ実施形態についての言及であるとは限らない。同様に、「幾つかの実施形態において」という句を繰り返して使用することに関しても、同じ実施形態の組またはグループについての言及である場合もあるが、必ずしも同じ実施形態の組またはグループについての言及であるとは限らない。
【0109】
[00110] アイテムまた対象物を説明するためにここで用いられている「第1の」、「第2の」、「第3の」、「第4の」などのような順序を表す形容詞の使用は、特に指定がないかぎり、単に、そのようなアイテムまた対象物の様々な場合についての言及がなされている、ということを示すものであり、そのように説明されているアイテムまた対象物が、時間的または空間的またはランキングでまたは他の何れかの順序付けの様式で特定の所与の順にされるべきであることを暗示することは、意図してしない。
【0110】
[00111] 幾つかのインプリメンテーションは、様々なデバイスおよびシステムにおいて又はそれらと関連して使用され、様々なデバイスおよびシステムは、例えば、パーソナル・コンピュータ(PC)、デスクトップ・コンピュータ、モバイル・コンピュータ、ラップトップ・コンピュータ、ノートブック・コンピュータ、タブレット・コンピュータ、サーバ・コンピュータ、ハンドヘルド・コンピュータ、ハンドヘルド・デバイス、パーソナル・デジタル・アシスタント(PDA)・デバイス、ハンドヘルドPDAデバイス、タブレット、オンボード・デバイス、オフボード・デバイス、ハイブリッド・デバイス、車両用デバイス、非車両用デバイス、モバイルまたはポータブル・デバイス、生活機器、非車両用または非ポータブルのデバイス、電気製品、ワイヤレス通信ステーション、ワイヤレス通信デバイス、ワイヤレス・アクセス・ポイント(AP)、ワイヤードまたはワイヤレスのルータまたはゲートウェイまたはスイッチまたはハブ、ワイヤードまたはワイヤレスのモデム、ビデオ・デバイス、オーディオ・デバイス、オーディオ/ビデオ(AV)・デバイス、ワイヤードまたはワイヤレスのネットワーク、ワイヤレス・エリア・ネットワーク、ワイヤレス・ビデオ・エリア・ネットワーク(VWAN)、ローカル・エリア・ネットワーク(LAN)、ワイヤレスLAN(WLAN)、パーソナル・エリア・ネットワーク(PAN)、ワイヤレスPAN(WPAN)などを含む。
【0111】
[00112] 幾つかのインプリメンテーションは、一方向および/または双方向の無線通信システム、セルラ無線電話通信システム、モバイル・フォン、セルラ電話機、ワイヤレス電話機、パーソナル・コミュニケーション・システム(PCS)、ワイヤレス通信機能を組み込んだPDAまたはハンドヘルド・デバイス、モバイルまたはポータブルのグローバル・ポジショニング・システム(GPS)・デバイス、GPS用の受信機または送受信機またはチップを組み込んだデバイス、RFIDのエレメントまたはチップを組み込んだデバイス、多入力多出力(MIMO)の送受信機またはデバイス、単入力多出力(SIMO)の送受信機またはデバイス、多入力単出力(MISO)の送受信機またはデバイス、1以上の内部アンテナおよび/または外部アンテナを有するデバイス、デジタル・ビデオ・ブロードキャスト(DVB)・デバイスおよびシステム、多基準無線デバイスまたはシステム、ワイヤードまたはワイヤレスのハンドヘルド・デバイス、例えば、スマートフォンやワイヤレス・アプリケーション・プロトコル(WAP)・デバイスやこれらのようなものと関連して用いられ得る。
【0112】
[00113] 幾つかのインプリメンテーションは、「アプリ」またはアプリケーションを含み得るか、それを用いてインプリメントされ得るものであり、「アプリ」またはアプリケーションは、無料または有料で「アプリ・ストア」または「アプリケーション・ストア」からダウンロードまたは獲得できるものであり得るか、コンピューティング・デバイスまたは電子デバイスにプリインストールされたものであり得るか、そうでなければ、そのようなコンピューティング・デバイスまたは電子デバイスへトランスポートされた及び/又はインストールされたものであり得る。
【0113】
[00114] 1以上のインプリメンテーションを参照してここで説明した機能、動作、コンポーネント、および/または特徴は、1以上の他のインプリメンテーションを参照してここで説明した1以上の他の機能、動作、コンポーネント、および/または特徴と組み合わせること又はそれらと組み合わせて用いることができる。ここで説明したモジュールまたは機能またはコンポーネントまたはユニットが先の記載における異なる場所や異なる章で説明されていたとしても、また、異なる図面や複数の図面にわたった説明されていたとしても、幾つかの実施形態は、ここで説明したモジュールまたは機能またはコンポーネントまたはユニットの幾つか又は全てのものの任意の可能な又は適切な組み合わせ、再配置、組み立て、再組み立て、または他の使用を含むことができる。
【0114】
[00115] 幾つかの例証的な実施形態の特定の特徴がここで例示され説明されたが、当業者は、様々な変更、代用、改変、および等価物を思い浮かべるであろう。したがって、請求の範囲は、全てのそのような変更、代用、改変、および等価物を含むことを意図している。

図1
図2
【国際調査報告】