课程大纲

第1天

    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 流程指南
  • SDL Agile 方法指南
  • 安全软件开发需要流程改进
  • 安全设计原则 攻击面 攻击面减少
  • 攻击面 - 一个例子
  • 攻击面分析
  • 攻击面减少 - 示例
  • 隐私 隐私
  • 了解应用程序行为和关注点 纵深防御 SDL 核心原则:纵深防御
  • 纵深防御 – 示例
  • 最小特权原则 最小权限 – 示例
  • 安全默认值 安全默认值 - 示例
  • 安全实施原则 议程
  • Microsoft 安全开发生命周期 (SDL)
  • 缓冲区溢出基础知识 英特尔 80x86 处理器 – 主寄存器
  • 内存地址布局
  • x86 上 C/C++ 中的函数调用机制
  • 局部变量和堆栈帧
  • 堆栈溢出 堆栈上的缓冲区溢出
  • 练习 – 介绍
  • 练习 BOFIntro
  • 练习 BOFIntro – 确定堆栈布局
  • 练习 BOFIntro – 一个简单的漏洞利用
  • 输入验证 输入验证概念 整数问题 负整数的表示
  • 整数溢出
  • 算术溢出 – 猜猜输出!
  • 练习 IntOverflow
  • What is the value of Math.Abs(int.MinValue)?
  • 整数问题缓解 整数问题缓解
  • 避免算术溢出 - 加法
  • 避免算术溢出 – 乘法
  • 检测 C# 中选中关键字的溢出
  • 练习 – 在 C# 中使用 checked 关键字
  • C# 中的溢出触发的异常
  • 案例研究 – .NET 中的整数溢出 真实世界的整数溢出漏洞
  • 利用整数溢出漏洞 路径遍历漏洞 路径遍历缓解
  • 第2天
  • 安全实施原则 注射 典型的 SQL 注入攻击方法 盲法和基于时间的 SQL 注射 SQL 注射保护方法 命令注入
  • 损坏的身份验证 - 密码管理 练习 – 散列密码的弱点
  • 密码管理和存储
  • 用于密码存储的特殊用途哈希算法
  • 跨站点脚本 (XSS) 跨站点脚本 (XSS)
  • CSS 注射
  • 漏洞利用:通过其他 HTML 标签注入
  • XSS 预防
  • 缺少功能级访问控制 过滤文件上传
  • 实用密码学 通过对称加密提供机密性
  • Symede 的 symed-up ims
  • 分组密码 – 操作模式
  • 哈希或消息摘要
  • 哈希算法
  • 消息验证码 (MAC)
  • 使用对称密钥提供完整性和真实性
  • 通过公钥加密提供机密性
  • 经验法则 – 拥有私钥

      密码管理中的典型错误
    练习 – 硬编码密码
  • 结论
  • 安全验证原则 功能测试与安全测试
  • 安全漏洞
  • 优先次序
  • SDLC 中的安全测试
  • 测试计划(风险分析)的步骤
  • 范围界定和信息收集 利害关系人
  • 资产
  • 攻击面
  • 测试的安全目标
  • 威胁建模 威胁建模
  • 攻击者配置文件
  • 基于攻击树的威胁建模
  • 基于误用/滥用案例的威胁建模
  • 误用/滥用案例 – 一个简单的网上商店示例
  • 威胁建模的按元素 STRIDE 方法 – MS SDL
  • 确定安全目标
  • 图表 – DFD 元素示例
  • 数据流图 – 示例
  • 威胁枚举 – MS SDL 的 STRIDE 和 DFD 元素
  • 风险分析 – 威胁分类
  • DREAD 威胁/风险排名模型
  • 安全测试技术和工具 一般测试方法
  • SDLC各个步骤的技术 代码审查 软件安全代码审查
  • 污点分析
  • 启发式
  • 静态代码分析 静态代码分析
  • 静态代码分析
  • 练习 – 使用静态代码分析工具
  • 测试实现 手动运行时验证
  • 手动与自动安全测试
  • 渗透测试
  • 压力测试
  • 模糊 自动化安全测试 - 模糊测试
  • 模糊测试的挑战
  • Web 漏洞扫描程序 练习 – 使用漏洞扫描程序
  • 检查和强化环境 常见漏洞评分系统 – CVSS
  • 漏洞扫描程序
  • 公共数据库
  • 案例研究 – Forms 身份验证绕过 空字节终止漏洞
  • 代码中的 Forms 身份验证绕过漏洞
  • 利用 Forms 身份验证绕过
  • 知识来源 安全编码源 – 入门套件
  • 漏洞数据库
  • MSDN 上的 .NET 安全编码准则
  • .NET 安全编码备忘单
  • 推荐书籍 – .NET 和 ASP.NET
  •  
  •   14 小时
     

    人数


    开始

    完结


    Dates are subject to availability and take place between 09:30 and 16:30.
    Open Training Courses require 5+ participants.

    客户评论 (9)

    相关课程

    Java and Web Application Security

      21 小时

    Advanced Java Security

      21 小时

    Advanced Java, JEE and Web Application Security

      28 小时

    Comprehensive C# and .NET Application Security

      21 小时

    Advanced C#, ASP.NET and Web Application Security

      21 小时

    Web Application Security

      14 小时

    Security Testing

      14 小时

    Secure Web Application Development and Testing

      21 小时

    Secure coding in PHP

      21 小时

    Combined C/C++, JAVA and Web Application Security

      28 小时

    Combined JAVA, PHP and Web Application Security

      28 小时

    课程分类