文档库 最新最全的文档下载
当前位置:文档库 › XXXX银行源代码安全测试方案建议书

XXXX银行源代码安全测试方案建议书

浩达恒业(北京)科技有限公司

版本记录

目录

1 金融业信息安全的现状 (5)

2 银行业源代码检测的相关标准和要求 (7)

2.1《信息安全等级保护基本要求》 (7)

2.2信息安全管理体系要求(IDT ISO/IEC27001:2005) (7)

2.3支付卡行业数据库安全标准(PCI DSS) (8)

2.4网上银行系统信息安全通用规范 (8)

2.5电子银行业务管理办法及电子银行安全评估指引 (8)

3 中国XXXX银行的软件安全现状 (9)

4 软件源代码安全扫描、审计和管理方案 (10)

4.1解决方案组成 (11)

4.2F ORTIFY SCA源代码安全测试方法 (12)

4.3输出结果 (14)

5 实施建议 (15)

5.1方案概要 (16)

5.2方案目的 (16)

5.3使用模式 (16)

5.4产品配置建议 (17)

6 FORTIFY SOFTWARE 应用软件安全方案给XXXX银行带来的价值 (17)

7 FORTIFY案例及业内位置 (18)

7.1公司产品背景 (18)

7.2部分中国客户名单 (19)

7.3G ARTNER权威机构最新排名 (19)

8附件一:OWASP应用安全TOP 10安全漏洞及控制措施示例 (21)

8.1应用开发弱点的原始清单 (22)

8.2跨站脚本攻击(C ROSS S ITE S CRIPTING -XSS) (23)

8.2.1 描述 (23)

8.2.2 控制措施 (24)

8.3注入缺陷 (24)

8.3.1 描述 (24)

8.3.1.1 SQL注入攻击 (25)

8.3.2 控制措施 (26)

8.4恶意文件执行 (28)

8.4.1 描述 (28)

8.4.2 控制措施 (30)

8.5直接对象引用 (30)

8.5.1 描述 (30)

8.5.2 控制措施 (31)

8.6跨站请求伪造(CSRF) (31)

8.6.1 描述 (31)

8.6.1.1 CSRF攻击 (33)

8.6.2 控制措施 (34)

8.7错误处理不当 (34)

8.7.1 描述 (34)

8.7.2 控制措施 (35)

8.8失效的账户和线程管理类的威胁 (36)

8.8.1 描述 (36)

8.8.2 控制措施 (37)

8.8.2.1 密码存储 (37)

8.8.2.2 保护传输凭证 (37)

8.8.2.3 保护线程IDs (37)

8.8.2.4 保护帐号列表 (38)

8.8.2.5 管理程序组件的信任关系 (38)

8.9加密存储不安全 (38)

8.9.1 描述 (38)

8.9.2 确认存在加密存储不安全脆弱性 (39)

8.9.3 控制措施 (39)

8.10通信不安全 (40)

8.10.1 描述 (40)

8.10.2 控制措施 (40)

8.11无法限制URL访问 (41)

8.11.1 描述 (41)

8.11.2 控制措施 (41)

1金融业信息安全的现状

从光大证券“乌龙指”到财付通多起账户被盗事件,互联网信息系统安全成为社会关注的重点。作为我国信息化前沿的核心行业,银行业的信息安全形势和自主可控体系一直是行业建设的重点。保障金融信息安全也更符合十八届三中全会《决定》“加强金融基础设施建设,保障金融市场安全高效运行和整体稳定”要求。

因此建立银行业自主可控信息技术创新战略联盟机制,推动落实信息科技外包风险联合监督平台和外包合作组织机制,并进一步加强统筹和引导,着力解决一些关乎全局、影响长远的问题提上了更好的议程。

“要牢牢守住信息安全底线。”中国银监会副主席郭利根在会议上强调,银行业信息科技工作要牢牢守住信息安全底线,切实开展科技顶层设计,深入落实“创新驱动”发展战略,深化银行科技工作体制机制改革,全面激发自主创新活力,以科技创新推动银行业发展转型,以科技引领提升银行业核心竞争力,不断增强风险抵御能力。

确保计算机系统和应用免受侵入和破坏是管理商业风险最为重要的一部分,每年企业都花了数百万美元的成本在计算机软件,硬件和服务方面去保护他们的IT系统,数据免受诸如病毒. worms, ,黑客攻击,我们期望花更多的预算去减轻我们商业应用系统的信息安全,但是结果并不是我们想象的那样,现目前我们的信息系统仍然处在不安全的境地,据IDC的统计,至少有75%的企业发现他们的系统被黑客成功地攻击过。我们已经建立了非常完善的认证系统、网络安全系统、入侵检测的防范措施,为什么我们的系统还是处在不安全的境地呢?通过全球的一些信息安全专家的调查和分析,他们得出这样一个结论:目前我们信息安全的

