课程大纲

第1天

  • IT 安全和安全编码
    • 安全的性质
    • IT 安全相关术语
    • 风险定义
    • IT 安全的不同方面
    • 不同应用领域的要求
    • IT 安全与安全编码
    • 从漏洞到僵尸网路和网路犯罪
      • 安全漏洞的性质
      • 困难的原因
      • 从受感染的电脑到有针对性的攻击
    • 安全漏洞的分类
      • 兰德维尔分类法
      • 七恶王国
      • OWASP 2013 年前十名
      • OWASP 2003 – 2013 年十大比较
  • Microsoft ® 安全开发生命周期 (SDL) 简介
    • 议程
    • 应用程式受到攻击...
      • 网路犯罪的演变
      • 攻击主要针对应用程式
      • 大多数漏洞位于较小的ISV应用程式中
    • Microsoft SDL 的起源...
      • 安全时程表在 Microsoft...
      • 哪些应用程式需要遵循 SDL?
    • Microsoft 安全开发生命周期 (SDL)
      • Microsoft 安全开发生命周期 (SDL)
      • SDL 入学前要求:安全培训
      • 第一阶段:要求
      • 第二阶段:设计
      • 第三阶段:实施
      • 第四阶段:验证
      • 第五阶段:发布 – 回应计划
      • 第五阶段:发布 – 最终安全审查
      • 第五阶段:发布 – 存档
      • SDL 后要求:回应
      • 适用于 LOB 应用程式的 SDL 流程指南
      • Agile 方法的 SDL 指南
      • 安全的软体开发需要改进流程
  • 安全设计原则
    • 攻击面
      • 攻击面减少
      • 攻击面 – 示例
      • 攻击面分析
      • 攻击面减少 – 示例
    • 隐私
      • 隐私
      • 了解应用程式行为和关注点
    • 深度防御
      • SDL 核心原则:深度防御
      • 纵深防御 – 示例
    • 最小许可权原则
      • 最低许可权 – 示例
    • 安全预设值
      • 安全预设值 – 示例
  • 安全实施原则
    • 议程
    • Microsoft 安全开发生命周期 (SDL)
    • 缓冲区溢出基础知识
      • Intel 80x86 处理器 – 主寄存器
      • 记忆体地址布局
      • 在 x86 上 C/C++ 中的函数调用机制
      • 局部变数和堆栈帧
      • 堆叠溢出
        • 堆叠上的缓冲区溢出
        • 练习 – 简介
        • 练习BOFIntro
        • 练习 BOFIntro – 确定堆叠布局
        • 练习BOFIntro – 一个简单的漏洞
    • 输入验证
      • 输入验证概念
      • 整数问题
        • 负整数的表示
        • 整数溢出
        • 算术溢出 – 猜猜输出!
        • 练习 IntOverflow
        • What is the value of Math.Abs(int.MinValue)?
      • 整数问题缓解
        • 整数问题缓解
        • 避免算术溢出 – 加法
        • 避免算术溢出 – 乘法
        • 在 C# 中检测带有 checked 关键字的溢出
        • 练习 – 在 C# 中使用 checked 关键字
        • C# 中的溢出触发的异常
      • 案例研究 – .NET 中的整数溢出
        • 现实世界的整数溢出漏洞
        • 利用整数溢出漏洞
      • 路径遍历漏洞
        • 路径遍历缓解

第2天

  • 安全实施原则
    • 注射
      • 典型的 SQL 注入攻击方法
      • 盲注和基于时间的 SQL 注射
      • SQL 注射保护方法
      • 命令注入
    • 身份验证失效 - 密码管理
      • 练习 – 哈希密码的弱点
      • 密码管理和存储
      • 用于密码存储的特殊用途哈希演算法
    • 跨网站文稿 (XSS)
      • 跨网站文稿 (XSS)
      • CSS 注射
      • 利用漏洞:通过其他 HTML 标签注入
      • XSS 预防
    • 缺少函数级访问控制
      • 筛选档上传
    • 实用密码学
      • 通过对称加密技术提供机密性
      • 对称加密演算法
      • 群组密码 – 操作模式
      • 哈希或消息摘要
      • 哈希演算法
      • 讯息认证代码 (MAC)
      • 使用对称金钥提供完整性和真实性
      • 通过公钥加密提供机密性
      • 经验法则 – 拥有私钥
      • 密码管理中的典型错误
      • 练习 – 硬编码密码
      • 结论
  • 安全验证原则
    • 功能测试与安全测试
    • 安全漏洞
    • 优先顺序
    • SDLC 中的安全测试
    • 测试计划的步骤(风险分析)
    • 范围界定和资讯收集
      • 利益相关者
      • 资产
      • 攻击面
      • 测试的安全目标
    • 威胁建模
      • 威胁建模
      • 攻击者配置档
      • 基于攻击树的威胁建模
      • 基于误用/滥用案例的威胁建模
      • 误用/滥用案例 – 一个简单的网上商店示例
      • 威胁建模的 STRIDE 每元素方法 – MS SDL
      • 确定安全目标
      • 图表 – DFD 元素示例
      • 数据流图 – 示例
      • 威胁枚举 – MS SDL 的 STRIDE 和 DFD 元素
      • 风险分析 – 威胁分类
      • DREAD 威胁/风险排名模型
    • 安全测试技术和工具
      • 一般测试方法
      • SDLC 各个步骤的技术
    • 代码审查
      • 软体安全代码审查
      • 污点分析
      • 启发式
    • 静态代码分析
      • 静态代码分析
      • 静态代码分析
      • 练习 – 使用静态代码分析工具
    • 测试实现
      • 手动运行时验证
      • 手动与自动安全测试
      • 渗透测试
      • 压力测试
    • 模糊
      • 自动安全测试 - 模糊测试
      • 模糊测试的挑战
    • Web 漏洞扫描程式
      • 练习 – 使用漏洞扫描程式
    • 检查和强化环境
      • 通用漏洞评分系统 – CVSS
      • 漏洞扫描程式
      • 公共资料库
    • 案例研究 – Forms 身份验证绕过
      • NULL 位元组终止漏洞
      • 代码中的 Forms Authentication Bypass 漏洞
      • 利用 Forms 身份验证绕过
  • 知识来源
    • 安全的编码源 – 入门套件
    • 漏洞资料库
    • MSDN 上的 .NET 安全编码准则
    • .NET 安全编码备忘单
    • 推荐书籍 – .NET 和 ASP.NET
 14 小时

客户评论 (5)

即将举行的公开课程

课程分类