感谢您发送咨询!我们的团队成员将很快与您联系。
感谢您发送预订!我们的团队成员将很快与您联系。
课程大纲
第一天
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)
机器翻译
模块3 apps攻击与利用,XSS,SQL注入 模块4 服务器攻击与利用,DOS,BOF
Tshifhiwa - Vodacom
课程 - How to Write Secure Code
机器翻译
课程概述
Paulo Gouveia - EID
课程 - C/C++ Secure Coding
机器翻译
培训师的专业知识非常出色,课程安排得当,学员能够跟随演示进行操作,这种方式比单纯坐着听讲更有助于巩固知识。
Jack Allan - RSM UK Management Ltd.
课程 - Secure Developer .NET (Inc OWASP)
机器翻译
非常完美,没有任何问题。
Zola Madolo - Vodacom
课程 - Android Security
机器翻译