软件漏洞概述
漏洞是指计算机系统安全方面的缺陷,使得系统或其应用数据的保密性、完整性、可用性、访问控制等面临威胁。在软件安全方面,漏洞是软件中的特定缺陷,攻击者能够利用该弱点进行敏感信息更改和破坏,或者是程序、系统层面的控制和破坏。
另一种角度,可以将漏洞看做是系统或者软件安全策略上的缺失或者不足。当软件设计和开发时严格遵循并实现安全策略,则可以实现安全性。此时代码审计则根据安全策略的原理,进行策略确实或者不足上的审计。
总体审计思路
1. 代码审计思路
在实际工作中,每个项目有其预算,客户也有其更为关注的点,如何利用有限的资源,尽量达到或者超过客户预期是项目成败的关键。通常客户所关注的点是容易检测出的代码安全问题,在审计上按80/20法则及推进先后顺序,则需要将前中期审计重点放置在常见安全风险点上,而不是技术难度和复杂度都高的风险点审计。
此时合理的审计思路就显得格外重要。首先,根据项目预算确定项目时间和投入资源,根据时间和资源制定项目可执行方案。审计层面思路是先快速了解项目架构,好比浏览书本的目录,做到对项目中各个模块的功能有了解即可。为了提高整体效率,前期使用人工和工具的方式,利用工具进行初步扫描,人工进行初步审计,达到发现大多数简单安全风险的水平。中后期则进行纯人工审计,利用敏感和危险函数、数据流回溯、功能模块、安全策略、黑白盒审计等等的审计方法交叉审计和验证,尽可能多而全部的挖掘源代码中的安全风险问题。
2. 代码审计策略
2.1 全文通读审计
该策略就是通过直接通过源代码分析去审计安全风险。这种方式的审计对审计人员的能力要求相对较大,需要通读代码了解程序的答题结构,了解各个模块并理解代码各项功能。在阅读完整体代码之后,根据程序入口开始审计。
该方式的优点在于深度了解项目代码架构和功能后可以审计出较为复杂的安全风险点。缺点在于对审计人员的要求度较高,审计较

最低0.47元/天 解锁文章
537

被折叠的 条评论
为什么被折叠?



