InfoQ百度的 DevSecOps 实践( 三 )
同时将其集成到百度工程规范指定的需求管理产品 iCafe(对外版本)中 。 当业务线研发人员、PM 创建需求卡片时 , 可以根据自身的业务场景选择对应的安全解决方案 , 并在研发前完成规范、安全方案的学习 , 从而在研发编码阶段尽可能避免这些问题 。
本文插图
3.2.3 开发 / 代码准入阶段
供应链安全检测
供应链安全检测主要聚焦第三方代码引入公司内部的安全性检测 。
百度的产品代码托管在内部代码托管平台 , 因此供应链安全检测也应该围绕代码托管平台展开 , 除了在研发流程中嵌入新增代码检测以外 , 我们还针对存量的代码实现检测与工单追踪闭环 , 为第三方代码风险快速、有效收敛提供最便捷的通道 。
整体检测架构为:
本文插图
供应链检测系统中的第三方高危软件识别主要依托于指纹匹配技术 , 主要分为代码指纹识别与包管理解析两种 。 代码指纹识别类似于传统的正则匹配;包管理解析则是针对不同包管理文件 , 例如 java 的 pom.xml、gradle , nodejs 的 package.json 等 , 做语法解析 , 获取到引入的包名与版本号 。 代码指纹识别漏报率相对更高 , 包管理解析获取的包名通常为类库名 , 与第三方软件的通用名称存在差异 , 需要根据实际应用场景做进一步的适配和兼容 。
第三方软件的漏洞被外界爆出后 , 攻击者可能在短时间内进行攻击 , 如果供应链检测无法做到快速响应 , 将会使得整个供应链安全检测的效果大大折扣 , 因此我们同步建设了实时指纹扫描与软件查询能力 。 通过打通线上工单系统 , 我们可以在分钟级完成漏洞代码定位与推送 , 并实现 80% 以上代码库在一天内更新修复 。 以 fastjson 组件为例 , 在 19 年和 20 年的几次漏洞爆发中 , 我们在分钟级便完成大量使用 fastjson 组件的代码库定位与工单推送 , 并在天级的时间内推动业务代码完成修复 , 闭环效果十分明显 。
安全编码规范检查
安全编码规范检查主要聚焦于百度内部生产的代码的安全性检测 。
区别于于传统白盒安全扫描 , 安全编码规范检查治理白盒漏洞的思路是先通过制定相关的基于安全基础库的安全编码规范 , 要求业务摒弃一些危险的编码习惯 , 比如各种拼接写法、调用不安全的默认 API 等 , 使用安全 SDK 中的 API 实现相关的功能 , 从而降低写出漏洞的风险 。
与供应链安全检测类似 , 百度安全编码规范检查也集成在公司内部研发工具链中 。
本文插图
在这种模式下 , 一条规范检查规则是这样的:
[强制 ][PHPSEC017]
在请求网络资源时 , 不得拼接和带入外部变量 。 如需带入的 , 使用安全基础库的 SafeCurl 类完成相关功能
3.2.4 测试阶段
在测试阶段 , 我们主要嵌入了上线前安全基准测试 , 也就是市面上 DevSecOps 方案主要宣传的部分 , 即各种安全工具链的使用 , 作为产品上线前的最后一个兜底工作 。
在百度 , 我们构建了:黑盒扫描(DAST)、白盒扫描(SAST)、灰盒扫描(IAST/FAST)、RASP 等产品安全工具链 , 并将这些工具做到自动化程度极高 , 减少业务参与的难度 , 实现一次配置永久运行的效果 。
本文插图
值得注意的是 , RASP 技术(https://rasp.baidu.com)除了在遭受外部攻击时可以进行攻击识别 , 还可以从一些程序错误中有效识别出漏洞 。 因此在我们的实践中 , RASP 产品被大量部署在测试环境中 , 在对业务线完全透明的情况下 , 帮助业务线提前发现漏洞、风险 。
推荐阅读
- 科技有点牛|背后超级玩家是百度Apollo,2020年中国智能汽车逆势增长
- InfoQ Vue、React和Angular:该选择哪个框架?
- InfoQ 22款好用的CLI工具
- InfoQVue、React和Angular:该选择哪个框架?
- InfoQ去Oracle实录:如何在线更换金融核心场景中的数据库?
- 灵锦文化 百强县A股公司排行榜出炉!市值抵得上特斯拉+美团+京东+网易百度
- 环球网|Forrester报告:浪潮、百度等领跑中国机器学习市场
- 莫小帅|腾讯收购搜狗,大举进攻移动端搜索市场,百度的好日子要到头了?
- 最美的时光|百度网盘或发力:垂直类短视频,市场份额超85%!一旦上市
- 百度手机网站移动SEO搜索优化详细步骤
