Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
deep-pwning — 機械学習のためのMetasploit。 | Kitploit
ツール/GitHubGitHub/cchio/deep-pwning
ペネトレーションテストフレームワークエクスプロイトフレームワーク機械学習AIセキュリティ敵対的攻撃
GitHubcchio/deep-pwning

deep-pwning

機械学習のためのMetasploit。

リポジトリを見る
571132264年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Deep-pwning splash

Deep-pwningは、機械学習モデルを対象に、意欲的な攻撃者に対する堅牢性を評価するための軽量フレームワークです。

現在の状態のdeep-pwningは、成熟や完成には程遠い ことに注意してください。これは、あなたが実験し、拡張し、発展させていくことを意図しています。そうすることで初めて、真に 統計的機械学習モデルのための侵入テストツールキット となるのです。

背景

研究者たちは、機械学習モデル(分類器、クラスタリング器、回帰器など)をだまして客観的に誤った決定をさせることが驚くほど簡単であることを発見しました。この研究分野は 敵対的機械学習 と呼ばれています。十分な情報と時間があれば、意欲的な攻撃者はあらゆる機械学習システムを回避できると言っても過言ではありません。しかし、この問題は、アーキテクチャやエンジニアが機械学習システムを設計・構築する際に見落とされがちです。これらのシステムが医療、交通、金融、セキュリティ関連などの重要なシナリオで使用される場合、その結果は憂慮すべきものです。

したがって、機械学習を使用するアプリケーションの有効性を評価する際には、敵対的環境での適応性を、システムの精度と再現率とともに測定する必要があります。

このツールは、2016年8月にラスベガスで開催されたDEF CON 24での講演 Machine Duping 101: Pwning Deep Learning Systems で公開されました。

構造

このフレームワークは Tensorflow 上に構築されており、このリポジトリに含まれる多くのサンプルは Tensorflow GitHubリポジトリ から取得した修正版のTensorflowサンプルです。

含まれるすべてのサンプルとコードは ディープニューラルネットワーク を実装していますが、深層ニューラルネットワークを使用していない同様のタスクの分類器に対しても敵対的画像を生成するために使用できます。これは機械学習における「転移性」と呼ばれる現象によるもので、Papernotらが この論文 で巧みに説明しています。これは、DNNモデル A で作成された敵対的サンプルが、別の構造を持つDNNモデル B や、さらには別のSVMモデル C をも欺く可能性があることを意味します。

前述の論文(Papernotら)から引用したこの図は、ソースモデル(敵対的サンプルの生成に使用)がターゲットモデル(敵対的サンプルがテストされる)に対して敵対的分類ミスに成功した割合を示しています。

Transferability Misclassificaiton Matrixh

コンポーネント

Deep-pwningはコードの重複を最小限に抑えるために、いくつかのコンポーネントにモジュール化されています。潜在的な分類タスクの性質が大きく異なるため、現在のコードのイテレーションは 画像 と フレーズ(単語ベクトルを使用)の分類に最適化されています。

