软件漏洞如何挖掘和防范?


软件的漏洞有时比Web的漏洞更严重更广泛。通过漏洞可以获得整个操作系统的控制权、执行恶意代码。影响的是所有用户而不是单纯的服务器。请大家分享分享是如何挖掘漏洞的以及怎么防止漏洞攻击。

网络安全 漏洞挖掘 讨论

MISSYO 12 years, 10 months ago

我来班门弄斧一下,我所知道的软件漏洞挖掘方法主要有逆向分析技术以及Fuzz测试技术。

逆向分析技术是指通过分析汇编代码(或字节码)来理解其代码功能,如各接口的数据结构等,然后用高级语言重新描述这段代码,逆向推出原软件的思路,尽可能地将黑盒转化为白盒。

Fuzz 测试是一种特殊的黑盒测试, 通过输入随机构造的数据,使得软件出错甚至崩溃。Fuzz 测试的用例一般是大量的能引起软件产生异常的数据。Fuzz 工具触发异常并捕捉到该异常,记录当时系统的状况,包括异常的类型、错误报告、各寄存器的值、函数返回地址等。Fuzz 测试记录了大量的异常信息,为漏洞分析提供了原材料。 分析人员从这些信息中筛选出可能存在漏洞的信息, 并通过原测试用例再次进行测试、 分析, 最终确定漏洞是否存在。

另外还有一种常用手段就是基于补丁比对来挖掘漏洞,是一种更有针对性的漏洞挖掘技术,因为一般软件补丁没有被修复部分的代码是经过审计的,是安全的,而更新部分的代码更容易出现漏洞,这同样是一种非常有效的开发漏洞的手段。

用户作为软件的使用者,是软件漏洞攻击的最直接目标,最主要的防范措施就是应及时进行软件升级,以修补软件中存在的漏洞。

一起戳便便 answered 12 years, 10 months ago

Your Answer