Windows客户端攻击面分析
一、客户端侧的攻击
1. 文件分析
说明:识别语言和开发框架,不同用户瘦客户端和胖客户端
举例:配置不合理将敏感数据放着在客户端配置文件中
防御:请勿将相关配置凭证放置在客户端用户目录
2. 二进制分析反编译分析
说明:反编译静态分析,动态调试分析
举例:硬编码写死在客户端
防御:请勿写死在客户端代码中
3. 内存分析
说明:客户端与服务器进行通信的过程中,将明文数据临时保存在内存中
举例:内存中抓取明文传输的凭证
防御:数据通过密码传输,特别是跟用户凭证相关的数据
4. DLL劫持
说明:DLL劫持漏洞(DLL Hijacking Exploit),这个名字缘起微软在2010年8月23日发布的2269637号安全公告。通俗点说,这个漏洞就像是去年炒的沸沸扬扬的深圳526车祸中总会提到的“掉包”;严格点说,它是通过一些手段来劫持或者替换正常的DLL,欺骗正常程序加载预先准备好的恶意DLL的一类漏洞的统称。利用DLL劫持漏洞,病毒木马可以随着文档的打开(或者其他一些程序正常行为)而激活自身,进而获得系统的控制权。
举例:检测系统中存在DLL劫持的程序
防御:对于系统共享的DLL(如user32.dll, mfc80loc.dll等),不能放到程序目录下时,应该:使用绝对路径加载
二、网络传输侧的攻击
1. 明文传输
说明:HTTP明文传输或者明文通过TCP传输都可能造成被嗅探攻击
举例:HTTP明文接口传输
防御:HTTPS 传输或者使用对称加密通过TCP协议进行传输交互
2. API 安全
说明:代码逻辑在客户端可见,可进行静态分析调试
举例:用户登录接口,SQL注入漏洞
防御:使用预编译的SQL接口,或者参数化查询来执行SQL查询
三、服务端侧的攻击
1. TCP/UDP 攻击
说明:针对TCP协议的应用,就是服务端的溢出漏洞,DOS攻击之类的问题
举例:FTP客户端DOS溢出漏洞
防御:
1. 通过操作系统使得缓冲区不可执行,从而阻止攻击者植入攻击代码
2. 利用编译器的边界检查,来实现缓冲区的保护
3. 在程序指针失效前进行完整性检查
2. 应用层攻击
说明:应用层攻击接口相关的攻击类型
举例:OWASP top 10
防御:特殊字符过滤,使用成熟框架来防止通用型的漏洞攻击