安全测试:是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程。
应用软件的安全性测试
-软件自身程序设计中存在的安全隐患,并检查应用程序对非法入侵的防范能力。
系统级别的安全性测试
-确保只具备系统平台访问权限的用户才能访问,包括对系统对登录或远程访问。
导致软件出现安全问题的主要原因或根源是软件的安全漏洞
安全漏洞:特指软件在硬件、软件、协议在逻辑设计、具体实现或系统安全策略上存在的缺陷或错误。
-漏洞的产生主要是由于开发者不正确和不安全的编程引起。
-不法者可以通过漏洞获取系统额外权限,并对系统植入木马、病毒以窃取系统资料。
-威胁到系统安全的错误才是漏洞。
安全漏洞的危害
-系统完整性:非法篡改破坏数据完整性
-系统可用性:破坏系统或者网络,导致服务不可用
-系统机密性:泄漏个人或者企业的隐私信息
-系统可靠性:造成系统不能正常提供有效服务
软件安全测试的方法
代码安全性测试
- 主要通过对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其特有软件安全规则库进行比对,从中找出代码中潜在等安全漏洞
渗透测试
- 主要使用自动化工具或者人工等方法模拟黑客等输入,对应用系统进行攻击性测试,从中找出运行时所存在对安全漏洞
程序数据扫描
- 数据扫描对手段通常是进行内存测试,内存测试可以发现许多诸如缓冲区溢出之类对漏洞,而这类漏洞使用除此之外对测试手段都难以发现。
软件安全测试内容
功能验证
- 对涉及到安全的软件功能进行有效性验证,如管理模块、权限模块、加密系统、认证系统等。
模拟攻击
- 模拟攻击测试是一组特殊等极端等测试方法,以模拟攻击方式来验证软件系统等安全防护能力。
漏洞扫描
- 安全漏洞扫描主要是借助于特定等漏洞扫描器完成的,系统管理员能够发现系统存在等安全漏洞
倾听技术
- 倾听技术也称网络监听,可以获取网络上传输的信息,如果从获取的信息中提取到系统的隐私数据,就说明系统存在安全性问题。
软件安全测试的过程
基于安全需求,将系统可能面临的安全问题进行分类,画出威胁树,可以针对威胁树选择应对的方法和技术,是为需求分析。
-
基于威胁模型制定计划
以口令安全问题威胁树为例,计划就可基于口令安全可能遭受的各种攻击进行制定。
-
规划最小测试单位
并不是模块整体都有安全问题,只需要关注出问题对最小范围即可
-
对系统的可能漏洞进行分级
对系统漏洞按照不同对优先级进行测试
-
设计安全测试用例
根据漏洞类型,精心准备数据,设计测试用例进行测试[用户权限测试;不同账号登录;密码测试:拆密码、暴力破解;session测试使用不登录进入;验证7*24运作状态;则进行系统持续✅观察]
-
模拟攻击系统
根据用例模拟攻击系统,查看系统对状态
- 总结执行结果,提出解决方案
执行用例,得到结果,根据结果现象提出解决方案