15064861615

应用软件系统代码审计报告

发布时间:2021-4-19
来源:

顾名思义就是检查源代码中的安全缺陷,检查程序源代码是否存在安全隐患,或者有编码不规范的地方,通过自动化工具或者人工审查的方式,对程序源代码逐条进行检查和分析,发现这些源代码缺陷引发的安全漏洞,并提供代码修订措施和建议。


代码审计(Code audit)是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析。软件代码审计是对编程项目中源代码的全面分析,旨在发现错误,安全漏洞或违反编程约定。 它是防御性编程范例的一个组成部分,它试图在软件发布之前减少错误。 C和C ++源代码是最常见的审计代码,因为许多高级语言(如Python)具有较少的潜在易受攻击的功能(例如,不检查边界的函数)。


对象

我们的代码审计对象包括并不限于对Windows和Linux系统环境下的以下语言进行审核:java、C、C#、ASP、PHP、JSP、.NET。


内容包括

1.前后台分离的运行架构

2.WEB服务的目录权限分类

3.认证会话与应用平台的结合

4.数据库的配置规范

5.SQL语句的编写规范

6WEB服务的权限配置

7.对抗爬虫引擎的处理措施


具体过程

审核软件时,应对每个关键组件进行单独审核,并与整个程序一起进行审核。 首先搜索高风险漏洞并解决低风险漏洞是个好主意。 高风险和低风险之间的漏洞通常存在,具体取决于具体情况以及所使用的源代码的使用方式。 应用程序渗透测试试图通过在可能的访问点上启动尽可能多的已知攻击技术来尝试降低软件中的漏洞,以试图关闭应用程序。这是一种常见的审计方法,可用于查明是否存在任何特定漏洞,而不是源代码中的漏洞。 一些人声称周期结束的审计方法往往会压倒开发人员,最终会给团队留下一长串已知问题,但实际上并没有多少改进; 在这些情况下,建议采用在线审计方法作为替代方案。

高风险漏洞

由于使用以下原因,可能存在一些常见的高风险漏洞:

非边界检查函数(例如,strcpy,sprintf,vsprintf和sscanf)可能导致缓冲区溢出漏洞

可能干扰后续边界检查的缓冲区的指针操作,例如:if((bytesread = net_read(buf,len))> 0)buf + = bytesread;

调用像execve(),执行管道,system()和类似的东西,尤其是在使用非静态参数调用时

输入验证,例如(在SQL中):statement:=“SELECT * FROM users WHERE name ='”+ userName +“';”是一个SQL注入漏洞的示例

文件包含功能,例如(在PHP中):include($ page。'。php');是远程文件包含漏洞的示例

对于可能与恶意代码链接的库,返回对内部可变数据结构(记录,数组)的引用。恶意代码可能会尝试修改结构或保留引用以观察将来的更改。

低风险漏洞

以下是审计代码时应该找到的低风险漏洞列表,但不会产生高风险情况。

客户端代码漏洞不影响服务器端(例如,跨站点脚本)

用户名枚举

目录遍历(在Web应用程序中) 


更多新闻

专业测试,请联系我们!
15064861615