banner

ニュース

Aug 28, 2023

機械学習の学習パート 3: ブラック ボックス モデルの攻撃

ホーム » サイバーセキュリティ » 分析とインテリジェンス » 機械学習の学習パート 3: ブラック ボックス モデルの攻撃

このシリーズの最初の投稿では、機械学習の簡単な背景、難読化された PowerShell スクリプトを検出するための取り消し難読化アプローチ、および難読化された PowerShell を検出するためのデータセットとモデルを改善するための取り組みについて説明しました。 最終的に、L2 (リッジ) 正則化ロジスティック回帰、LightGBM 分類器、およびニューラル ネットワーク アーキテクチャの 3 つのモデルが完成しました。

2 番目の投稿では、これらのモデルを攻撃する方法について説明しました。白い箱つまり、入力特徴、モデル アーキテクチャ、モデル パラメーター/重み、トレーニング データを含む、トレーニングされたモデル自体の全体が得られる場所です。 先に進む前に、少なくとも最初の 2 つの投稿をざっと読んで、すべての内容ができるだけ意味をなしていることを確認することを強くお勧めします。

この投稿では、より一般的かつ難しい問題について説明します。ブラックボックス視点。 ここでは、各サンプルからどのような特徴が抽出されているかだけがわかります。アーキテクチャさえも不透明なままです。

敵対的機械学習に関する間違いなく数百ページに及ぶ学術研究を読んだ後、研究の大部分はホワイトボックスの観点からのものであると安全に言えます。 このシリーズの 2 番目の投稿で述べた、ホワイト ボックス攻撃とブラック ボックス攻撃の定義を思い出してください。

また、研究のほとんどは画像認識の分野にあったようです。 これは興味深いものではありますが、私たちが扱っている問題とは明らかに異なる問題領域です。 具体的には、人間の目には敵対的な画像が変更されているように見えることなく、画像に少量の摂動が加えられた複数のピクセルが含まれる場合があります。 PowerShell の難読化問題など、セキュリティ分野で私たちが取り組んでいる多くの問題では、a) 変更できる機能の数、および b) 当該機能をどの程度変更できるかがより制限されています。 つまり、画像とは対照的に、PowerShell スクリプトに対して行うことができる変更の機能部分空間が小さくなります。

ブラックボックス攻撃の多くには、モデルの抽出 (次のセクションを参照) ローカル モデル (代替モデルまたは代理モデルとも呼ばれる) を作成します。 次に、既存の攻撃がローカル モデルに対して実行され、敵対的なサンプルが生成され、これらのサンプルがターゲット モデルも回避することが期待されます。 これは多くの場合、次の現象により機能します。攻撃の伝達性、これについては後ほど説明します。

ブラック ボックス攻撃では、モデルの抽出をスキップし、ターゲット モデルに対して入力を直接クエリすることもできます。 モデルの内部構成がまったく必要とされないこれらの攻撃は、学術文献で実際にブラック ボックス攻撃として知られているものです。 ただし、モデル抽出を使用すると、入力を送信してラベルを取得するオラクルしかないブラック ボックス モデルのローカル クローンに対してホワイト ボックス攻撃を適用できる可能性があります。

Will Pearce らによれば、モデル抽出は敵対的 ML の最も基本的なプリミティブの 1 つです。 このアイデアはおそらくしばらく存在していたと思われますが、モデル抽出を最初に形式化したもの (または少なくともこの手法を普及させたもの) は 2016 年の論文「機械学習における移行可能性: 敵対的サンプルを使用した現象からブラックボックス攻撃まで」であったと私は考えています。 Papernot らによる 2017 年の論文「機械学習に対する実践的なブラック ボックス攻撃」 2017 年の論文のアプローチの概要は次のとおりです。

私たちの攻撃戦略は、敵対者によって合成的に生成され、ターゲット DNN によってラベル付けされた入力を使用して、ターゲット DNN [ディープ ニューラル ネットワーク] の代わりとなるローカル モデルをトレーニングすることで構成されています。 ローカル代替を使用して敵対的な例を作成したところ、それらがターゲットの DNN によって誤って分類されていることがわかりました。

