研发安全系列讲解——上线前安全测试

admin 2024年2月20日22:46:25评论9 views字数 2813阅读9分22秒阅读模式

建设思路:研发安全系列讲解——应用安全建设之路
框架流程:研发安全系列讲解——我所理解的研发安全
需求设计阶段:研发安全系列讲解——威胁建模从零到一
代码阶段:研发安全系列讲解——代码安全扫描建设
测试阶段:研发安全系列讲解——上线前安全测试
线上阶段:研发安全系列讲解——关于蓝军建设的一些思考
运营阶段:研发安全系列讲解——我所理解的安全运营

隔了很久终于把最后一部分补充上了,到了安全测试阶段代表着软件开发已经接近尾声了,前面的安全需求和安全设计已经完成了开发实现。

01 安全测试目的

在各个公司里面,几乎都是从安全测试开始做起,进而发展成SDL建设的,作为SDL做后的卡点,各个业务只有满足安全需求、安全设计真是落地实施,业务功能检查项均未出现风险点,才可以作为上线的准入条件。

安全测试是对业务安全保证的最重要的手段,在业务上线前与安全部门沟通测试,可以避免业务在上线后出现重大安全问题。安全测试中的另一个分支-渗透测试,也是安全部门提供的特色服务。

02 安全测试内容

安全测试服务一般包括自动化安全扫描,可以通过自制扫描工具或者脚本对提交测试资产进行扫描,通过自动化方式完成安全测试。

安全测试除了自动化的测试外,主要还是手工方面的安全测试,手工测试能发现很多自动化无法覆盖到的地方,包括权限控制方面的问题、登入认证方面的问题等等 

由于安全测试和功能测试方面是有互通的地方,可考虑使用测试团队的力量,将一些常见的、可以流程化的安全测试交于功能测试团队进行测试,可以减轻安全测试一部分压力,并且覆盖性更全面。

03 安全测试流程

公司可以设置安全BP或者安全SE角色,负责与业务团队进行沟通,指导业务团队提交安全测试。

一般情况下,安全测试需要业务团队提交测试环境的IP、域名、功能描述、申请部门、账号等信息,邮件模板如下:

主题:描述产品名字或者具体某一个功能的渗透测试 

申请部门:申请测试的部门 

系统详细说明:(邮件内容或附件) 

测试地址: 

测试账号:

业务上线时间:

笔者当时采用的上述邮件模板提交,安全测试负责人对提交的测试需求进行排期分发。

时间成本很多时候浪费到了分配测试任务,编写测试报告上面。

而后采用了系统,各个业务负责人在系统中进行信息提交,选取对接安全BP进行提交内容审核,是否满足安全测试提测需求、进行优先级分配,根据安全测试人员正在进行工单情况进行分发。

安全测试人员接收到工单提醒后,进行安全测试工作,测试出的漏洞信息会提交到系统关联到相关的提测需求下面,这样每个需求发现多少漏洞,漏洞处于什么状态,都可以进行及时跟踪查看。

测试完成后,安全BP点击系统中的工单结束,自动根据漏洞情况生成业务安全测试报告,包括漏洞数据统计、漏洞修复情况、漏洞细节等等内容。

通过系统可以解放安全测试写报告的成本,专注于安全测试工作,后续的模块化工作均交给系统处理完成。

同时还有个普遍问题-对于安全测试来说,相对于业务团队,一般公司都不会有完全可以支持业务的安全测试人员数量,这样很多安全测试可以依赖自动化安全测试完成。

结合上述系统来说,业务提测人员提交了安全测试需求后,里面有域名、IP等信息,可以直接采用自动化安全测试工具进行扫描,扫描结果直接输出到系统里面,扫描完成后输出安全测试报告。

当然这个不是所有的需求都可以采用自动化形式。这里需要对提测需求有个新的策略,系统提测模板进行更新:

主题:描述产品名字或者具体某一个功能的渗透测试 

