问题描述
网站并未使用到包含unionxxx.com/xxx.html地址的恶意资源文件,导致加载云端控制的广告内容在业务网站加载;
| 漏洞名称 | BootCDN 投毒风险 |
|---|---|
| 漏洞类型 | 内嵌恶意代码 |
| 漏洞等级 | 中危 |
| 业务影响程度 | 严重 |
修复方案
不使用BootCDN或者添加SRI
添加SRI(Subresource Integrity)是一种安全特性,允许浏览器检查其获得的资源(例如从CDN获得的)是否被篡改。通过为页面引用的资源指定信息摘要,当资源被劫持篡改内容时,浏览器校验信息摘要不匹配,将会拒绝代码执行并抛出加载异常,保证加载资源的完整性。
使用SRI只需要给页面标签添加integrity属性,属性值为签名算法(sha256、sha384、sha512)和摘要签名内容组成,中间用-分隔。
经验教训
微信开放社区问题链接
1、关于三方CDN的引入是前端开发中非常常规的操作,生产环境使用三方CDN依赖的时候应该尽量避免直接引用三方地址,尽量将js脚本文件保存在自家CDN服务器里边,引用自己CDN地址,保证CDN私有化;
2、加强安全防护意识,代码库应该关联漏洞检测软件/系统,及早发现并修补漏洞;
可以使用墨菲安全之类的相关平台
3、调研一些防篡改的防护方案,在不影响业务加载的前提下,项目里边应该添加一些防篡改防护代码/脚本。
例如上面添加 SRI 的方式
附:代码质量/漏洞扫描工具
SonarQube:
使用方式:zhuanlan.zhihu.com/p/160825276
下载地址:www.sonarsource.com/products/so…
墨菲安全:
官方网站:www.murphysec.com/