“客户端安全”涉及两个主要问题。
今天最常见的客户端是浏览器,形式为“ 下载驱动器 “。大多数情况下,内存损坏漏洞都应该受到指责.ActiveX com对象已成为Windows系统上的常见路径 AxMan 是一个很好的ActiveX模糊器。
在内存保护系统方面,/ GS是一个金丝雀,并不是所有停止缓冲区溢出的全部。它仅旨在保护试图覆盖返回地址和控制EIP的基于堆栈的溢出。 NX区域和金丝雀是一件好事,但ASLR可以更好地阻止内存损坏漏洞,而且并非所有ASLR实现都同样安全。即使使用这三种系统,你仍然会受到攻击。 IE 8在Windows 7上运行具有所有这一切,它是第一个被攻击pwn2own的人之一,这里是 他们是怎么做到的 。它涉及将Heap Overflow和Dangling Pointer漏洞链接在一起。
“客户端安全”的问题是 CWE-602:服务器端安全的客户端强制执行 当服务器端使用秘密资源(如密码)信任客户端或发送有关敏感信息的报告时创建 球员得分 在一个Flash游戏中。
查找客户端问题的最佳方法是查看流量。 WireShark是非浏览器客户端/服务器协议的最佳选择。然而 TamperData 是目前为止您可以用于基于浏览器的平台(如Flash和JavaScript)的最佳工具。每个案例都会有所不同,不像缓冲区溢出很容易看到流程崩溃,客户端信任问题都是关于上下文的,需要熟练的人来查看网络流量来找出问题。
有时,愚蠢的程序员会将密码硬编码到他们的应用程序中。它琐碎的反编译应用程序来获取数据。 Flash反编译非常简洁,您甚至可以获得完整的变量名称和代码注释。另一种选择是使用像OllyDBG这样的调试器来尝试在内存中查找数据。 IDA-Pro是C / C ++应用程序的最佳反编译器。
编写安全代码,第2版 ,包括一些关于威胁建模和测试,以及更多。