• 0
  • 0
分享
  • 安全测试常态化落地方案及日常推进机制——软件测试圈
  • 饼干 2024-06-24 15:45:44 字数 2345 阅读 413 收藏 0

  一、背景

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

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

  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).其他:安全组同事发现的业务逻辑漏洞或集团新增的安全检测规则

1-1.png

  3、已有的检测方式

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

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

  3).IAST平台

  4、部门应用分析

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

  四、安全测试方案制定

  1、测试方式

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

  2、逻辑漏洞测试流程

  a. 提测标准

  ·所有涉及外网的需求

  · 有大量外部人员使用的内网

  b. 提测阶段

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

  · 测试评估是否涉及到外网用户的使用场景

  · 产品评估是否为大量外部人员使用的内网系统(建议15人以上)

  c. 测试排期

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

  d. 准出标准

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

1-2.jpg

  五、安全测试方案实施

  1、工具接入

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

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

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

  2、手工测试分阶段进行

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

  1). 成立安全测试小组

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

  2). 外网平台专项治理

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

  ·外网应用接口梳理

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

  · 然后对不含敏感数据的接口进行治理

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

  1).定期在组内进行安全测试分享培训,使组内所有人具备安全测试能力

  2).提升逻辑漏洞相关知识,逻辑漏洞覆盖范围扩展至XSS、CSRF等漏洞

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

  1).产品:需求评审过程中针对外网应用提出安全测试的诉求

  2).研发:开发过程中遵循安全测试规范,规避安全问题

  3).测试:需求评审过程中针对外网应用提出安全测试要求;代码评审过程中针对权限类、敏感数据类检查是否有权限校验或数据加密;安全测试过程中覆盖常用的安全用例

  3、逻辑漏洞挖掘经验

  a. 工具使用

  b. 通用用例及构造方式

1-3.jpg

  c. 实例分析

  1).敏感数据

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

1-4.jpg

  2). 垂直越权

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

1-5.jpg

  3). 存储型XSS

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

1-6.jpg

1-7.jpg

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

1-8.jpg

  4). 反射型XSS

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

1-9.jpg

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

1-10.jpg

  5). CSRF漏洞

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

1-11.jpg

  六、落地成果

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

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

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

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

1-12.png

  七、未来规划

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

  2、安全知识持续提升


作者:佚名    

来源:http://www.51testing.com/html/58/n-7797558.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 案例设计需求有一个ATM取款系统,现对于取款功能进行了需求变更:只能取面额是100元(如取500,输出5张100元)。现在功能修改为,可以取面额是10元、50元和100元的,其余功能不变,用户界面也没有任何变化,取款原则为“最优吐钞法”,有大额先吐大额,请根据需求变更进行案例设计。参考测试用例大额优先刚好整百的金额,吐出N张100元的刚好为50元,吐出1张50元刚好是50以内的整10元,吐出N张10元取款金额是N百,超过50元,吐出N张100元,1张50元,(M-5)张10元(例如380元,会吐出3张100元,1张50元,8-5张10元)如果是几十元,同时超过50元。那么会吐出1张50元,M-...
            0 0 1019
            分享
          • 通常情况下面试会问到类似的问题,最主要的并不是要说出多么多的测试点,而应该展现的是你的思考方式。一般对于这类型的问题,会从以下几方面入手:功能、外观、性能、安全、兼容、易用性,当然也可能会有一些特殊的测试,因此要结合实际情况考虑。那么对于登陆界面的测试,也主要从以下方面入手:1、功能测试对于登陆界面,常用的功能有账户及密码输入框、注册链接、忘记密码链接、其他方式登陆等,那么我们就要逐一测试这些功能能否正常使用、链接能否正常跳转、提示是否正常等。输入正确的用户账户和密码,能够成功登陆并跳转至正确页面;输入错误的用户账户或密码,校验失败,提示错误信息;什么都不输入,直接点登陆,检查提示信息;检查注...
            0 0 1203
            分享
          •   Charles入门级模拟弱网测试,只需两个步骤,只作为入门参考,不做技术讨论。  连接代理  手机连接代理,下载安装证书。  先在无线网络设置中,修改代理为手动,输入监听的主机名和端口。  在浏览器中直接输入证书下载地址来下载安装证书。  注:charles-Help-SSL Proxying-Install Charles Root Certificate on a Moblie Device or Remote Browser可查看监听的主机地址和端口,以及下载证书的地址。  Charles设置模拟弱网  设置方式:charles-Proxy-Throttle Settings…,勾选...
            0 0 1231
            分享
          • 本篇文章以Java为主线对测试开发进行技术栈分析Java基础知识数据类型8种基本数据类型:byte、short、int、long、float、double、char、boolean3种引用数据类型:类、接口、数组条件语句应用循环语句应用String的常用方法使用,字符串的查找、拼接、替换、删除数组和动态数组(arraylist)hashmap正则表达式java函数,包括函数的定义,参数和返回值Java的异常机制Java命名规范面向对象继承,封装和多态JavaIO概念与文件的读写maven基础,重点是:安装maven环境,创建maven工程,maven工程结构,pom.xml,在ide中使用ma...
            0 0 2975
            分享
      • 51testing软件测试圈微信