软件源代码安全测试系统可行性分析研究报告年月目录一、项目的背景和必要性 (1)二、国内外现状和需求分析 (2)2.1国内外发展现状 (2)2.2 需求分析 (2)三、项目实施内容及方案 (4)3.1 总体思路 (4)3.2 建设内容 (4)3.3 项目实施的组织管理 (5)3.4 项目实施进度计划 (7)四、实施项目所需条件及解决措施 (8)4.1 条件需要论述 (8)4.2 承担单位具备的条件及欠缺条件解决措施 (8)五、投资估算,资金筹措 (12)5.1 项目投资估算 (12)5.2 资金筹措 (12)六、经济、社会效益及学术价值分析 (12)七、项目风险性及不确定性分析 (13)7.1 不确定性分析 (13)7.2 市场风险分析 (13)7.3 技术风险分析 (13)八、项目主要承担人员概况 (14)8.1 项目负责人情况 (14)8.2 主要承担人员及责任分工 (14)一、项目的背景和必要性随着社会信息化的不断加深,计算机软件系统越来越复杂,程序的正确性也难以保证,计算机病毒和各种恶意程序有了赖以生存的环境。
软件功能越来越负载,源代码越来越大,我们无法从编码的角度彻底消除所有的漏洞或缺陷,相当数量的安全问题是由于软件自身的安全漏洞引起的。
软件开发过程中引入的大量缺陷,是产生软件漏洞的重要原因之一。
不同的软件缺陷会产生不同的后果,必须区别对待各类缺陷,分析原因,研究其危害程度,预防方法等。
我区的软件业发展尚未成熟,软件测试没有得到足够的重视,大多数软件开发商更多注重的是软件的功能,对于加强软件的安全性投入不足,这更增加了软件安全漏洞存在的可能性。
系统攻击者可以解除软件安全漏洞轻易的绕过软件安全认证,对信息系统实施攻击和入侵,获取非法的系统用户权限,执行一系列非法操作和恶意攻击。
为了避免各种安全漏洞的出现,软件测试越来越受到开发人员的重视。
软件测试不仅仅是为了找出软件潜在的安全漏洞,通过分析安全漏洞产生的原因,可以帮助我们发现当前软件开发过程中的缺陷,以便及时修复。
软件测试可以提高源代码的质量,保证软件的安全性。
但是,软件测试是一个非常复杂的执行过程。
测试人员需要根据已有的经验,不断的输入各种测试用例以测试。
纯人工测试效率低,无法满足信息产业发展的需要。
我们需要高效的自动化测试源代码安全测试系统。
二、国内外现状和需求分析2.1国内外发展现状目前,常用的漏洞检测方法主要有:安全扫描技术、代码审查、静态分析、动态监测等。
代码审查是人工阅读代码,检查是否有源代码级别的漏洞。
代码审查耗费人力物力,检查速度缓慢,不适用于大型项目的检测。
动态监测室在执行程序的基础上,动态监测程序的执行状态,来检查程序的正确性。
静态测试通过对待测源程序做词法分析,语义分析等源程序信息来检查待测程序。
静态测试在不执行程序的情况下,分析程序路径,有更高的覆盖率和检测速度,比动态监测更有效,能快速的找到安全漏洞。
静态分析是静态测试的基础,国内外在静态分析方面做了大量的研究,取得一定的成果,并研发出相应的静态分析工具。
目前较多使用的有Soot静态分析工具、PC-Lint静态分析工具、logiscope软件质量分析测试工具、Fortify SCA源代码安全扫描、分析和风险管理工具、FindBugs静态分析工具等等,国内外已经对自动化测试工具做了很多研究,取得一定的成果。
2.2 需求分析随着软件事业的发展,人们逐渐的认识到,想要开发出高质量的软件产品,必须对软件的开发过程进行改善。
研究表明,相当数量的安全问题是由于软件自身的安全漏洞引起的。
软件开发过程中引入的大量缺陷,是产生软件漏洞的重要原因之一。
软件源代码安全性缺陷排除是软件过程改进的一项重要措施。
随着社会信息化的不断加深,人们不得不开始面对日益突出的信息安全问题。
不同的软件缺陷会产生不同的后果,必须区别对待各类缺陷,分析原因,研究其危害程度,预防方法等。
建立一个比较完整的缺陷分类信息,对预防和修复软件安全缺陷具有指导作用。
在中国的很多软件企业存在着重开发、轻测试的现象,造成日后的软件产品的质量问题频出。
目前软件测试人才的缺口在30万人以上,IT行业国内外巨头正在加紧争夺软件测试人才,华为曾一次抛出50名软件测试人员的招聘大单,而联想、用友、瑞星等企业也纷纷打出高薪招聘软件测试人才的启事。
由于国内软件测试工程师人才奇缺,并且一般只有大中型企业才会单独设立软件测试部门。
第三方测试能够拟补各方面软件测试日益增长的需求,特别是源代码安全测试,技术门槛高,软硬件设备要求高,企业不愿意在这方面投入大量的人力和物力资源,使得软件源代码测试有强烈的市场需求。
我区软件产业起步较晚,目前仍处于襁褓期。
至“十五”大以来……城市被批准列入国家信息化试点城市。
对于我区软件产业的迅速发展,同时也对软件产品质量、安全有更高的要求,这就需要相关专业软件方面的测试对软件产品质量、安全进行保障。
三、项目实施内容及方案3.1 总体思路软件源代码安全测试系统项目的总体目标是通过该系统能够对Java、JSP、JavaSript、VBSript、C# 、 、、VB6、C/C++ 、ASP 、PHP, Ruby、Android 、APEX (AppExchange platform)等主流编程语言的跨站脚本攻击、SQL注入、Javascript劫持、日志伪造、缓冲区溢出等安全漏洞技术指标测试,覆盖所有代码路径和查找大部分的安全漏洞类型;建立软件源代码安全漏洞库和安全漏洞解决方案库。
培养和锻炼一批有技术能力的软件源代码安全测评人才队伍,为自治区信息安全管理部门提供数据支撑和决策依据。
3.2 建设内容(1)建立软件源代码安全测试系统平台。
配置主流软件源代码安全测试软件,针对C、C++、Java、C#等主流编程语言提供跨站脚本、SQL注入、缓冲区溢出、参数篡改等漏洞进行自动化测试。
配置主流服务器,为测试平台提供硬件支撑。
配置软件环境,windows、linux、unix、aix等操作系统、SQL数据库、weblogic、websphere中间件。
配置计算机、笔记本等硬件设施。
(2)配备软件源代码安全漏洞检测人员。
由于软件源代码漏洞分析对人员的技术要求也比较高,测试人员需具有2-3年的编程经验,也需要具备信息安全方面的技术,才能对自动化工具检测结果进行审查,降低误报率。
项目需要引进新的人才,同时做相应的培训。
培训内容包括①软件测试基础:数据库管理、编程技巧、操作系统、网络安全;②软件测试:测试基本理论、软件缺陷、测试过程、需求管理、文档编写、典型软件机制与缺陷模式、测试项目架构与管理、回归测试、测试报告;③测试工具软件培训;④源代码安全漏洞与分析。
(3)建立软件源代码安全检测实验室。
利用中心现有资源,建设计算机场地和实验室。
根据我中心质量管理体系建立软件源代码安全检测实验室管理规范;制定测试流程、测试用例库、作业指导书等技术规范。
3.3 项目实施的组织管理(1) 成立项目实施组,确定项目总负责人项目开始前,成立项目实施小组管理项目开发实施,确定项目总负责人负完全责任。
项目范围的管理包括下述内容:a.项目业务范围在项目每一阶段的前期,由业务部门与实施项目小组人员共同对业务需求做详细的调研和归纳总结。
b.项目实施工作针对调研的结果,进行项目开发实施。
c.项目文档管理详细记录项目的全过程,整理并最终提供所有技术和项目实施资料。
(2) 项目实施组的组成及分工整个项目的实施由项目总负责人领导下的项目实施组完成。
根据项目的具体要求,实施组又分为项目开发与实施、测试、培训与文档等几个小组。
a.项目工程师:了解项目需求,提供技术方案;配合项目总负责人明确项目的实施内容;协助项目总负责人解决、解答有关项目合同中的技术问题。
b.项目开发与实施组:接受项目总负责人分配的任务,了解项目的需求,了解项目实施的内容;按项目计划要求具体实施项目;按时保质项目现场实施工作;在项目现场提供必要的现场操作说明;将项目中出现的问题及时反映项目总负责人;及时记录现场操作内容,形成必要的项目实施文档。
c.测试组:在质量控制小组和技术专家组的指导下完成项目测试文档;测试手段的准备,对项目内容进行系统测试;及时将所发现的问题向质量控制小组和有关的部门通报。
d.培训组:负责完成项目的培训工作;完成相关培训文档。
e.技术文档组:负责检查整个分析和设计文档的风格一致性、完整性;完成整个系统开发过程中,各阶段文档的修订,管理及打字工作;由专人负责技术资料的归档和分类管理。
3.4 项目实施进度计划四、实施项目所需条件及解决措施4.1 条件需要论述依据本项目的实际情况,本项目实施所需条件如下:(1) 人力资源要求拥有足够的专业从事源代码测试、实验、测试的工作人员,并按相应的要求进行配备、管理。
(2) 场地具有符合要求的实验、测试及办公场所。
(3) 仪器设备、软硬件环境基础平台:含机柜、交换机、路由器、PC机、服务器等硬件设施;含操作系统、数据库、源代码安全扫描软件等软件设施;通过软件和硬件的结合,构建一套基础平台,满足网络通讯、终端操作、业务承载等基础功能。
安全设施:提供基本的安全功能,如:接入控制;访问控制;数据加密;入侵检测;漏洞检查;漏洞验证;攻击防护;安全审计等设备。
使用者可以通过在基础平台上使用这些安全设施进行安全研究、攻击演示和系统测评等工作。
管理设施:提供设备统一管理,日志收集分析,安全数据分析等管理类功能,可以对安全实验室的资源进行统一整合的管理支持。
4.2 承担单位具备的条件及欠缺条件解决措施软件源代码安全测试系统搭建工作由XXXXXXX承担,该所实施此项目已具备一定的基础。
(1) 人力资源XXXXXXX成立xx多年来,培养了一批专门从事信息安全、电子信息应用和推广方面的专业技术人员,专业技术人员大部分是计算机、信息安全、通信、电子、电子商务等或相近相关专业;长期以来从事信息安全、电子信息工程技术,电子信息科技管理,电子信息经济管理等方面的工作,相关经验比较丰富,能承担此项目的各项工作。
(2) 场地XXXXXXX自有办公楼一栋,使用面积约平方米,有充足的符合要求的场地来建设软件源代码安全测试系统。
(3) 仪器设备、软硬件环境➢XXXXXXX有良好的网络基础设施平台,Internet接入系统;➢XXXXXXX各类检测、试验仪器设备及标准计量器具等600多台(套),有部分仪器设备(防火墙、入侵检测、入侵防御、服务器等)可用于搭建软件源代码安全测试系统;➢XXXXXXX原有实验室的仪器设备、软硬件环境是建设软件源代码安全测试系统的基础。
(4) 相关技术基础XXXXXXX具备信息安全测评、信息系统测评、专业智能化系统测评的能力,在信息安全测评相关方面积累了丰富的实践经验。