APP下载

三层自动化半透明安全测试体系设计

2019-04-26李鹏王明张海洋

电子技术与软件工程 2019年4期
关键词:安全漏洞源代码开源

文/李鹏 王明 张海洋

1 引言

1.1 背景

信息安全已上升到国家安全层面。《中华人民共和国网络安全法》也于2017年6月1日起施行。另一方面,信息安全事件频发,CSDN、12306和日本航空等数据泄露事件造成了极其严重的影响。

中国民航信息网络股份有限公司(本文简称:中航信)所运营的民航商务信息系统被国务院列为八大系统之一,包含海量民航商业机密信息。中航信研发中心开发、运维着数百个信息系统,如何发现系统中的安全问题并进行修复,提升系统的安全性,是我们必须面对的紧迫而严峻的问题,因此,针对本课题的研究工作十分必要。

1.2 研究现状

Gartner 2017年发布的关键信息安全技术明确指出了OSS Security Scanning and Software Composition Analysis for DevSecOps( 面 向DevSecOps的运营支撑系统安全扫描与软件组成分析)的重要意义。这也是Gartner继2016年后,连续两年将该项技术列入年度重要信息安全技术,其重要性和先进性可见一斑。

目前市场上安全测试产品众多,国外产品中Fortify、AppScan在国内应用广泛,国内厂商360、绿盟、安恒、思客云等公司都有成熟的扫描器产品。但大部分产品过于单一,针对民航信息系统全生命周期的安全保护,需要定制化的解决方案。

图1:安全测试平台主要功能

2 应用前景和社会经济效益

民航旅客运输量持续高增长,2018年旅客运输量6.1亿人次,同比增长10.9%。飞行安全直接关系到旅客的人身安全;对民航系统的攻击逐年递增;民航信息系统为提升旅客出行体验不断建设;因此,针对民航信息系统DevOps的安全测试研究推广工作势在必行。

3 三层自动化半透明测试体系设计

3.1 横向功能

本安全测试解决方案从七个角度对业务系统开展安全测试、安全监控、漏洞修复指导、安全开发知识传递等工作,全面保障业务系统信息安全,提升安全管理水平(如图1),主要功能点包括:定期自动下载源码进行源码安全分析检测;自动化的对所有网站系统进行应用安全漏洞检测;自动化的完成弱口令检测;自动化的检索GitHub和CSDN上是否有公司相关泄露信息并推送检测结果和修改方法等。大部分工作以自动化、半透明的方式执行,对开发团队而言不必增加大量工作,在完成安全测试任务的同时获得了较好的用户体验,同时降低了比较昂贵的信息安全人员的投入,避免了对单个专家的强依赖,以较低的成本使得中航信系统安全性达到了行业较高水平。

3.2 纵深层次

本系统纵向三个层次以 “白+黑+机器人”(软件源代码白盒安全测试+WEB应用系统黑盒测试+模拟人工渗透测试工具)为基础,结合目前应用软件安全所面临的新的挑战不断改进,为软件提供半透明化、自动化和持续性的安全测试和软件安全分析。使用倒金字塔模型尽早、用尽量低的成本、解决尽可能多的问题。使得本方案成为一个真正切合实际的企业级安全测试解决方案(如图2)。

4 安全测试实施概要

4.1 源码层安全测试

4.1.1 源码安全检测

(1)源代码安全检测平台化。将单机版的源代码安全检测工具平台化(B/S架构),同时将安全检测的流程也具象化于平台之上,开发人员和测试人员通过平台进行检测、审计、报表、知识管理等工作,可以大大提升安全检测的产出能力。初步评估,测试效率提升了5倍以上;

(2)重点解决关键问题。将动辄上千的安全漏洞进行分类排序,挑选出TOP10问题要求开发团队进行修改,集中精力解决最关键的问题(解决开发人员“我没空”问题);

(3)安全意识传递。推动安全扫描和第一次漏洞审计由开发团队完成(解决“我不信”问题),也使得开发团队开始重视安全开发;

(4)修复指导。配套安全编码规范进行指导培训(解决“我不会”问题)。

通过上述四项工作,测试效率显著提升、安全漏洞的修改可落地,开发人员也开始了解安全开发,一年完成多轮次全覆盖的安全检测,大部分产品线TOP10问题修复率100%。

4.1.2 开源组件安全漏洞检测

本模块集开源软件安全漏洞收集,开源软件安全检查管理、安全检查漏洞报警及发布、安全策略执行、开源软件安全漏洞知识分享等为一体,在源代码安全检测过程中发现系统中开源组件的安全漏洞。帮助安全测试人员完成如下五项工作:

(1)统计软件系统中使用的开源组件名称、版本;

(2)统计软件系统中的开源组件是否有已曝露的安全漏洞?

(3)统计常见的开源组件有哪些漏洞?怎么样修复?

