一、安全测试
1、广义:安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。
狭义:安全性测试以破坏系统的安全策略为目标进行攻击,从而检测系统的漏洞或者薄弱环节,同时它是向合法的用户提供服务,并且能够阻止非授权的用户使用的时候企图或者拒绝的能力。
2、安全测试与传统测试的不同
2.1、目标不同:传统的测试是以找到程序的BUG 或者缺陷为目标;安全测试是以发现安全隐患为目标
2.2、假设的条件不同:传统的测试是假设导致问题的数据是用户不小心造成的,接口一般考虑的是用户的界面;安全测试假设导致问题的数据是攻击者处心积虑造成的,同时还要攻击者考虑攻击的途径
2.3、思考域不同:传统的测试是以干系人提出的需求以及实现的功能为思考域,安全测试包含传统的思考域同时还具备系统的机制、环境以及应用的安全风险以及安全属性。
2.4、问题发现的模式不同:传统的测试以违反工鞥呢的定义为判断依据;安全测试以违反权限与能力约束为判断依据
二、安全测试分类、
app安全 、web安全、数据库安全、服务器安全、功能性安全、网络安全、业务逻辑安全等
三、安全测试的流程
1、前期交互:确认一些信息(比如:何时进行?谁进行?在什么环境进行?等)遵循5W2H原则
2、信息收集:利用社会工程学 收集关于项目的信息(项目是谁开发的,根据谁可以猜测用户名和密码等)
3、威胁建模:利用收集的信息进行扫描项目
4、漏洞分析:根据扫描的结果进行漏洞的分析(漏洞存在于子系统或者其他的分支有或者系统的架构等)
5、漏洞攻击:根据分析的结果 对项目进行攻击,记录攻击的步骤等
6、后渗透攻击:攻击完成后一般都会留有后门以便下次对修改后的系统进行二次攻击
7、提交漏洞报告:最最重要的就是将前6个步骤按照此步骤编写成漏洞报告
四、常见WEB 10大漏洞排行
1、注入
2、失效的身份认证
3、铭感数据泄露
4、XML 外部实体
5、失效的访问控制
6、安全配置错误
7、跨站脚本
8、不安全的反序列化
9、使用含有漏洞的组件
10、不足的日志记录和监控