全体的な考え方は、モデルが最初にトレーニングされたデータよりも少ない (通常は異なる) データを使用してターゲット モデルの決定境界を近似することです。 基本的に、モデルの抽出には、まずラベル付けのオラクルとして機能する、多数の既知のラベル付きサンプルをモデルに送信することが含まれます。 大量のバイナリをある種の Web サイトに送信すると、そのバイナリが悪意のあるものであるかどうかがわかると想像してください。 あるいは、適応した取り消し難読化モデルをある種の内部 API として使用し、特徴の測定値を送信して、通常または難読化されたラベルの結果、または難読化確率スコアを取得できることを想像してください。 十分な入力があれば、ターゲット モデルと同様に機能するローカル代替モデルをトレーニングできます。

図 1 (Shi et al.による「オンライン API 呼び出しの厳格なレート制限の下でのアクティブ ディープ ラーニング攻撃」) プロセスをうまく要約します。

合理的な仮説は、元のモデル アーキテクチャに近づければ近づけるほど、ローカル モデルがより適切に機能するということです。 これについては、この投稿で検討していきます。

わずかに異なるアプローチには、最初はサンプルが少ない貧弱なモデルをトレーニングし、2 番目の投稿で説明したホワイト ボックス攻撃手法の一部を使用して敵対的サンプルを生成することが含まれます。 これらのサンプルは、この投稿で説明されているように、分類器を通じて実行されます。

…敵対的な例は、ブラック ボックス モデルが新しいデータ ポイントを代替モデルと同じ方法で分類するかどうかを決定する、モデルの勾配の方向へのステップです。 拡張されたデータはブラック ボックス モデルによってラベル付けされ、より適切な代替モデルをトレーニングするために使用されます。 子と同様に、代替モデルもブラック ボックス モデルの決定境界がどこにあるのかをより正確に理解します。

どちらにしても最終結果は? ターゲット モデルの決定境界を近似する、ローカルでトレーニングされたモデルがあります。 これにより、ブラック ボックス攻撃に加えて、内部モデルの勾配を悪用するさまざまなホワイト ボックス ベースの攻撃アルゴリズムを実行できます。

補足: 入力とモデルのアーキテクチャ

攻撃しているモデルへの入力が画像またはテキストである場合、ターゲットのモデル ベース アーキテクチャを推測できる可能性が高いため、ある意味幸運です。 これらのタイプの入力、つまり画像の場合は畳み込みニューラル ネットワーク、テキストの場合は LSTM/Transformers (または特定のケースでは Naive Bayes) について確立されたガイドラインがあります。 これらの例では、表形式のデータ、つまり列または表に表示されるデータを操作します。 テキストベースのモデルの攻撃については、また別の機会に取り上げたいと思います。

「本当ですか? ローカルにクローンされた粗悪なモデルに対する攻撃は、実際の運用モデルに対しても機能するのですか?」と疑問に思われるかもしれません。 答えは「YES」です。攻撃伝達性と呼ばれる現象によるものです。 Demontis らによる 2019 年の論文「なぜ敵対的攻撃は転送されるのか? 回避およびポイズニング攻撃の転送可能性を説明する」。 はこれを学術的な観点から検討していますが、私はその概念を説明するために最善を尽くします。 また、この論文が誕生してからわずか数年であり、なぜ敵対的攻撃が転移するのかについて一般的なコンセンサスが得られていないことを考慮すると、これはまだ未解決の問題であることを覚えておいてください。

この概念を導入した独創的な著作は、Papernot、McDaniel、Goodfellow による前述の 2016 年の論文「機械学習における転移性: 敵対的サンプルを使用した現象からブラックボックス攻撃まで」です。 要約の最初の数文は、概念の概要を示しています (強調は私です)。

多くの機械学習モデルは、敵対的な例、つまり機械学習モデルが誤った出力を生成するように特別に作成された入力に対して脆弱です。1 つのモデルに影響を与える敵対的な例は、2 つのモデルが異なるアーキテクチャを持っていたり、異なるトレーニング セットでトレーニングされた場合でも、両方のモデルが同じタスクを実行するようにトレーニングされている限り、別のモデルに影響を与えることがよくあります。したがって、攻撃者は、被害者に関するほとんど情報を持たずに、独自の代替モデルをトレーニングし、代替モデルに対する敵対的な例を作成し、被害者モデルに転送する可能性があります。

