首页 > 其他分享 >安全测试常态化落地方案及日常推进机制

安全测试常态化落地方案及日常推进机制

时间:2023-08-22 10:34:52浏览次数:48  
标签:落地 安全 常态 扫描 接口 漏洞 测试 工单

一、背景

数据安全法实施后,国家监管部门加强了对企业数据安全的监管力度。在这个大的背景下,为保障物流体系系统安全,提前规避安全风险,由测试组牵头制定安全测试流程规范并持续推进安全测试常态化。

二、安全漏洞的类型及危害

1、常见安全漏洞类型

越权类漏洞、上传漏洞、XSS漏洞、CSRF漏洞、SQL注入漏洞、任意文件读取漏洞、反序列化漏洞、CORS漏洞、SSRF漏洞、URL调整漏洞等

2、安全漏洞危害

1. 信息泄露

攻击者可以通过漏洞入侵企业的系统,窃取企业敏感信息,如客户信息、财务数据等。这些信息一旦泄露,将会对企业带来巨大的损失,同时也会损害客户的信任和企业品牌形象

2. 系统瘫痪

攻击者通过漏洞攻击,有可能使企业的整个系统瘫痪。这样的结果直接导致企业无法正常运营,对企业的经济发展产生极大的影响

3. 敲诈勒索

攻击者通过漏洞攻击,可以加密企业的数据,要求企业支付赎金后才会释放数据。这种敲诈勒索方式有可能会让企业陷入经济困境

三、现状分析

目前部门通过【安全工单】的方式接收并处理安全问题。安全工单是由集团安全部下发的工单,包含应用上线时J-ONE自动触发的安全扫描建立的工单以及由安全部、外部白帽子手工测试发现安全漏洞创建的工单。安全工单由部门接口人通知到各应用负责人进行跟进处理。

1、工单来源

1.白盒扫描

2.黑盒扫描

3.JSRC(白帽子提测)

4.其他漏洞

2、工单漏洞类型

1.白盒扫描主要针对组件类漏洞

2.黑盒扫描主要针对配置类漏洞

3.JSRC主要针对业务逻辑漏洞

4.其他:安全组同事发现的业务逻辑漏洞或集团新增的安全检测规则

方式 目的及覆盖漏洞类型
流水线 目的:白盒测试,扫描代码,提前规避 组件类漏洞问题 覆盖漏洞类型:源组件漏洞、XSS、注入类漏洞
黑盒平台 目的:黑盒测试,扫描主机,提前规避 配置类问题、违规开放问题 覆盖漏洞类型:配置类漏洞、违规开放、注入类漏洞、访问伪造
手工测试 目的:弥补工具扫描的不足,挖掘逻辑漏洞 覆盖漏洞类型:逻辑漏洞、文件操作
DCAP安全策略 目的:暴露数据安全类问题 覆盖漏洞类型:数据安全类

3、已有的检测方式

1.白盒扫描:流水线中提供了安全原子

2.黑盒扫描:有页面和接口,可以进行定时扫描

3.IAST平台

4、部门应用分析

目前二级部门应用有200个左右,其中公网应用有京驿APP、京管家APP、外网承运商平台、通联相关应用、货航条线相关应用。分析安全工单数据可知业务逻辑漏洞来源均为公网应用,公网应用直接面对客户,安全治理的优先级最高。

四、安全测试方案制定

1、测试方式

针对现存的逻辑漏洞类型,采取工具接入(白盒、黑盒)+手工测试的方式进行全方位覆盖。

2、逻辑漏洞测试流程

a. 提测标准

  • 所有涉及外网的需求
  • 有大量外部人员使用的内网

b. 提测阶段

需求评审阶段,测试 发起确定是否需要安全测试

  • 测试 评估是否涉及到外网用户的使用场景
  • 产品 评估是否为大量外部人员使用的内网系统(建议15人以上)

c. 测试排期

  • 和功能测试同时排期,测试结束后上线

d. 准出标准

  • 所有安全漏洞修复后上线

五、安全测试方案实施

1、工具接入

1.流水线接入安全原子,针对master分支进行安全扫描

2.定时任务调取黑盒平台api进行安全扫描

3.配置IAST插件进行安全扫描

2、手工测试分阶段进行

a. 第一阶段:存量安全问题治理

1. 成立安全测试小组

邀请安全部门同事进行培训并自主学习安全知识,使特定的人具备安全测试能力:包含工具使用,数据泄露、水平越权、垂直越权等漏洞的挖掘能力

