| 作者 |
| (美)约书亚·萨克斯(Joshua Saxe),希拉里&#8226 桑德斯(Hillary Sanders) (美)克里斯托弗 C.埃里森 |
| 丛书名 |
| 网络空间安全技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782004091418 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------基于数据科学的恶意软件分析--------------------------- 本书的第1~3章涵盖了理解本书后面讨论恶意软件数据科学技术所必需的基本逆向工程概念。第4章和第5章重点关注恶意软件的关系分析,其中包括查看恶意软件集合之间的相似性和差异性,以识别针对组织的恶意软件攻击活动。第6~9章涵盖了需要了解的关于理解、应用和实现基于机器学习恶意软件检测系统的所有内容。这些章节的内容还为将机器学习应用于其他网络安全场景提供了基础。第10~12章介绍深度学习的内容。本书的目标读者是那些有兴趣学习更多关于如何使用数据科学技术解决计算机安全问题的安全专业人士。 ---------------------------黑客大曝光:恶意软件和Rootkit安全(原书第2版)--------------------------- 本书提供了经过证明的预防技术,用现实世界的案例研究和实例揭示了黑客们是如何使用很容易得到的工具渗透和劫持系统的。本书详细介绍了新的入侵检测、防火墙、蜜罐、防病毒、防Rootkit以及防间谍软件技术。 |
| 目录 |
---------------------------基于数据科学的恶意软件分析--------------------------- 译者序 序 前言 致谢 作者简介 评审专家简介 第1章 恶意软件静态分析基础 1 1.1 微软Windows可移植可执行文件格式 2 1.1.1 PE头 3 1.1.2 可选头 3 1.1.3 节头 3 1.2 使用pefile解析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.2 x86汇编语言基础 12 2.2.1 CPU寄存器 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.2 GraphViz命令行工具 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.2 N-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.1 minhash概述 77 5.5.2 minhash详述 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.2 k近邻算法 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.3 ROC曲线 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 ---------------------------黑客大曝光:恶意软件和Rootkit安全(原书第2版)--------------------------- 对本书第1版的赞誉 推荐序 译者序 作者简介 前言 致谢 第一部分 恶意软件 第1章 恶意软件传播 5 1.1 恶意软件仍是王者 5 1.2 恶意软件的传播现状 5 1.3 为什么他们想要你的工作站 6 1.4 难以发现的意图 6 1.5 这是桩生意 7 1.6 恶意软件传播的主要技术 7 1.6.1 社会工程 8 1.6.2 文件执行 9 1.7 现代恶意软件的传播技术 12 1.7.1 StormWorm 13 1.7.2 变形 14 1.7.3 混淆 16 1.7.4 动态域名服务 18 1.7.5 Fast Flux 19 1.8 恶意软件传播注入方向 20 1.8.1 电子邮件 20 1.8.2 恶意网站 23 1.8.3 网络仿冒 25 1.8.4 对等网络(P2P) 28 1.8.5 蠕虫 31 1.9 小结 32 第2章 恶意软件功能 33 2.1 恶意软件安装后会做什么 33 2.1.1 弹出窗口 33 2.1.2 搜索引擎重定向 36 2.1.3 数据盗窃 43 2.1.4 点击欺诈 45 2.1.5 身份盗窃 46 2.1.6 击键记录 49 2.1.7 恶意软件的表现 53 2.2 识别安装的恶意软件 55 2.2.1 典型安装位置 55 2.2.2 在本地磁盘上安装 56 2.2.3 修改时间戳 56 2.2.4 感染进程 57 2.2.5 禁用服务 57 2.2.6 修改Windows注册表 58 2.3 小结 58 第二部分 Rootkit 第3章 用户模式Rootkit 62 3.1 Rootkit 63 3.1.1 时间轴 64 3.1.2 Rootkit的主要特征 64 3.1.3 Rootkit的类型 66 3.2 用户模式Rootkit 67 3.2.1 什么是用户模式Rootkit 67 3.2.2 后台技术 68 3.2.3 注入技术 71 3.2.4 钩子技术 79 3.3 用户模式Rootkit实例 81 3.4 小结 87 第4章 内核模式Rootkit 88 4.1 底层:x86体系结构基础 89 4.1.1 指令集体系结构和操作系统 89 4.1.2 保护层次 89 4.1.3 跨越层次 90 4.1.4 内核模式:数字化的西部蛮荒 91 4.2 目标:Windows内核组件 92 4.2.1 Win32子系统 92 4.2.2 这些API究竟是什么 93 4.2.3 守门人:NTDLL.DLL 93 4.2.4 委员会功能:Windows Executive(NTOSKRNL.EXE) 94 4.2.5 Windows内核(NTOSKRNL.EXE) 94 4.2.6 设备驱动程序 94 4.2.7 Windows硬件抽象层(HAL) 95 4.3 内核驱动程序概念 95 4.3.1 内核模式驱动程序体系结构 96 4.3.2 整体解剖:框架驱动程序 97 4.3.3 WDF、KMDF和UMDF 98 4.4 内核模式Rootkit 99 4.4.1 内核模式Rootkit简介 99 4.4.2 内核模式Rootkit所面对的挑战 99 4.4.3 方法和技术 101 4.5 内核模式Rootkit实例 119 4.5.1 Clandestiny创建的Klog 119 4.5.2 Aphex创建的AFX 122 4.5.3 Jamie Butler、Peter Silberman和 C.H.A.O.S创建的FU和FUTo 124 4.5.4 Sherri Sparks 和 Jamie Butler创建的Shadow Walker 125 4.5.5 He4 Team创建的He4Hook 127 4.5.6 Honeynet项目创建的Sebek 130 4.6 小结 131 第5章 虚拟Rootkit 133 5.1 虚拟机技术概述 133 5.1.1 虚拟机类型 134 5.1.2 系统管理程序 135 5.1.3 虚拟化策略 136 5.1.4 虚拟内存管理 137 5.1.5 虚拟机隔离 137 5.2 虚拟机Rootkit技术 137 5.2.1 矩阵里的Rootkit:我们是怎么到这里的 138 5.2.2 什么是虚拟Rootkit 138 5.2.3 虚拟Rootkit的类型 139 5.2.4 检测虚拟环境 140 5.2.5 脱离虚拟环境 146 5.2.6 劫持系统管理程序 147 5.3 虚拟Rootkit实例 148 5.4 小结 153 第6章 Rootkit的未来 155 6.1 复杂性和隐蔽性的改进 156 6.2 定制的Rootkit 161 6.3 数字签名的Rootkit 162 6.4 小结 162 第三部分 预防技术 第7章 防病毒 167 7.1 现在和以后:防病毒技术的革新 167 7.2 病毒全景 168 7.2.1 病毒的定义 168 7.2.2 分类 169 7.2.3 简单病毒 170 7.2.4 复杂病毒 172 7.3 防病毒——核心特性和技术 173 7.3.1 手工或者“按需”扫描 174 7.3.2 实时或者“访问时”扫描 174 7.3.3 基于特征码的检测 175 7.3.4 基于异常/启发式检测 176 7.4 对防病毒技术的作用的评论 177 7.4.1 防病毒技术擅长的方面 177 7.4.2 防病毒业界的领先者 177 7.4.3 防病毒的难题 177 7.5 防病毒业界的未来 179 7.6 小结和对策 180 第8章 主机保护系统 182 8.1 个人防火墙功能 182 8.2 弹出窗口拦截程序 184 8.2.1 Chrome 185 8.2.2 Firefox 186 8.2.3 Microsoft Edge 187 8.2.4 Safari 187 8.2.5 一般的弹出式窗口拦截程序代码实例 187 8.3 小结 190 第9章 基于主机的入侵预防 191 9.1 HIPS体系结构 191 9.2 超过入侵检测的增长 193 9.3 行为与特征码 194 9.3.1 基于行为的系统 195 9.3.2 基于特征码的系统 196 9.4 反检测躲避技术 196 9.5 如何检测意图 200 9.6 HIPS和安全的未来 201 9.7 小结 202 第10章 Rootkit检测 203 10.1 Rootkit作者的悖论 203 10.2 Rootkit检测简史 204 10.3 检测方法详解 207 10.3.1 系统服务描述符表钩子 207 10.3.2 IRP钩子 208 10.3.3 嵌入钩子 208 10.3.4 中断描述符表钩子 208 10.3.5 直接内核对象操纵 208 10.3.6 IAT钩子 209 10.3.7 传统DOS或者直接磁盘访问钩子 209 10.4 Windows防Rootkit特性 209 10.5 基于软件的Rootkit检测 210 10.5.1 实时检测与脱机检测 211 10.5.2 System Virginity Verifier 212 10.5.3 IceSword 和DarkSpy 213 10.5.4 RootkitRevealer 215 10.5.5 F-Secure的Blacklight 215 10.5.6 Rootkit Unhooker 216 10.5.7 GMER 218 10.5.8 Helios 和Helios Lite 219 10.5.9 McAfee Rootkit Detective 221 10.5.10 TDSSKiller 223 10.5.11 Bitdefender Rootkit Remover 224 10.5.12 Trend Micro Rootkit Buster 225 10.5.13 Malwarebytes Anti-Rootkit 225 10.5.14 Avast aswMBR 225 10.5.15 商业Rootkit检测工具 225 10.5.16 使用内存分析的脱机检测:内存取证的革新 226 10.6 虚拟Rootkit检测 233 10.7 基于硬件的Rootkit检测 234 10.8 小结 235 第11章 常规安全实践 236 11.1 最终用户教育 236 11.2 了解恶意软件 237 11.3 纵深防御 239 11.4 系统加固 240 11.5 自动更新 240 11.6 虚拟化 241 11.7 固有的安全(从一开始) 242 11.8 小结 242 附录A 系统安全分析:建立你自己的Rootkit检测程序 243 |