彼らの論文は 2 つの仮説を証明することを目的としています。すなわち、「テクニック内およびテクニック間の敵対的サンプル転送可能性はどちらも、機械学習テクニックの空間全体にわたって一貫して強力な現象である」と「ブラックボックス攻撃は、あらゆる攻撃に対して実際の設定で可能である」というものです。彼らの論文は、それぞれについて説得力のある事例を示しており、さまざまなモデル クラスの移行可能性も実証しています。これは、論文の 5 ページの図 3 に要約されています。

各セルの値は、特定のモデル アーキテクチャを回避するために作成されたサンプル (ここでは MNIST 画像、敵対的攻撃の事実上のテスト ケース) のパーセントであり、別のモデル アーキテクチャに適用されると分類ラベルも変更されます。 つまり、ターゲット モデルを騙すことに成功した、ローカルで作成された敵対的サンプルの割合です。 この図には、ランダム フォレストまたはブースト デシジョン ツリー アンサンブルが含まれていないことに注意してください (Ens 列は 5 つの既存の手法のカスタム アンサンブルです)。 左側が代替機種タイプ、下段が対象機種タイプです。 いくつかのパターンが見られます。

このことから、私の理論では、ターゲット モデルのアーキテクチャを広範囲に一致させることができれば、代替モデルに対する攻撃が転送される可能性が高くなります。

これはサンプル データセットに対してどのように当てはまりますか?

ここでの目標は、ラベル付けオラクルとしてモデル (つまり、最初の投稿からトレーニングされたターゲット モデル) にのみアクセスできる、ローカルの代替モデルを再作成することです。 次に、十分な攻撃伝達性を期待して、セカンドポストから交代選手に対してホワイトボックス攻撃を実行します。 これは最初の 2 つの投稿のプロセスと非常に似ていますが、追加の手順がいくつかあります。

まず、モデルの抽出に使用する新しいデータセットが必要です。 PowerShellCorpus から 1,500 個のランダム ファイルを選択し、それぞれを Invoke-Obfuscation のランダムな難読化セットを通して実行し、合計 3,000 個のサンプルが得られました。 次に、各スクリプトに対して機能抽出コードを実行し、BlackBox.ast.csv ファイルを生成しました。このファイルは現在、Invoke-Evasion リポジトリの ./datasets/ で更新されています。

次のステップはモデルの抽出ここでは、ターゲット モデルによってラベル付けされたデータセット上で代理ローカル モデルをトレーニングします。 これを達成するために、各ターゲット モデルを使用して、新しいデータセットのそれぞれのラベルのセットを生成しました。 私たちのモデルはどれも完璧ではなかったため、これらのラベルは正確な真実ではありませんが、ラベルはターゲット モデル自体の決定境界を反映しています。 最初の投稿で行ったように、データセットを 80/20 の比率で標準的なトレーニング/テストに分割しました。

前のセクションでは、ローカル モデルをターゲット モデルのアーキテクチャに適合させるほど、巧妙に作成された攻撃がターゲットを騙す可能性が高くなる、と述べました。 私は、ターゲット モデルのアーキテクチャを解明するのにどのような「モデル偵察」手順が役立つかを知りたかったのです。 私の心の中の大きな疑問は、ターゲットが線形なのか、ツリーベースなのか、ニューラルネットワークなのか、あるいは第三の選択肢なのかを判断することです。 ツリーベースのアルゴリズムは、ほとんどすべてのデータセットで非常にうまく機能することが多いため、ランダム フォレストと勾配ブースト ツリーは各ターゲット モデル データセットに対してよく一致するというのが私の仮説です。 このため、理想的には、モデルがニューラル ネットワークである可能性が高いか、線形である可能性が高いかを最初にツリーベースの消去プロセスの結果で判断したいと考えています。