主要问题:是应用软件安全问题,而不是我们通常所认为的网络问题,操作系统问题…….。这下面是来自Gartner Group 和NIST的分析报告。

“Over 75% of security vulnerabilities exist at the application layer, not the network layer. It’s not just operating systems or web browsers, but all types of applications - particularly applications that automate key business processes.”

对于应用安全性的检测目前大多数是通过测试的方式来实现。测试大体上分为黑盒测试和白盒测试两种。黑盒测试一般使用的是渗透的方法,这种方法仍然带有明显的黑盒测试本身的不足,需要大量的测试用例来进行覆盖,且测试完成后仍无法保证软件是否仍然存在风险。现在白盒测试中源代码扫描越来越成为一种流行的技术,使用源代码扫描产品对软件进行代码扫描,一方面可以找出潜在的风险,从内对软件进行检测,提高代码的安全性,另一方面也可以进一步提高代码的质量。黑盒的渗透测试和白盒的源代码扫描内外结合,可以使得软件的安全性得到很大程度的提高。

因此,应用软件的自身的安全问题是我们信息安全领域最为关心的问题,也是我们面临的一个新的领域,需要我们所有的在应用软件开发和管理的各个层面的成员共同的努力来完成。

2银行业源代码检测的相关标准和要求

2.1《信息安全等级保护基本要求》

根据《基本要求》中关于外包软件开发的相关要求,一级要求开始就对外包开发软件在上线前进行恶意代码检测,“应在软件安装之前检测软件包中可能存在的恶意代码”。在测试验收中,提出了对系统进行安全性测试,“应对系统进行安全性测试验收”。在二级要求中,增加了对源代码进行后门检查的要求,“应要求开发单位提供软件源代码,并审查软件中可能存在的后门”。三级要求中明确指出要求由第三方测试单位实施系统安全性测试,“应委托公正的第三方测试单位对系统进行安全性测试,并出具安全性测试报告”。四级要求中增加了对源代码隐蔽信道的安全检查要求,

从《基本要求》关于系统安全性测试要求的变化可以看出,系统安全性测试强度不断提高,在四级要求中增加了对“隐蔽信道”的安全检查,测试机构从无要求转向了三级要求中明确规定的第三方测试单位。一级要求中的恶意代码检测和安全性测试,未明确要求进行源代码层面的安全测试,《基本要求》要求在测试验收时进行必要的软件安全性测试,代码审查可以作为软件安全性测试一项其重要手段,但未进行明确的规定。在二级要求中增加了对源代码进行后门检查及四级要求中对源代码进行隐蔽信道检查,提供了源代码检测的必要依据。

2.2信息安全管理体系要求(IDT ISO/IEC27001:2005)

根据《信息安全管理系统要求》中控制目标“防范恶意代码和移动代码”,“应用中正确处理”,“技术脆弱性管理”的要求,应用系统必须以相应的控制措施提供相应的功能。为验证安全功能的实现,在IT审计工程中,必然需要相应的测试结论提供相应的支持。其中“防范恶意代码和移动代码”,“应用中正确处理”,“技术脆弱性管理”等要求均可以利用代码审查进行控制目标的验证。

2.3支付卡行业数据库安全标准(PCI DSS)

PCI DSS中6.3.7 “在发布生产以前检查自定义代码,以识别所有潜在的编码漏洞”,及6.6“对于面向公众的Web 应用程序,经常解决新的威胁和漏洞,并确保保护这些应用程序不受到以下任一方法的攻击”,此项要求中明确提出了由独立于开发团队的内部组织或第三方专业机构进行代码安全审查。对于银行业及金融业来说,此项业务需求将比较大。

2.4网上银行系统信息安全通用规范

网上银行系统信息安全通用规范(试行)中6.1.1.1明确要求由外包方开发的客户端程序要进行代码安全测试并须通过第三方中立测试机构的安全检测,6.1.4.3中WEB应用安全对编码规范约束、防止SQL注入攻击、防止跨站脚本攻击等对软件安全及代码安全做出了明确要求,而且指定了要求第三方机构出具相应的测评报告。

2.5电子银行业务管理办法及电子银行安全评估指引

《电子银行业务管理办法》对电子银行系统的安全性进行了规范,指出在申请电子银行业务时需要提交电子银行安全性评估报告。目前《电子银行安全评估指引》是电子银行安全性评估的准则,其第三十一条明确规定电子银行系统的安全性评估须包括应用系统安全性评估内容,但未对应用系统安全性评估方法进行明确规范,鉴于已出台的《网上银行系统信息安全通用规范(试行)》,可以在其测试过程中,增加代码审查相关测评方法。

