去哪儿网

去哪儿是全球最大的中文在线旅行网站,创立于2005年。去哪儿网为消费者提供国内外特价机票、酒店、旅游度假、景点门票产品一站式预订服务,为旅游行业合作伙伴提供在线技术、移动技术解决方案。去哪儿近年来,接连发力大数据与人工智能,利用出游、住宿等领域的全量数据和人工智能,为用户打造智能化搜索、排序、推荐等服务。目前,去哪儿用户累计超6亿,平台年交易额超1600亿,且仍在快速发展中。

作为洞态 IAST 最早期版本的用户,去哪儿在 IAST 与其 Q-SDL 安全体系的融合适配上有着独到的见解,十分感谢去哪儿 Q-SDL 负责人耿朋敲对本次 IAST 实践的分享。

01 安全背景

去哪儿是典型的互联网公司,其安全建设路线适用于绝大多数从业者参考。

从基础安全细分到SDL领域,作为⼤多数安全⼯程师⽇常⼯作之⼀,⾃动化、平台化、有效运营也⼀直是安全体系建设中很重要的⼀环。

DAST最早发展,SAST紧跟其后,IAST后起 之秀,应求同存异互为补充,并不能割裂的看待⿊⽩灰三款产品。

--安全乐观主义点评

新政策、新业务、新威胁

近年来,国家愈发重视信息安全,《网络安全法》、《数据安全法》、《个人信息保护法》相继出台并施行,对互联网企业提出了更严格的安全要求。在业务上,互联网企业的业务边界不断拓宽,用户和年交易额等均实现持续发展,业务保障需求更强。但技术研发成本不断攀升、盈利增速下降都促使着以业务为主的企业,更加注重在安全上的“高产出”。据可查数据,自疫情爆发以来,黑客针对国内互联网企业的攻击几乎呈现指数级增长,企业面临的安全威胁极大。

在这样的背景下,互联网企业的网络安全能力建设,尤其是应用开发期的安全能力建设显得格外重要。阿里、腾讯、字节、去哪儿、轻松筹等企业均在着力强化应用安全开发,试图在应用开发期便大幅降低安全风险。DevSecOps 流程、SDL 流程在各企业都已早早落地实践运行,并打造适配其业务场景的安全体系。

安全需求

安全建设的需求来源于法律政策、用户信任、金融合规等。

研发安全说白了就是各种“扫”,引入新的IAST技术降本增效提高生产力是SDL运营的必经之路。

还有两个隐含的需求:一、公司里没有那么多专业的安全开发去做新产品;二、存量漏洞不断被发现,增量如何管控,我们真的安全左移了吗?

--安全乐观主义点评

去哪儿结合自身实际,打造了 Q-SDL 体系。Q-SDL 体系通过预防、检测和监控措施相结合的方式,减少设计、开发中的软件的漏洞数量和严重性问题,降低应用安全开发和维护的总成本,保证系统的安全性。

未上线 IAST 前的 Q-SDL 体系架构

从上图可知,用于安全漏洞检测的自动化工具仅包括 SAST 和 DAST,但 SAST 和 DAST 均具有不可避免的严重缺陷。

我们在实际运行中发现,白盒测试存在误报率高、审计时策略规则失效明显、扫描效率低下严重阻碍开发节奏等问题,尤其是无法获取漏洞数据对安全部门造成了很大困扰。而黑盒覆盖范围有限,覆盖率依赖于 Explore 的结果,无法扫描 AJAX、CSRF Token、验证码等页面,无法测试 APP,无法定位漏洞的具体代码,需要花费较长时间与人力来进行漏洞定位与原因分析。

去哪儿急需一款能够弥补黑盒和白盒不足的产品来完善 Q-SDL 体系。

02 调研之路 

千⾥之堤毁于蚁穴,与外挂式安全产品不同,对业务⽽⾔IAST的性能/稳定性/可⽤性保障是优先于其安全增益属性的,需要先考虑可实施性,在其之上再考虑安全能⼒。

Agent端作为sensor轻量化的设计解耦安全逻辑,其性能及维护成本优势显⽽易⻅。污点跟踪与传播,被动式的基于堆栈数据流维度漏洞检测分析与SAST殊途同归。

在最近Log4j2推修中,各家苦于收集受影响资产时,拓展性的SCA将成为有效助⼒的解决⽅案。