これは間違いなく未解決の疑問であり、学界ではあまり考慮されていないと思います。 ただし、もう一度繰り返しますが、私はこの分野の専門家ではありません。この分野で既存の研究がある場合 (または追加のアイデアがある人) は、ぜひお知らせください。

私の 2 つの主なアイデアについては、後ほど詳しく説明します。

まず、各ターゲット データセットに次のモデルを当てはめ、浅いアルゴリズム (つまり、ニューラル ネットワーク以外のすべて) の共通ハイパーパラメーターに対して基本的な相互検証されたランダム検索 (RandomizedSearchCV を使用) を実行しました。

次に、HopSkipJump を使用して、各モデルの敵対的サンプルを生成しました。 何らかの理由で、HopSkipJump を使用してニューラル ネットワークに十分なサンプルを適切に生成させることができなかったため、代わりに高速勾配法 (FGM) 攻撃を使用しました。 これらの特定のアーキテクチャをローカル モデルとして選択するのはなぜですか? 実際に本番環境で使用されるものを幅広く選択したかったので、線形 (ロジスティック回帰)、ツリー アンサンブル (ランダム フォレスト/ブースト ツリー)、およびニューラル ネットワークを網羅したいと考えていました。

これらの敵対的サンプルは、同等の精度を得るために、各ローカル モデルとターゲット モデルに対して実行されました。 しかし、より重要なのは、各ローカル モデルによって誤って分類された特定のサンプルを抽出したことです。 これらのサンプルはターゲット モデルに対して実行され、ターゲット モデルを欺いた、ローカル モデルに対して作成された敵対的サンプルの割合が示されます。 これは譲渡可能性先ほど話したアイデア。 ローカルの敵対的サンプル全体がターゲットに対して一般的にどの程度効果的であったかは興味深いデータ ポイントですが、私たちが本当に関心があるのは、ターゲット モデルを欺く敵対的サンプルを作成する際にローカル サロゲート モデルがどれほど効果的であるかです。

次に、最もパフォーマンスの高い線形ロジスティック回帰モデルを選択し、サンプルの単一の係数を大幅に変更して、これがモデルの出力に影響を与えるかどうかを確認しました。 ここでの目的は、モデルが別の参照点に対して潜在的に線形であるかどうかを確認することでした。

最初のモデルに対する回避転送可能性検索プロセスの結果は次のとおりです。

これらの結果は興味深いものです。 ターゲット モデルのラベル付きデータに最もよく一致したモデルはランダム フォレストであり、ロジスティック回帰サロゲート (ターゲット モデルのアーキテクチャに最もよく一致した) には、ターゲット モデルに転送された敵対的サンプルの数が最も多くありましたが、XGBoost の攻撃者のサンプルの割合が最も高かったのです。ロジスティック回帰ターゲットに転送された敵対的なサンプル。

2 番目のモデルに対する回避転送可能性検索プロセスの結果は次のとおりです。

こういう結果も興味深いですね。 ターゲット モデルのラベル付きデータと最もよく一致したモデルはランダム フォレストと XGBoost でしたが、ニューラル ネットワークは転送された敵対的攻撃の数が最も多く、LightGBM ターゲットへの攻撃転送率も最高でした。 他の 2 つのターゲット モデルと比較すると、Model2 は敵対的なサンプルに対しても最も回復力があるように見えます。

最初のモデルに対する回避転送可能性検索プロセスの結果は次のとおりです。

これらの結果は、前の 2 つの結果と同様に興味深いものです。 ほとんどのモデルは、ターゲット モデルのラベル付きデータの精度が非常に近かったのに対し、ロジスティック回帰と XGBoost ではターゲット ニューラル ネットワークに転送された敵対的サンプルの数が最も多かったです。 ニューラル ネットワークの攻撃転送率は最高でしたが、転送された攻撃数は 2 番目に悪かったです。

結果に基づくと、サロゲート モデルの攻撃伝達可能性を測定することでモデル アーキテクチャを決定するという私の戦略は、このケースではあまりうまく機能していないようです。 確認として、各モデルについて、各ターゲットに対して最も有望なサロゲートを選択し、2 番目の投稿でホワイト ボックス モデルに対して行ったのと同じ攻撃を実行しました。 これは最終的にそれほど効果的ではなく、各スクリプトに大量の変更を加える必要がありました。 具体的には、変更されたスクリプトは、ローカル サロゲートに対して難読化確率のスコアが非常に低くなりますが、それでもターゲットによって難読化されているとして分類されます。

