为网友们分享了数据分析类书籍配套资源,介绍了关于数据科学、软件分析、数据分析方面的内容,本书是由机械工业出版社出版,已被925人关注,由焦瑞娟测试纠错,目前本书在数据分析类综合评分为:9.4分。
书籍介绍
本书的第1~3章涵盖了理解本书后面讨论恶意软件数据科学技术所必需的基本逆向工程概念。第4章和第5章重点关注恶意软件的关系分析,其中包括查看恶意软件集合之间的相似性和差异性,以识别针对组织的恶意软件攻击活动。第6~9章涵盖了需要了解的关于理解、应用和实现基于机器学习恶意软件检测系统的所有内容。这些章节的内容还为将机器学习应用于其他网络安全场景提供了基础。第10~12章介绍深度学习的内容。本书的目标读者是那些有兴趣学习更多关于如何使用数据科学技术解决计算机安全问题的安全专业人士。
封面图
目录
- 译者序
- 序
- 前言
- 致谢
- 作者简介
- 评审专家简介
- 第1章恶意软件静态分析基础 1
- 1.1微软Windows可移植可执行文件格式 2
- 1.1.1PE头 3
- 1.1.2可选头 3
- 1.1.3节头 3
- 1.2使用pef?ile解析PE文件格式 5
- 1.3检查恶意软件的图片 7
- 1.4检查恶意软件的字符串 8
- 1.4.1使用字符串程序 8
- 1.4.2分析镜像字符串 8
- 1.5小结 10
- 第2章基础静态分析进阶:x86反汇编 11
- 2.1反汇编方法 11
- 2.2x86汇编语言基础 12
- 2.2.1CPU寄存器 13
- 2.2.2算术指令 14
- 2.2.3数据传送指令 15
- 2.3使用peffile和capstone反汇编ircbot.exe 19
- 2.4限制静态分析的因素 21
- 2.4.1加壳 21
- 2.4.2资源混淆 22
- 2.4.3反汇编技术 22
- 2.4.4动态下载数据 22
- 2.5小结 23
- 第3章动态分析简介 24
- 3.1为什么使用动态分析 24
- 3.2恶意软件数据科学的动态分析 25
- 3.3动态分析的基本工具 25
- 3.3.1典型的恶意软件行为 26
- 3.3.2在malwr.com上加载文件 26
- 3.3.3在malwr.com上分析结果 27
- 3.4基本动态分析的局限 32
- 3.5小结 32
- 第4章利用恶意软件网络识别攻击活动 33
- 4.1节点和边 34
- 4.2二分网络 35
- 4.3恶意软件网络可视化 37
- 4.3.1失真问题 37
- 4.3.2力导向算法 38
- 4.4使用NetworkX构建网络 38
- 4.5添加节点和边 39
- 4.5.1添加属性 40
- 4.5.2将网络保存到磁盘 41
- 4.6使用GraphViz实现网络可视化 41
- 4.6.1使用参数调整网络 42
- 4.6.2GraphViz命令行工具 43
- 4.6.3向节点和边添加可视属性 47
- 4.7构建恶意软件网络 50
- 4.8构建共享图像关系网络 53
- 4.9小结 57
- 第5章共享代码分析 58
- 5.1通过特征提取对样本进行比较 61
- 5.1.1特征袋模型如何工作 61
- 5.1.2N-gram 62
- 5.2使用Jaccard系数量化相似性 63
- 5.3使用相似性矩阵评价恶意软件共享代码估计方法 65
- 5.3.1基于指令序列的相似性 66
- 5.3.2基于字符串的相似性 68
- 5.3.3基于导入地址表的相似性 69
- 5.3.4基于API动态调用的相似性 70
- 5.4构建相似图 71
- 5.5扩展相似性比较 76
- 5.5.1minhash概述 77
- 5.5.2minhash详述 77
- 5.6构建持续的恶意软件相似性搜索系统 79
- 5.7运行相似性搜索系统 84
- 5.8小结 86
- 第6章理解基于机器学习的恶意软件检测方法 87
- 6.1基于机器学习的检测引擎构建步骤 88
- 6.1.1收集训练样本 88
- 6.1.2提取特征 89
- 6.1.3设计好的特征 90
- 6.1.4训练机器学习系统 90
- 6.1.5测试机器学习系统 91
- 6.2理解特征空间和决策边界 91
- 6.3是什么决定了模型的好和坏:过拟合与欠拟合 96
- 6.4机器学习算法的主要类型 99
- 6.4.1逻辑回归 100
- 6.4.2k近邻算法 103
- 6.4.3决策树 106
- 6.4.4随机森林 112
- 6.5小结 114
- 第7章评价恶意软件检测系统 115
- 7.1四种可能的检测结果 115
- 7.1.1检出率和误报率 116
- 7.1.2检出率和误报率之间的关系 117
- 7.1.3ROC曲线 118
- 7.2在评价中考虑基准率 119
- 7.2.1基准率如何影响精确度 120
- 7.2.2在部署环境中评价精确度 120
- 7.3小结 122
- 第8章构建基于机器学习的检测器 123
- 8.1术语和概念 124
- 8.2构建一个基于决策树的检测器雏形 125
- 8.2.1训练你的决策树分类器 126
- 8.2.2可视化决策树 127
- 8.2.3完整的示例代码 129
- 8.3使用sklearn构建实际的机器学习检测器 130
- 8.3.1实际的特征提取 130
- 8.3.2为什么不能使用所有可能的特征 134
- 8.3.3使用哈希技巧压缩特征 134
- 8.4构建工业级的检测器 138
- 8.4.1特征提取 138
- 8.4.2训练检测器 139
- 8.4.3运行检测器检测新的二进制文件 141
- 8.4.4至此我们实现了什么 142
- 8.5评价检测器的性能 144
- 8.5.1使用ROC曲线评价检测器的功效 144
- 8.5.2计算ROC曲线 144
- 8.5.3将数据拆分为训练集和测试集 146
- 8.5.4计算ROC曲线 147
- 8.5.5交叉验证 148
- 8.6下一步工作 151
- 8.7小结 152
- 第9章可视化恶意软件趋势 153
- 9.1为什么可视化恶意软件数据很重要 153
- 9.2理解我们的恶意软件数据集 155
- 9.2.1将数据加载到pandas中 156
- 9.2.2使用pandas DataFrame 157
- 9.2.3使用条件过滤数据 159
- 9.3使用matplotlib可视化数据 160
- 9.3.1绘制恶意软件大小和反病毒引擎检测之间的关系 161
- 9.3.2绘制勒索软件检出率 162
- 9.3.3绘制勒索软件和蠕虫检测率 163
- 9.4使用seaborn可视化数据 166
- 9.4.1绘制反病毒引擎检出的分布图 167
- 9.4.2创建小提琴图 170
- 9.5小结 172
- 第10章深度学习基础 173
- 10.1深度学习的定义 174
- 10.2神经网络是如何工作的 175
- 10.2.1神经元剖析 175
- 10.2.2神经元网络 178
- 10.2.3通用近似定理 178
- 10.2.4构建自己的神经网络 179
- 10.2.5向网络中添加一个新的神经元 182
- 10.2.6自动生成特征 184
- 10.3训练神经网络 185
- 10.3.1利用后向传播优化神经网络 186
- 10.3.2路径爆炸 188
- 10.3.3梯度消失 189
- 10.4神经网络的类型 189
- 10.4.1前馈神经网络 189
- 10.4.2卷积神经网络 190
- 10.4.3自编码神经网络 191
- 10.4.4生成式对抗网络 192
- 10.4.5循环神经网络 192
- 10.4.6残差网络 193
- 10.5小结 193
- 第11章使用Keras构建神经网络恶意软件检测器 194
- 11.1定义模型的架构 195
- 11.2编译模型 197
- 11.3训练模型 198
- 11.3.1提取特征 198
- 11.3.2创建数据生成器 199
- 11.3.3与验证数据协作 203
- 11.3.4保存和加载模型 204
- 11.4模型评价 205
- 11.5使用回调强化模型训练过程 206
- 11.5.1使用内置回调 207
- 11.5.2使用自定义回调函数 208
- 11.6小结 210
- 第12章成为数据科学家 211
- 12.1成为安全数据科学家之路 211
- 12.2安全数据科学家的一天 212
- 12.3高效安全数据科学家的特征 214
- 12.3.1开放的心态 214
- 12.3.2无穷的好奇心 214
- 12.3.3对结果的痴迷 215
- 12.3.4对结果的怀疑 215
- 12.4未来的工作 215
- 附录数据集和工具概述 217