--安全乐观主义点评

考虑到开源产品具备高扩展性、低使用成本的特性,我们首先将选择定位在开源产品上。由于当时市面上只有开源的 RASP,而没有开源的 IAST,因此首先调研的是 RASP。但调研后发现 RASP 存在严重影响服务器性能的问题,恰巧在了解 RASP 的过程中,发现火线安全正在研发 IAST,并打算开源发布,于是便进行了接触。以下为洞态 IAST 调研结果:

IAST 全称交互式应用程序安全测试,主要通过 Agent 来收集和监控应用程序运行时的函数执行及数据传输,并与服务端进行实时交互,进而更高效、更准确的识别应用软件的安全缺陷及漏洞。同时可准确定位漏洞所在的代码文件、行数、函数及参数,方便开发团队修复问题,还具备高低误报率、0脏数据的优势。但 IAST 在不同语言开发的 WEB 应用中需要有不同类型的 Agent、研发的技术难度和投入都非常巨大。

洞态 IAST 产品架构

在调研中我们发现洞态 IAST 在架构上完全不同于其他 IAST,其他 IAST 往往 “重 Agent 端、轻服务端”,而洞态的 Agent 端仅用于实现数据监听,漏洞检测全部在服务端完成。这种方法的好处是 Agent 端代码和逻辑简单,单点故障率更低也极少需要升级,降低了维护成本;另外,传统 IAST 产品对于当时未检测的漏洞都在 Agent 端直接丢弃,产品出现新的检测策略后,需要重新发起应用的测试,而洞态 IAST 将检测数据保存在服务端,可轻松地在服务端进行回归测试。 

产品架构说明:首先,在服务器上安装 IAST Agent。当 IAST 启动,用户访问 Agent 服务后,Agent 便开始采集数据,并与 OpenAPI 服务通信,进行上报数据和Hook规则的拉取。OpenAPI 将数据存储到数据库中,包括 MySQL 和 Redis。然后,Agent 对 Engine 发送通知,Engine 便会来消费数据库中的数据,并在分析完毕后将漏洞信息回写到数据库中。最后,用户通过 WebAPI 查看数据库中漏洞的数据信息。

洞态 IAST 检测原理

洞态基于“值匹配算法“和”污点跟踪算法”对漏洞进行检测。这种算法检测准确率高,还无需采集和重放流量,可以适配如今各种场景下的漏洞检测(如 API 网关、分布式、微服务等架构下的后端服务漏洞检测),还不会产生脏数据,干扰正常的开发测试流程。

对于检测发现的漏洞,洞态根据外部可控数据的传播过程,完整的还原漏洞触发流程,帮助 DevOps 团队快速理解漏洞、定位漏洞,更好的解决漏洞。通过赋能研发人员,提高漏洞修复的效率。

洞态 IAST 产品优势

  • 第三方开源组件漏洞分析

  • 应用漏洞溯源、定位与分析

  • 应用漏洞自动验证

  • 全面的风险监测

  • 开源带来低成本、高扩展、多策略和多场景

促使我们选择洞态 IAST 的原因,除以上产品优点外,还有洞态团队对 IAST 部署升级的全力支持。如果我们选择其他厂商的 RASP/IAST,不一定能得到全力支持。

03 IAST 实践 

分布式部署、所有接⼝API化,可根据企业实际场景⼆次开发融入⾃⾝DecSecOps体系。

实践中建议先增加产品覆盖率,别的评价指标体系以后再说,安全也要相信大力出奇迹。

--安全乐观主义点评

去哪儿部署洞态 IAST 已经有半年多的时间,特分享一下 IAST 实践经验。

IAST 应用于Q-SDL体系

在 Q-SDL 体系中,IAST 承担测试的角色,并且打造了 IAST 平台收集漏洞信息数据。

上线 IAST 后的 Q-SDL 体系架构

部署适配

在 Q-SDL 体系中部署 IAST,主要是从基础环境、应用环境、生命节点上进行适配,并在具体的点上进一步优化。

在去哪儿,IAST Agent 的部署环境包括容器与虚拟机二种。采用分布式部署的方式,提高系统的可靠性与可用性,并对二种不同环境开发一套标准流程,保证 Agent 在不同环境的标准化部署。部署完毕后,需要将安装 Agent 的机器所在的网络和 Agent 接收数据的 OpenAPI 之间的网络打通,使 OpenAPI 能接收数据。