私はこれについて説明するために頭を悩ませました。そして、ウィルは私にいくつかのことを明らかにするのを手伝ってくれました。 その結果、私のアプローチには 2 つの大きな変化が生じました。それは、ソフトラベルを付けることと、問題全体に対する私の視点をひっくり返すことです。

Will は、2021 BlackHat EU プレゼンテーションのスライド 21 で、モデル抽出に対するハード ラベルとソフト ラベルの影響について詳しく説明しています。

直感的には、これは理にかなっています。 通常または難読化などのハード ラベルは、難読化=0.73 のような確率のセットよりも少ない情報を提供します。 情報が多ければ多いほど、モデルの内部をより正確に一致させることができます。0 と 1 のようなハード バイナリ ラベルの間には多くのスペースがあります。

魔法の Invoke-Obfuscation API が単なるバイナリ 0/1 ラベルではなく、0.73 のような難読化の確率を与える状況を考えてみましょう。 この追加情報をどのように活用できるでしょうか? 分類と回帰について説明した最初の投稿を思い出してください。分類ではラベルが得られ、回帰では数値が得られます。

単なるハードノーマル/難読化ラベルではなく、スクリプトが難読化されている確率で敵対的データセットにラベルを付けるとどうなるかを見てみましょう。 サンプルが難読化されていることを意味するために、しきい値を 0.5 以上に保ちますが、これは調整可能です (多くの場合、偽陽性と偽陰性のバランスを変更することになります)。

分類ではなく回帰を実行しているため、少し異なるアルゴリズムのセットが必要です。 ニューラル ネットワーク、ランダム フォレスト、勾配ブースト ツリー、サポート ベクター マシンにはすべて、同等の回帰があります。 ただし、ロジスティック回帰 (ここでは分類器の名前が紛らわしいですが) の代わりに、古典的な線形回帰、ラッソ回帰 (L1)、リッジ回帰 (L2)、およびベイジアンナイーブベイズの代わりにベイジアンリッジ回帰を使用します。 次に、それぞれについて、テスト セットの二乗平均平方根誤差 (RMSE) を確認します。これは、各予測と実際の値の差を二乗し、すべての二乗を合計して平方根を求める一般的な回帰指標です。合計のうち:

また、各回帰モデルを取得し、各サンプルの予測を作成し、どれが 0.5 以上に等しいかを確認することで、それらを再度ハード ラベルに変換します。 これにより、精度を測定できるようになります。 この全体は、一種の分類子近似リグレッサー タイプのアプローチです。 詳細は、BlackBox.ipynbInvoke-Evasion リポジトリ内のノートブック。

私が遭遇した問題の 1 つは、分類モデルではなく回帰モデルを構築しているため、そのままでは HopSkipJump やその他の攻撃アルゴリズムで使用できないことです。 回帰 scikit-learn モードをラップしたカスタム分類モデルをローリングしようといくつか試みましたが、ART は依然として適切に機能しませんでした。 これを行う方法はあると確信していますが、まだ検討されていない大きな問題がまだあります…

ここで敵対的な機械学習の状況を理解しようとして私が遭遇した大きな課題は、変更された敵対的な数値データセットを機能するスクリプトに戻す方法です。 この投稿シリーズで述べてきたように、学術的な敵対的機械学習研究のほとんどは画像データに関係しています。 画像に対する敵対的特徴の摂動は非常に簡単で、むしろ制約がありません。ピクセルのビットを微調整してから、画像をターゲット分類器に送信するだけです。 ほぼすべての敵対的機械学習回避アルゴリズムがこの方法で使用されます。 データ サンプルの配列と攻撃アルゴリズムを指定すると、摂動/敵対的なサンプル、つまり、処理時にターゲット モデルを騙す数値の配列が生成されます。

