软件测试·系统测试·安全性测试
软件测试主要是为了测试发现软件系统中的BUG,并进行改正,以保证在软件交付给客户是能够保证客户需求达到实现。但在交付之后,并不意味着软件就不会再出现错误,哪怕软件的运行BUG已经完全被解决,而病毒及非法黑客的入侵往往造成的损失比软件自身的BUG还大。因此在软件测试中进行安全性的测试成为一个不可缺少的环节。在实现安全性的测试时,软件工程师则把其放在了系统测试这一环节中,因为系统测试是为了软件能够在与其他程序配合使用时的稳定性,也就是说系统测试更加接近我们软件运行的日常环境。大家都知道病毒的载入往往是由其他程序引入的,而黑客则是在日常的大网络环境中利用软件的安全漏洞来达到其入侵的目的,因此在系统测试这一最接近日常运行环境的条件下进行测试是最理想也是最能达到测试目的的。
安全性测试是这样定义的,安全性测试是检查系统对非法入侵的防范能力,其目的是为了发现软件系统中是否存在安全漏洞。这里涉及的软件安全性则是指在非正常环境下软件不会发生安全事故的能力。
既然已经知道软件安全性测试是什么了,那么我们是怎么在系统测试中进行软件安全性的测试的?
软件测试人员在进行测试事,是由测试人员来担当攻击系统的类黑客角色,测试人员运用各种手段来试图达到攻击系统,得到系统信息的目的。可以通过网络的病毒载入,同过外围手段,或者通过其他软件来得到目的,总的来说,测试人员应当模拟出实际攻击人员会运用的手段来发现系统的安全漏洞。
在测试时,测试人员根据攻击人员常用的攻击方式,进行了分析,制定了合适的有效的安全性测试方法,主要有以下几种方法:
1.功能验证:
功能采用类似于黑盒测试的方法对功能模块中涉及到安全性的模块进行测试,如用户管理系统、加密系统、权限管理系统及认证系统等。主要有以下几个方面:
1.有效的密码是否接受,无效的密码是否拒绝。
2.系统对于无效用户或密码登陆是否有提示。
3.用户是否会自动超时退出,超时的时间是否合理。
4.各级用户权限划分是否合理。
当然,在测试的时候,不仅仅只有这么几个方面,还有其他的如系统数据配置,防火墙等方面的详细测试。
2.漏洞扫描:
安全漏洞扫描主要是借助于特定的漏洞扫描器完成的。通过使用漏洞扫描器,系统管理员能够发现系统存在的安全漏洞,从而在系统安全中及时修补漏洞的措施。 一般漏洞扫描分为两种类型:主机漏洞扫描器是指在系统本地运行检测系统漏洞的程序。网络漏洞扫描器是指基于网络远程检测目标网络和主机系统漏洞的程序。
3.模拟攻击实验:
对于安全测试来说,模拟攻击测试是一组特殊的极端的测试方法,我们以模拟攻击来验证软件系统的安全防护能力。
系统安全测试的内容,它主要包括:
1.应用程序安全测试
2.操作系统安全测试
3.数据库安全测试
4.IIS服务器安全测试
5.网络环境安全测试
当然在这里我主要讲的是我做过的项目系统中需要测试的内容,对不同的系统安全性测试的内容也不一样,这个需要结合项目本身的情况和用户使用环境来确定测试的内容。在测试时往往会模拟以下几种攻击方式:
1.冒充:口令猜测,缓冲区溢出;
2.重演;
3.消息篡改:DNS高速缓存污染,伪造电子邮件;
4.服务拒绝:死亡Ping,泪滴,UDP洪水,SYN洪水,Land攻击,Smurf攻击,Fraggle攻击,电子邮件炸弹,畸形消息攻击;
5.内部攻击;
6.外部攻击;
7.陷阱门;
8.特洛伊木马;
4.侦听技术:
侦听技术实际上就是对数据交互的数据信号进行捕获分析的一种抓包技术。也是目前最为流行的网络数据包捕手段;相反测试人员也能利用这项技术进行网络加密的 测试;
既然有了安全性的测试,则必定需要制定一个安全性的标准,来确定一个软件的安全性则们才算符合我们的安全需求。因此有了安全性标准。配合上安全性标准则为安全性的测试提供了更有效的支持。