软件安全相关知识目录一、前言 (2)二、术语解释 (3)三、安全性基础知识介绍 (5)1、了解信息系统的安全空间 (5)2、安全保障体系 (7)3、安全风险评估及安全策略 (8)4、信息安全技术与安全产品管理 (8)5、软件安全测试工具 (9)四、软件安全性测试主要内容及测试方法 (10)1、安全性测试主要内容 (12)2、安全性测试方法 (15)3、常见产品安全性缺陷 (15)五、公司产品安全性现状 (16)六、软件安全性常见问题处理方法 (18)七、其他关于软件安全性方面工作改进 (19)一、前言许多项目在上线前,用户会要求提供产品安全性检测报告,或者用户方(或请第三方)对产品进行安全性测试后,给出产品安全性评测报告提出产品整改要求,在碰到这类问题时,由于前后台业务人员对软件安全方面的知识不够了解,往往不知道如何处理。
由于计算机安全性方面的知识体系非常庞杂,平时接触较少,且在需求了解、产品研发阶段常常被忽略,当遇到客户方信息化建设比较健全,对产品提出安全性要求时,才临时采取策略。
软件安全性是产品质量评估的一个重要方面,测试中心在跟进一些项目的过程中,接触了一些相关知识,本文档总结了关于安全性方面的基础知识,软件安全评测的方法、内容,以及针对软件安全性方面遇到的问题的一些建议处理方法,供大家学习了解。
二、术语解释●信息系统安全等级保护:是根据信息系统重要性不同对其进行分级别保护,不同级别有不同的安全措施及标准。
建设单位应该根据系统的安全等级评估结果,对系统实施相应安全保护措施。
参考公安部信息安全等级保护评估中心编制的《信息系统安全等级保护政策》。
●信息安全服务资质认证:信息安全服务资质是对信息安全服务提供者的资格状况、技术实力和实施安全工程过程的质量保证能力等方面的具体衡量和评价。
资质等级的评定,是在其基本能力水平、安全工程项目的组织管理水平、安全工程基本过程的控制能力等方面的单项评估结果的基础上,针对不同的服务种类,采用一定的权值综合考虑后确定的,并由国家认证机构授予相应的资质级别。
●信息安全保障系统:是一个在网络上,集成各种硬件、软件和密码设备,以保护其他业务应用信息系统正常运行的专用的信息应用系统,以及与之相关的岗位、人员、策略、制度和规范的总和。
●软件安全性评测:对软件系统进行安全性评测,确保软件满足其相应级别的安全性标准要求。
依据的软件安全评测标准有:国际标准ISO/IEC 15408 国家标准 GB 18336 信息技术安全性评测准则;主要的评测中心有:中国信息安全测评中心、国家计算机网络与信息安全管理中心;其他第三方安恒信息、三零卫士信息技术公司;企业信息中心自己的安全评估检验部门●安全漏洞:是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统●入侵检测:入侵检测(Intrusion Detection)是对入侵行为的检测。
它通过收集和分析网络行为、安全日志、审计数据、其它网络上可以获得的信息以及计算机系统中若干关键点的信息,检查网络或系统中是否存在违反安全策略的行为和被攻击的迹象。
●渗透测试:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。
这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
●PKI(Public Key Infrastructure)公共密钥基础设施:它是以不对称密钥加密技术为基础,以数据机密性、安全性、身份认证和行为不可抵赖性为安全目的,来实施和提供安全服务的具有普适性的安全基础设施。
其内容包括数字证书、不对称密钥密码技术、认证中心、证书和密钥的管理、安全代理软件、不可否认性服务、时间戳服务、相关信息标准、操作规范等。
●数字证书:是由认证机构经过数字签名后发给网上信息交易主体(企业或个人、设备或程序)的一段电子文档。
●CA(Certification Authority)认证中心:,PKI的核心。
它是公正、权威、可信的第三方网上认证机构,负责数字证书的签发、撤销和生命周期管理。
●https:安全超文本传输协议,它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作的。
●SDL:安全开发周期(Security Development Lifecycle)是微软提出的从安全角度指导软件开发过程的管理模式。
三、安全性基础知识介绍1、了解信息系统的安全空间信息系统的安全与网络息息相关,只有基于网络的信息系统才需要考虑安全性问题。
信息系统安全空间的五大属性包括:认证、权限、完整、加密、不可否认,主要有安全机制、安全服务与安全技术三个维度组成。
1)安全机制包括:●基础设施实体安全、●平台安全:操作系统漏洞检测与修复、网络基础设施(路由器、交换机和防火墙等)漏洞检测与修复、通用基础应用程序(数据库、WEB、、DNS、系统守护进程)漏洞检测与修复、网络安全产品(防火墙、入侵检测、防病毒)部署●数据安全:访问控制、数据完整性、数据可用性、数据监控和审计、数据存储备份●通信安全●应用安全:业务软件程序安全性测试,业务交往的防抵赖测试、业务资源的访问控制验证、业务现场的备份与恢复机制、业务数据的唯一性、业务数据保密性、可靠性、可用性●运行安全●管理安全●授权和审计安全●安全防范体系2)安全服务●对等实体认证服务:用于两个开发系统同等层中的实体监理链接和数据传输时,对对方实体的合法性、真实性进行确认●数据完整性服务●数据源点认证服务●禁止否认服务●犯罪证据提供服务3)安全技术●加密技术●数字签名技术●访问控制技术●数据完整性技术●认证技术●数据挖掘技术这三个维度组成信息系统的安全空间,每个维度的内容越丰富、越深入,安全空间就越大,安全性越好。
2、安全保障体系大型企业及政府在进行信息化建设时都有一套信息安全保障体系,信息系统安全保障体系结构图如下:安全保障系统的核心是保证信息及数据的安全,长期以来网络安全一直比较重视,如防病毒、防止黑客攻击、加密传输,网络安全设备:防火墙、网络隔离、安全路由、病毒防治系统、漏洞扫描系统、入侵检测系统、动态口令卡、VPN。
随着MIS系统成熟发展到一定阶段,处理的信息越来越多,涉及的业务面越来越宽,环节越来越复杂,交互人员越来越广泛,企业的运营越来越离不开业务应用信息系统,人们逐步认识到软件的不稳定导致系统崩溃和数据丢失,病毒攻击的是软件的缺陷,黑客利用的是软件的弱点,机密和隐私的泄漏是因为软件存在漏洞。
应用软件系统的安全性在软件开发及运行过程中必须得以考虑和保证。
3、安全风险评估及安全策略提前识别管理软件安全性风险,从风险源的角度划分,可以划分为自然事件风险、人为事件风险、软件风险、软件过程风险、项目管理风险、应用风险、用户使用风险等。
确定安全性风险后,为避免损失,所采取的一切,包括各种措施手段,以及建立的各种管理制度、法规等都称为安全策略。
国家质量技术监督局发布的《计算机信息安全保护等级划分准则》规定,计算机信息系统划分为5个安全保护等级:1)用户自主保护级,普通内联网用户;2)系统审计保护级,适用于通过内联网或国际网进行商务活动,需要保密的非重要单位;3)安全标记保护级,适用于地方各级国家机关、金融单位机构、邮电通信、能源与水源供给部门、交通运输、大型工商与信息技术企业、重点工程建设等单位;4)结构化保护级,适用于中央级国家机关、广播电视部门、重要物资储备单位、社会应急服务部门、尖端科技企业集团、国家重点科研单位机构和国防建设等部门;5)访问验证保护级,适用于国防关键部门和依法需要对计算机信息系统实施特殊隔离的单位。
根据业务应用信息系统所处理信息的敏感度、业务应用的性质和部门的重要程度,按照国家有关标准分别确定其计算机信息系统的安全保护等级。
4、信息安全技术与安全产品管理信息安全技术主要包含:密码技术、虚拟专用网和虚拟本地网、无线安全网络。
PKI可以作为支持安全5要素的技术基础设施,从技术体系上解决网上身份认证、权限管理、信息完整性、机密性和抗抵赖等安全问题,为网络信息应用提供可靠的信息安全基础设施。
PKI/CA主要应用于电子商务应用、电子政务、网上银行、网上证券及其他网络应用。
国家对安全产品按种类,由不同的政府职能部门进行管理,具体分工:●所有有关商用密码及密码产品,都由“国家密码管理委员会办公室”,负责立项、检验、检查和产品鉴定。
并负责对密码和密码产品研制、生产、销售的企业进行资质认证●所有商用安全产品(涉及密码部分除外),由国家公安部公共信息检查局负责产品的检验和发放“市场准入证”,并与工商部门合作,负责安全产品的市场管理、监督●所有有关军用安全产品(涉及密码部分除外),由部队指定的“检测机构”,负责军用安全产品检验和发放“军用合格证”●国家质量监督局委托国家安全部成立“计算机网络安全产品检测中心”,对计算机网络安全产品的质量进行检测,并发放合格证●普密和绝密仍然由中央和地方的机要部门管理使用5、软件安全测试工具Rational AppScan是目前比较通用的商用软件安全性测试工具,使用AppScan应用软件开发团队在项目交付前,可以对所开发的应用程序与服务进行安全缺陷的扫描,自动化检测 Web 应用的安全漏洞,从系统开发的起始阶段就扫除 Web 应用安全漏洞。
扫描过程如下:1)扫描步骤:根据数据库里的扫描规则爬行服务网站,获取所有的网页链接;2)分析步骤:对扫描步骤中读取的网页进行分析,找出基本元素,发现漏洞;3)攻击步骤:根据漏洞数据库中的规则,调用相应的测试函数对可能存有问题的网页进行模拟攻击;4)评估步骤:根据攻击结果,对网站安全的风险性进行评估。
所述的攻击并非传统意义上的探测,而是针对不同漏洞而设计的不同的攻击方法,通过自动攻击和半自动攻击(人工辅助)方式,通过评估引擎,综合全部攻击结果及对扫描页面的分析后,系统地做完整的评估。
四、软件安全性测试主要内容及测试方法软件安全性测试是确定软件的安全特性实现是否与预期设计一致的过程,包括安全功能测试、渗透测试(安全漏洞测试)与验证过程;软件主要安全功能需求包括:数据机密性、完整性、可用性、身份认证、授权、访问控制、审计日志、委托、隐私保护、安全管理等。
安全漏洞测试从攻击者的角度,以发现软件安全漏洞为目的。
目前检测的内容基本上可以分为静态代码扫描、部署环境扫描、应用系统扫描、渗透测试、安全性分析:静态代码扫描:理论上是最有效的检测方式,但是一般费用较高,误报或者有风险但是实际情况很难利用的漏洞较多,项目上采取的比较少部署环境扫描:针对部署环境系统、中间件、数据等的安全性扫描,项目上极少见到,一般针对具体部署环境,与我们产品无直接关系应用系统扫描:项目绝大部分以此类为主,由于不同扫描工具能力不一样,扫描出来的问题和偏重点也不一样,不过对于核心类型的问题是比较相似的渗透测试:模拟实际攻击者,不同渗透测试人员渗透步骤和习惯各不相同,这个只能给出一个系统是否足够糟糕的结论,没必要也无法统一。