目前,机器学习技术是信息技术的一些最热门的趋势。它们影响着我们生活的方方面面,影响着每一个行业和领域。机器学习是信息安全专业人员的一种网络武器。在这本书中,你不仅将探索机器学习技术的基本原理,还将学习建立一个功能齐全的机器学习安全系统的秘密;我们不会停止建造防御层。我们将探索如何用对抗式学习攻击机器学习模型。掌握渗透测试的机器学习将提供教育和实用价值。
为渗透测试掌握机器学习是为钢笔测试人员和安全专业人员提供的,他们对学习破解智能安全系统的技术感兴趣。需要 Python 的基本知识,但不需要机器学习的先验知识。
第一章Pentesting 中的机器学习简介,除了学习如何评估机器学习模型和算法外,还向读者介绍了不同机器学习模型和算法的基本概念。然后,它向我们展示了如何使用许多 data science Python 库准备机器学习开发环境。
第 2 章钓鱼域名检测指导我们如何建立机器学习模型,使用不同的算法和自然语言处理(NLP)检测钓鱼电子邮件和垃圾邮件企图。
第 3 章、通过 API 调用和 PE 头进行恶意软件检测,解释了分析恶意软件和恶意软件的不同方法,随后向我们介绍了构建基于机器学习的恶意软件检测器的一些不同技术。
第 4 章恶意软件检测与深度学习扩展了我们在上一章中学习的内容,探索如何构建人工神经网络和深度学习来检测恶意软件。
第 5 章基于机器学习的僵尸网络检测演示了如何使用前面讨论的技术和公开可用的僵尸网络流量数据集构建僵尸网络检测器。
第 6 章异常检测系统中的机器学习向我们介绍了异常检测中最重要的术语,并指导我们构建机器学习异常检测系统。
第 7 章检测高级持续性威胁向我们展示了如何使用机器学习功能已经加载的麋鹿堆栈构建一个完全工作的真实世界威胁搜索平台。
第 8 章使用对抗式机器学习绕过入侵检测系统演示了如何使用对抗式学习绕过机器学习系统,并研究了一些实际案例,包括绕过下一代入侵检测系统。
第 9 章绕过机器学习恶意软件检测器,教我们如何通过对抗性学习和生成性对抗网络绕过基于机器学习的恶意软件检测器。
第 10 章机器学习和特征工程最佳实践除了向读者介绍机器学习最佳实践以构建可靠系统外,还探讨了不同的特征工程技术。
我们假设本书的读者熟悉基本的信息安全概念和 Python 编程。本书中的一些演示需要更多的实践和在线研究来深入探讨所讨论的概念。
如果遇到任何 bug、打字错误或错误,请始终检查本书的 GitHub 存储库以检查更新的代码。
您可以从您的账户www.packtpub.com下载本书的示例代码文件。如果您在其他地方购买了本书,您可以访问www.packtpub.com/support并注册,将文件通过电子邮件直接发送给您。
您可以通过以下步骤下载代码文件:
- 登录或注册www.packtpub.com。
- 选择“支持”选项卡。
- 点击代码下载和勘误表。
- 在搜索框中输入图书名称,然后按照屏幕上的说明进行操作。
下载文件后,请确保使用以下最新版本解压或解压缩文件夹:
- WinRAR/7-Zip for Windows
- 适用于 Mac 的 Zipeg/iZip/UnRarX
- 适用于 Linux 的 7-Zip/PeaZip
该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Mastering-Machine-Learning-for-Penetration-Testing 。如果代码有更新,它将在现有 GitHub 存储库中更新。
我们的丰富书籍和视频目录中还有其他代码包,请访问**https://github.com/PacktPublishing/** 。看看他们!
我们还提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。您可以从下载 https://www.packtpub.com/sites/default/files/downloads/MasteringMachineLearningforPenetrationTesting_ColorImages.pdf 。
本书中使用了许多文本约定。
CodeInText:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。下面是一个示例:“首先,使用python --version命令检查 Python 版本。”
代码块设置如下:
from keras import [what_to_use]
from keras.models import Sequential
from keras.layers import Dense当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:
model = Sequential()
# N = number of neurons
# V = number of variable
model.add(Dense(N, input_dim=V, activation='relu'))
# S = number of neurons in the 2nd layer
model.add(Dense(S, activation='relu'))
model.add(Dense(1, activation='sigmoid')) # 1 output任何命令行输入或输出的编写方式如下:
>>> import tensorflow as tf
>>> Message = tf.constant("Hello, world!")
>>> sess = tf.Session()
>>> print(sess.run(Message))粗体:表示一个新术语、一个重要单词或您在屏幕上看到的单词。
警告或重要提示如下所示。
提示和技巧如下所示。
我们欢迎读者的反馈。
一般反馈:发送电子邮件feedback@packtpub.com并在邮件主题中提及书名。如果您对本书的任何方面有疑问,请发送电子邮件至questions@packtpub.com。
勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问www.packtpub.com/submit-errata,选择您的书籍,点击 errata 提交表单链接,然后输入详细信息。
盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请通过copyright@packtpub.com与我们联系,并提供该材料的链接。
如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问authors.packtpub.com。
请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在读者可以看到并使用您的无偏见意见做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。非常感谢。
有关 Packt 的更多信息,请访问packtpub.com。