ホワイトボックス モデルの攻撃に関する 2 回目の投稿では、さまざまな攻撃アルゴリズムをマスクする機能の可能性を検討しました。 変更をより簡単に変更可能な機能の小さなサブセットに限定しましたが、これは依然として理想的ではありません。 元のサンプルから変更された一連の機能がある場合、a) これを、b) 実行できるスクリプトに戻し、c) スクリプトの意図した機能を引き続き実行するにはどうすればよいでしょうか?

2 番目の投稿で話したように、??? とは何ですか? 次の図のプロセス:

Counterfit の mlsecevasion ブランチのソースを読み、Will ともう一度会話するまで、このことを理解するのに苦労していましたが、それは私の見方を完全に変えてくれました。 彼はハイラム・アンダーソンからの重要な洞察を伝えました。これは実際には単なる最適化問題です。

ブラック ボックス ML 攻撃アルゴリズムは、2 番目の投稿で説明した最大-最小敵対的問題の測定された入力特徴を最適化します。この問題では、サンプルのモデルの誤差関数/損失を最大化しますが、実行する変更の数は最小限に抑えたいと考えています。それで。 ベクトル化されたフィーチャの変更を直接最適化する代わりに、それらのフィーチャに影響を与える一連のアクションの数を最適化してはどうでしょうか?

基本的に、最初に、特定のサンプルに対して実行できる、そのサンプルに対して抽出された特徴を変更する変更アクションを多数列挙します。 たとえば、Counterfit には、PE セクションの追加/オーバーレイ、追加するインポート、PE に対して試行するタイムスタンプのセットがあります。 私たちの状況では、「通常の」機能を追加するものが必要であり、2 番目の投稿の説明可能性アプローチを使用してこのプロセスをガイドできます。 次に、HopSkipJump のようなアルゴリズムを使用して、必要な結果を生み出すこれらの機能の組み合わせを見つけることができます。

私たちのアプローチは代わりに次のようになります。

Counterfit の場合、実行する変更を表すベクトルを取得し、これを HopSkipJump などに供給します。 将来の作業として、この PowerShell 難読化用の Counterfit モジュールを構築したいと考えていますが、今のところはもう少し手動で進めていきます。

攻撃アルゴリズムを使用する別の代替手段として、「ブラック ボックス関数のグローバルな最適化のための逐次設計戦略」であるベイジアン最適化があります。 最初の投稿で、機械学習アルゴリズムのハイパーパラメーターを調整するために構築されたフレームワークである Optuna について簡単に説明したことを思い出してください。 Optuna はさまざまなベイジアン最適化手法を実装しており、非常に柔軟であり、次のような一般的なアプローチを採用しています。

ここでのもう 1 つの重要な洞察は、ハイパーパラメータ調整のためだけに Optuna を使用する必要はありません。目的関数はブラック ボックスを表し、これを使用してターゲット スクリプトに対して実行する多数の変更アクションを実行し、ターゲット モデルから難読化確率スコアを返すことができます。 これは、Optuna の代わりに Hyperopt フレームワークを使用して、Counterfit も実装したアプローチです。

これが強化学習のように聞こえるとしても、完全に的外れというわけではありません。 私は関連する数学にそれほど詳しくないので、このアプローチは原理的には強化学習に似ていますが、実際には異なると信じていることを述べておきます。 私の直感では、このアプローチは、順序にあまり依存しない、小さなアトミックな変更のセットに対しては機能する可能性が高いです。コンテキストに大きく依存する多数の連続アクションは、適切な強化学習アプローチを使用した方がパフォーマンスが向上する可能性があります。 ただし、変換の選択、スクリプトの難読化、難読化の測定という短いフィードバック ループがあるため、完全な強化学習アプローチによるオーバーヘッドの増加はおそらく必要ありません。

ここでは、分類子近似リグレッサーのアプローチとスクリプト変更のベイジアン最適化を組み合わせて、すべてをまとめていきます。

私たちの全体的な目標:難読化された DBOdemo1.ps1 入力スクリプトを取得し、調整されたニューラル ネットワーク モデルによって通常としてフラグが付けられながら、元のスクリプトの機能を保持する変更されたスクリプトを返します。 また、スクリプトに追加する文字数はできるだけ少なくしたいと考えています。

