感谢您发送咨询!我们的团队成员将很快与您联系。
感谢您发送预订!我们的团队成员将很快与您联系。
课程大纲
第一天
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 指南
- 安全软件开发需要流程改进
安全设计原则
-
攻击面
- 攻击面减少
- 攻击面 - 示例
- 攻击面分析
- 攻击面减少 - 示例
-
隐私
- 隐私
- 理解应用行为和关注点
-
深度防御
- 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 中的安全测试
- 测试规划的步骤(风险分析)
-
范围界定和信息收集
- 利益相关者
- 资产
- 攻击面
- 安全测试目标
-
威胁建模
- 威胁建模
- 攻击者画像
- 基于攻击树的威胁建模
- 基于滥用/误用案例的威胁建模
- 滥用/误用案例 - 一个简单的网店示例
- STRIDE 按元素威胁建模方法 - MS SDL
- 识别安全目标
- 图表 - DFD 元素示例
- 数据流图 - 示例
- 威胁枚举 - MS SDL 的 STRIDE 和 DFD 元素
- 风险分析 - 威胁分类
- DREAD 威胁/风险排名模型
-
安全测试技术和工具
- 通用测试方法
- SDLC 各阶段的技术
-
代码审查
- 软件安全的代码审查
- 污点分析
- 启发式方法
-
静态代码分析
- 静态代码分析
- 练习 - 使用静态代码分析工具
-
测试实施
- 手动运行时验证
- 手动与自动化安全测试
- 渗透测试
- 压力测试
-
模糊测试
- 自动化安全测试 - 模糊测试
- 模糊测试的挑战
-
Web 漏洞扫描器
- 练习 - 使用漏洞扫描器
-
检查和加固环境
- 通用漏洞评分系统 - CVSS
- 漏洞扫描器
- 公共数据库
-
案例研究 - 表单认证绕过
- NULL 字节终止漏洞
- 代码中的表单认证绕过漏洞
- 利用表单认证绕过漏洞
知识来源
- 安全编码来源 - 入门套件
- 漏洞数据库
- MSDN 上的 .NET 安全编码指南
- .NET 安全编码速查表
- 推荐书籍 - .NET 和 ASP.NET
14 小时
客户评论 (5)
每个模组都有多个示例,并且对培训师有深入的了解。
Sebastian - BRD
课程 - Secure Developer Java (Inc OWASP)
机器翻译
Module3 Applications Attacks and Exploits, XSS, SQL 注入 Module4 服务器攻击和漏洞利用、DOS、BOF
Tshifhiwa - Vodacom
课程 - How to Write Secure Code
机器翻译
一般课程信息
Paulo Gouveia - EID
课程 - C/C++ Secure Coding
机器翻译
The trainer's subject knowledge was excellent, and the way the sessions were set out so that the audience could follow along with the demonstrations really helped to cement that knowledge, compared to just sitting and listening.
Jack Allan - RSM UK Management Ltd.
课程 - Secure Developer .NET (Inc OWASP)
Nothing it was perfect.