C++安全编程与渗透测试培训课程
|
培训目标
|
· 了解C++程序安全概览
· 了解渗透测试基础
· 学习WinDBG精要
· 了解栈和局部缓冲区溢出
· 解析异常处理和应用程序崩溃
· 多线程同步和死锁
· 堆和堆腐败
· 安全开发和威胁建模
· 代码扫描
· 数字签名和代码完整性基础
· 钩子和外挂
|
培训对象:使用C++语言开发Windows应用软件的软件工程师,或者相关项目的测试工程师、项目带头人和技术经理
|
学员基础:有一定C++开发和调试经验。
|
培训内容:
|
主题
|
课程安排
|
第一部分:C++程序安全概览
|
要点:从C++程序角度的安全定义,Top 25 Errors,CVE,资源
|
第二部分:渗透测试基础
|
要点:Pentest,背景,测试过程,重要资源,
Kali Linux, Metasploitable 2,
BackBox,
环境搭建,
渗透测试的五大步骤,
Metasploit Framework详细解析,
主机入侵完整过程演示(利用IRC漏洞远程登录被攻克目标机),
Armitage
[试验一]使用MSF利用IRC的溢出漏洞入侵主机
|
第三部分:WinDBG精要
|
要点:WinDBG的命令类型,常用命令,命令语法,调试符号,符号文件的种类,符号服务器,
定制调试事件的方法和重要的调试命令,
软件断点、硬件断点,复杂的断点命令,
x86寄存器和反汇编技巧
[试验二] WinDBG基础(15分钟)
|
第四部分:栈和局部缓冲区溢出
|
要点:栈基础,栈帧,栈帧布局,
栈指针被破坏(Stack pointer corruption.),
局部缓冲区越界(Overruns),
栈被破坏(Stack corruption.),
缓冲区溢出攻击(BOA),
实例演示,SQL Server案例,Win7案例,IRCDaemon案例,GS机制(基于Cookie的溢出检测机制),编译器的保护措施
[试验三] 理解缓冲区溢出攻击(30分钟)
|
第五部分:异常处理和应用程序崩溃
|
要点:结构化异常处理(SEH),C++异常处理,
Windows的异常奋发机制,
程序崩溃的完整过程和调试方法,
转储的基本知识,
如何使用ADPLUS自动产生用户态转储,以及分析用户态转储的常用命令和技巧
[试验四] JIT调试和异常事件处理(30分钟)
|
第六部分:多线程同步和死锁
|
要点:并发和并行,多线程,
C++程序中创建线程的多种方法,
在VC和WinDBG中观察和操纵线程的方法,
使用WinDBG来调试多线程程序和同时调试多个进程,包括控制线程执行状态,临界区,观察同步对象、分析死锁的方法,
案例演示,CPU的同步机制,互锁系列内建函数(intrinsic)
|
第七部分:堆和堆腐败
|
要点:C++程序中动态分配内存的多种方法(malloc, new, HeapAlloc),
介绍调试内存有关的典型问题的方法和技巧,
包括使用CRT堆和Win32堆的调试支持,
分析内存泄漏、访问违例和栈溢出等,
在探讨实践经验的同时会穿插重要的理论知识,
包括Win32对和CRT堆的结构、内存管理常识、堆布局等,真实案例分析
[试验五] 使用UMDH追踪堆的分配细节(30分钟)
|
第八部分:安全开发和威胁建模
|
要点:SDL(Security Development Lifecycle),SD3C,SDL定义的主要过程和最佳安全实践,
Software Assurance Maturity Model (SAMM),TOP 25编程错误解析,
常用建模方法概览(Trike 、OCTAVE 和P.A.S.T.A),
威胁建模,Microsoft Threat Modeling过程,STRIDE,风险评级,
微软Threat Modeling Tool 2016用法演示
|
第九部分:代码扫描
|
要点:源代码扫描和黑盒扫描,
静态扫描的优势,
Coverity介绍,
工作过程,AST树,Checkers,
三类事件,误报问题和函数建模,
开源的扫描工具
|
第x部分:数字签名和代码完整性基础
|
数字签名的工作原理和有关的密码学基础,
非对称加密,
Key的保护和管理,
Windows系统检查代码完整性的过程和有关的系统部件,对文件进行数字签名的工具和方法
|
第x部分:钩子和外挂
|
介绍钩子(Hook)技术的背景和简要历史,
分析Windows平台上的常用钩子技术及其工作原理,
包括DLL注入、IAT挂钩、消息挂钩等,
然后针对保护键盘输入这一目标,
讨论键盘输入的数据路径,
防止按键被嗅探的方法
|
|
如果您想学习本课程,请
预约报名
如果没找到合适的课程或有特殊培训需求,请
订制培训
除培训外,同时提供相关技术咨询与技术支持服务,有需求请发需求表到邮箱soft@info-soft.cn,或致电4007991916
技术服务需求表点击在线申请
服务特点:
海量专家资源,精准匹配相关行业,相关项目专家,针对实际需求,顾问式咨询,互动式授课,案例教学,小班授课,实际项目演示,快捷高效,省时省力省钱。
专家力量:
中国科学院软件研究所,计算研究所高级研究人员
oracle,微软,vmware,MSC,Ansys,candence,Altium,达索等大型公司高级工程师,项目经理,技术支持专家
中科信软培训中心,资深专家或讲师
大多名牌大学,硕士以上学历,相关技术专业,理论素养丰富
多年实际项目经历,大型项目实战案例,热情,乐于技术分享
针对客户实际需求,案例教学,互动式沟通,学有所获