广义的安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。狭义的安全性测试以破坏系统的安全策略为目标进行攻击,从而检测系统的漏洞或者薄弱环节,同时它是向合法的用户提供服务,并且能够阻止非授权的用户使用的时候企图或者拒绝的能力。
具体来说,可以分为 app安全 、web安全、数据库安全、服务器安全、功能性安全、网络安全、业务逻辑安全等。
虽然在不同的企业,安全测试的流程有所不同,但是基本上都会有以下步骤,这是从事安全测试的人员必须了解和知道的。
1、前期交互:确认一些信息(比如:何时进行?谁进行?在什么环境进行?等)遵循5W2H原则。
2、信息收集:利用社会工程学收集关于项目的信息(项目是谁开发的,根据谁可以猜测用户名和密码等)。
3、威胁建模:利用收集的信息进行扫描项目。
4、漏洞分析:根据扫描的结果进行漏洞的分析(漏洞存在于子系统或者其他的分支有或者系统的架构等)。
5、漏洞攻击:根据分析的结果 对项目进行攻击,记录攻击的步骤等。
6、后渗透攻击:攻击完成后一般都会留有后门以便下次对修改后的系统进行二次攻击。
7、提交漏洞报告:最最重要的就是将前6个步骤按照此步骤编写成漏洞报告。