在实际应用上,通过二次开发,扩展 IAST 的功能,并推动和去哪儿其他安全工具的融合。通过洞态 IAST Agent 收集识别企业资产,从而对整个资产进行漏洞检测。为应对 IAST 运行过程中可能出现影响业务等问题,我们提出了二套解决方案。一是“软着陆”,即通过洞态 IAST 自带的解决方案,直接删除核心模块;二是“硬着陆”,基于去哪儿强大的 API 直接将 IAST Agent 端去除。但我们使用这么长时间,还没出现过严重的问题。

在使用中,我们并不是将 IAST 孤立地用来检测。而是把威胁信息和项目信息,上传至去哪儿的威胁建模平台,然后将 IAST、DAST 和 SAST 做相应的配合,有针对性地检测某些漏洞,提高检测率

私有云部署场景及方案

对于私有云部署场景,我们主要做了二点变动:第一点是在 IAST Agent 部署时,把 Agent 包直接放入镜像指定目录,以应对庞大的测试流量。另一点是对 Agent 端启动命令进行植入,以适配标准化环境,从而有序地执行,不去抢占其他环境变量的资源,发生冲突。

整体的部署方案是遵循洞态 IAST 的基础部署方案,我们只做了微调。业务端 Agent 没有做太大的改变,仅对 Java 包进行了二次开发。为防止应用高流量高并发导致 IAST 超载,针对性地开发了负载均衡功能。而在 IAST 分析模块上,我们将 Redis 独立出来,并做得更强大些以应对高流量高并发。

以下为我们去哪儿网络进出口的真实情况:

为控制突发性的高流量,我们采用了 “自适应流量采集+分布式架构” 的方案。自适应流量采集将无效的流量过滤,分布式架构则可灵活支撑高并发,减轻流量压力。

运行流程

实际使用感受:

1. 值得称赞的点

  • 应用威胁识别广泛

我们在上线前利用靶场做过了大量测试,才放心将洞态IAST上线。IAST检测到的漏洞类型几乎覆盖所有的通用漏洞,包括(持续增加中):

  • 组件威胁识别率高

IAST上线后发现了大量的组件威胁,具体数量等信息就不方便透露咯

  • 技术真材实料,服务尽心尽力

2. 吐槽

  • 高危漏洞检出率较低

洞态说明:因为去哪儿部署的是最早一版的洞态,出于稳定性考虑,还未进行版本更新,因此在检测能力上相对新版本会差许多。但洞态会加强研发力度,持续扩大可检测漏洞类型以及高危漏洞的检出率。

洞态:去哪儿的 IAST 实践亮点在于擅长将 IAST 与自身 Q-SDL 体系的适配,也善于从自身所处互联网行业高流量高并发的特点出发,通过开发负载均衡功能、对 IAST 模块进行调整、扩展开发等手段,将 IAST 的作用发挥到极致,也希望大家都能从去哪儿的安全智慧中找到灵感。

扫码添加小助手

获取洞态产品册

关于洞态 IAST 

洞态 IAST 是全球首个开源 IAST ,于2021年9月1日正式开源发布。洞态 IAST 专注于 DevSecOps,具备高检出率、低误报率、无脏数据的特点,帮助企业在应用上线前发现并解决安全风险。自开源发布以来,洞态 IAST 备受开源社区人员和企业的关注,包括工商银行、去哪儿、知乎、同程旅行、轻松筹等在内的上百家企业都已成为洞态用户。

官网地址:http://dongtai.io