これらが、現在のDeep-pwningのイテレーションを構成するコードモジュールです。

  1. ドライバ

    ドライバ はコードの メイン 実行ポイントです。ここで異なるモジュールとコンポーネントを結び付け、敵対的生成プロセスにさらにカスタマイズを注入できます。

  2. モデル

    ここに実際の機械学習モデルの実装が配置されています。例えば、提供されている lenet5 モデル定義は、lenet5.py 内の model() 関数にあります。ネットワークを次のように定義しています。

       -> 入力
       -> 畳み込み層 1
       -> 最大プーリング層 1
       -> 畳み込み層 2
       -> 最大プーリング層 2
       -> ドロップアウト層
       -> ソフトマックス層
       -> 出力
    

    LeNet-5

    LeCunら [LeNet-5畳み込みニューラルネットワーク](http://yann.lecun.com/exdb/lenet/)
  3. 敵対的 (advgen)

    このモジュールには、モデルの敵対的出力を生成するコードが含まれています。これらの各 advgen クラスで定義された run() 関数は、Tensorflowで定義された機械学習モデルのためのいくつかの事前定義されたテンソル演算を含む input_dict を受け取ります。敵対的サンプルを生成しているモデルが既知の場合、入力dictの変数はそのモデル定義に基づく必要があります。そうでなく、モデルが未知の場合(ブラックボックス生成)、代用モデルを使用/実装し、そのモデル定義を使用する必要があります。渡す必要がある変数は、入力テンソルプレースホルダ変数とラベル(多くの場合 x -> 入力、y_ -> ラベル)、モデル出力(多くの場合 y_conv)、および敵対的画像の基礎となる実際のテストデータとラベルです。

  4. 設定

    アプリケーション設定。

  5. ユーティリティ

    他のどこにも属さない雑多なユーティリティです。データの読み込み、Tensorflowキュー入力の処理などのヘルパー関数が含まれます。

これらは、アプリケーションに関連するリソースディレクトリです。

  1. チェックポイント

    Tensorflowでは、部分的に訓練されたモデルをロードして訓練を再開したり、完全に訓練されたモデルをアプリケーションにロードして評価やその他の操作を実行したりできます。これらの保存された「チェックポイント」はすべてこのリソースディレクトリに保存されます。

  2. データ

    このディレクトリには、ドライバアプリケーションが受け入れる形式のすべての入力データが保存されます。

  3. 出力

    これはすべてのアプリケーション出力の出力ディレクトリであり、生成された敵対的画像も含まれます。

はじめに

インストール

以下の手順に従ってTensorflowをインストールしてください。https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html にあります。インストールするTensorflowバイナリを選択できます。

$ pip install -r requirements.txt

実行例(MNISTドライバを使用)

以前に訓練されたチェックポイントから復元する場合。(設定は config/mnist.conf)

$ cd dpwn
$ python mnist_driver.py --restore_checkpoint

スクラッチから訓練する場合。(設定で指定されたフォルダにある以前のチェックポイントは上書きされることに注意)

$ cd dpwn
$ python mnist_driver.py

タスクリスト

  • 敵対的サンプルを生成するための顕著性グラフ法の実装
  • 文献で提案されている防御の例として defense モジュールをプロジェクトに追加
  • Tensorflow 0.9.0 へのアップグレード
  • 感情ドライバ で事前学習済みのword2vecモデルのサポートを追加
  • モデル にSVMとロジスティック回帰のサポートを追加(それらを使用する例も含む)
  • 非画像および非フレーズ分類器の例を追加
  • より高速な訓練のためのマルチGPU訓練サポートを追加

要件

  • Tensorflow 0.8.0
  • Matplotlib >= 1.5.1
  • Numpy >= 1.11.1
  • Pandas >= 0.18.1
  • Six >= 1.10.0

dpwnにはTensorflow 0.8.0が必要です。Tensorflow 0.9.0では、いくつかの

貢献

(素晴らしい Requestsリポジトリ by kennethreitz から借用)

  • オープンなIssueを確認するか、新しいIssueを立てて機能アイデアやバグについて議論を始めてください。
  • GitHub上のリポジトリをフォークし、master ブランチ(またはそこから派生したブランチ)に変更を加え始めてください。
  • バグが修正されたこと、または機能が期待通りに動作することを示すテストを書いてください。
  • プルリクエストを送信し、マージされて公開されるまでメンテナーにしつこく連絡してください。:) AUTHORS.md に自分を追加するのを忘れずに。

謝辞

このプロジェクトに直接的または間接的に貢献し、このフレームワークにインスピレーションを与えた、数多くの機械学習およびセキュリティ研究者による非常に印象的な研究があります。これは、何らかの形で使用または参照されたリソースの不完全なリストです。

論文

  • Szegedy et al. Intriguing properties of neural networks
  • Papernot et al. The Limitations of Deep Learning in Adversarial Settings
  • Papernot et al. Practical Black-Box Attacks against Deep Learning Systems using Adversarial Examples
  • Goodfellow et al. Explaining and Harnessing Adversarial Examples
  • Papernot et al. Transferability in Machine Learning: from Phenomena to Black-Box Attacks using Adversarial Samples
  • Grosse et al. Adversarial Perturbations Against Deep Neural Networks for Malware Classification
  • Nguyen et al. Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images
  • Xu et al. Automatically Evading Classifiers: A Case Study on PDF Malware Classifiers
  • Kantchelian et al. Evasion and Hardening of Tree Ensemble Classifiers
  • Biggio et al. Support Vector Machines Under Adversarial Label Noise
  • Biggio et al. Poisoning Attacks against Support Vector Machines
  • Papernot et al. Distillation as a Defense to Adversarial Perturbations against Deep Neural Networks
  • Ororbia II et al. Unifying Adversarial Training Algorithms with Flexible Deep Data Gradient Regularization
  • Jin et al. Robust Convolutional Neural Networks under Adversarial Noise
  • Goodfellow et al. Deep Learning Adversarial Examples – Clarifying Misconceptions

コード

  • tensorflow/tensorflow
  • WildML Implementing a CNN for Text Classification in Tensorflow
  • wgrathwohl/captcha_crusher
  • josecl/cool-php-captcha

データセット

  • Krizhevsky et al. The CIFAR-10 dataset
  • LeCun et al. THE MNIST DATABASE of handwritten digits
  • Pang et al. Movie Review Data (v2.0 from Rotten Tomatoes)
ツールをダウンロード