软件安全

傅建明

目录

  • 1 软件安全概述
    • 1.1 信息与信息安全
      • 1.1.1 什么是信息?
      • 1.1.2 什么是安全?
      • 1.1.3 什么是信息安全?
      • 1.1.4 信息面临哪些安全威胁?
      • 1.1.5 信息安全防护
    • 1.2 软件安全威胁及其来源
      • 1.2.1 软件缺陷与漏洞
      • 1.2.2 恶意软件
      • 1.2.3 软件破解
    • 1.3 如何加强软件安全防护
    • 1.4 课后思考
  • 2 计算机引导与磁盘管理
    • 2.1 系统引导与控制权
      • 2.1.1 计算机系统引导过程
      • 2.1.2 系统引导与恶意软件的关联
    • 2.2 80X86处理器的工作模式
    • 2.3 Windows内存结构与管理
      • 2.3.1 内存布局与页面地址转换
      • 2.3.2 页面权限管理
    • 2.4 磁盘的物理与逻辑结构
      • 2.4.1 磁盘物理结构
      • 2.4.2 磁盘的逻辑结构
    • 2.5 FAT32文件系统及数据恢复
      • 2.5.1 FAT32文件系统结构
      • 2.5.2 文件的存储和删除
      • 2.5.3 被删除文件恢复的机理
      • 2.5.4 FAT32数据恢复实践
    • 2.6 NTFS文件系统
    • 2.7 二进制程序的生成与表示
      • 2.7.1 二进制程序的生成
      • 2.7.2 二进制程序的表示
      • 2.7.3 函数的实现
    • 2.8 C2学习资源及任务
  • 3 PE文件格式
    • 3.1 PE文件及其表现形式
    • 3.2 PE文件格式与Win32病毒的关系
    • 3.3 PE文件格式总体结构概述
      • 3.3.1 PE文件原始数据
      • 3.3.2 相关工具介绍
      • 3.3.3 MZ及PE文件头
      • 3.3.4 可选文件头
      • 3.3.5 节表与节
    • 3.4 代码节与数据节
      • 3.4.1 代码节与数据节
      • 3.4.2 代码节与数据节-举例
    • 3.5 引入函数节:PE文件的引入函数机制
      • 3.5.1 引入目录表
      • 3.5.2 引入名字表及IAT等
    • 3.6 引出函数节:DLL文件的函数引出机制
      • 3.6.1 引出函数节
      • 3.6.2 引出函数节-举例分析
    • 3.7 资源节:文件资源索引、定位与修改
    • 3.8 重定位节:镜像地址改变后的地址自动修正
    • 3.9 PE程序的数字签名与验证机制
    • 3.10 test.exe分析模板
    • 3.11 学习任务与资源
  • 4 PE文件格式实践
    • 4.1 手工构建引入函数表
    • 4.2 手工替换程序的已有图标
    • 4.3 手工提取程序的图标
    • 4.4 手工为程序新增图标
    • 4.5 手工汉化
    • 4.6 PE程序的数字签名过程与数据植入
      • 4.6.1 PE程序的数字签名过程
      • 4.6.2 PE程序签名数据的提取与分析
      • 4.6.3 PE签名程序的数据植入
    • 4.7 挑战自己:手工打造最小PE文件
    • 4.8 PE提交作品展示与交流
      • 4.8.1 最小PE文件-挑战作品
      • 4.8.2 PE文件标注作品展示与投票
  • 5 恶意代码及其分类
    • 5.1 恶意代码定义
    • 5.2 恶意代码的功能
    • 5.3 恶意代码分类
    • 5.4 恶意代码与网络犯罪
    • 5.5 恶意代码与APT攻击中的武器
      • 5.5.1 从恶意代码的发展看APT攻击
      • 5.5.2 高级恶意代码工程体系-A2PT的攻击武器
      • 5.5.3 普通APT组织的自研恶意代码
      • 5.5.4 商用恶意代码
      • 5.5.5 无恶意代码作业、开源和免费工具
      • 5.5.6 总结与思考
  • 6 Windows PE病毒
    • 6.1 PE病毒的基本概念
    • 6.2 PE病毒的分类
    • 6.3 传统文件感染型
      • 6.3.1 传统文件感染性病毒感染机理
      • 6.3.2 传统文件感染性病毒关键技术
    • 6.4 捆绑释放型
    • 6.5 系统感染型
      • 6.5.1 系统感染型病毒及控制权再次获取
      • 6.5.2 系统感染型病毒的传播方式
    • 6.6 典型案例
    • 6.7 课后思考
    • 6.8 C6学习任务及资源
  • 7 脚本病毒及宏病毒
    • 7.1 宏的基本概念与使用
    • 7.2 宏病毒的传播方法
    • 7.3 宏病毒的自我保护及对抗措施
      • 7.3.1 宏病毒的自我保护
      • 7.3.2 如何对抗宏病毒的自我保护
      • 7.3.3 APT攻击中宏利用
    • 7.4 VBS脚本的概念及使用
    • 7.5 VBS脚本病毒的感染技术
    • 7.6 VBS脚本病毒的变形技术
    • 7.7 PowerShell无文件攻击
    • 7.8 课后实践
    • 7.9 学习任务及资源
  • 8 网络蠕虫
    • 8.1 网络蠕虫的定义
    • 8.2 网络蠕虫的分类
    • 8.3 网络蠕虫的功能模块
    • 8.4 网络蠕虫的检测与防治
    • 8.5 典型网络蠕虫-Slammer
    • 8.6 课后思考
  • 9 网络木马
    • 9.1 木马的基本概念
    • 9.2 木马的分类
    • 9.3 木马的植入方式
    • 9.4 木马的通信方式
    • 9.5 远程控制型木马的常见功能与意图
      • 9.5.1 木马结构
      • 9.5.2 木马的典型功能
      • 9.5.3 木马的性能
    • 9.6 木马的检测思路探讨
    • 9.7 APT攻击与远控木马
    • 9.8 课后思考
  • 10 恶意代码检测技术
    • 10.1 恶意代码检测的对象与策略
    • 10.2 特征值检测技术
    • 10.3 校验和检测技术
    • 10.4 启发式扫描技术
    • 10.5 虚拟机检测技术
    • 10.6 主动防御技术
    • 10.7 安全软件评测
    • 10.8 课后思考
  • 11 恶意软件样本捕获与分析
    • 11.1 恶意软件样本捕获方法
    • 11.2 恶意软件载体
    • 11.3 恶意软件的分析方法
    • 11.4 典型恶意软件样本分析工具
    • 11.5 恶意软件样本分析实例
    • 11.6 恶意软件之威胁情报
  • 12 V1软件缺陷与漏洞概述
    • 12.1 V1.1软件缺陷基本概念
    • 12.2 V1.2漏洞分类及其标准
    • 12.3 V1.3 软件漏洞评估机制
    • 12.4 V1.4 安全事件的概念
    • 12.5 V1.5 软件漏洞发布平台
  • 13 V2 软件漏洞与网络攻击链
    • 13.1 V2.1 软件漏洞利用的影响
    • 13.2 V2.2 软件漏洞产生的原因
    • 13.3 V2.3 软件漏洞的利用方式
    • 13.4 V2.4 典型软件漏洞
    • 13.5 V2.5 网络攻击链
  • 14 V3栈溢出等典型漏洞机理分析
    • 14.1 V3.1 函数与栈帧
    • 14.2 V3.2 栈溢出机理
    • 14.3 V3.3 栈溢出攻击
    • 14.4 V3.4 格式化字符串漏洞
    • 14.5 V3.5 整数溢出漏洞
  • 15 V4堆溢出漏洞机理分析
    • 15.1 V4.1 堆管理
    • 15.2 V4.2 堆数据结构与算法
    • 15.3 V4.3 堆漏洞机理
    • 15.4 V4.4 堆漏洞利用
  • 16 V5 Web漏洞机理分析
    • 16.1 XSS攻击机理与防范
    • 16.2 SQL注入攻击机理与防范
    • 16.3 CSRF攻击机理与防范
  • 17 V6 软件漏洞的利用和发现
    • 17.1 V6.1 软件漏洞的发现
    • 17.2 V6.2 软件漏洞的利用
  • 18 V7 Windows系统安全机制及漏洞防护技术
    • 18.1 V7.1 溢出漏洞利用回顾
    • 18.2 V7.1 DEP
    • 18.3 V7.2~3 GS和ASLR
    • 18.4 V7.4~5 SafeSeh和SEHOP
    • 18.5 V7.6 EMET
  • 19 V8安全软件设计与构建
    • 19.1 V8.1 软件漏洞与软件开发
    • 19.2 V8.2 软件安全需求与威胁建模
    • 19.3 V8.3 软件安全设计
    • 19.4 V8.4软件安全编码
    • 19.5 V8.5软件安全测试
V3.3 栈溢出攻击