通过以上政策及标准的调研发现,软件安全在等级保护、上市公司及金融银行业均有明确的要求,但鉴于不同组织机构对信息安全的接受程度、财务状况及相关业务审计要求来看,在金融银行业及上市公司推广该业务才是唯一的出路,但市场总体来说未必很大。

3中国XXXX银行的软件安全现状

中国XXXX银行是目前中国优秀的银行之一,公司目前的应用软件开发主要采取软件外包和自主研发相结合的模式,对于中国XXXX银行来讲,应用软件自身的安全问题,也是一个几乎全新的领域,但是他们已经意识到这是他们下一阶段为确保信息安全必须要做的一个非常重要的事情,在我们与他们前期的交流中我们了解到目前他们在实现开发应用安全软件方面还存在如下一些问题:

1、外包团队和公司的研发团队对于开发安全的应用软件的意识不浓和知识

不足。许多已经被CWE、OWASP、ISO17799、PCI等信息安全组织标识为严重软件安全漏洞的问题了解不足,或者了解深度不够,从而造成他们在编码的时候没有考虑到部分软件安全漏洞或者在安全漏洞的预防方面不够彻底和充分,因此在他们的应用系统中存在着许多诸如SQL-injection, Cross-site-Script 的软件安全漏洞。

2、没有完善的应用软件安全的审计策略和措施。由于缺少应用软件安全保

护方面的知识,因此目前对于外包团队的项目进行软件安全审计的时候不知道在在软件的安全方面具体要审核那些内容,以及如何去预防这些漏洞,现目前也没有借助一些自动化的工具,因此对应用软件的原代码审计只能采用人工的方式,显得费时费力,并且效率低下,很多漏洞都未能检查到,迫切需要一种新的安全审计策略和措施来加强软件安全的审计问题。

3、没有应用安全信息的管理平台

没有一个集中的应用安全信息管理平台供开发人员、审计人员和管理层交流,不便于内部对与软件项目的安全风险进行收集、处理、分析和预测和评估。

4、针对银监会和人民银行等监管机构对于业务系统安全、源代码检查的合

规管理要求准备不足,控制措施缺失。

4软件源代码安全扫描、审计和管理方案

Fortify SCA(Source Code Analyzer)是一个静态的、白盒的软件源代码安全扫描工具。其扫描结果不但能够定位造成漏洞的代码所在行,而且能够提供详细的安全漏洞的信息、相关的安全知识的说明、以及修复意见。它能够支持多达21种的常见编程语言,如https://www.wendangku.net/doc/578543261.html,、C/C++、C#、Java、JSP、XML、https://www.wendangku.net/doc/578543261.html,、ASP、PHP、Python、Flex、ABAP、VB、VBScript等语言,支持Windows、Linux 、HP Unix、Solaris,AIX的操作系统平台和其上面的代码。