最初から最後までの完全なアプローチは次のとおりです。

ここでの主な洞察は、ターゲット モデルをできる限り効果的に抽出し、そのローカル サロゲート モデルからのホワイト ボックスの洞察を使用して、難読化されたターゲット スクリプトを変更する関数の構築をガイドしていることです。 次に、ターゲットのブラック ボックス モデルに対してこれらの変更関数の使用を最適化します。 このアプローチにより、ブラック ボックス API に対するクエリの時間と数を最小限に抑えることができます。

30 分間実行した最適化スタディの結果は次のようになります。

最終的に最適化されたスクリプトは次のようになります。

30 分以内に、元のスクリプト サイズを 23.06% 増加させるだけで、ターゲット モデルからの難読化スコアが 35.24 であり、Normal のしきい値 50 を大幅に下回る、最適化されたスクリプトが完成しました。

私の心の最後の疑問は、「この敵対的サンプルは他の 2 つのターゲット モデルに転送されるのか?」ということです。 見てみましょう:

この最適化されたサンプルは、ターゲット モデル 3 (ニューラル ネットワーク) およびモデル 1 (ロジスティック回帰) に対して成功しました。 ただし、LightGBM ブースト ツリー アンサンブル (モデル 2) には移行しませんでした。 これはおそらく次のような理由からです。

ロジスティック回帰などの線形モデルを回避するのは簡単です。 ランダム フォレスト、勾配ブースト デシジョン ツリー、ニューラル ネットワークなどのツリー アンサンブルを回避するのは少し難しくなります。 これらのモデルのブラック ボックス バージョンを回避することはさらに困難であるか、少なくともより多くの時間と労力がかかります。

文献にあるほとんどの攻撃では、3 つのターゲット モデルに対して行ったように、いくつかの敵対的なサンプルを生成し、それらがターゲット モデルに対してどの程度効果的であるかをテストすることが含まれています。 ここでの例のような、実際の現実世界のブラック ボックス攻撃を含む表形式のデータを含む研究は、私が知っている限りではそれほど多くありません (調べようと約束しました!)。 ターゲット モデルのアーキテクチャと、モデルがホワイト ボックスかブラック ボックスかに応じて、単一サンプルの回避の難易度はさまざまです。

敵対的機械学習の分野は誕生してから 10 年未満で、最初の正式な攻撃がリリースされたのは 2014 年頃です。これまでの研究のほとんどは学術的なものであり、画像分類子に対するホワイト ボックス攻撃に重点が置かれていました。 Adversarial Robustness Toolbox のような実用的なフレームワークは存在しますが、ほとんどの攻撃アルゴリズムには制限があり、セキュリティ攻撃シナリオには適用できないか、望ましくありません。 具体的には、すべての攻撃アルゴリズムが表形式/非画像データに使用できるわけではなく、ほとんどの攻撃アルゴリズムでは変更される機能 (機能マスキングと呼ばれる) を制限できません。

敵対的攻撃アルゴリズムの側から、ウィルが私に伝えてくれた大きな洞察は次のとおりです。これはすべて単なる最適化問題です。多くの業界と同様、情報セキュリティは、私たちに非常に役立つ可能性がある他の分野の進歩について無知であることがよくあります。 私の個人的な例は、アンディと私が最終的にオリジナルの BloodHound グラフ アプローチとなる問題/ツールに取り組んでいたときでした。アンディが友人のサムと自分たちの課題について話し合うまで、私たちは問題につまずき続けました。サムは「おい、どうやって」と嘆いていました。グラフ理論について聞いたことがありませんか?」

「これらの敵対者の数値をどのように取得して、使用可能な攻撃に変換するか」という問題は、これらの攻撃を実際に実行する際の真の問題です。 ただし、問題についての考え方を変えれば、Counterfit フレームワークまたはフレームワーク自体の影響を受けたアプローチを使用して、敵対的な行動を最適化できます。