【安全乐观主义点评】IAST 在去哪儿 Q-SDL 体系中的应用相关推荐

  1. IAST 在去哪儿 Q-SDL 体系中的应用

    去哪儿网 去哪儿是全球最大的中文在线旅行网站,创立于2005年.去哪儿网为消费者提供国内外特价机票.酒店.旅游度假.景点门票产品一站式预订服务,为旅游行业合作伙伴提供在线技术.移动技术解决方案.去哪儿 ...

  2. matlab sheet名字,MATLAB得到excel多个非默认sheet名_怎样利用matlab去读取一个excel表中多个sheet的数据并导入一个sheet中?...

    如何用matlab读取一个excel表格中的若干个工作表 如果数字: xlsread('e:/shiyanshuju/shiyanbiaoge','sheet1','B1:D1440') 最好个表格放 ...

  3. matlab频域滤波处理,手动滤波,图像去网格背景:频域中手动选择目标区域进行滤波,滤掉噪声,灵活地达到理想的效果。

    目录 一.原理简介 二.现有方法 三.代码实现 四.测试结果图 一.原理简介 主要思路为:通过傅里叶变换,将图像显示在频率域中,通过观察频谱图,如果了解频谱图与原图之间的关联,可以较为容易地发现噪声在 ...

  4. ULinx 去中心化支付体系 打造全新SocialFi生态圈

    去中心化支付 是构建Web3生态一个举足轻重的环节 是区块链从诞生之初便追求的"完美"愿景 也是当前解决全球范围内传统支付系统手续费高.流程复杂.周期长等问题的最佳方案. FTX ...

  5. java 在一个类中去调用另一个类中的对象数组

    比如说,我在A类中创建了一个对象数组.想在B类中去使用这个A类中的数组.那么有两种方式 以下创建的数组都是类类型的数组 我觉得类类型数组的好处可以给数组中的每一个元素创建多个标签.并且可以对多个标签进 ...

  6. ionic入门教程第五课-举例子说明异步回调$q及$q在项目中的用法

    继上一节中我们使用到$q来辅助完成了按需加载文件. 这节课我先简要的介绍一下$q 先从功能上做简要介绍的话: 我想通过一个故事来简要的介绍$q,就那最近比较普遍的叫餐服务举例吧 今天我想吃牛肉炒饭,所 ...

  7. python自动处理多个txt文件_怎么用python去实现几个文件中内容的并行处理

    如果我在同一个路径下有三个文件a.txt,b.txt,c.txt,三个文件中的内容分别是: a.txt: b.txt: c.txt: aaa 2 bbb 5 aaa 8 #中间的空格代表一个tab键 ...

  8. 图像去雾毕业论文准备01-python中time标准库

    2021年第一篇博文,很高兴又回到博文! 先说说后面我需要做的工作 我的毕业论文是<基于卷积神经网络的去雾> 关于论文,我打算从以下5章进行展开 第1章 1.1 背景 1.2 国内外研究现 ...

  9. 毛球科技点评区块链在组织和商业生态系统中的未来

    大多数关于区块链技术未来的报道,也就是数字经济中的信任技术和去中心化的超连接技术和商业生态系统,问题在于它仍然非常关注区块链可以做什么和意味着什么. 在这方面,它当然与其他技术发展没有什么不同.以物联 ...

最新文章

  1. Hyper-v3.0里无法压缩虚拟硬盘!虚拟机为Linux,硬盘为VHDX
  2. 将链表中m-n范围内的数进行倒序
  3. C++和Lua交互教程(基于LuaBridge)
  4. 5003.c++定义hpp文件
  5. python 浮点数比较_Python中的浮点数
  6. 编写一个Linux 64位应用的注册机
  7. deeplearning.ai——构建深度神经网络做图像处理
  8. sql server中replace()函数,可用于字符串替换
  9. Python 齿轮动力学建模及信号分析(纽马克算法)
  10. 机器学习与算法(6)--学习矢量化
  11. 激活函数:双曲正切函数 tanh(x)
  12. python 通配符用法,python - 通配符
  13. 浅析Java的线程和Golang的协程
  14. ROS 学习笔记3. launch文件的使用
  15. leetCode简单算法之排排坐,分糖果
  16. CAD2010软件安装资料及教程
  17. d3js 实现水球图
  18. android studio 自定义控件
  19. Spring mvc Controller间跳转/重定向/传参
  20. Python调用matlab及其配置方法

热门文章

  1. javaweb学习笔记2(jquery的使用,以及常用的方法,选择器,过滤器)
  2. unity基础(8)——3D场景添加音频
  3. Makerdown小白使用指南
  4. dxc 3.0 线程的生命周期
  5. 环保材料营造健康氛围
  6. 学计算机加数模社团,数学建模社团简介
  7. 量子时刻 奇妙的不确定性
  8. win10系统暴雪战网连不上服务器,win10系统无法登录战网怎么办_win10战网登录不上去的解决方法...
  9. 零基础如何学软件测试
  10. 企企通受邀参加中国供应链高层峰会,共同探讨采购与供应链解决方案