SCA在发现和分析漏洞方面是全面的,是业界最完整的静态代码分析器。SCA的分析引擎和已获得专利的X-Tier数据流分析器(专利编号#7207065 )在一个其它技术无法到达的深度对问题进行广泛检测。SCA的分析引擎以最大和最全面的安全编码规则为基础,该规则中的漏洞类别超过600种,并且Fortify 的安全专家们还在不断的更新这些规则。

SCA在提供准确的结果方面相当的优异。由于其成熟的引擎技术和精确的安全编码规则,故其以非常低的误报率对问题进行排名和分类。安全编码规则可以自动更新到先进的、切合时宜的能准确地识别漏洞的安全专业知识。另外,没有一个应用软件会和其它软件具有一模一样的风险特征,它们也不可能以同样的方式建立,因此,SCA在包含的基本特征的基础上,进一步调用源代码分析器分析那些特殊的应用、组件或Web服务。

SCA已建得可以适应你的组织的环境。它的规模可以从每天的日常编译到全面的审计数百万行的代码,同时它还支持一系列语言、平台、编译环境和集成开发环境(IDE)。由于目标不同可由个人或团体来调用不同的分析标准。由于应用程序需要独特的规则,SCA提供了一个方便易用的Rules Builder,用户可以自定义分析。SCA提供了巨大的灵活性,以满足任何额外的要求。

4.1解决方案组成

Fortify Source Code Analysis suite(SCA)包含:

A. Fortify Source Code Analysis Engine(源代码分析引擎)

采用数据流分析引擎,语义分析引擎,结构分析引擎,控制流分析引擎,配置分析引擎和特有的X-Tier跟踪器从不同的方面查看代码的安全漏洞,最大化降低代码安全风险。

B. Fortify Secure Code rules:Fortify (软件安全代码规则集)

采用国际公认的安全漏洞规则和众多软件安全专家的建议,辅助软件开发人员、安全人员和管理人员快速掌握软件安全知识、识别软件安全漏洞和修复软件安全漏洞。其规则的分类和定义被众多国际权威机构采用,包括美国国土安全(CWE)标准、OWASP,PCI 等。

C. Fortify Audit Workbench (安全审计工作台)

辅助开发人员、安全审计人员对Fortify Source Code Analysis Engines(源代码分析引擎)扫描结果进行快速分析、查找、定位和区分软件安全问题严重级别。

D. Fortify Rules Editor (安全规则构建器)

提供自定义软件安全代码规则功能,满足特定项目环境和企业软件安全的需要。

E. Fortify SCA plug in (Fortify SCA IDE集成开发插件)

Eclipse, Visual Studio, RAD 集成开发环境中的插件,便于开发者在编写代码过程中可以直接使用工具扫描代码,立刻识别代码安全漏洞,并立即根据建议修复,消除安全缺陷在最初的编码阶段,及早发现安全问题,降低安全问题的查找和修复的成本。

F. Fortify Software Security Center(Fortify软件安全管理中心)

基于WEB企业用户接口的软件安全信息存储\分析\评估和报告的软件安全管理平台.主要功能是定义和监视软件安全策略、跟踪和报告软件安全趋势、跨多个应用管理软件安全风险。

公司的管理层可以通过对目前商业应用系统的分析而得出应用软件的安全策略,安全的策略使用管理平台进行管理和跟踪,安全的审计人员在贯彻公司的安全策略的同时,通过配置或者自定义软件安全规则来达到策略的要求,并为开发团队或者外包团队员提供安全代码规范,当开发人员在开发代码时,使用源代码扫描工具自动识别安全漏洞并修复它,并向审计人员提供已经开发完的源代码,审计人员审核代码是否合乎公司的安全代码规范和安全策略,并上传报告给公司的管理层。

4.2Fortify SCA源代码安全测试方法

通过白盒(代码审计)的方式检查应用系统的安全性,白盒测试所采用的方法是工具审查+人工确认+人工抽取代码检查,依照OWASP 2013 TOP 10所披露的脆弱性,根据业务流来检查目标系统的脆弱性、缺陷以及结构上的问题。

简单介绍代码审计的流程。

Fortify Source Code Analysis Suite是目前在全球使用最为广泛的软件源代码安全扫描,分析和软件安全风险管理软件。该软件多次荣获全球著名的软件安全大奖,包括InforWord, Jolt,SC Magazine….目前众多世界级的软件开发企业都在使用该软件方案在他们的开发团队中加速查找软件安全漏洞的效率,监

视和管理软件安全的风险。

1)首先使用Fortify工具完成对目标程序的初步审查。如下图所示。

2)对于中大型程序,Fortify一般会检测出成千上万的安全风险点。在这

么多安全风险点中,不乏一些重复或者是误报。这就需要技术人员,使

用测试工具和自身的安全经验去一一验证确认这些漏洞是否真实存在。

如在WEB应用程序中,检测出XSS漏洞,那么技术人员就需要在实际的

搭建环境中,检测这个XSS漏洞是否存在。

3)在技术人员人工实际检测漏洞存在后,就会定位到此安全风险点对应的

程序源代码。如下图,使用Fortify定位程序风险点位置。

4.3输出结果

源代码安全审计的交付物为审计报告,其内容包括:

1)所使用的开发技术和编程语言中常见的错误。

2)每一个已识别漏洞的报告,包括漏洞的概述、影响和严重性以及再现该漏洞

的步骤和可用于修复该漏洞缺陷的补救措施建议。

例如,下表为反射型跨站漏洞的一个漏洞报告分析实例。

3)详细说明被审计代码的总体情况、审计发现的问题、进行追加审计的建议,

以及针对已确定漏洞进行补救的建议。

5实施建议

根据目前的软件项目开发和软件测试状况,浩达恒业相信,Fortify完整的安全测试解决方案和多年的部署实施经验,一定能帮助中国XXXX银行解决软件

安全的问题。根据多年的银行客户实施经验,我们推荐中国XXXX 银行采用以下实施方案:

5.1 方案概要

(1) 使用Fortify SCA+SSC 建立软件源代码安全审计模式

(2) 产品部署及使用角色设置方案

5.2 方案目的

