課程簡介

第一天

  • IT安全与安全编码
    • 安全的本质
    • 与IT安全相关的术语
    • 风险的定义
    • IT安全的不同方面
    • 不同应用领域的需求
    • IT安全与安全编码
    • 从漏洞到僵尸网络和网络犯罪
      • 安全漏洞的本质
      • 困难的原因
      • 从受感染的计算机到针对性攻击
    • 安全漏洞的分类
      • Landwehr的分类法
      • 七大致命王国
      • 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处理器 – 主要寄存器
      • 内存地址布局
      • C/C++在x86上的函数调用机制
      • 局部变量和栈帧
      • 栈溢出
        • 栈上的缓冲区溢出
        • 练习 – 介绍
        • 练习BOFIntro
        • 练习BOFIntro – 确定栈布局
        • 练习BOFIntro – 一个简单的漏洞利用
    • 输入验证
      • 输入验证概念
      • 整数问题
        • 负整数的表示
        • 整数溢出
        • 算术溢出 – 猜猜输出!
        • 练习IntOverflow
        • Math.Abs(int.MinValue)的值是多少?
      • 整数问题缓解
        • 整数问题缓解
        • 避免算术溢出 – 加法
        • 避免算术溢出 – 乘法
        • 在C#中使用checked关键字检测溢出
        • 练习 – 在C#中使用checked关键字
        • C#中溢出触发的异常
      • 案例研究 – .NET中的整数溢出
        • 一个真实的整数溢出漏洞
        • 利用整数溢出漏洞
      • 路径遍历漏洞
        • 路径遍历缓解

第二天

  • 安全实施原则
    • 注入
      • 典型的SQL注入攻击方法
      • 盲注和基于时间的SQL注入
      • SQL注入保护方法
      • 命令注入
    • 认证破坏 – 密码管理
      • 练习 – 哈希密码的弱点
      • 密码管理和存储
      • 用于密码存储的专用哈希算法
    • 跨站脚本攻击(XSS)
      • 跨站脚本攻击(XSS)
      • CSS注入
      • 利用:通过其他HTML标签注入
      • XSS防护
    • 缺少功能级访问控制
      • 过滤文件上传
    • 实用密码学
      • 使用对称加密提供机密性
      • 对称加密算法
      • 分组密码 – 操作模式
      • 哈希或消息摘要
      • 哈希算法
      • 消息认证码(MAC)
      • 使用对称密钥提供完整性和真实性
      • 使用公钥加密提供机密性
      • 经验法则 – 私钥的持有
      • 密码管理中的典型错误
      • 练习 – 硬编码密码
      • 结论
  • 安全验证原则
    • 功能测试与安全测试
    • 安全漏洞
    • 优先级排序
    • SDLC中的安全测试
    • 测试计划的步骤(风险分析)
    • 范围确定和信息收集
      • 利益相关者
      • 资产
      • 攻击面
      • 测试的安全目标
    • 威胁建模
      • 威胁建模
      • 攻击者画像
      • 基于攻击树的威胁建模
      • 基于滥用/误用案例的威胁建模
      • 滥用/误用案例 – 一个简单的网店示例
      • MS SDL的STRIDE元素威胁建模方法
      • 识别安全目标
      • 图表 – DFD元素示例
      • 数据流图 – 示例
      • 威胁枚举 – MS SDL的STRIDE和DFD元素
      • 风险分析 – 威胁分类
      • DREAD威胁/风险排名模型
    • 安全测试技术和工具
      • 一般测试方法
      • SDLC各阶段的技术
    • 代码审查
      • 软件安全的代码审查
      • 污点分析
      • 启发式方法
    • 静态代码分析
      • 静态代码分析
      • 静态代码分析
      • 练习 – 使用静态代码分析工具
    • 测试实施
      • 手动运行时验证
      • 手动与自动化安全测试
      • 渗透测试
      • 压力测试
    • 模糊测试
      • 自动化安全测试 – 模糊测试
      • 模糊测试的挑战
    • Web漏洞扫描器
      • 练习 – 使用漏洞扫描器
    • 检查与加固环境
      • 通用漏洞评分系统 – CVSS
      • 漏洞扫描器
      • 公共数据库
    • 案例研究 – 表单认证绕过
      • NULL字节终止漏洞
      • 代码中的表单认证绕过漏洞
      • 利用表单认证绕过漏洞
  • 知识来源
    • 安全编码来源 – 入门指南
    • 漏洞数据库
    • MSDN上的.NET安全编码指南
    • .NET安全编码速查表
    • 推荐书籍 – .NET和ASP.NET
 14 時間:

人數


每位參與者的報價

客戶評論 (5)

Upcoming Courses

課程分類