2. 外网平台专项治理

分析长安工单可知目前外网应用存在的主要问题是越权问题,因此针对外网平台进行专项治理。

  • 外网应用接口梳理
  • 首先对包含敏感数据的接口进行治理(后端加Permisson注解,物流网关解析权限配置)
  • 然后对不含敏感数据的接口进行治理

b. 第二阶段:增量需求进行安全测试

  1. 定期在组内进行安全测试分享培训,使组内所有人具备安全测试能力
  2. 提升逻辑漏洞相关知识,逻辑漏洞覆盖范围扩展至XSS、CSRF等漏洞

c. 第三阶段:安全意识的培养

  1. 产品:需求评审过程中针对外网应用提出安全测试的诉求
  2. 研发:开发过程中遵循安全测试规范,规避安全问题
  3. 测试:需求评审过程中针对外网应用提出安全测试要求;代码评审过程中针对权限类、敏感数据类检查是否有权限校验或数据加密;安全测试过程中覆盖常用的安全用例

3、逻辑漏洞挖掘经验

a. 工具使用

BurpSuite安装

b. 通用用例及构造方式

用例名称 步骤 错误结果 预期结果 原理介绍
敏感数据校验 请求包含敏感数据的接口 身份证、手机号、地址等字段未加密 敏感数据加密后返回
垂直越权校验 ①有菜单权限的用户A登录并请求接口 ②无菜单权限的用户B登录 ③用户A的cookie替换成用户B的cookie后重发接口 接口返回成功 接口返回”无权限“
水平越权校验 ①用户A登录并请求具有属性的数据 ②用户B登录 ③用户A的cookie替换成用户B的cookie后重发接口 接口返回成功 接口返回”无权限“
反射型XSS校验 ①输入框中输入 ②点击提交 页面展示‘xss’弹窗 页面无弹窗 逻辑漏洞挖掘之XSS漏洞原理分析及实战演练
存储型XSS校验 ①输入框中输入 ②点击提交 ①数据库落数据: ②再次查看包含该数据的页面,页面弹窗 ①对特殊字符进行转义后存储 ②再次查看包含该数据的页面,无弹窗
CSRF校验 ①用户登录网站A ②未关闭网站A的情况下登录网站B,网站B中包含构造的对网站A的接口请求 接口返回成功 接口返回401 逻辑漏洞挖掘之CSRF漏洞原理分析及实战演练

c. 实例分析

1.敏感数据

问题描述:接口敏感数据未加密

2. 垂直越权

问题描述:不具备菜单权限的测试账号访问接口后可以成功返回数据

3. 存储型XSS

问题描述:漏洞位置其实为两处,此处类似iframe嵌⼊,直接影响两个站点

漏洞证明:发送如下数据包,即可插⼊存储型XSS

4. 反射型XSS

输入万能语句 后并没有弹窗,查看源码可见 <>被转义了

在input标签的value处,没有将我们输入的内容进行严格过滤,所以手动闭合value,再执行脚本 ">

5. CSRF漏洞

问题描述:编写html脚本,构建提交按钮,点击按钮触发接口调用,接口请求中不需要cookie即可请求成功

六、落地成果

安全工单中业务逻辑漏洞类型的工单数量降低了 70%

1.流水线扫描的高风险问题已全部解决

2.外网应用的水平越权、垂直越权问题已全部解决

3.随迭代新增的需求累计挖掘逻辑漏洞 45

方式 目的及覆盖漏洞类型 达到情况 备注
流水线 目的:白盒测试,扫描代码,提前规避 组件类漏洞问题 覆盖漏洞类型:源组件漏洞、XSS、注入类漏洞 44个应用已接入流水线,高风险安全问题全部解决
黑盒平台 目的:黑盒测试,扫描主机,提前规避 配置类问题、违规开放问题 覆盖漏洞类型:配置类漏洞、违规开放、注入类漏洞、访问伪造 外网平台已加入黑盒扫描,扫描的问题全部解决 已接入定时任务,每周一9:00执行
手工测试 目的:弥补工具扫描的不足,挖掘逻辑漏洞 覆盖漏洞类型:逻辑漏洞、文件操作 ①外网平台全方位测试 ②新增需求100%安全测试
DCAP安全策略 目的:暴露数据安全类问题 覆盖漏洞类型:数据安全类 已完成安全策略接入 通过流量监控等方式检测漏洞,发现问题后由安全部门同事确认并提交长安工单(数据安全类型)

