大型企业内部自开发信息系统代码的安全测评方法及系统
文献发布时间:2023-06-19 19:28:50
技术领域
本发明涉及自开发信息系统代码的安全技术领域,具体来讲,涉及大型企业内部自开发信息系统代码的安全测评方法及系统。
背景技术
在云计算、大数据等技术颠覆性趋势继续在应用经济下发挥作用的同时,业务快速迭代等需求已经在业务决策中不可或缺。在今天应用驱动、云计算、移动化的大环境下,业务快速迭代将助力业务增值。
考虑到业务快速迭代的需求,传统安全流程中的很多环节已经成为障碍,这些障碍必须消除,遗憾的是很多企业并没有意识到这些问题。传统安全的运营是基于系统发布之后,再由安全人员确认系统的安全风险。使用这种方式设计的流程只适用于瀑布模式的业务活动。不幸的是,随着迭代的引入,这样运营安全的方式是有缺陷的,并且在系统内带来了内在风险,因为业务决策需要平衡内联,并且跟上业务的速度。
随着业务决策的快速变化,传统安全不再是一种选择。在开发周期中,它的位置太靠后,而与迭代设计和系统发布相协作时,它又不够迅速,传统安全在业务快速迭代的需求下处在一种较为尴尬的位置。
通常,安全团队无法收集到需要的所有信息,去做出有意义的安全决策。为了提供能够密切映射客户需求的迭代值,价值创造流程不断加快。致使周期结束时的一次决策或者完整的系统测试都可能会带来毁灭性的结果。事实上,大多数这样的安全决策很少被采纳,经常被业务主管驳回,可一旦安全事件发生时,安全团队又首先遭到质疑。
因此,安全问题能在系统发布前,甚至在测试、研发阶段就能够被发现及时修复已经成为安全人员的共鸣。然而,当前主流的安全产品或者无法自动、快速、全面的发现漏洞,又或者无法将漏洞直观的呈现在开发人员手中;随着业务迭代,需要安全人员不断的发起扫描任务,手动将每一次的扫描结果整理成较为容易理解的扫描报告发送到相关人员手中,修复之后安全人员进行复查,大大降低了安全人员的工作效率,也无法满足业务快速迭代的需求。如何对新业务系统在上线前进行安全检测,已经成为各企业重点关注的问题。
公开日为2015年07月08日、公开号为CN104767757A的中国发明专利申请公开了一种基于WEB业务的多维度安全监测方法和系统,从可用性、安全事件和Web漏洞三个维度对网站安全进行全面监测,监测扫描模块通过利用端口探测引擎,对目标网站进行数据探测,然后将扫描信息传送到数据中心。数据中心通过信息的关联分析,对网站安全情况进行有效评估,并分级为高危网站、中危网站、低危网站和安全网站。该发明实现了从多个维度对网站安全的全面监测,同时效率更高,可动态显示监测结果,实现对被扫描网络内各业务节点的安全监测。然而,该发明专利申请并未涉及大型企业内部自开发信息系统代码的发布前安全测试。
公开日为2015年07月29日、公开号为CN104809404A的中国发明专利申请公开了一种信息安全攻防平台的数据层系统,设有工具库模块、场景配置库模块、课件库模块、安全情报库模块、日志库模块、攻击行为库模块和平台库模块,通过七个资源库模块的独立运行、各模块之间的联动以及模块与外部数据的联动,以虚拟设备和实体设备结合的方式为信息安全攻防平台提供一个完整、高效、统一规范的数据层系统,帮助信息安全攻防平台有效地实现网络安全性评估、攻防对抗、新产品检验测试,以及对网络架构、设计过程、主机安全、数据安全等方面进行一系列的评估评测。然而,该发明专利申请并未涉及大型企业内部自开发信息系统代码的发布前安全测试。
发明内容
本发明的目的在于解决现有技术存在的上述不足中的至少一项。例如,本发明的目的之一在于解决企业内部自开发信息系统在开发周期中迭代速度快,安全测试流程介入靠后,企业内部安全团队人员不足所导致的信息安全漏洞频发的问题。
为了实现上述目的,本发明的一方面提供了一种大型企业内部自开发信息系统代码的安全测评方法,所述安全测评方法包括以下步骤:
步骤一,在对信息系统进行常规功能测试时,流量采集模块以对于用户而言完全透明的方式自动抓取http/https的流量,最终采集的所有流量都保存至存储中心数据库;
步骤二,通过流量分析模块分析存储中心数据库中的请求流量、数据流量,分析出目标站点的请求方式,接口URL和请求体,最后结构化存储至存储中心数据库,以供后续模块调用;
步骤三,调用爬虫模块,根据分布式消息队列中提取的目标网站域名或地址,尝试向目标地址发起HTTP请求进行HTML文本爬取,然后解析响应的HTML文本中的URI端点,同时将爬虫的请求和响应的HTML文本与URI端点存入存储中心数据库,以供后续模块调用;
步骤四,漏洞检测引擎从存储中心数据库取出已经识别到的信息系统URL,对该信息系统所有URL进行多线程扫描,并将扫描结果插入可视化集成管理平台数据库;
步骤五,分析存储中心数据库存储的代码安全漏洞扫描结果数据,进行漏洞分析和图表展示。
本发明的另一方面提供了一种大型企业内部自开发信息系统代码的安全测评系统,所述安全测评系统包括流量采集模块、流量分析模块、爬虫模块、漏洞检测引擎、存储中心数据库、以及可视化集成管理平台数据库,其中,
所述流量采集模块能够在对信息系统进行常规功能测试时,以对于用户而言完全透明的方式自动抓取http/https的流量,最终采集的所有流量都保存至存储中心数据库;
所述流量分析模块能够分析存储中心数据库中的请求流量、数据流量,分析出目标站点的请求方式,接口URL和请求体,最后结构化存储至存储中心数据库,以供后续模块调用;
所述爬虫模块能够被调用,实现根据分布式消息队列中提取的目标网站域名或地址,尝试向目标地址发起HTTP请求进行HTML文本爬取,然后解析响应的HTML文本中的URI端点,同时将爬虫的请求和响应的HTML文本与URI端点存入存储中心数据库,以供后续模块调用;
所述漏洞检测引擎能够从存储中心数据库取出已经识别到的信息系统URL,对该信息系统所有URL进行多线程扫描,并将扫描结果插入可视化集成管理平台数据库;
所述可视化集成管理平台数据库能够将所述扫描结果,进行漏洞分析和图表展示。
与现有技术相比,本发明的有益效果包括以下内容中的至少一项:
能够通过将安全测试流程左移到开发阶段,在信息系统上线前对代码侧进行信息安全漏洞检测,及时有效的发现信息安全漏洞,解决企业内部自开发信息系统在开发周期中迭代速度快,安全测试流程介入靠后,企业内部安全团队人员不足所导致的信息安全漏洞频发的问题;
能够利用代码安全可视化集成管理技术,分布式消息队列技术,流量采集技术和漏洞检测技术实现对企业内部自开发系统代码的安全检测,高危漏洞扫描,有效解决自开发信息系统在上线后安全漏洞频发的问题;
能够通过可视化集成管理技术,为公司信息化管理层对各级开发部门的代码安全情况与信息安全情况提供实时可靠的数据支撑。
附图说明
通过下面结合附图进行的描述,本发明的上述和其他目的和/或特点将会变得更加清楚,其中:
图1示出了本发明的一个示例性实施例的流程示意图;
图2示出了本发明的一个示例性实施例中的GET请求连接示意图;
图3示出了本发明的一个示例性实施例中的POST请求连接示意图。
具体实施方式
在下文中,将结合示例性实施例来详细说明本发明的大型企业内部自开发信息系统代码的安全测评方法及系统。这里,所说的大型企业内部自开发信息系统为以信息技术和通信技术为支撑,规模庞大,分布广阔,采用多级网络结构,跨越多个安全域,处理海量的,复杂且形式多样的数据,提供多种类型应用的大系统。
总体来讲,本发明提供的大型企业内部自开发信息系统代码的安全测评方法及系统,可适用于大型企业内部自有信息系统开发团队,通过将安全测试流程左移到开发阶段,在信息系统上线前对代码侧进行信息安全漏洞检测,及时有效的发现信息安全漏洞。本发明利用代码安全可视化集成管理技术,分布式消息队列技术,流量采集技术和漏洞检测技术实现对企业内部自开发系统代码的安全检测,高危漏洞扫描,有效解决自开发信息系统在上线后安全漏洞频发的问题,同时通过可视化集成管理技术,为公司信息化管理层对各级开发部门的代码安全情况与信息安全情况提供实时可靠的数据支撑。
图1示出了本发明的一个示例性实施例的流程示意图;图2示出了本发明的一个示例性实施例中的GET请求连接示意图,其中,GET请求:从指定的资源请求数据,SYN:同步序列编号,ACK:确认字符,GET Head:请求获取资源的响应消息报头;图3示出了本发明的一个示例性实施例中的POST请求连接示意图,其中,POST请求:向指定的资源提交要被处理的数据,SYN:同步序列编号,ACK:确认字符,DATA:数据。
如图1至图3所示,在本发明的一个示例性实施例中,大型企业内部自开发信息系统代码的安全测评方法通过以下步骤实现:
步骤一,首先采集http/https流量,企业内部测试人员在对信息系统进行常规功能测试的时候,采集模块自动抓取流量进行安全测试,对于用户来说完全透明,最终采集的所有流量都保存至存储中心数据库。
流量采集的模块分为,代理模块,插桩模块,流量嗅探模块,日志导入模块。
1)代理模块是利用网关代理技术、集群化的功能模块。进行身份验证并复制业务流量到存储中心,集群化的代理模式在业务访问量集中时产生的高并发情况下可做到有效的负载均衡。可自调度集群代理,处理来自客户端的请求,转发至存储中心。通过本发明:代理集群可以减少单点故障数量,并且实现了群集化资源的高可用性。能有效地解决数据流量过大、网络负荷过重的问题,并且不需花费昂贵开支购置性能卓越的服务器,充分利用现有设备,避免服务器单点故障造成数据流量的损失。其有灵活多样的均衡策略把数据流量合理地分配给服务器群内的服务器共同负担。即使是再给现有服务器扩充升级,也只是简单地增加一个新的服务器到服务群中,而不需改变现有网络结构、停止现有的服务。
2)插桩模块为被动式安全测试技术和主动式安全测试技术联动检测。通过本发明:被动式安全测试需在Web Server中部署Agent探针,利用插桩技术对字节码程序注入跟踪代码形成插桩字节码,在程序运行时直接获取数据流并收集相关信息。插桩模式仅需在被测业务服务器上一键启动,即可获取被测项目的代码数据流、HTTP请求/响应包等信息,并将请求和数据流发送到存储中心数据库。
3)流量嗅探模块主要针对PC端和移动端测试环境复杂的情况下,通过流量收集Agent部署到业务服务器上,通过嗅探的方式获取HTTP流量并发送到存储中心数据库。通过本发明做到对测试人员完全无感知,去除额外配置工作,完全不改变测试人员工作流程。同时,流量收集Agent采用嗅探的方式获取HTTP流量,与业务数据链路是旁路关系,完全不影响业务数据流向。
4)日志导入模块主要针对企业有自建完善的日志平台,记录了完整的WEB日志的情况下,日志导入模块拥有完整的日志导入接口。通过本发明:企业通过将日志平台中的日志,按照约定的格式,导入到分布式消息队列系统,日志分析模块会提取日志中的Header头,Cookie,User-Agent,Body等元素,基于HTTP协议将日志进行重组,还原出原始请求并将还原出来的请求发送到存储中心数据库。通过将日志平台中记录的丰富的访问日志,功能测试日志,用户行为日志等转换为原始请求存储并交由漏洞检测引擎检测,可达到接口最大覆盖面,优化检测效果。
每一种采集模块对应不同的业务场景,使用方式上有差异,其中插桩模块可支持通用漏洞、业务逻辑漏洞、第三方组件等多种风险检测,还能覆盖加密、验证码等一次性接口场景,真正做到业务场景全覆盖;插桩模块无需重放请求、无脏数据,几乎达到0误报,提高了检测的精细度,可以直接定位到代码位置、代码内容以及数据流信息,完整的展现漏洞从输入、传播到最终执行的全过程,极大的降低了漏洞复现难度。
步骤二,通过流量分析模块分析存储中心数据库中的请求流量,数据流量。
流量分析模块,主要为分析HTTP协议流量,在正常的功能性测试中,采集正常的请求和响应数据,解析HTTP请求协议包,包括请求行中的方法、协议版本和资源URI,请求头中的协议字段和字段值,请求体中的参数和参数值。解析HTTP响应协议包,包括响应行中返回的协议版本和状态码请求流量,响应头中的参数和参数值,响应体中的HTML文本。
步骤三,调用爬虫模块,根据分布式消息队列中提取的目标网站域名或地址,尝试向目标地址发起HTTP请求进行HTML文本爬取,然后解析响应的HTML文本中的URI端点,同时将爬虫的请求和响应的HTML文本与URI端点存入存储中心数据库,以供后续模块调用。
爬虫模块工作流程如下:
1)爬虫模块从分布式消息队列系统中获取信息系统的URL地址字符串,通过正则匹配将URL地址字符串进行分割,然后得到独立的协议类型字符串(http/https)以及地址(IP或者域名)和参数信息。这样就完成了URL地址的识别和分割。
2)通过加入Header请求头和请求参数,构造一个Request请求对象,然后对分割出来的目标地址发起标准的HTTP方法调用(GET),目标服务器响应标准的HTML文本,这样就完成了获取目标站点HTML文本的步骤。
3)将HTML文本转换为DOM树,通过对应的HTML标签获取到对应标签内容以及属性和属性值,然后通过匹配筛选将与目标地址相关的URI端点进行提取并保存进存储中心数据库,这样就完成了HTML文本解析和提取URI端点的步骤。
步骤四,漏洞检测引擎从存储中心数据库取出已经识别到的信息系统URL,对该信息系统所有URL进行多线程扫描,并将扫描结果插入可视化集成管理平台数据库。
漏洞检测引擎通过检测集群的方法,快速的对项目漏洞进行检测。集群(cluster)技术可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。同时检测集群通过获取存储中心的请求流量数据,模拟多种漏洞检测方式对用户配置项目中的请求进行全面的漏洞检测,并快速生成漏洞报告;且随着业务请求的变化,自动检测,将新增的检测结果更新至漏洞报表中。
步骤五,分析存储中心数据库存储的代码安全漏洞扫描结果数据,进行漏洞数统计,项目漏洞排名,漏洞趋势分布,通过代码安全可视化集成管理控制台进行图表展示,提供给信息化管理层作为决策支撑。
在上述示例性实施例的安全测评方法定义完毕后,组织开发测试人员及专业的代码安全审计团队使用该示例性实施例的安全测评方法分别对以下系统进行了全量代码审计,相关结果概要报告如下:
示例1一体化平台概要报告
一、源代码信息
二、等级统计
三、分类统计
/>
/>
示例2承包商管理系统概要报告一、源代码信息
二、等级统计
三、分类统计
/>
/>
示例3科技系统概要报告
一、源代码信息
二、等级统计
/>
三、分类统计
/>
在本发明的另一个示例性实施例中,大型企业内部自开发信息系统代码的安全测评系统由流量采集模块、流量分析模块、爬虫模块、漏洞检测引擎、存储中心数据库、以及可视化集成管理平台数据库构成。该系统能够实现上述示例性实施例的大型企业内部自开发信息系统代码的安全测评方法。
其中,所述流量采集模块能够在对信息系统进行常规功能测试时,以对于用户而言完全透明的方式自动抓取http/https的流量,最终采集的所有流量都保存至存储中心数据库。所述流量采集的模块包括代理模块、插桩模块、流量嗅探模块、以及日志导入模块,所述插桩模块能够支持通用漏洞、业务逻辑漏洞以及第三方组件的风险检测,还能够覆盖加密、验证码的一次性接口场景;插桩模块无需重放请求、无脏数据,能够直接定位到代码位置、代码内容以及数据流信息,完整地展现漏洞从输入、传播到最终执行的全过程。
所述流量分析模块能够分析存储中心数据库中的请求流量、数据流量,分析出目标站点的请求方式,接口URL和请求体,最后结构化存储至存储中心数据库,以供后续模块调用。所述流量分析模块能够分析HTTP协议流量,在功能性测试中,采集请求和响应数据,解析HTTP请求协议包和HTTP响应协议包,所述HTTP响应协议包含有请求行中的方法、协议版本和资源URI,请求头中的协议字段和字段值,请求体中的参数和参数值;所述HTTP响应协议包含有响应行中返回的协议版本和状态码,响应头中的参数和参数值,响应体中的HTML文本。
所述爬虫模块能够被调用,实现根据分布式消息队列中提取的目标网站域名或地址,尝试向目标地址发起HTTP请求进行HTML文本爬取,然后解析响应的HTML文本中的URI端点,同时将爬虫的请求和响应的HTML文本与URI端点存入存储中心数据库,以供后续模块调用。
所述爬虫模块的工作流程如下:
1)爬虫模块从分布式消息队列系统中获取信息系统的URL地址字符串,通过正则匹配将URL地址字符串进行分割,然后得到独立的协议类型字符串以及地址和参数信息,以完成URL地址的识别和分割;
2)通过加入Header请求头和请求参数,构造一个Request请求对象,然后对分割出来的目标地址发起标准的HTTP方法调用,目标服务器响应标准的HTML文本,从而完成获取目标站点HTML文本的步骤;
3)将HTML文本转换为DOM树,通过对应的HTML标签获取到对应标签内容以及属性和属性值,然后通过匹配筛选将与目标地址相关的URI端点进行提取并保存进存储中心数据库,从而完成HTML文本解析和提取URI端点的步骤。
所述漏洞检测引擎能够从存储中心数据库取出已经识别到的信息系统URL,对该信息系统所有URL进行多线程扫描,并将扫描结果插入可视化集成管理平台数据库。
所述可视化集成管理平台数据库能够将所述扫描结果,进行漏洞分析和图表展示。
综上所述,本发明作为发明人应对新业务系统在上线前进行安全检测,所研究出的大型企业内部自开发信息系统代码安全测评的模式方法。通过采用该方法,开发测试人员能够在开发测试域,通过可视化集成管理技术,对代码编写中出现的问题,进行快速定位,立马调整代码内容解构,确保整个代码结构的安全可靠;公司信息化管理层能够对各级开发部门的代码安全情况与信息安全情况提供实时可靠的数据支撑。
尽管上面已经结合示例性实施例及附图描述了本发明,但是本领域普通技术人员应该清楚,在不脱离权利要求的精神和范围的情况下,可以对上述实施例进行各种修改。
- 一种烟草信息系统网络安全风险测评系统和方法
- 信息系统安全等级测评方法和系统