1 软件安全知识概要
下面简单地介绍一下软件安全知识。
1.1软件安全分类
软件安全性包括软件功能安全性和软件信息安全性。软件功能安全性是指当软件发生故障的时候,会自动切换到安全模式。比如高铁在运行过程中遇到雷电袭击后,系统软件就应该将其离开正常模式,然后切入到安全模式下进行运行。软件信息安全性是保证软件信息不被泄露,不被篡改。由于软件功能安全性仅在嵌入式高安全软件下比较常见,所以本章经介绍软件信息安全,且基本局限在WEB软件安全。
1.2 软件安全性与便捷性
如1小区如果进出的门比较多,比如有三个,对于小区住户来说,肯定很方便,但是小区的安全就有一定的威胁,三个进出的门必须配置响应的保安人员;反之如果仅有一个进出的门,方便性肯定降低,但是安全性肯定比前者高更多。软件也一样,在某种程度上安全性与便捷性存在一定的矛盾性。比如一个系统管理软件,允许系统管理员通过这个软件系统执行各种系统命令,肯定是一个便捷的举动,但是也给黑客输入一些关键命令,获取服务器信息带来了一段威胁。又如前几年为了让网页方便挂条幅,出现带P3P的cookie,但是这个技术给黑客钓鱼带来了便利,后来这个技术不得不被业界淘汰。但是既考虑到安全性又考虑到便捷性的技术不是不存在的,而是比较少。
1 小区平面图
1.3白帽子黑客、黑帽子黑客
黑客分为两类,一类是白帽子黑客,另一类是黑帽子黑客。黑帽子黑客就是常说的搞破坏活动的黑客。白帽子黑客即从事安全活动的工作人员,一般指的是软件安全工程师。显而易见,白帽子的工作难度要比黑帽子黑客强大得许多,因为作为一名黑帽子黑客可能只需要掌握一两门攻击手段就可以对软件系统进行威胁;而作为一名白帽子黑客,为了防止所有黑帽子黑客的攻击,掌握所某个领域内(比如WEB)有关所有安全知识是必须的工作。在下面的文中,“黑客”仅指黑帽子黑客,白帽子黑客用软件安全工程师来取代。
1.4白帽子兵法
下面来介绍几个白帽子兵法。
1. 默认规则
1)黑名单,白名单
黑名单与白名单是软件安全中经常使用到的列表清单。黑名单是指不被允许的清单列表,比如在上传文件中不得上传以下面格式结尾的文件:“exe”“php”“asp”“jsp”“bat”“java”“class”“jar”“py”。反之,白名单是指被允许的清单列表,还是上传文件,以下面格式结尾的文件是被允许的“bmp”“jpg”“gif”“png”。
2)最小权限原则
最小原则是指为了安全考虑,只有特定的对象仅可以访问某一个或一类特定的元素。比如只允许SQL Server的admin用户访问sec数据库;只允许Linux的root用户访问deafult文件。只允许Tom和Jerry用户访问“添加/修改/删除”其他用户的权限。
2. 纵深防御原则(Defense in Depth)
纵深防御原则是指为了达到一定的安全级别,必须采用一级一级的各种不同的措施对数据、文件、系统加以保护。它来源于核设施和核活动。2是核安全纵深防御措施图。3是XXE漏洞防护方法图。
2 核安全纵深防御措施
3 XXE漏洞纵深防护方法
3. 数据与代码分离原则
数据与代码分离,一方面从安全角度来考虑、另一方面从可维护性角度考虑。如果一个加密算法,数据和代码都在程序文件中,一旦黑客窃取到了这份程序文件,后果是可想而知的。如果仅仅获取到代码或者数据,那威胁就大大地降低了。
4. 不可预测性原则
“未来唯一可以预测的是不可预测”,软件安全也是这样,由于软件威胁是不可预测的,所以努力做好日常的安全工作是必须也是必要的工作。
星云测试
http://www.teststars.cc
奇林软件
http://www.kylinpet.com
联合通测
http://www.quicktesting.net
顾翔凡言:
图是软件项目三角形。
图 软件项目三角形
下面做如下假设。
l 假设质量(Q)与范围(S)不变,时间(T)减少的情形下,必须雇佣高水平的人员或者先进的技术,即增大产品的成本(C)。同理,质量(Q)与范围不变,时间(T)增加的情形下,可以减少成本(C)。
l 假设质量(Q)与时间(T)不变,范围(S)增加的情形下,也必须增大成本(C)。同理,质量(Q)与时间(T)不变,范围(S)减少的情形下,可以减少成本(C)。
l 假设质量(Q)与成本(C)不变,时间(T)减少的情形下,范围(S)必须减少。同理,质量(Q)与成本(C)不变,时间(T)增加的情形下,可以加大范围(S)。
于是可以得到如下公式:
Q = TC/S
也就是说质量消耗单位模块的时间和金钱的乘积。从这里可以看出,完成一个功能,需要达到一定的质量,必须消耗有效的时间或者增加产品的成本投入,由此可以看出为了赶进度,盲目加班赶工是不可取的。