Windows应用安全性测试从何做起

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1.
2.
3. 姓名:杨霄 部门:QA中心 团队:主动防御 经历:7年PC安全产品 相关测试
4. O1 安全测试重要性 O2 常见安全漏洞分析 O3 安全性测试的研究与实践
5. 安全测试重要性 [ P A R T 1 ]
6. 安全测试重要性 病毒代码依靠“白加黑”方式被调用。被感染的程序会下载病毒文件到本地执行,被下载执行的是一组”白加黑” 恶意程序,其中svchost为白文件,svchost运行后会加载执行libcef.dll中所存放的恶意代码。
7. 安全测试重要性 过去 现在 传统的攻击手段主要 攻击的对象,已经从操 是针对操作系统的安 作系统,扩展到图像处 全漏洞。 理,办公处理,备份软 件,反病毒软件,web 应用等等各类应用程序。
8. 安全测试重要性
9. 安全测试重要性
10. 常见安全漏洞分析 [ P A R T 2 ]
11. DLL劫持 从最广泛的意义上讲,DLL劫持是欺骗合法/受信任的应用程序以加载任意DLL 常见的DLL劫持方法: 常见的DLL劫持方法: DLL搜索顺序劫持 相对路径Dll劫持 DLL重定向 DLL替换 加载DLL时使用了相 找到exe中的缺陷, 篡改了%PATH%环境 简单粗暴,替换已有 对路径,通过将恶意 通过DLL加载缺陷进 变量 的DLL 的DLL放在实际DLL之 行劫持 前的搜索位置,劫持 了搜索顺序
12. DLL劫持–DLL搜索顺序劫持 非安全搜索模式下( HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SafeDllSearchMode设置为0 ) 如果没有指定dll路径,那么dll的查找顺序: 1.程序启动目录 2.程序当前目录(CurrentDirectory) 3.系统目录(c:\windows\system32) 4.16位程序目录(c:\windows\system) 5.Windows目录(c:\windows) 6.Path环境变量
13. DLL劫持–DLL搜索顺序劫持 XP系统之后发布的Windows操作系统中,默认情况下开启安全DLL搜索模式。 同时,微软为了更进一步的防御系统的DLL被劫持,将一些容易被劫持的系统DLL写进了一个注册表项中,那 么凡是此项下的DLL文件就会被禁止从EXE自身所在的目录下调用,而只能从系统目录即SYSTEM32目录下调用。 注册表路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs 但是,并不是所有的系统DLL都被写进了注册表当中。
14. DLL劫持–相对路径DLL劫持 2,使用 PEview.exe 查看该程序的导入表,主要是看程序需要导入哪 些DLL文件 1,查看注册表里面哪些DLL是系统保护的
15. DLL劫持–相对路径DLL劫持 3,确定劫持的DLL文件之后,我们使用 AheadLib 工 具来生成DLL劫持代码
16. DLL劫持–相对路径DLL劫持 为了验证DLL程序是否能成功劫持,我们把改名后的“VERSION.DLL”和“hash.exe”放在桌面。运行程 序,成功弹窗。
17. 安全性测试的研究和实践 [ P A R T 3 ]
18. 安全角度来指导软件开发
19. WINDOWS安全测试关注点 权限变更 模块加载 接口安全 缓冲区溢出 敏感信息泄漏 账户权限、 加载进程或者DLL时 接口调用时校验 确保做边界检查 用户隐私或者接 进程权限、 校验正确性 正确性 文件权限等 口消息加密
20. WINDOWS安全性测试实践 安全测试 工具辅助
21. WINDOWS安全性测试实践 需求检查: 需求检查: 基于需求和实现逻辑进行测试思维分析,避免不合理产品设计和代 码的实现。  用户隐私数据暴露  网络数据未做加密处理  高权限启动某个进程  是否有缺省功能配置  是否有应急响应方案
22. WINDOWS安全性测试实践 代码检测: 提测前:对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与现有软 件安全规则库进行匹对,从中找出代码中潜在的安全漏洞。 发布前:进行安全代码复查。  减少静态链接,尽量使用动态链接的方式加载DLL  调整DllSearch顺序,针对系统Dll只从系统目录进行加载  加载Dll或其他模块时,尽量不要使用相对路径,加载前进行校验  是否有使用危险的api函数:如strcpy, strcat, sprintf, strlen等等  是否引用不可控的输入数据参数, 是否有做有效性验证判断或限制
23. WINDOWS安全性测试实践 安全测试: 安全测试和常规测试的区别:  测试目标不同  假设条件不同  思考域不同  问题发现模式不同
24. WINDOWS安全性测试实践 安全测试: 正向安全性测试:对测试范围的所有的可变数据进行标识,重点审查需求牵涉到的数 据是否都标识出了它的合法取值范围,设计测试数据进行验证。优点是测试比较充分, 但工作量相对来说较大。 反向安全性测试:从已知的安全漏洞入手,检查软件中是否存在已知的漏洞,设计对 应的测试用例。缺点是测试不完善,无法发现未知的攻击手段。
25. WINDOWS安全性测试实践 安全测试: 安全测试与渗透测试的区别:  出发点差异  视角差异  覆盖性差异  成本差异  解决方案差异
26. WINDOWS安全性测试实践 工具辅助: 了解常用的windows系统工具,可以更方便的帮助我们分析和排查问题。 常见测试工具: procexp.exe procmon.exe Verifier Windbg 查看进程工具 查看文件、注册表、网络等操作信息 驱动校验 Dump分析工具 IDA WIRESHARK Depends 静态反编译工具 网络抓包和分析工具 查看文件与dll的依赖关系
27. WINDOWS安全性测试实践 工具辅助: 总结: 对安全性要求不高的软件,其安全性测试可以混在单元测试、集成测试、系统测试里 一起做。但对安全性有较高需求的软件,则必须做专门的安全性测试,以便在破坏之 前预防并识别软件的安全问题。 做好软件安全性测试的必要条件是:一是充分了解软件安全漏洞,二是评估安全风险, 三是拥有高效的软件安全测试技术和工具。
28. WINDOWS安全性测试误区 未排序风险优先级 安全问题不重要 缺乏测试报告 和常规测试一样,安全测试 产品可能更加关注业务逻辑 安全测试报告应该清晰阐述安 bug也需要设立优先级。将安 中存在的问题,往往忽视安 全问题所在,并且表明不修复 全风险进行排序,可以将有 全bug。但是安全漏洞常常会 的潜在后果,同时提出可建设 限的资源聚焦到最大价值的 使产品遭受到巨大威胁。 性的修复方案。 地方。
29. 360技术 THANKS 360质量效能

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 02:28
浙ICP备14020137号-1 $Map of visitor$