安全测试
安全防护策略?(漏洞扫描、入侵检查、安全日志、隔离防护)
安全日志:用于记录非法用户的登录名称、操作时间及内容等信息,以便发现问题并提出解决措施;安全日志仅记录相关信息,不对非法行为着床主动反应,属于被动防护的策略;
入侵检测系统:是一种主动的网络安全防护措施,从系统内部或各种网络资源中主动采集信息,从中分析可能的网络入侵或攻击,通常入侵检测系统还应对入侵行为做出紧急响应;
漏洞扫描:对软件系统及网络系统进行与安全相关的检测,以找出安群隐患和可被黑客利用的漏洞;
隔离防护:将系统中的安全部分与非安全部分进行隔离的措施,主要的技术手段有防火墙和隔离网闸等,其中防火墙主要用于内网和外网的逻辑隔离,二网闸则主要用于实现内网和外网的物理隔离。
基本的安全防护系统测试?(防火墙、入侵检测、漏洞扫描、安全审计、病毒防治、Web信息防篡改系统)
防火墙的测试点?
是否支持交换机和路由器两种工作模式
是否支持对HTTP、FTP、SMTP等服务类型的访问控制
是否考虑到了防火墙的冗余设计
是否支持日志的统计分析功能,日志是否可以存储在本地和网络数据库上
对防火墙和受保护网段的非法攻击系统,是否提供多种告警方式和多种告警级别
入侵检测的测试点?
能否在检测到入侵事件时,自动执行切断服务,记录入侵过程,邮件报警等动作
是否支持攻击特征信息的集中式发布和攻击取证信息的分布式上载
能否提供多种方式对监视引擎和检测特征的定期更新服务
内置的网络能否使用状况监控工具和网络监听工具
漏洞扫描的测试点?
能否定期或不定期地使用安全性分析软件,对整个内部系统进行安全扫描,及时发现系统的安全漏洞、报警,并提出补救建议。
病毒防治的测试点?
能否支持多平台的病毒防范
能否支持对服务器的病毒防治
能否支持对电子邮件附件的病毒防治
能否提供对病毒特征信息和检测引擎的定期更新服务
病毒防范范围是否广泛,是否包括UNIX、Linux、Window等操作系统
安全审计的测试点?
能否支持系统数据采集,统一存储、集中进行安全审计
是否支持基于PKI的应用审计
是否支持基于XML的审计数据采集协议
是否提供灵活的自定义审计规则
Web信息防篡改系统的测试点?
是否支持多种操作系统
是否具有集成发布与监控功能,使系统能够区分合法的修改与非法的篡改
是否可以实时发布与备份
是否具备自动监控、自动恢复、自动报警的能力
是否提供日志管理、扫描策略管理、更新管理
安全系统防护体系有哪几层?(实体安全、平台安全、数据安全、通信安全、应用安全、运行安全、管理安全)
安全系统的主要构成:
1、证书业务服务系统测试(功能测试方面、性能测试方面)
2、证书查询验证服务系统测试(功能测试方面、性能测试方面)
3、密钥管理系统测试
功能测试方面需要考虑:
a、是否制定了密钥管理策略;
b、是否具备密钥生成、发送、存储、查询、撤销、恢复等基本功能
c、密钥库管理功能是否完善;
d、密钥管理中心的系统、设备、数据、人员等安全管理是否严密;
e、密钥管理中心的审计、认证、恢复、统计等系统管理是否具备;
f、密钥管理系统与证书认证系统之间是否采用基于身份认证的安全通信协议。
性能测试方面需要考虑:
a、针对按实际需要配置密钥管理系统,利用企业基地并发压力测试工具测试受理点连接数,签发在用证书数目,密钥发放并发请求数是否满足基本的业务需求;
b、测试是否具备系统所需最大量的密钥生成、存储、传送、发布、归档等密钥管理功能
c、测试是否支持密钥5年保存期;
d、是否具备异地容灾设备;
e、是否具备可伸缩配置及扩展能力;
f、关键部分是否采用双机热备份和磁盘镜像。
4、密码服务系统测试(加/解密)
功能测试方面:
a、是否具备基础加解密服务功能;
b、是否为应用提供相对稳定的统一安全服务接口;
c、能否提供对多密码算法的支持;
d、随着业务量的逐渐增加,是否可以灵活地增加密码服务模块,实现性能平滑扩展,且不影响上层的应用系统。
性能测试方面:
a、RSA算法密钥长度能否达到1024~2048位;ECC算法密钥长度能发到达192位;
b、如有必要进行系统速度测试,对应用层的服务器端密码设备测试项:公钥密码算法签名速度、公钥密码算法验证速度、对称密钥密码算法加/解密速度,验证是否满足需求;
c、处理性能如公钥密码算法签名等是否具有扩展能力。
5、可信授权服务系统测试
6、可信时间戳服务系统测试(功能测试方面、性能测试方面)
7、网络信任域系统测试(功能测试方面、性能测试方面)
8、故障恢复与容灾备份测试
故障恢复:测试整个ERP 系统是否存在单点故障;任何一台设备失效时,能否按照预定义的规则实现快速切换;是否采用磁盘镜像技术,实现主机系统到磁盘系统的高速连接。
数据备份:ERP 系统关键业务是否具备必要的双机热备或磁盘镜像等热备份机制;对亍整个ERP 业务,是否提供外部存储器备份和恢复机制,保证系统能够根据备份策略恢复到指定时间的状态。
容灾备份:ERP 系统是否建立异地容灾备份中心,当主中心収生灾难性事件时,可由备份中心接管所有业务;备份中心是否有足够的带宽确保不主中心的数据同步,是否有足够处理能力来接管主中心的业务,能否确保快速可靠地不主中心的应用切换。
9、安全产品的选择
安全性测试方法(功能验证、漏洞扫描、模拟攻击实验、侦听技术)
1、功能验证:采用软件测试当中的黑盒测试方法,对涉及安全的软件功能,如:用户管理模块、权限管理模块、加密系统、认证系统进行测试。
2、漏洞扫描:包括主机漏洞扫描器(系统本地运行检测系统漏洞的程序,如:COPS、Tripewire、Tiger)和网络漏洞扫描器(基于网络远程检测目标网络和主机系统漏洞的程序,如Satan、ISS Internet Scanner)
3、模拟攻击试验:
3.1冒充攻击:攻击者控制企业某台主机,发现其中系统服务中可利用的用户账号,进行口令猜测,从而假装成特定用户,对企业资源进行非法访问。
3.2重演攻击:攻击者通过截获含有身份鉴别信息或授权请求的有效消息,将该消息进行重演,以达到鉴别自身或获得授权的目的,实现对企业资源的访问。
3.3服务拒绝攻击:攻击者通过向认证服务或授权服务发送大量虚假请求,占用系统带宽并造成系统关键服务繁忙,从而使得认证授权服务功能不能正常执行,产生服务拒绝。包括4中类型,如下:
3.3.1服务拒绝型(死亡之ping、泪滴teardrop、UDP洪水、SYN洪水、Land攻击、Smurf攻击、Fraggle攻击、电子邮件炸弹、畸形消息攻击)
3.3.2漏洞木马型攻击(口令猜想、特洛伊木马、缓冲区溢出)
3.3.3信息收集技术(扫描技术、体系结构探测、利用信息服务)
3.3.4伪装欺骗型攻击(DNS高速缓存污染、伪造电子邮件、ARP欺骗、IP欺骗)
4、侦听技术:在数据通信或数据交互过程,对数据进行截取分析的过程。
证书业务服务系统测试
功能测试:
1、证书认证系统是否采用国际密码主管部门审批的签名算法完成签名操作,是否提供证书的签发和管理、证书撤销列表的签发和管理、证书/证书撤销列表的发布以及证书审核注册中心的设立、审核及管理等功能;
2、按使用对象分类,系统是否能提供人员证书、设备证书、机构证书三种类型的证书;
3、是否可以提供加密证书和签名证书;
4、数字证书格式是否采用X.509 V4;
5、系统是否提供证书申请、身份审核、证书下载等服务功能;
6、证书申请、身份审核、证书下载等服务是否都可采用在线或离线两种方式
7、系统是否提供证书认证策略及操作策略管理、自身证书安全管理等证书管理服务;
性能测试:
1、检查证书业务服务系统设计的处理性能是否具备可伸缩配置及扩展的能力;
2、关键部分是否采用双机热备份和磁盘镜像;
3、是否满足系统的丌间断运行、在线故障修复和在线系统升级;
4、是否满足需求说明中预测的最大数量用户正常访问的需求,并且,是否有3~4倍的冗余,如有必要,需要测试系统的并发压力承受能力。
证书查询验证服务系统测试
功能测试:
1、是否能够提供目录管理与证书查询两种重要服务功能;
2、是否能够提供用户网络设置需求,采用集中式和分布式两种方式构建目录管理服务;
3、系统是否能提供证书和证书撤销列表的发布、证书和证书撤销列表的下载、证书和证书撤销列表的更新、证书和证书撤销列表的恢复、基于LDAP技术的目录访问控制服务、目录查询等安全服务功能;
4、是否提供基于OCSP技术的证书在线状态查询服务。
性能测试:
1、系统是否满足一定数量的基本的LDAP查询和OCSP查询并发;
2、是否具备可伸缩配置及扩展能力;
3、是否能为应用系统提供LDAP、OCSP查询接口和C/C++/C#和Java等接口。
可信时间戳服务系统测试
功能测试:
1、能否从可信时间源(授时中心)获取时间,校准时间戳服务器的时间;
2、能否按期宝成时间戳及相关信息;
3、采用公钥技术,能否正确签发可信的时间戳。
性能测试:
1、时间精度能否达到0.1秒或用户的需求水平;
2、验证系统时间戳并发请求数能否达到设计要求;
3、相应服务单元是否具有可扩展性。
网络信任域系统测试
功能测试:
1、系统是否具备接入认证交换机,确保只有合法的才能接入网络;
2、是否具备网络信任域管理系统,进行网络接入管理配置。
性能测试:
1、测试认证时间是否小于0.1或用户的需求水平;
2、测试接入认证并发数是否满足用户需求;
3、验证接入认证交换机是否提供与客户端通信的遵循IEEE 802.1X接口,传输IEEE 802.1X认证数据包;
4、验证是否提供网络信任域管理系统与接入认证交换机间的交互接口。
软件产品安全测试的内容?(用户管理与访问控制、通信机密、安全日志)
用户权限控制测试包含哪几个方面?测试的内容?
(1)对用户权限控制体系合理性的评价,其具体测试内容包括:
是否采用系统管理员、业务领导、操作人员三级分离的管理模式
用户名称是否具有唯一性,口令的强度及口令存储的位置和加密强度等
(2)对用户权限分配合理性的评价,其具体测试内容包括:
用户权限体系本身权限分配的细致程度
特定权限用户访问系统功能的能力测试
用户名称的测试关键?(测试用户名称的唯一性,A、同时存在的用户名称在不考虑大小写的状态下,不能同名,B、对于已经删除或者停用的用户名称,应保留用户记录,并且新的用户名称不能与之同名)
用户口令的测试点?
应注意用户口令的强度、存储位置、加密强度
最大口令时效、最小口令时效、口令历史、口令复杂度、加密选项、口令锁定、口令复位
操作系统安全性的测试点是什么?
是否关闭或卸载了不必要的服务或程序
是否存在不必要的帐户
权限设置是否合理
安装相应的安全补丁程序
操作系统日志管理
数据库权限的测试点是什么?
应用软件部署后,数据库管理用户的设置应当注意对帐户的保护,超级用户口令不得为空或者为默认口令,对数据库帐号和组的权限应做相应的设置,如锁定一些默认的数据库用户,撤销不必要的权限
数据库中关于应用软件用户权限和口令存储的相关表格,应尽量采用加密算法进行加密
软件企业在进行软件产品研发时,开发人员通常为了方便在客户端与数据库通信时,均使用超级用户及默认口令访问数据库,这种方式带来严重的安全隐患,测试人员可以通过网络侦听技术活使用白盒测试进行测试,并且建议开发人员根据不同程序访问数据库的功能使用不同的数据库用户进行连接,且必须设置复杂的密码。
通信加密测试的基本方法?(验证和侦听技术)
安全日志应当记录哪些内容?
记录用户访问系统的所有操作内容,如登录名称、登录ip、登录时间、浏览数据动作、修改数据动作、删除数据动作、退出时间等
安全测试中应当检查安全日志的哪些方面?
测试人员应根据业主要求和设计需求,对日志的完整性、正确性进行测试,测试安全日志是否包含该些内容,是否正确,并且对于大型的应用软件来说,系统是否提供了安全日志的智能分析能力,是否可以按照各种特征项进行日志统计,分析潜在的安全隐患,并且及时发现非法行为
web测试
Web功能测试包括哪些测试?(链接测试、表单测试、Cookies测试、设计语言测试、数据库测试)
链接测试的测试点?测试目的?
链接测试的目的是确保Web应用功能能够成功实现,测试点:
1、链接是否能正确跳转到目标页面;
2、链接的页面是否存在;
3、测试是否存在孤立页面。即只有通过特定URL才能访问到的地址
表单测试的测试点?
1、每个字段的验证;
2、字段的缺省值;
3、表单中的输入;
4、提交操作的完整性。
图形测试的测试点?
(1)颜色饱和度和对比度是否合适;
(2)需要突出的链接的颜色是否容易识别;
(3)是否正确加载所有的图像
对页面设计的测试可以从以下几个方面进行?
(1)页面的一致性如何;
(2)在每个页面上是否设计友好的用户界面和直观的导航系统;
(3)是否考虑多种浏览器的需要;
(4)是否建立了页面文件的命名体系;
(5)是否充分考虑了合适的页面布局技术,如层叠样式表、表格和帧结构等。
Web兼容性测试包括哪些?(平台(操作系统)兼容性、浏览器兼容、移动终端浏览测试、打印测试等)
Web应用安全性测试方面应该考虑哪些?
Web应用安全体系测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密、参数操作、异常管理、审核和日志记录等多个方面进行。
对通过SSL访问的系统,设计测试用例以测试Web应用的安全性?
1、SQL注入测试;
2、测试SSL:某链接URL的https://换成http://;
3、内容访问:https://domain/foo/bar/content.doc(域名和路径为应用的域名和路径)
4、内部URL拷贝:将登录后的某URL拷贝出来,关闭浏览器并重启后将URL粘贴在地址栏访问内部内容。
SQL注入?
例如:判断 "SELECT * FROM Users WHERE User_Name = ' " + strUserName + " ' AND Password = ' " + strPassword + " '; "
①如果输入strUserName:'Zhang'--,strPassword:San 则SQL变为:
SELECT * FROM Users WHERE User_Name='Zhang'-- AND Password='San';
“--”是SQL中注释符号,其后的内容为注释
②strUserName:Zhang'or'a'='a,strPassword:San'or'a'='a 则SQL变为:
SELECT * FROM Users WHERE User_Name=' Zhang' or 'a'='a' AND Password='San' or 'a'='a';
因为'a'='a'条件总是成了,因此,SQL执行结果包括用户表中所有行。
③strUserName:Zhang';DROP table users_details;'-- 则SQL变为:
SELECT * FROM Users WHERE User_Name='Zhang'; DROP table users_details; '--' AND Password='San';
这就造成数据库中users_details表被永久删除。
防止SQL注入的方法主要?拼接SQL之前对特殊符号进行转义,使其不作为SQL语句的功能符号。
XSS攻击?
跨站点脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。
1:< IMG SRC="javascript:alert('XSS攻击');" >;
2:< IMG SRC="javascrip\r\nt:alert(‘XSS攻击’);“ >(说明:在javascript中的每个字符间加入回车换行符)
3:<script>alert("xss")</script>
防御XSS攻击方法?
1.验证所有输入数据,有效检测攻击;
2.对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。
防御规则?
1.不要在允许位置插入不可信数据;
2.在向HTML元素内容插入不可信数据前对HTML解码;
3.在向HTML常见属性插入不可信数据前进行属性解码;
4.在向HTML JavaScript DATA Values插入不可信数据前,进行JavaScript解码;
5.在向HTML样式属性插入不可信数据前,进行CSS解码;
6.在向HTML URL属性插入不可信数据前,进行URL解码。
黑白盒测试
因果图设计方法步骤:
1、分析程序规格说明的描述中,哪些是原因,哪些是结果。原因长城是输入条件或是输入条件的等价类,而结果是输出条件;
2、分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的“因果图”;
3、标明约束条件。由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。为表明这些特定的情况,在因果图上使用若干个标准的符号表明约束条件;
4、把因果图转换成判定表;
5、位判定表中每一列表示的情况设计测试用例。
判定表步骤:
1、确定规格的个数。加入有n个条件,每哥条件有两个取值(0,1),故有2n中规则;
2、累成所有的条件桩和动作桩;
3、填入条件项;
4、填入动作项。制定初始判定表;
5、简化。合并相似规则或者相同动作。
基本路径测试法概念?
基本路径测试法在程序控制流图的基础上,通过分析控制流图的环路复杂度,导出基本可执行路径的集合,然后据此设计测试用例。设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次。
压力测试
系统的负载压力只要有哪些?(并发性能测试、疲劳强度测试、大数据量测试)
负载压力测试指标分几类?(客户端交易处理指标、服务器资源监控指标、数据库资源监控指标、Web服务器监控资源指标、中间件监控指标)
什么是负载测试?
通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
什么是压力测试?
通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载情况下,系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试,压力测试是一种特定的负载测试。
什么是并发性测试?
逐步增加并发用户数负载,直到系统的瓶颈或不可接受的性能点,通过综合分析交易执行指标、资源指标等来确定系统并发性能的过程。
什么是疲劳强度测试?
通常是采用系统稳定运行情况下能够支持的最大并发用户数,或者日常运行用户数,持续执行一段时间业务,保证达到系统疲劳强度需求的业务量,通过综合分析交易执行指标和资源监控指标,来确定系统处理最大工作量强度的性能测试过程。
什么是大数据量测试?(独立的数据量测试和综合的数据量测试)
性能测试的步骤是什么?
制定目标和分析系统
选择测试度量的方法
学校相关的技术和工具
定制评估标准
设计测试用例
运行测试动力
分析测试结果
随着并发数的递增,交易执行成功率下降的原因?1、服务器端架构设计不合理,2、服务器端参数设置不合理,3、软件系统实现存在问题。
可靠性
可靠性(成熟性、容错性、易恢复性)
可靠性是指产品在规定的条件下和规定的时间内软件不引起系统失效的概率。
可靠性测试的广义定义与狭义定义是什么?
广义可靠性测试:是为了最终评价软件系统的可靠性而运用建模、统计、实验、分析、评价等一系列手段对软件系统实施的一种测试
狭义可靠性测试:是为了获取可靠性数据,按预先确定的测试用例,在软件的预期使用环境中,对软件实施的一种测试
编号 | 可靠性定量指标 | 说明 |
1 | 失效概率F(t) | 指时间t内,软件发生失效的概率 |
2 | 可靠度R(t) | 在规定条件下,时间t内不发生失效的概率 |
3 | 失效强度 | 单位时间软件系统出现失效的概率 |
4 | 失效率 | 时间t内软件未失效,之后△t时间软件系统出现失效的概率 |
5 | 平均无失效时间MTTF | 软件运行后,到下一次出现失效的平均时间TimeTo |
6 | 平均修复时间MTRF | 累加修复实测时间后的均值Time Repair |
7 | 平均无故障时间MTBF | 累加间隔故障时段后的均值Time Between |
从技术的角度看影响软件可靠性的主要因素有哪些?
运行剖面、软件规模、软件内部结构、软件开发方法和环境、软件的可靠性投入
软件可靠性模型通常有哪几部分组成?
模型假设、性能度量、参数估计方法、数据要求
一个好的软件可靠性模型应具有哪些重要特性?
基于可靠的假设、简单、计算一些有用的量、给出未来失效行为的好的映射、可广泛应用
软件可靠性模型有哪几种分类?
种子法、失效率类、曲线拟合法、可靠性增长模型、程序结构分析模型、输入域分类模型、执行路径分析方法、非齐次松过程模型、马尔可夫过程模型、贝叶斯类模型
可靠性定量指标有哪些?
当前的可靠度、平均无失效时间、故障密度、期望达到规定可靠性目标的日期、达到规定的可靠性目标的成本要求
软件可靠性设计技术主要有哪些?
容错设计技术、检错技术、降低复杂度设计
软件可靠度R(t)和软件失效概率F(t)之间的关系为:R(t)=1- F(t)
失效率:λ(t)=F(t)/R(t);λ(t)=(1-R(t))/t(可靠度大于0.95)
可靠性测试的目的?
1、发现软件系统在需求、设计、编码、测试、实施等方面的各种缺陷;
2、为软件的使用和维护提供可靠性数据;
3、确认软件是否达到可靠性的定量要求。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取