本方案通过建立一套完整的安全测试审计制度,减少由不规范、不安全

的编码而产生的安全性漏洞,来真正地帮助中国XXXX 银行提高其IT 应用系统的质量和安全性,提高源代码安全开发,测试及安全管理水平。

5.3 使用模式

根据Fortify 对中国XXXX 银行目前软件开发项目流程的了解,结合Fortify 多年来为全球客户成功实施部署的经验,Fortify 建议中国XXXX 银行实施“Gate ”模式的审计方式,即在验收测试阶段引入安全测试,大部分Fortify 的中国客户最初都是使用这种模式。具体如下:

图1:Fortify SCA 审计模式示意图

“Gate ”审计模式说明:

(1) 软件安全测试或审计人员通过代码版本控制器,把开发人员提交的项目

代码的阶段版本,用Fortify SCA进行扫描分析,并给予审计。

(2) 审计人员将项目的审计结果报告于开发人员(或外包商)对其漏洞进行修复。

(3) 审计通过的项目进入下一阶段的其它测试或者正常阶段发布。

(4) 审计人员将每一次扫描审计的结果发布于Fortify SSC(Software Security Center)中,便于管理人员查看漏洞,了解项目漏洞程度,安全趋势等综合状况信息。同时,结合Fortify SSC 的Collaboration Module功能,开发人员(外包商),审计人员,安全管理人员可以通过Web方式查看到SCA的扫描结果以及审计状态等详细信息,方便对安全漏洞的查看,交流,沟通工作以及代码的修改。

5.4产品配置建议

6Fortify Software 应用软件安全方案给XXXX银行带来的价值

1、轻松应对监管机构的合规需求,提高源代码审计效率,降低应用系统安全风

险。

2、丰富而全面软件安全代码规范及其文档资料弥补中国XXXX银行开发人员

和管理人员应用软件安全知识不足,让大家尽快了解各种软件安全漏洞的成因和修复方法。

3、使用Fortify SCA大大节约了开发人员和审计人员在识别软件漏洞和修复安

全漏洞的时间。

4、对于软件外包的项目,能快速识别项目风险,防止外包团队成员有意或者无

意而遗留在软件项目中的安全隐患,避免以后软件上线后造成重大的经济和其他方面损失。

5、通过使用Fortify的工具可以帮助中国XXXX银行研发中心建立规范的代码

安全审计流程,并使在项目验收过程中引入软件安全验收环节变为可行。6、通过Fortify SSC(Software Security Center)的使用和软件安全测试规范的

制定,便于XXXX银行针对不同的软件项目制定软件安全的策略和安全的代码规范,并且能在软件开发的生命周期中去贯彻和实施这些规范和策略,并且跟踪和管理他们。

7Fortify案例及业内位置

7.1公司产品背景

Fortify Software 2003 年由Kleiner Perkin Claufield& Byers 风险基金投资成立,总部设在美国加州硅谷。Fortify Software 是世界上第一个提出软件安全新理念的公司,并于2004年推出业界第一款产品。公司CTO兼创始人Mr Roger Thornton 是世界软件安全这一新领域的主要缔造者,公司另一创始人Dr Brian Chess 是世界级安全专家。Fortify Software的产品主要为软件源代码扫描器,软件应用监控,渗透测试覆盖率检测等。公司拥有150多项专利,居行业之首。目前全球已有600家客户,其中银行,保险,证券占一半以上。全球8大银行如汇丰,花旗,WellsFargo,Morgan已全部采用Fortify Software的解决方案。其他领域的客户为电子商务类的eBay, Google, 软件厂商Oracle,Microsoft 和EMC等以及政府部门。2008年4月Fortify Software 在中国设立了北京代表处,并对产品的关键内容进行了汉化, 2010年Fortify被HP收购,统一纳入惠普企业安全产品部ESP,成为其重要组成部分。

7.2部分国际客户名单

国内的主要客户:

7.3Gartner权威机构最新排名

Fortify解决方案一直在AST(应用安全测试领域)排名全球第一,如下图是

2014年最新的排名,依然遥遥领先

7.4Fortify SCA4.1关键新功能摘要

?目前SSC4.1可以正确的和HP ALM 解决方案集成,原来4.0存在的问题已经被修复。

?重新在4.1版本中增加了对IBM AIX操作系统的支持,在4.0版本是不支持IBM AIX操作系统的

?增加了对Java 8 的支持

?SSC 4.1中对 BIRT报表系统的支持得到了增强,原来SSC4.0中仅支持BIRT 2.6.2,现在可以支持到BIRT4.3.1。(注:BIRT (Business

相关文档
相关文档 最新文档