本文目录一览:
- 1、软件渗透测试,有了解软件渗透测试的吗(安全测试方面)?可以介绍一些测试方法和测试流程吗?
- 2、软件的安全性应从哪几个方面去测试?
- 3、软件安全性测试包括哪些方面
- 4、软件测试和渗透测 试有什么区别?
软件渗透测试,有了解软件渗透测试的吗(安全测试方面)?可以介绍一些测试方法和测试流程吗?
安全测试、渗透测试、安全渗透测试。。。乍一看到这么多相似的概念,感觉晕晕的。今天主要沉淀一下自己对渗透测试的理解,同时希望对大家也有所帮助。
首先,安全测试是侧重于应用程序所面对对安全威胁而进行的有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。目的并不最终证明应用程序是安全的,而是用于验证存在哪些安全漏洞,来确保应用程序的安全。
渗透测试是以黑客的角度,由企业外部或在企业内部对目标网络环境作深入的安全探测,从外部或内部网络收集系统的相关信息,探查出逻辑性更强、更深层次的漏洞,预先找出企业脆弱的环节。渗透测试的目的不是为了确认功能,而是确认不再存在不安全的功能。渗透测试最简单直接的解释就是:完全站在攻击者角度对目标系统进行的安全性测试过程。
通过对安全测试和渗透测试概念和目的的理解,安全测试和渗透测试的关系是:安全测试包含部分渗透测试。
那如何来理解渗透呢?最开始看到这个词,我就想渗透什么呢?从哪开始渗透?渗透到哪去?我先介绍下渗透(Fuzz)是怎么来的。Fuzz这个名词来自于Professor Barton Miller。在1986年一个风雨交加的夜晚,他登陆一台自己的主机,不知道怎么回事,信号通过猫传到主机上,雷电一闪,把里面的高位变低位,低位至高 位了,结果到了主机以后改变了。Miller 由此想到了利用“crash、break、destroy”的方式来进行软件测试的技术——Fuzz。这个故事让我想到一个有点恐怖的场景,就是毒药从嘴里一直渗透到胃里、心里。。。最后中毒身亡。
接下来,解决前面的三个疑问。从哪里开始渗透呢?——软件及环境中可能发生变化的部分。从安全角度来看,环境、用户输入以及内部数据和逻辑是此类变化可能暴露出安全问题的主要位置。环境包括文件、应用程序、系统资源和应用程序使用的其他本地或网络资源。所有这些都可能成为渗透的入口点。渗透什么呢?——malformed数据。这个数据有可能是一个文件,有可能是一个数据包,有可能是测试表里面的一个项,有可能是临时文件里面的一个东西,总之是malformed这种非正常的数据。渗透到哪里呢?要考虑到应用程序本身执行的流程,考虑case放进去,能够放到多深,逻辑放到多深,就要非常了解应用程序内部结构。渗透测试是一个渐进并且逐步深入的过程。
渗透测试一定是黑盒的吗?很多技术人员对这个问题都存在这个错误的理解。渗透测试不只是要模拟外部黑客的入侵,同时,防止内部人员的有意识(无意识)攻击也是很有必要的。这时,安全测试人员可以被告之包括代码片段来内的有关于系统的一些信息。这时,它就满足灰盒甚至白盒测试。
软件的安全性应从哪几个方面去测试?
一、用户认证安全的测试:
1、明确区分系统中不同用户权限
2、系统中会不会出现用户冲突
3、系统会不会因用户的权限的改变造成混乱
4、用户登陆密码是否是可见、可复制
5、是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)
6、用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
二、系统网络安全的测试
1、测试采取的防护措施是否正确装配好,有关系统的补丁是否打上
2、模拟非授权攻击,看防护系统是否坚固
3、采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP )
4、采用各种木马检查工具检查系统木马情况
5、采用各种防外挂工具检查系统各组程序的客外挂漏洞
三、 数据库安全测试:
1、系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)
2、系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)
3、系统数据可管理性
4、系统数据的独立性
5、系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)
软件安全性测试包括哪些方面
软件安全性测试包括程序、网络、数据库安全性测试,根据系统安全指标不同测试策略也不同。
1、用户程序安全的测试要考虑问题包括:
① 明确区分系统中不同用户权限。
② 系统中会不会出现用户冲突。
③ 系统会不会因用户的权限的改变造成混乱。
④ 用户登陆密码是否是可见、可复制。
⑤ 是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)。
⑥ 用户推出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统。
2、系统网络安全的测试要考虑问题包括:
① 测试采取的防护措施是否正确装配好,有关系统的补丁是否打上。
② 模拟非授权攻击,看防护系统是否坚固。
③ 采用成熟的网络漏洞检查工具检查系统相关漏洞。
④ 采用各种木马检查工具检查系统木马情况。
⑤ 采用各种防外挂工具检查系统各组程序的客外挂漏洞。
3、数据库安全考虑问题:
① 系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)。
② 系统数据的完整性。
③ 系统数据可管理性。
④ 系统数据的独立性。
⑤ 系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)。
软件测试和渗透测 试有什么区别?
1、测试对象不同
软件测试:主要测试的是程序、数据、文档。
渗透测试:对象主要为网络设备、主机操作系统、数据库系统和应用系统。
2、测试内容不同
软件测试:主要工作内容是验证和确认,发现软件中的缺陷或者不足,然后把发现的问题整理成报告并分析出软件质量的好坏。验证是保证软件正确地实现了一些特定功能的一系列活动;确认是一系列的活动和过程,目的是想证实一个给定的外部环境中软件的逻辑正确性,即保证软件做了你所期望的事情。
渗透测试:主要包括黑盒测试、白盒测试和灰盒测试。主要做的工作有:信息收集、端口扫描、权限提升、远程溢出攻击、Web应用测试、SQL注入攻击、检测页面隐藏字段、跨站攻击、Cookie利用、后门程序检查、第三方软件误配置等。
3、测试原则不同
软件测试:
①测试应该尽早进行;
②软件测试应该由第三方来负责;
③设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件;
④应该充分注意测试中的群集现象;
⑤对错误结果要进行一个确认过程;
⑥制定严格的测试计划;
⑦妥善保存测试计划、测试用例、出错统计和最终分析报告。
渗透测试:
①测试验证时间放在业务量最小的时间进行;
②测试执行前确保相关数据进行备份;
③所有测试在执行前和维护人员进行沟通确认;
④在测试过程中出现异常情况时立即停止测试并及时恢复系统;
⑤对原始业务系统进行一个完全的镜像环境,在镜像环境上进行渗透测试。
总而言之,软件测试更多的是以正常使用者的角度为出发点,测试软件的可用性;而渗透测试则是以极端攻击者的角度出发,测试系统的安全性。