安全测试
安全测试与渗透的区别
- 安全测试:侧重于安全威胁的建模,系统对来自各个方面、各个层面威胁的全面考量。不局限于Web应用系统,可以应用于任何软硬件系统。
- 渗透测试:侧重于几个点的穿透攻击,以黑客攻击手法从单点找到利用途径,证明系统存在问题。
安全测试分类
- 白盒测试
- 灰盒测试
- 黑盒测试
安全测试流程
很多中小型企业是没有合理的安全测试流程的,原因主要有以下2点:
- 安全与业务沟通协作不当,业务不知道什么时候需要进行安全测试,安全对业务了解太少;
- 安全阻碍了业务的发展(这是很多业务的直观认为,也是安全工作不到位的体现),如:安全测试所需时间、安全测试发现的问题需要修复等等这些都阻碍了系统的预期上线时间;
当然一个好的安全测试流程需要:不断的沟通协调,一个完善系统如:邮件(没有IT系统的情况下)、JIRA、禅道等。
一般而言,安全测试2种情况,这里默认忽略:没有流程,安全测试人员直接硬杠的情况。
主动型安全测试流程
被动型安全测试流程
两种流程主要是提出需求的人员角色不一致,在提出的需求中,需要明确如下的东西:
# 安全测试人员提出需求审批
1.需要测试的对象:地址、是否需要业务方配合(审核注册用户等)、是否需要提供测试账号密码等信息;
2.测试所需的时间:
3.测试可能造成的影响:
4.安全测试用例:如果可能提供一份安全测试用例这样可以让业务方知晓安全会进行哪些攻击;
# 业务方提出安全测试需求
1.需要测试的对象:一般我遇到都是接口测试,就需要提供接口文档;
2.系统上线时间:安全测试需要根据上线时间来安排测试时间,保障时间的充裕;
安全测试周期
安全测试整体而言分为两类:内部安全团队、外部第三方(包括众测)
内部安全测试
- 定期进行安全测试:线上系统全量覆盖测试;
- 业务变更安全测试:新业务、新系统、业务变更等上线前的安全测试,要求快速交付,侧重于高危、严重漏洞的测试;
外部安全测试
采购第三方安全服务或者参与众测,具体的时间周期需要根据公司在安全测试上所投入的资金以及内部安全团队情况来合理安排。(注意针对互联网企业)
- 没有内部安全团队:一个季度,或者最多半年应该进行一次外部第三方安全测试;
- 有内部安全团队(人数较少):半年或者一年;
- 成熟的内部安全团队:一年,如果对团队有信心,在没有合规等保要求下可以不做;
安全测试的注意事项
- 对系统造成不可用影响;如:对server的溢出操作,高频率爬虫;
- 进行一些可能造成数据丢失或产生脏数据的测试尽可能在测试环境进行,测试环境需要做好备份方便回滚;比如:扫描过滤POST请求。
- 如果有安全防护系统,测试期间尽可能对安全测试者的IP进行加白,小心办公网测试拉黑整个办公室的人。
- 测试事后处理:安全测试过程中造成的测试数据删除,以及验证问题存在的后门删除;