第1章 AI安全之攻与防 1
1.1 AI设备的安全 2
1.2 AI模型的安全 3
1.3 使用AI进行安全建设 4
1.4 使用AI进行攻击 9
1.5 本章小结 9
第2章 打造机器学习工具箱 11
2.1 TensorFlow 11
2.2 Keras 13
2.3 Anaconda 14
2.4 OpenAI Gym 19
2.5 Keras-rl 19
2.6 XGBoost 19
2.7 GPU服务器 20
2.8 本章小结 23
第3章 性能衡量与集成学习 24
3.1 常见性能衡量指标 24
3.1.1 测试数据 24
3.1.2 混淆矩阵 25
3.1.3 准确率与召回率 25
3.1.4 准确度与F1-Score 26
3.1.5 ROC与AUC 27
3.2 集成学习 28
3.2.1 Boosting算法 29
3.2.2 Bagging算法 31
3.3 本章小结 32
第4章 Keras基础知识 34
4.1 Keras简介 34
4.2 Keras常用模型 35
4.2.1 序列模型 35
4.2.2 函数式模型 35
4.3 Keras的网络层 36
4.3.1 模型可视化 36
4.3.2 常用层 38
4.3.3 损失函数 44
4.3.4 优化器 44
4.3.5 模型的保存与加载 45
4.3.6 基于全连接识别MNIST 45
4.3.7 卷积层和池化层 47
4.3.8 基于卷积识别MNIST 49
4.3.9 循环层 49
4.3.10 基于LSTM进行IMDB情感分类 52
4.4 本章小结 54
第5章 单智力体强化学习 55
5.1 马尔可夫决策过程 55
5.2 Q函数 56
5.3 贪婪算法与∈-贪婪算法 57
5.4 Sarsa算法 59
案例5-1:使用Sarsa算法处理金币问题 60
5.5 Q Learning算法 62
案例5-2:使用Q Leaming算法处理金币问题 63
5.6 Deep Q Network算法 64
案例5-3:使用DQN算法处理CartPole问题 65
5.7 本章小结 71
第6章 Keras-rl简介 72
6.1 Keras-rl智能体介绍 73
6.2 Keras-rl智能体通用API 73
6.3 Keras-rl常用对象 75
案例6-1:在Keras-rl下使用SARSA算法处理CartPole问题 75
案例6-2:在Keras-rl下使用DQN算法处理CartPole问题 77
案例6-3:在Keras-rl下使用DQN算法玩Atari游戏 78
6.4 本章小结 86
第7章 OpenAI Gym简介 87
7.1 OpenAI 87
7.2 OpenAI Gym 88
7.3 Hello World!OpenAI Gym 89
7.4 编写OpenAI Gym环境 92
7.5 本章小结 98
第8章 恶意程序检测 99
8.1 PE文件格式概述 100
8.2 PE文件的节 104
8.3 PE文件特征提取 107
8.4 PE文件节的特征提取 119
8.5 检测模型 121
8.6 本章小结 129
第9章 恶意程序免杀技术 130
9.1 LIEF库简介 130
9.2 文件末尾追加随机内容 132
9.3 追加导入表 132
9.4 改变节名称 133
9.5 增加节 134
9.6 节内追加内容 135
9.7 UPX加壳 135
9.8 删除签名 137
9.9 删除debug信息 138
9.10 置空可选头的交验和 138
9.11 本章小结 138
第10章 智能提升恶意程序检测能力 139
10.1 Gym-Malware简介 139
10.2 Gym-Malware架构 141
10.2.1 PEFeatureExtractor 141
10.2.2 Interface 143
10.2.3 MalwareManipulator 143
10.2.4 DQNAgent 144
10.2.5 MalwareEnv 145
10.3 恶意程序样本 148
10.4 本章小结 149
第11章 智能提升WAF的防护能力 150
11.1 常见XSS攻击方式 151
11.2 常见XSS防御方式 152
11.3 常见XSS绕过方式 153
11.4 Gym-WAF架构 155
11.4.1 Features类 156
11.4.2 Xss_Manipulator类 156
11.4.3 DQNAgent类 160
11.4.4 WafEnv_v0类 161
11.4.5 Waf_Check类 162
11.5 效果验证 163
11.6 本章小结 164
第12章 智能提升垃圾邮件检测能力 165
12.1 垃圾邮件检测技术 166
12.1.1 数据集 166
12.1.2 特征提取 168
12.1.3 模型训练与效果验证 171
12.1.4 模型的使用 172
12.2 垃圾邮件检测绕过技术 173
12.2.1 随机增加TAB 174
12.2.2 随机增加回车 174
12.2.3 大小写混淆 175
12.2.4 随机增加换行符 175
12.2.5 随机增加连字符 176
12.2.6 使用错别字 176
12.3 Gym-Spam架构 177
12.3.1 Features类 178
12.3.2 Spam_Manipulator类 178
12.3.3 DQNAgent类 179
12.3.4 SpamEnv_v0类 181
12.4 效果验证 182
12.5 本章小结 183
第13章 生成对抗网络 184
13.1 GAN基本原理 184
13.2 GAN系统架构 185
13.2.1 噪音源 185
13.2.2 Generator 186
13.2.3 Discriminator 187
13.2.4 对抗模型 188
13.3 GAN 188
13.4 DCGAN 194
13.5 ACGAN 202
13.6 WGAN 210
13.7 本章小结 217
第14章 攻击机器学习模型 218
14.1 攻击图像分类模型 218
14.1.1 常见图像分类模型 219
14.1.2 梯度算法和损失函数 222
14.1.3 基于梯度上升的攻击原理 224
14.1.4 基于梯度上升的算法实现 226
14.1.5 基于FGSM的攻击原理 228
14.1.6 基于FGSM攻击的算法实现 229
14.2 攻击其他模型 231
案例14-1:攻击手写数字识别模型 233
案例14-2:攻击自编码器 240
案例14-3:攻击差分自编码器 249
14.3 本章小结 262