软件安全

傅建明

目录

  • 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软件安全测试
PE提交作品展示与交流


《软件安全》加分题(第三章PE文件格式)
(本次共发布2道,20200930)

文件说明:
(1)从PE例子程序压缩包获得目标可执行文件和模板。
(2)test.exe是大家进行PE文件结构标注的模板文件,具体要求见对应文档。
(3)MiniPE-760.exe是大家用于进行最小PE文件挑战的初始文件。

加分题及要求:
SS-TZ31:最小PE文件挑战
要求:
(1)弹框的标题和内容的星号部分修改为实际字节数和学号,其他不能改变。
(2)需要保留函数引入机制,不可以对函数地址进行硬编码,不能通过序号引入。
(3)基本大小要求:XP下文件<300个字节,Win8、10<350字节。

评选规则:
(1)可以以Windows XP为平台,也可以以Win8、Win10为平台(这两个当作同一类型平台)
(2)同一类型平台大小相同者,以提交时间排序;
(3)无中间文件和缩减理由说明文档的无效。

奖励分数:
      第一轮排名前三的同学将获得额外加分(3,2,1),第一轮结束后公布排名前三的同学名单以及他们提交的所有文件。如果同一位同学同时提交两类平台文件,取高分项。第二轮取文件最小者。第二轮获胜者可得5分(含第一轮得分,如结果不优于第一轮最好成绩不得分)。第二轮获胜者作品在MOOC平台进行专栏展示。
      参与者是总体获得基本分。

提交文档包括:
      最终文件、每一步的缩减理由说明(给出中间文件截图)及中间文件。

提交截止时间:
      第一轮为10月10日24:00,第二轮为10月24日24:00。

提交方法:教辅田杨邮箱,1542723107@qq.com。
提交要求:邮件标题:1-最小PE- XP或者Win8、10-姓名-文件大小,附件为同名rar。

当前记录:
      XP系统:192字节(2016级田杨)。
      Win8、10系统:268字节(2017级林峰吕)。


SS-TZ32:PE文件标注
要求:
(1)八仙过海、各显神通,对指定目标模板文件(已在百度网盘给出模板doc和pdf,大家自行选用)进行电子版本的格式标注,要求通俗易懂、清晰明了,对同学们学习PE文件结构具有参考意义。
(2)所有同学必须提交(获得基本分)
(3)原则上所有提交文档,统一转换成pdf提交。如有其他形式且有必要,可提前沟通。

评选规则与额外奖励分数:
(1)截止日之后,由老师、助教和教辅一起挑选不多于10个作品,在群内或MOOC平台进行展示。
(2)所有同学参加投票,得票前三作为最佳作品,给予额外加分奖励(3,2,1),并在MOOC平台进行持续专栏展示。

提交截止时间:
      2020年10月12日18:00。

提交要求:邮件标题:2-PE文件标注-姓名,附件为同名rar。
提交方法:教辅田杨邮箱,1542723107@qq.com。