软件源代码安全测试系统可行性分析研究报告年月A目录一、项目的背景和必要性.....................................................................................1二、国内外现状和需求分析.................................................................................22.1国内外发展现状..............................................................................................................22.2需求分析.........................................................................................................................2三、项目实施内容及方案.....................................................................................33.1总体思路.........................................................................................................................33.2建设内容.........................................................................................................................43.3项目实施的组织管理.....................................................................................................43.4项目实施进度计划.........................................................................................................6四、实施项目所需条件及解决措施.....................................................................74.1条件需要论述.................................................................................................................74.2承担单位具备的条件及欠缺条件解决措施.................................................................7五、投资估算,资金筹措...................................................................................105.1项目投资估算...............................................................................................................105.2资金筹措.......................................................................................................................10六、经济、社会效益及学术价值分析...............................................................10七、项目风险性及不确定性分析.......................................................................117.1不确定性分析...............................................................................................................117.2市场风险分析...............................................................................................................117.3技术风险分析...............................................................................................................11八、项目主要承担人员概况...............................................................................12B8.1项目负责人情况...........................................................................................................128.2主要承担人员及责任分工...........................................................................................121一、项目的背景和必要性随着社会信息化的不断加深,计算机软件系统越来越复杂,程序的正确性也难以保证,计算机病毒和各种恶意程序有了赖以生存的环境。软件功能越来越负载,源代码越来越大,我们无法从编码的角度彻底消除所有的漏洞或缺陷,相当数量的安全问题是由于软件自身的安全漏洞引起的。软件开发过程中引入的大量缺陷,是产生软件漏洞的重要原因之一。不同的软件缺陷会产生不同的后果,必须区别对待各类缺陷,分析原因,研究其危害程度,预防方法等。我区的软件业发展尚未成熟,软件测试没有得到足够的重视,大多数软件开发商更多注重的是软件的功能,对于加强软件的安全性投入不足,这更增加了软件安全漏洞存在的可能性。系统攻击者可以解除软件安全漏洞轻易的绕过软件安全认证,对信息系统实施攻击和入侵,获取非法的系统用户权限,执行一系列非法操作和恶意攻击。为了避免各种安全漏洞的出现,软件测试越来越受到开发人员的重视。软件测试不仅仅是为了找出软件潜在的安全漏洞,通过分析安全漏洞产生的原因,可以帮助我们发现当前软件开发过程中的缺陷,以便及时修复。软件测试可以提高源代码的质量,保证软件的安全性。但是,软件测试是一个非常复杂的执行过程。测试人员需要根据已有的经验,不断的输入各种测试用例以测试。纯人工测试效率低,无法满足信息产业发展的需要。我们需要高效的自动化测试源代码安全测试系统。2二、国内外现状和需求分析2.1国内外发展现状目前,常用的漏洞检测方法主要有:安全扫描技术、代码审查、静态分析、动态监测等。代码审查是人工阅读代码,检查是否有源代码级别的漏洞。代码审查耗费人力物力,检查速度缓慢,不适用于大型项目的检测。动态监测室在执行程序的基础上,动态监测程序的执行状态,来检查程序的正确性。静态测试通过对待测源程序做词法分析,语义分析等源程序信息来检查待测程序。静态测试在不执行程序的情况下,分析程序路径,有更高的覆盖率和检测速度,比动态监测更有效,能快速的找到安全漏洞。静态分析是静态测试的基础,国内外在静态分析方面做了大量的研究,取得一定的成果,并研发出相应的静态分析工具。目前较多使用的有Soot静态分析工具、PC-Lint静态分析工具、logiscope软件质量分析测试工具、FortifySCA源代码安全扫描、分析和风险管理工具、FindBugs静态分析工具等等,国内外已经对自动化测试工具做了很多研究,取得一定的成果。2.2需求分析随着软件事业的发展,人们逐渐的认识到,想要开发出高质量的软件产品,必须对软件的开发过程进行改善。研究表明,相当数量的安全问题是由于软件自身的安全漏洞引起的。软件开发过程中引入的大量缺陷,是产生软件漏洞的重要原因之一。软件源代码安全性缺陷排除是软件过程改进的一项重要措施。随着社会信息化的不断加深,人们不得不开始面对日益突出的信息安全问题。不同的软件缺陷会产生不同的后果,必须区别对待各类缺陷,分析原3因,研究其危害程度,预防方法等。建立一个比较完整的缺陷分类信息,对预防和修复软件安全缺陷具有指导作用。在中国的很多软件企业存在着重开发、轻测试的现象,造成日后的软件产品的质量问题频出。目前软件测试人才的缺口在30万人以上,IT行业国内外巨头正在加紧争夺软件测试人才,华为曾一次抛出50名软件测试人员的招聘大单,而联想、用友、瑞星等企业也纷纷打出高薪招聘软件测试人才的启事。由于国内软件测试工程师人才奇缺,并且一般只有大中型企业才会单独设立软件测试部门。第三方测试能够拟补各方面软件测试日益增长的需求,特别是源代码安全测试,技术门槛高,软硬件设备要求高,企业不愿意在这方面投入大量的人力和物力资源,使得软件源代码测试有强烈的市场需求。我区软件产业起步较晚,目前仍处于襁褓期。至“十五”大以来……城市被批准列入国家信息化试点城市。对于我区软件产业的迅速发展,同时也对软件产品质量、安全有更高的要求,这就需要相关专业软件方面的测试对软件产品质量、安全进行保障。三、项目实施内容及方案3.1总体思路软件源代码安全测试系统项目的总体目标是通过该系统能够对Java、JSP、JavaSript、VBSript、C#、ASP.net、VB.Net、VB6、C/C++、ASP、PHP,Ruby、Android、APEX(AppExchangeplatform)等主流编程语言的跨站脚本攻击、SQL注入、Javascript劫持、日志伪造、缓冲区溢出等安全漏洞技术指标测试,覆盖所有代码路径和查找大部分的安全漏洞类型;建立软件源代码安全漏洞库和安全漏洞解决方案库。培养和锻炼一批有技术能力的软件源代码安全测评人才队伍,为自治区信息安全管理部门提供数据支撑和4决策依据。3.2建设内容(1)建立软件源代码安全测试系统平台。配置主流软件源代码安全测试软件,针对C、C++、Java、C#等主流编程语言提供跨站脚本、SQL注入、缓冲区溢出、参数篡改等漏洞进行自动化测试。配置主流服务器,为测试平台提供硬件支撑。配置软件环境,windows、linux、unix、aix等操作系统、SQL数据库、weblogic、websphere中间件。配置计算机、笔记本等硬件设施。(2)配备软件源代码安全漏洞检测人员。由于软件源代码漏洞分析对人员的技术要求也比较高,测试人员需具有2-3年的编程经验,也需要具备信息安全方面的技术,才能对自动化工具检测结果进行审查,降低误报率。项目需要引进新的人才,同时做相应的培训。培训内容包括①软件测试基础:数据库管理、编程技巧、操作系统、网络安全;②软件测试:测试基本理论、软件缺陷、测试过程、需求管理、文档编写、典型软件机制与缺陷模式、测试项目架构与管理、回归测试、测试报告;③测试工具软件培训;④源代码安全漏洞与分析。(3)建立软件源代码安全检测实验室。利用中心现有资源,建设计算机场地和实验室。根据我中心质量管理体系建立软件源代码安全检测实验室管理规范;制定测试流程、测试用例库、作业