English/英文

【代码审计】为什么需要做代码审计?
2018-03-24
[摘要] 在过去的一年里,勒索病毒频繁爆发,全球范围内数量庞大的企业遭到攻击,总计损失达数百亿元。现如今,风险无时无刻就在我们身边,网络安全对于企业来说显得尤为重要。然而,
在过去的一年里,勒索病毒频繁爆发,全球范围内数量庞大的企业遭到攻击,总计损失达数百亿元。现如今,风险无时无刻就在我们身边,网络安全对于企业来说显得尤为重要。然而,企业网络安全体系的建立是一个非常庞大的工程,而不同的企业需求又不尽相同。企业该如何选择合适的安全服务来规避风险?其中的代码审计对企业来说重要吗?接下来时代新威就来梳理一下。
为什么需要做代码审计
 

代码审计指的是检查源代码中的安全缺陷,检查程序源代码是否存在安全隐患,或者有编码不规范的地方,通过自动化工具或者人工审查的方式,对程序源代码逐条进行检查和分析。

代码审计是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析,能够找到普通安全测试所无法发现的安全漏洞。


为什么需要做代码审计

一、为什么需要做代码审计?代码审计能带来什么好处?

99%的大型网站以及系统都被拖过库,泄漏了大量用户数据或系统暂时瘫痪,近日,英国机场遭勒索软件袭击,航班信息只能手写。

提前做好代码审计工作,非常大的好处就是将先于黑客发现系统的安全隐患,提前部署好安全防御措施,保证系统的每个环节在未知环境下都能经得起黑客挑战,进一步巩固客户对企业及平台的信赖。

 
“黑客”可以利用的漏洞有哪几个方面?

二、“黑客”可以利用的漏洞有哪几个方面?

1. 软件编写存在bug

2. 系统配置不当

3. 口令失窃

4. 嗅探未加密通讯数据

5. 设计存在缺陷

6. 系统攻击

 
哪些业务场景需要做好代码审计工作?

三、哪些业务场景需要做好代码审计工作?

小型公司的官需要做吗?

代码审计的对象主要是PHP、JAVA、asp、.NET等与Web相关的语言,需要做代码审计的业务场景大概分为以下五个:

1. 即将上线的新系统平台;

2. 存在大量用户访问、高可用、高并发请求的网站;

3. 存在用户资料等敏感机密信息的企业平台;

4. 互联网金融类存在业务逻辑问题的企业平台;

5. 开发过程中对重要业务功能需要进行局部安全测试的平台;


 
整体代码审计和功能点人工代码审计区别吗?

整体代码审计和功能点人工代码审计区别吗?

整体代码审计是指代码审计服务人员对被审计系统的所有源代码进行整体的安全审计,代码覆盖率为100%,整体代码审计采用源代码扫描和人工分析确认相结合的方式进行分析,发现源代码存在的安全漏洞。但整体代码审计属于白盒静态分析,仅能发现代码编写存在的安全漏洞,无法发现业务功能存在的缺陷。 

整体代码审计付出的时间、代价很高,也很难真正读懂这一整套程序,更难深入了解其业务逻辑。这种情况下,根据功能点定向审计、通过工具做接口测试等,能够提高审计速度,更适合企业使用。

功能点人工代码审计是对某个或某几个重要的功能点的源代码进行人工代码审计,发现功能点存在的代码安全问题,能够发现一些业务逻辑层面的漏洞。功能点人工代码审计需要收集系统的设计文档、系统开发说明书等技术资料,以便代码审计服务人员能够更好的了解系统业务功能。由于人工代码审计工作量极大,所以需要分析并选择重要的功能点,有针对性的进行人工代码审计。

代码审计的安全工程师都具备多年代码审计经验,首先通览程序的大体代码结构,在根据文件的命名第一时间辨识核心功能点、重要接口。下面就介绍几个功能、接口经常会出现的漏洞:

1. 登陆认证

a. 任意用户登录漏洞

b. 越权漏洞

2. 找回密码

a. 验证码爆破漏洞

b. 重置管理员密码漏洞

3. 文件上传

a. 任意文件上传漏洞

b. SQL注入漏洞

4. 在线支付,多为逻辑漏洞

a. 支付过程中可直接修改数据包中的支付金额

b. 没有对购买数量进行负数限制

c. 请求重访

d. 其他参数干扰

5. 接口漏洞

a. 操作数据库的接口要防止sql注入

b. 对外暴露的接口要注意认证安全

代码审计意义重大,是整个安全保障体系中核心又最重要的工作,往往被人们忽视。时代新威提示大家一定不要疏忽代码审计的重要性,防备安全隐患。经过时代新威高级安全工程师测试加固后的系统会变得更加稳定、安全,测试后的报告可以帮助管理人员进行更好的项目决策,同时证明增加安全预算的必要性,并将安全问题传达到高级管理层,进行更好的安全认知,有助于进一步健全安全建设体系,遵循了相关安全策略、符合安全合规的要求。