企业视频展播,请点击播放视频作者:多面魔方(北京)技术服务有限公司
代码审计有哪些高风险漏洞?
代码审计过程中一些常见的高风险漏洞:
1、非边界检查函数(例如,strcpy,sprintf,vsprintf和sscanf)可能导致缓冲区溢出漏洞
2、可能干扰后续边界检查的缓冲区的指针操作,例如:if((bytesread = net_read(buf,le
国内源代码工具
企业视频展播,请点击播放
视频作者:多面魔方(北京)技术服务有限公司
代码审计有哪些高风险漏洞?
代码审计过程中一些常见的高风险漏洞:
1、非边界检查函数(例如,strcpy,sprintf,vsprintf和sscanf)可能导致缓冲区溢出漏洞
2、可能干扰后续边界检查的缓冲区的指针操作,例如:if((bytesread = net_read(buf,len))> 0)buf + = bytesread;
3、调用像execve(),执行管道,system()和类似的东西,尤其是在使用非静态参数调用时
4、输入验证,例如(在SQL中):statement:=“SELECT * FROM users WHERE name ='”+ userName +“';”是一个SQL注入漏洞的示例
5、文件包含功能,例如(在PHP中):include($ page。'。php');是远程文件包含漏洞的示例
6、对于可能与恶意代码链接的库,返回对内部可变数据结构(记录,数组)的引用。恶意代码可能会尝试修改结构或保留引用以观察将来的更改。
代码审计有什么作用
源代码安全检测是缓解软件安全问题的有效途径,可从源头上大量减少代码注入、跨站脚本等高危安全问题,进而提升信息系统的安全性。根据Gartner统计,在软件代码实现阶段发现并纠正安全问题所花费的成本,比软件交付后通过“上线安全评估”发现问题再进行整改的成本要低50~1000倍。越早发现源代码安全问题,其修复成本越低,代码审计可以帮助组织在软件开发过程中“尽早尽快”发现安全问题,有效降低软件修复成本。
代码安全存在的问题
现在软件功能都在朝着越来越复杂的方向变化,同时导致软件漏洞逐渐的增加。软件在设计开发过程中,存在着软件开发周期短,工作量大,没有涉及到或无暇顾及代码安全问题,甚至在软件设计前期就缺乏对代码安全的设计,同时也体现出我们的软件开发人员自身就缺乏安全编程的经验。在现在的互联网环境下,代码安全也面临着更多的安全挑战。
手工代码审计的优缺点
优点
能够深入研究代码路径,检查设计和体系结构中的逻辑错误和缺陷,大多数自动化工具都无法找到这些错误和缺陷
与一些自动化工具相比,手动检测授权、身份验证和数据验证等安全问题的效果更好
对于值的应用程序,总是有额外的利用空间(需要经过培训的)
查看其他人的代码是共享安全代码和AppSec知识的好方法
缺点
要求精通应用程序中使用的语言和框架,并需要对安全性有深入的理解
不同的评审人员将生成不同的报告,从而导致评审人员之间的结果不一致——尽管同行评审可以是一个修复方法
测试和编写报告是及时的,并且经常需要开发人员参加有时很长时间的访谈会议,以便为审查人员提供上下文,这消耗了开发人员的时间和资源
对代码行数超过10-15k的应用程序的手动审查于针对高风险功能
(作者: 来源:)