感谢您发送咨询!我们的团队成员将很快与您联系。
感谢您发送预订!我们的团队成员将很快与您联系。
课程大纲
第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 小时