Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
deep-pwning — 用于机器学习的 Metasploit | Kitploit
工具/GitHubGitHub/cchio/deep-pwning
渗透测试框架漏洞利用框架机器学习AI 安全对抗性攻击
GitHubcchio/deep-pwning

deep-pwning

用于机器学习的 Metasploit

查看仓库
57113254年前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 等人),展示了源模型(用于生成对抗样本)在目标模型(用于测试对抗样本)上的成功对抗误分类百分比。

可迁移性误分类矩阵

组件

Deep-pwning 被模块化为多个组件,以最大限度地减少代码重复。由于可能的分类任务性质差异很大,当前迭代的代码针对图像和短语(使用词向量)的分类进行了优化。

以下是构成当前迭代 Deep-pwning 的代码模块:

  1. 驱动程序 (Drivers)

    驱动程序是代码的主要执行点。在这里,您可以将不同的模块和组件连接在一起,并且可以将更多自定义功能注入到对抗生成过程中。

下载工具
  • 模型 (Models)

    这里存放的是实际的机器学习模型实现。例如,提供的 lenet5 模型定义位于 lenet5.py 中的 model() 函数内。它将网络定义如下:

    root@kitploit:~
       -> 输入
       -> 卷积层 1
       -> 最大池化层 1
       -> 卷积层 2
       -> 最大池化层 2
       -> Dropout 层
       -> Softmax 层
       -> 输出
    

    LeNet-5

    LeCun 等人 [LeNet-5 卷积神经网络](http://yann.lecun.com/exdb/lenet/)
  • 对抗生成 (advgen)

    该模块包含为模型生成对抗性输出的代码。每个 advgen 类中定义的 run() 函数接受一个 input_dict,其中包含为 Tensorflow 中定义的机器学习模型预定义的几个张量操作。如果生成对抗样本的模型是已知的,则输入字典中的变量应基于该模型定义。如果模型未知(黑盒生成),则应使用/实现一个替代模型,并使用该模型定义。需要传入的变量包括输入张量占位符变量和标签(通常称为 x -> 输入和 y_ -> 标签)、模型输出(通常称为 y_conv)以及对抗图像所基于的实际测试数据和标签。

  • 配置 (Config)

    应用程序配置。

  • 工具 (Utils)

    不属于其他任何地方的杂项实用程序。这些包括用于读取数据、处理 Tensorflow 队列输入等的辅助函数。

  • 以下是应用程序相关的资源目录:

    1. 检查点 (Checkpoints)

      Tensorflow 允许您加载部分训练的模型以继续训练,或加载完全训练的模型到应用程序中进行评估或执行其他操作。所有这些保存的“检查点”都存储在此资源目录中。

    2. 数据 (Data)

      此目录以驱动程序应用程序接受的任何格式存储所有输入数据。

    3. 输出 (Output)

      这是所有应用程序输出的输出目录,包括生成的对抗图像。

    入门指南

    安装

    请按照此处的说明安装 tensorflow:https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html,这将允许您选择要安装的 tensorflow 二进制文件。

    root@kitploit:~
    $ pip install -r requirements.txt
    

    执行示例(使用 MNIST 驱动程序)

    从之前训练的检查点恢复。(配置在 config/mnist.conf 中)

    root@kitploit:~
    $ cd dpwn
    $ python mnist_driver.py --restore_checkpoint
    

    从头开始训练。(请注意,配置中指定文件夹中的任何先前检查点将被覆盖)

    root@kitploit:~
    $ cd dpwn
    $ python mnist_driver.py
    

    任务列表

    • 实现生成对抗样本的显著性图方法
    • 向项目中添加 defense 模块,以展示文献中提出的一些防御示例
    • 升级到 Tensorflow 0.9.0
    • 在 sentiment driver 中添加对预训练 word2vec 模型的支持
    • 在 models 中添加 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 仓库,由 kennethreitz 维护)

    • 检查是否有未解决的问题,或者开启一个新问题来围绕功能想法或 bug 进行讨论。
    • 在 GitHub 上 fork 该仓库,开始在 master 分支(或从其分出分支)上进行修改。
    • 编写一个测试,显示 bug 已被修复或功能按预期工作。
    • 发送一个拉取请求,并打扰维护者直到它被合并和发布。:) 确保将您自己添加到 AUTHORS.md 中。

    致谢

    许多机器学习和安全研究人员做出了令人印象深刻的工作,直接或间接地促成了这个项目,并启发了这个框架。以下是以某种方式使用或参考的不完全资源列表:

    论文

    • Szegedy 等人 神经网络的奇特性质
    • Papernot 等人 深度学习在对抗环境中的局限性
    • Papernot 等人 使用对抗示例对深度学习系统的实际黑盒攻击
    • Goodfellow 等人 解释和利用对抗示例
    • Papernot 等人 机器学习中的可迁移性:从现象到使用对抗样本的黑盒攻击
    • Grosse 等人 针对恶意软件分类的深度神经网络的对抗扰动
    • Nguyen 等人 深度神经网络容易受骗:对不可识别图像的高置信度预测
    • Xu 等人 自动规避分类器:PDF 恶意软件分类器的案例研究
    • Kantchelian 等人 树集成分类器的规避与强化
    • Biggio 等人 对抗标签噪声下的支持向量机
    • Biggio 等人 对支持向量机的投毒攻击
    • Papernot 等人 蒸馏作为针对深度神经网络对抗扰动的防御
    • Ororbia II 等人 用灵活深度数据梯度正则化统一对抗训练算法
    • Jin 等人 对抗噪声下的鲁棒卷积神经网络
    • Goodfellow 等人 深度学习对抗示例——澄清误解

    代码

    • tensorflow/tensorflow
    • WildML 在 Tensorflow 中实现用于文本分类的 CNN
    • wgrathwohl/captcha_crusher
    • josecl/cool-php-captcha

    数据集

    • Krizhevsky 等人 CIFAR-10 数据集
    • LeCun 等人 MNIST 手写数字数据库
    • Pang 等人 电影评论数据(来自烂番茄的 v2.0)