系统的安全测试
1. 安全测试,什么是安全测试。安全性测试(Security test)它是指:在测试软件系统中对程序的危险防止和危险处理进行的测试,以验证其是否有效。
2. 安全性测试我们要做哪些工作呢?
a.全面检验软件在软件需求规格说明中规定的防止危险状态措施的有效性和在每一个危险状态下的处理反应情况;
b.对软件设计中用于提高安全性的逻辑结构、处理方案,进行针对性测试;
c.在异常条件下测试软件,以表明不会因可能的单个或多个输入错误而导致不安全状态
d.用错误的安全性关键操作进行测试,以验证系统对这些操作错误的反应;
e.对安全性关键的软件单元功能模块要单独进行加强的测试以确认其满足安全性需求。
3. 安全性测试方法
1.功能验证
功能验证是采用软件测试当中的黑盒测试方法,对涉及安全的
软件功能,如:用户管理模块,权限管理,加密系统,认证系
统等进行测试,主要验证上述功能是否有效。
2.漏洞扫描
安全漏洞扫描主要是借助于特定的漏洞扫描器完成的。通过使
用漏洞扫描器,系统管理员能够发现系统存在的安全漏洞,
从而在系统安全中及时修补漏洞的措施。一般漏洞扫描分为
两种类型:主机漏洞扫描器是指在系统本地运行检测系统漏
洞的程序。网络漏洞扫描器是指基于网络远程检测目标网络
和主机系统漏洞的程序。
3.模拟攻击
对于安全测试来说,模拟攻击测试是一组特殊的极端的测试方
法,我们以模拟攻击来验证软件系统的安全防护能力。
刚才我们主要讲了两个内容:1.系统安全测试要我们做的哪些工作。
2.系统安全测试的方法。
下面我们切入主题讲系统的安全测试,都要测试哪些东西
1. 系统安全测试的内容:它主要包括
1.应用程序安全测试
2.操作系统安全测试
3.数据库安全测试
4.IIS服务器安全测试
5.网络环境安全测试
当然在这里我主要讲的是我做过的项目系统中需要测试的内容,对不同的系统安全性测试的内容也不一样,这个需要结合项目本身的情况和用户使用环境来确定测试的内容。
第一部分
应用程序的安全性:
包括对数据或业务功能的访问,在预期的安全性情况下,操作者只能访问应用程序的特定功能、有限的数据。其测试是核实操作者只能访问其所属用户类型已被授权访问的那些功能或数据。测试时,确定有不同权限的用户类型,创建各用户类型并用各用户类型所特有的事务来核实其权限,最后修改用户类型并为相同的用户重新运行测试。
应用程序的安全性问题:
我主要是结合我们刚才讲的安全性测试方法中,对于不同的安全性测试策略列举了不同的问题,当然我列的不全,在这里我主要是告诉大家一个测试的思路,因为对于不同的安全性问题大家有或许有不同的看法,所以我只列举了部分问题给大家参考。
功能验证
1.有效的密码是否接受,无效的密码是否拒绝。
2.系统对于无效用户或密码登陆是否有提示。
3.用户是否会自动超时退出,超时的时间是否合理。
4.各级用户权限划分是否合理。
漏洞扫描
无
模拟攻击
1.系统是否允许极端或不正常的登陆方式访问。(如
拷贝软件系统中的某个功能点的url地址,然后直接
通过IE访问看是否成功)
第二部分
系统安全性:
注意(这里的系统指的是操作系统也就是应用程序所运行的操作系统)
系统安全测试:
可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问,包括对系统的登录或远程访问。其测试是核实只有具备系统和应用程序访问权限的操作者才能访问系统和应用程序。
操作系统安全测试
l 帐号和口令
l 网络与服务
l 文件系统
l 日志审核
l 其它安全设置
帐号和口令
1、 对主机或域上用户强制进行口令复杂度。
2、 检查系统是否使用默认管理员帐号。
3、 检查在系统中是否存在可疑或与系统无关的帐号。
4、 检查系统用户是否有口令最短和口令长度要求。
5、 检查系统用户是否有密码过期策略。
6、
网络与服务
1、 查看主机开放的共享,关掉不必要的共享和系统默认的共享服务。
2、 查看主机进程信息。(不允许系统中安装有与应用服务无关的应用程序)
3、 查看系统启动的服务列表。
4、 查看系统启用的端口号。
5、 查看系统是否制定操作系统的备份恢复策略服务
文件系统
文件系统的安全主要是检查主机磁盘分区类型和某些特定目录的权限。
注意:服务器应使用具有安全特性的NTFS格式,而不应该使用FAT或FAT32分区(上述描述的内容主要是针对windows操作系统)。
日志审核
日志的审核主要是检查主机日志的审核情况。
它主要包括:
1.应用程序日志。(运行在操作系统上的程序产生的)
2.安全日志。(用户登录系统的日志)
3.系统日志。
其它安全设置
1、 系统补丁漏洞。
2、 登陆系统操作的用户的权限。
3、 病毒防治。
4、 系统日志是否有备份功能。
5、 数据的备份与恢复。
6、 系统上卸载与无关组件或应用程序。
第三部分
数据库安全测试
数据库安全
在管理和维护数据库的过程中为了保障数据库安全我们从以下几方面限制数据库访问安全:
1、限制能访问Oracle数据库的客户端,指定的IP才可以访问,防止恶意的用户登陆。
2、即使有访问Oracle数据库的机会,帐户的密码使用强口令和其他登陆策略,恶意用户也无法轻松进入。
3、为每个登陆帐户设置了合适的权限,执行改变数据库状态的权限需要得到管理员的授权,确保了系统合法帐户对数据库的操作安全。
解决办法
1.无关IP禁止访问
方法一:在Oracle服务器的SQLNet.Ora文件中设置允许访问的IP地址,或不允许访问的IP地址;
方法二:在Oracle服务器上使用NetManager工具设置;
2.用户密码为强口令
锁定不用的默认帐户,如scott;
更改使用的默认帐户的口令,这些帐户的密码是公开的,安装时自动建立,如帐户system密码manager为确保安全默认帐户必须修改密码;
密码使用强口令,即数字、特殊字符、字母组成的至少8未的密码;
设置密码失效的策略文件profile,可在控制台中设置。
3.用户赋予适当的权限
不要每个帐户都设置DBA权限,把系统所有操作暴露给每个用户;
每个帐户仅赋予它完成操作所需要的权限;不要轻易为帐户赋予delete或delete any权限,确保数据不会被误删除;
数据库安全(sql server)
1、关闭服务器端的tcp/ip协议服务。
2、数据库用户登录方式选择sql server身份认证。
3、设置用户访问指定的数据库。
4、设置用户对数据库中的对象有指定的操作权限。
5、查看数据是否有定期自动备份的操作。
第四部分
IIS服务器安全测试
1、IIS基础服务组件安装情况。(根据系统情况合理的安装,减少安装不必要的服务控件)
2、查看IIS日志是否启用,日志存储路径以及日志记录选项
3、IIS主目录路径和目录访问权限的设置。
(注意:1.目录建议不要和系统盘符设置在同一路径下,
2.目录访问权限根据所在项目系统的实际情况来设置,通常只启用”读取”权限,记录访问和索引资料权限跟系统的安全无关都默认启用,因为所用的internet用户访问的目录就是IIS设定主目录)
4、默认文档的启用。
5、访问控制的身份验证。
6、连接超时功能的设置(可以根据项目的安全要求具体的可参考系统需求规格说明书来进行合理的设置)。
7、安全补丁的更新和安装情况
第五部分
网络环境安全测试
主要检测的是系统所在局域网内的网络环境的的安全设置,根据情况可以忽略。
1.备份和升级情况
2.访问控制情况
3.网络服务情况
4.路由协议情况