七、未来规划

1、安全测试常态化持续推进

2、安全知识持续提升

作者:京东物流 范文君

来源:京东云开发者社区 自猿其说Tech 转载请注明来源

标签:落地,安全,常态,扫描,接口,漏洞,测试,工单
From: https://www.cnblogs.com/Jcloud/p/17647868.html

相关文章

  • SpringBoot 测试实践 - 2:单元测试与集成测试
    单元测试vs.集成测试只编写单测,无法测试方法之间的集成情况,而且某些需求可能会修改多个方法,这可能会影响方法对应的单测,涉及到大量的相关单测的修改,这样的维护成本很高可以把重心放在完善集成测试上,专注从外部判断程序是否符合预期。对于一些非常重要的方法,增加单元测试可以减......
  • 测试过程
    测试是软件开发过程中的一个重要环节,它的目的是为了发现软件中的缺陷和问题,并对其进行修复和改进。测试过程是一个系统的、有组织的过程,包括测试计划、测试设计、测试执行、测试评估等阶段。测试计划:确定测试的目标、范围、资源和时间等,制定测试计划。测试设计:根据需求和设计文档,编......
  • 实用工具类及测试
    实用工具类//实用工具类的实现//避免头文件重复包含#ifndef__M_UTIL_H__#define__M_UTIL_H__#include<iostream>#include<unistd.h>#include<ctime>#include<sys/types.h>#include<sys/stat.h>#include<unistd.h>namespacenmzlog{//......
  • chrony-wait测试
    20关机,21开机,chrony-wait设置开机启动,RemainAfterExit值为no测试准备开机时钟源机器20,一段时间后客户端出现报错信息客户端,时间没有同步。重启chrony-wait服务现在才同步正常,说明chrony-wait运行之后才会是这个样子......
  • pod 反亲和测试验证
    场景需求node节点上不允许有两个一样的pod,即每个节点上每个应用仅仅允许一个pod运行测试yaml[root@k8sNode0podqinhexing]#cattest.yamlapiVersion:apps/v1kind:Deploymentmetadata:name:nginxspec:selector:matchLabels:app:nginxrepli......
  • 实现单元测试和集成测试的.NET最佳实践
    实现单元测试和集成测试的.NET最佳实践在现代软件开发中,测试是确保应用程序质量和稳定性的关键步骤。在.NET开发中,单元测试和集成测试是两种常见的测试类型,它们有助于在开发过程中及时发现和修复问题。本篇博客将介绍.NET中实现单元测试和集成测试的最佳实践,以确保您的应用程序具有......
  • RunnerGo中WebSocket、Dubbo、TCP/IP三种协议接口测试详解
    大家好,RunnerGo作为一款一站式测试平台不断为用户提供更好的使用体验,最近得知RunnerGo新增对,WebSocket、Dubbo、TCP/IP,三种协议API的测试支持,本篇文章跟大家分享一下使用方法。WebSocket协议WebSocket是一种在单个TCP连接上进行全双工通信的API技术。相比于传统的HTTP请求,We......
  • RunnerGo中WebSocket、Dubbo、TCP/IP三种协议接口测试详解
    大家好,RunnerGo作为一款一站式测试平台不断为用户提供更好的使用体验,最近得知RunnerGo新增对,WebSocket、Dubbo、TCP/IP,三种协议API的测试支持,本篇文章跟大家分享一下使用方法。WebSocket协议WebSocket是一种在单个TCP连接上进行全双工通信的API技术。相比于传统的HTTP请......
  • 高频SQL 50题(基础版): 学生们参加各科测试的次数 | 2023-08-21
    问题学生表:Students+---------------+---------+|ColumnName|Type|+---------------+---------+|student_id|int||student_name|varchar|+---------------+---------+在SQL中,主键为student_id(学生ID)。该表内的每一行都记录有学校一名学生......
  • 软件测试|Linux基础教程:ln命令与软链接和硬链接
    简介在Linux系统中,ln命令是一个非常有用的工具,用于创建链接(link),将一个文件或目录链接到另一个位置。链接允许一个文件或目录可以同时存在于多个位置,而不会占用额外的磁盘空间。ln命令支持创建硬链接和软链接两种类型的链接。本文将详细介绍Linux中ln命令的用法、语法以及两种链接类......