什么是安策源代码审计服务?
实践证明,程序的安全性是否有保障很大程度上取决于程序代码的质量,而保证代码质量最快捷有效的手段就是源代码审计。
源代码审计服务的目的在于充分挖掘当前代码中存在的安全缺陷以及规范性缺陷,从而让开发人员了解其开发的应用系统可能会面临的威胁,并指导开发人员正确修复程序缺陷。
安策源代码审计(Code Review)服务是由具备丰富编码经验及对安全编码原则及应用安全具有深刻理解的安全服务人员对系统的源代码和软件架构的安全性、可靠性进行全面的安全检查。
安策源代码审计服务图
代码审计后有什么收益?
对于客户而言,源代码审计可以带来以下收益:
明确安全隐患点
源代码审计能够对整个信息系统的所有源代码进行检查,从整套源代码切入最终明至某个威胁点并加以验证,以此明确整体系统中的安全隐患点。
提高安全意识
如上所述,任何的隐患在源代码审计服务中都可能造成“千里之堤溃于蚁穴”的效果,因此源代码审计服务可有效督促管理人员杜绝任何一处小的缺陷,从而降低整体风险。
提高开发人员安全技能
在源代码审计服务人员与用户开发人员的交互过程中,可提升开发人员的技能。另外,通过专业的源代码审计报告,能为用户开发人员提供安全问题的解决方案,完善代码安全开发规范。
下面列举安策源代码审计中常见的服务点
1. 软件编写存在的BUG
2.口令失窃
3.系统配置不当
4.未加密通讯数据
5.设计存在缺陷
6.设计存在缺陷
7.系统被攻击 等
如图:
安策代码审计服务能力点图
通常安策源代码审计服务分为全代码审计和功能点审计的方式,另外常见的源代码功能点漏洞
1.登录认证漏洞
2.请求重返漏洞
3.支付逻辑漏洞
4.常见越权漏洞
5.SQL注入风险
6.文件上传漏洞
7.接口漏洞等等
如图:
安策提示常见的代码功能点漏洞图
安策3步完成源代码审计服务的流程
1. 先确认代码语言,确认大概的代码行数
2. 先初次提供免费服务,测试打样
3. 以及服务是现场还是远程,确认需要人天次数。
源代码审计符合的政策文件或合规标准如下;
源代码审计服务将参考下列规范进行工作:
1. OWASP TOP 10
2. CWE/SANS TOP 25
3. ASP/ASP.NET/PHP/JSP安全编码规范
4. 源代码审计最佳实践
5. 安全服务工作规范、源代码审计实施规范
……
十类Java源代码安全漏洞及代码审计技巧推荐;
一、日志伪造Log Forging:将未经验证的用户输入写入日志文件可致使攻击者伪造日志条目或将恶意信息内容注入日志。
审计技巧:看代码中是否有像第7、8行这样的过滤掉\r\n这两个换行符。
二、资源未释放:数据流Unreleased Resource: Streams:此类漏洞导致程序可能无法成功释放某一项系统资源。
审计技巧:看代码中是否对输入流判断非null值再进行数据流关闭。(假如是Java8.0版本语言开发,则可以直接对数据进行关闭)
三、跨站脚本:反射型Cross-Site Scripting: Reflected:向一个 Web 浏览器发送未经验证的数据会导致该浏览器执行恶意代码。
审计技巧:看代码中是否对前端输入的数据进行特殊符号的转义过滤,重点关注函数“filtedText”。
四、密码管理:密码在配置文件中Password Management: Password in Configuration File:在配置文件中存储明文密码,可能会危及系统安全。
审计技巧:查看程序代码中是否存在敏感信息,安全开发规范标准中明确规定敏感信息应 加密&存储 于配置文件中。
五、sql注入SQL Injection:通过不可信来源的输入构建动态 SQL 指令,攻击者就能够修改指令的含义或者执行任意 SQL 命令。
审计技巧:查看代码中是否有使用PreparedStatement参数化查询。
六、动态代码评估:代码注入Dynamic Code Evaluation: Code Injection:在运行时中解析用户控制的指令,会让攻击者有机会执行恶意代码。
审计技巧:查看代码中是否有对传入参数进行过滤。
七、可移植性缺陷:文件分隔符Portability Flaw: File Separator:使用硬编码文件分隔符会导致可移植性问题。
审计技巧:查看代码中是否调用了File.separator来代替分隔符“\”,“/”。
八、Open重定向Open Redirect:如果允许未验证的输入控制重定向机制所使用的 URL,可能会有利于攻击者发动钓鱼攻击。
审计技巧:查看代码中是否有使用创建编号的方法指定并校验重定向的目标URL。
九、弱加密Weak Encryption:识别调用会使用无法保证敏感数据的保密性的弱加密算法。
审计技巧:加密算法不应为MD5或者DES,至少应该是3DES,金融行业的话,至少应该是AES。
十、弱加密:RSA不恰当填充Weak Encryption: Inadequate RSA Padding:
审计技巧:加密算法后面的填充方式不应为空或者是ECB,至少应CBC。
有兴趣的朋友可以联络安策安策工程师获取《安策源代码审计白皮书》如图:
《安策源代码审计白皮书》图
用高品质的授权产品作为授权的基础设施,将会对软件厂商的成功带来很大帮助,可以让其增加收入和减少成本。