什么是安全测试
验证应用程序安全、识潜在安全缺陷的过程
不能证明程序是安全的,只能证明设立的安全策略有效
使非法浸入的代价高于被保护信息的价值
安全测试该从什么入手,该怎么样做
测试人员假扮非法入侵者,采用各种办法试图突破防线。例如:
①想方设法截取或破译口令;
②专门定做软件破坏系统的保护机制;
③故意导致系统失败,企图趁恢复之机非法进入;
④试图通过浏览非保密数据,推导所需信息,等等。
使非法浸入的代价高于被保护信息的价值,有相应、配套的补救措施
为什么要进行安全测试(测试目的)
降低成本(黑客漏洞攻击)
安全测试和功能测试等其他测试的区别
1. 更依赖需求(有更多可能的输入和输出可筛选)
2.目标不同:测试以发现BUG为目标,安全测试以发现安全隐患为目标。
3.假设条件不同:测试假设导致问题的数据是用户不小心造成的,接口一般只考虑用户界面。安全测试假设导致问题的数据是攻击者处心积虑构造的,需要考虑所有可能的攻击途径。
4.思考域不同:测试以系统所具有的功能为思考域。安全测试的思考域不但包括系统的功能,还有系统的机制、外部环境、应用与数据自身安全风险与安全属性等。
5.问题发现模式不同:测试以违反功能定义为判断依据。安全测试以违反权限与能力的约束为判断依据。
安全测试与渗透测试区别
1.出发点差异:渗透测试是以成功入侵系统,证明系统存在安全问题为出发点;而安全测试则是以发现系统所有可能的安全隐患为出发点。
2.视角差异:渗透测试是以攻击者的角度来看待和思考问题,安全测试则是站在防护者角度思考问题,尽量发现所有可能被攻击者利用的安全隐患,并指导其进行修复。
3.覆盖性差异:渗透测试只选取几个点作为测试的目标,而安全测试是在分析系统架构并找出系统所有可能的攻击界面后进行的具有完备性的测试。
4.成本差异:安全测试需要对系统的功能、系统所采用的技术以及系统的架构等进行分析,所以较渗透测试需要投入更多的时间和人力。
5.解决方案差异:渗透测试无法提供有针对性的解决方案;而安全测试会站在开发者的角度分析问题的成因,提供更有效的解决方案。
黑客的动机!
1.Challenge/Prestige - (挑战性和威望)通常在一个社区里面有某些高手进入了某些号称安全性很高的系统里面,对于那个人的威望的树立是很有帮助的。而且这也是意见很有挑战性的事情。
2.Curiosity - (好奇)人就是这样子,你不让我看我非要看!
3.Use/Leverage - (使用和利用)利用电脑传播病毒,或者干其他坏事。
4.Vandalize - (破坏)随便删除别人的资料,或者利用肉鸡攻击其他系统。
5.Steal - (盗窃)偷取一些重要的资料,例如商业资料,客户资料~
软件网站出现安全问题的原因
应用程序经常出现配置错误,或者长期不更新,因为有些人总觉得它们是在“内部”使用的,所以就掉以轻心了。
有已知的漏洞和攻击方法,籍此可以获得远距控制权或获得机密数据
域名、弹出信息给出关键信息数据,没有相应隐藏
威胁进行评级DREAD
A.Damage Potential - (潜在破坏)。威胁的潜在破坏,例如对硬件,财务上的破坏
B.Reproducibility - (重现能力)。这个威胁是每次都能出现呢,还是只是尝试1w次才出现一次
C.Exploitability - (可开发性)。可以危险是不是很容易就被利用了,还是需要高深的编程技巧
D.Affected Users - (受影响用户)E.Discoverability - (容易发现性)这个威胁是不是很容易被发现,还是只有内部人员泄露才会被发现