(4)快速、批量地查找某一版本(或版本区间)的开源软件组件在哪些项目中使用?

(5)定时、定项地对正在开发过程中的软件项目进行开源软件组件安全漏洞检测。

4.1.3 自定义规则检测

源代码安全检测规则库的优劣直接决定了安全检测的效果,业界源代码安全检测工具的规则库包含的规则是通用的,对于企业内部特有的一些漏洞,需要通过定制化规则的手段进行实现。需要定制化的规则分为业务特性的规则定制、生产故障的规则定制、突发通用漏洞的规则定制等。

4.1.4 提升自动化和透明化程度

源码检测与SVN和GIT结合、将C/C++安全检测插件化(做到安全扫描与编译环境的解耦),自动下载源代码进行安全测试,进一步提升了平台的自动化水平,降低了开发人员工作量。在保密方面也对检测结果的存储进行了加密。

4.1.5 撰写行业标准

OWASP是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。目前OWASP全球拥有220个分部近六万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。我们凭借几年的积淀和乐于分享的精神,参与编写了OWASP《静态源代码安全分析工具测评基准》并面向全国发布,作为业界开展源代码安全测试工作的指导性准则。

4.2 应用安全检测

本功能模块支持自动化的对网站系统进行单个或批量安全检测。支持多用户并发,开发团队可以自助配置完成网站安全扫描、漏洞审计等功能。极大提升了网站系统安全检测的效率,对扫描结果的统计也更加方便。在重保期间,对所有网站进行自动化快速扫描,发挥了重要作用。

工具平台具有良好的弹性,可以通过横向扩充资源提升容量,并支持多种扫描引擎的调度使用。

4.3 渗透测试

4.3.1 弱口令检测

定制开发渗透测试中常用的弱口令检测(主机、数据库、WEB、邮箱、FTP等)模块,本模块支持:

(1)对企业所使用的“数据库”、“Email”、“FTP”,“Linux”和“WEB网站”弱口令检测;

(2)自动化地对企业上万台服务器进行大批量、高效的弱口令检查;

(3)根据用户提供的弱密码元素集自动化生成贴合用户的弱口令字典集;

(4)集中化统一管理、发布、查看、通知企业级弱口令检测和修复情况。

4.3.2 开源软件安全漏洞检测

图2:解决方案示意图

本模块通过在服务器上部署监控程序,实时反馈系统中开源软件是否包含安全漏洞,并进行漏洞管理。

4.3.3 敏感信息防泄漏监控

本模块针对GitHub,CSDN这样的互联网发布平台,检测企业的软件源代码、技术资料、敏感数据文档等是否外泄。本模块支持三项工作:

(1)检测企业的软件源代码、开发文档、敏感信息资料等内容是否被外泄到GitHub,CSDN上;

(2)自动化地对企业所有项目组的相关数据进行大批量、高效的上线安全监控,定时巡检,防范企业敏感信息外泄;

(3)能够集中化统一管理、发布、查看、通知企业的敏感信息外泄的问题和处理情况。

4.3.4 网站域名备案监控

本模块完成企业网站域名备案状态检测,自动化搜索企业一二级域名是否在企业内部备案,以及是否在公安部和工信部备案。本模块包含四个功能点:

(1)对企业所使用的一级,二级,三 级,四级域名进行自动化检测;

(2)对企业所使用的域名是否在公安部备案进行检查;

(3)对企业所使用的域名是否在工信部备案进行检查;

(4)对企业所使用的域名是否在企业内部备案进行检查。

4.3.5 网站防篡改监控

本模块检测企业指定的网站页面是否被篡改。本模块支持:

(1)针对企业所指定的网站、网页进行分钟级的监控,对网页上的任何变化进行对比监控,及时发现恶意的篡改行为;

(2)根据用户提供的敏感词库,对网站,网页上出现的不良词汇进行实时监控,一旦发现,及时告警。

4.3.6 其他

结合手工渗透测试和比赛的经验,利用Metasploit、Nmap、一些Python渗透测试框架等对系统进行检测,发现潜在问题,进一步提升系统安全性。

5 结束语

作为央企,信息安全的国家队,我们有责任、有义务保护好我们的系统,以更高的标准要求自己,并积极分享。习总书记多次提及“没有网络安全就没有国家安全”,在未来的5年、10年甚至20年,我们希望穷尽毕生精力,打造出值得骄傲的信息安全测试解决方案!

猜你喜欢

安全漏洞源代码开源
人工智能下复杂软件源代码缺陷精准校正
基于TXL的源代码插桩技术研究
五毛钱能买多少头牛
安全漏洞太大亚马逊、沃尔玛和Target紧急下架这种玩具
软件源代码非公知性司法鉴定方法探析
基于安全漏洞扫描的校园网告警系统的开发与设计
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
揭秘龙湖产品“源代码”
开源计算机辅助翻译工具研究