申请部门:申请测试的部门 

系统详细说明:(邮件内容或附件) 

测试地址: 

测试账号: 

业务上线时间: 

功能所在系统:内网系统 or 公网系统 

功能是否如下高风险模块:(权限控制、认证防护、数据查询、资金交易等等)

功能是否属于属于重点项目:(重点项目A、重点项目B等等)

增加多项选择,安全BP根据业务选择进行判断,是否直接进入到自动化扫描流程还是需要人工进行安全测试。

进入人工安全测试,对于一些常规化的安全测试选项同样可以依赖于burp插件、浏览器插件等等实现半自动化扫描,将人工精力重点放在越权、逻辑漏洞等无法自动化发现的Case上面。

04 安全测试工具

上面也说了安全测试工具:

  • 自动化工具:黑盒扫描工具、白盒扫描工具等
  • 半自动化扫描工具-基于burpsuite开发拓展、浏览器扫描插件等等
  • 手工工具-burpsuite、fiddler等等

0401 自动化工具

自动化扫描工具可以采购成品,也可以进行自研,成品软件优点是采购过来开箱使用,不足是对于业务的适用性比较低;

自研成本比较高,周期长,但是一但自研完成,和自己公司业务匹配度比较高,效果比成品软件较好。

成品软件比较多,就不列举了,主要说下自研安全测试,该安全测试扫描是与周期性扫描公用一个扫描系统,一但安全BP选取了安全测试进行全自动化扫描流程,黑盒扫描自动创建任务,选取全部POC进行问题扫描。同时扫描内置通用cookie,实现登入后问题扫描。具体可以参见[[研发安全系列讲解——应用安全建设之路]]中关于安全扫描的部分

0402 半自动化工具

这里重点说下半自动化的扫描工具

一个是基于Burp插件开发的自动化扫描工具,插件商店里面都有很多,这里做的主要是基于自己业务特性开发出来的,比如解密插件、注入扫描插件等等,一般情况是自己在做安全测试过程中的积累然后形成小工具,再集成到burp中。

另一个基于浏览器的半自动化扫描工具,这个主要是依赖于chrome的插件开发,chrome插件是可以抓取访问流量的,对于https流量也无需证书安装,里面有两种方式可以考虑使用:

  • 单机扫描:纯单机工具,优点是无需和后台交互,poc随时可以更改,扫描结果自己直接查看,缺点是对浏览器资源的占用比较高,一个poc都要发起一次后台情况,并且插件判断响应是否存在风险点
  • 云端扫描:结合云端扫描,插件仅仅是获取流量,将流量发送到服务器进行扫描,扫描结果发送到插件进行展示,优点是poc在云端,可以实现和黑盒扫描系统联动,缺点是架构比较复杂,插件需要考虑到使用后端扫描服务的认证和结果的接收。
两种方式可以结合使用,如上面所说,要借助测试团队力量,那么就可以采用云端扫描的方式,测试人员安装上安全团队提供的插件,插件实现统一登入,这样测试人员在做自己的功能测试的同时就会把流量发送到扫描系统,结果同时也可以看到。
对于安全测试人员来说,便于自己定制化扫描,可以采用单机版扫描,对于chrome插件开发来说比burp成本较低。

笔者曾基于chrome插件写了只进行xss扫描(一个xss探针)、sql注入扫描(一个时间延迟poc)的插件,在浏览页面的同时只有有漏洞就会自动提示,还是比较好用的,两个poc发送两个请求数据包也不会造成资源的压力。

0403 手工工具

这个没啥可说的,fiddler、burp、chrales等等都是比较有名的安全测试工具。

原文始发于微信公众号(YY的黑板报):研发安全系列讲解——上线前安全测试

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月20日22:46:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   研发安全系列讲解——上线前安全测试https://cn-sec.com/archives/2509912.html

发表评论

匿名网友 填写信息