私の願いは、学術的な敵対的機械学習コミュニティが画像分類子に対するホワイト ボックス敵対的攻撃 (このような!) を超えた、実践的な敵対的研究でさらなる進歩を続けています。 現実世界の問題は、MNIST だけを扱うよりもさらに困難であり、セキュリティ業界の専門家と協力して、これらの実践的なシナリオのいくつかに取り組むチャンスがたくさんあります。 現実世界には、画像に焦点を当てていない勾配ブースト ツリー モデルがブラック ボックスとして大量に展開されています。クエリの数を最小限に抑えながら、それらを効果的に攻撃するにはどうすればよいでしょうか?

また、ブラック ボックス モデルに対して敵対的攻撃が機能することをほぼ確実にするには、入力特徴を知る必要があることも覚えておいてください。 画像の場合、これは明らかですが、現実世界のシステムの場合、これはより複雑になる可能性があり、特徴抽出メカニズムを理解するためにリバース エンジニアリングが必要になる場合があります。

そして最後に、リー ホームズ氏が述べたように、ML モデルは「生きたソリューション」であることを忘れないでください。「ML モデルや署名に関して心に留めておくべきことの 1 つは、それらは決して「完了」していないということです。偽陽性も偽陰性も、あなたの負けです。」 簡潔にするために、モデルのデプロイメントとメンテナンスに関する現実世界の懸念事項の多くを省略しました。 MLOps の新たなサブフィールドは、これらの問題の多くを扱っており、この新たな分野についてさらに学びながら、このシリーズ全体で議論してきたモデルの実装の実際性について再検討する予定です。

しかし、防御はどうですか?

はい、わかっています、わかっています、私が無責任なレッドチームメンバーであると@に指摘しないでください。 この問題領域に関する防御策のいくつかを反映するフォローアップ投稿の草稿を作成する予定ですが、蒸留や敵対的トレーニングなどについてはまだ足場を固めようとしているところです。 しかし、敵対的 ML のゴッドファーザーであるイアン グッドフェローが約 4 年前に述べた洞察を残しておきます。

また、これまでの防御はすべて、攻撃者が非常に限定された非現実的で簡単な脅威モデルに基づいていることを強調することも重要です。研究問題としては、限定されたバージョンでさえ解決するのは非常に困難であり、この分野は依然として非常に活発な研究領域です。解決すべき重要な課題がたくさんあります。

この特定の分野での将来の作業のために、私が追求したいと考えている一般的な目標をいくつか示します。

3 つの投稿にまたがる情報の消防ホースの終わりに到達しました。私が調査して執筆するのを楽しんだのと同じくらい、この資料を楽しんで読んでいただければ幸いです。 これは私にとって長くてもやりがいのある旅でした。もしこの分野に興味を持ったなら、ぜひ飛び込んでみてください。 DEF CON AI Village Discord、BloodHound Slack の #DeepThought チャンネルに参加するか、お気軽に [at]harmj0y.net にメールしてください。

「機械学習の学習パート 3: ブラック ボックス モデルの攻撃」は元々、Medium の SpecterOps チーム メンバーによる投稿で公開されており、人々はこのストーリーを強調して応答することで会話を続けています。

*** これは、Posts By SpecterOps Team Members - Medium のセキュリティ ブロガー ネットワーク シンジケート ブログで、著者は Will Schroeder です。 元の投稿を読む: https://posts.specterops.io/learning-machine-learning-part-3-attacking-black-box-models-3efffc256909?source=rss----f05f8696e3cc---4

ホワイト ボックス ブラック ボックス ホワイト ボックス攻撃 ブラック ボックス攻撃 モデル抽出 攻撃の伝達可能性 補足: 入力とモデル アーキテクチャ 1 つのモデルに影響を与える敵対的な例は、2 つのモデルが異なるアーキテクチャを持っていたり、異なるトレーニング セットでトレーニングされていたとしても、別のモデルに影響を与えることがよくあります。どちらのモデルも同じタスクを実行するようにトレーニングされているためです。 モデル抽出の転送可能性 BlackBox.ipynb これは実際には単なる最適化問題です。 目的関数の研究では、ハイパーパラメータ調整のためだけに Optuna を使用する必要はありません。 私たちの全体的な目標: ターゲット モデルからのモデルの抽出、これはすべて単なる最適化問題です。 私の願いは、学術的な敵対的機械学習コミュニティが
共有