卡巴斯基安全浏览器_一年三番五次修,卡巴斯基为何依然无法完美修复杀毒软件中的这些洞 (技术详情)?...
概述
2018年12月,我可以证实,多个网站能够劫持卡巴斯基浏览器脚本与其所有配置中主应用程序之间的通信。网站从而能够以多种方式操纵该应用程序,包括禁用广告拦截和追踪的防护功能。卡巴斯基当时表示会在2019年7月份解决这些问题。但进一步调查发现他们只限制了更为强大的 API 调用,而任何网站仍然可以访问大量应用程序。更糟糕的是,卡巴斯基发布的新版本泄露了大量用户系统信息,如卡巴斯基程序的唯一标识符,同时还引入一个新问题,可导致任意网站触发应用程序崩溃,使得用户系统无法得到病毒防护功能的保护。
问题为何如此复杂?
杀毒软件通常通过浏览器扩展实现 web 防护措施,这样使得和主应用程序的通信更加方便快捷:浏览器扩展可使用易于保护的本地消息传递机制 (native messaging)。原生应用程序内置多种安全预防措施,指定了哪些浏览器扩展可以与其连接。但我们这里考虑的环境不仅仅是浏览器扩展。如果用户拒绝安装卡巴斯基的浏览器扩展,那么卡巴斯基软件不会轻易放手,而是会直接将必要脚本注入所有的网页。这种做法甚至适用于 HTTPS 网站中,因为卡巴斯基为了操纵所有的网站不惜突破 HTTPS 连接。另外,更特别的是 IE 浏览器插件。由于IE 浏览器并不会提供适当的扩展 API,其插件限制将脚本注入网页中。虽然它并不要求操纵网页的源代码,但脚本仍然会在这些页面上下文中执行且不会具备任何特别权限。因此,卡巴斯基这样做的目的似乎是为这三种环境提供和卡巴斯基应用程序统一的通信方式。但在其中两种环境中,卡巴斯基的脚本所具有的权限和已被注入脚本的网页的权限完全一样。那么如何阻止网站连接到使用同样方式的应用程序呢?现在知道这个任务的挑战性有多大了吧?
卡巴斯基的解决方案
卡巴斯基的卡法人员显然给出了一种解决方案,不然我也不会写这么一篇文章了。他们决定在应用程序和脚本(他们在代码中称之为“signature”)之间共享一个秘密。在建立连接时,必须提供这个秘密值,而本地服务器只有在收到正确的值之后才会响应。那么,扩展和脚本如何才能知道这个秘密是什么?Chrome 和火狐浏览器使用本地消息传递机制进行检索。至于IE 浏览器扩展和直接被注入网页中的脚本在这里变成该脚本的一部分源码。由于网站受制于同源策略无法下载该源码,因此它们无法读取该秘密,至少从理论上来讲是这样的。
提取秘密
2018年12月,当我查看 Kaspersky Internet Security 2019 产品时发现它们的 web 集成代码在所有的环境中都在泄露该秘密(CVE-2019-15685)。不管你是用的是什么浏览器,也不管是否安装了浏览器扩展,所有的浏览器都能够提取到和卡巴斯基主应用程序进行通信所需的秘密。从注入脚本提取入之前说书,如果没有浏览器扩展,那么卡巴斯基软件将直接把脚本注入到网页中。由于 JavaScript 是高度动态化的执行环境,因此几乎可任意遭操控。例如,网站可以替代 WebSocket对象并看到脚本和本地服务器之间建立连接。当然,卡巴斯基的开发人员也想到了这种场景,于是他们确保自己的脚本会在网站脚本之前运行。同时还复制了 WebSocket 对象并且仅使用该对象。但这种方法并非滴水不漏。比如,网站仅能保证再次执行相同的脚本,但这次是在受操控的环境中执行。虽然需要脚本 URL 才能这么做,但是它可以自行下载并从响应中提取该脚本 URL。如下是我的方法:
fetch(location.href).then(response => response.text()).then(text =>{ let match = /
卡巴斯基安全浏览器_一年三番五次修,卡巴斯基为何依然无法完美修复杀毒软件中的这些洞 (技术详情)?...相关推荐
- 一年三番五次修,卡巴斯基为何依然无法完美修复杀毒软件中的这些洞 (技术详情)?...
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 卡巴斯基 web 防护功能将拦截广告和追踪器,警告用户关于恶意搜索结果等等.但这个功能在浏览器中运行而且需要和主应用程序通信.要确保这 ...
- 卡巴斯基安全浏览器_卡巴斯基 for windows 全方位安全软件2021注册表清除版
软件介绍 最近从来不相信木马的Run同学中招了,wup.exe(俗称矿机木马),此款木马真可谓厉害,无敌,用过所有方法都无法清理,百度了所有的道道几乎无用,中了此毒,电脑不会有什么特别异常,不好察觉, ...
- 卡巴斯基安全浏览器_卡巴斯基杀毒软件被曝出用户上网痕迹泄露漏洞
近期,国外安全研究人员曝出卡巴斯基杀毒软件的脚本中存在一个独特而唯一的标识符,可导致用户在过去4年中访问过的每个网站都被泄露. 该漏洞被标记为CVE-2019-8286,其中所涉及的独特标识可让被访问 ...
- 最好用浏览器_魔镜魔镜,请你告诉我谁是Mac上最好用的浏览器?--全网最好用的12个功能让你玩转Safari...
Safari是苹果自带原生浏览器,无论是iPad.iOS.Mac都将Safari集成在系统中,按道理讲它应该是苹果产品里最好用的浏览器,但是很多小伙伴却觉得Safari不好用,转身投入了其他浏览器的怀 ...
- 360无痕浏览器_高效使用浏览器,探索你不知道的实用功能
浏览器应该是大家经常使用的工具之一吧,看新闻.找资料.下软件,当我们需要上网冲浪的时候,我们都需要使用到它.作为一个职场人,大家可能每天都随时打开着多个浏览器吧! 市场上充斥着各式各样的浏览器,如:谷 ...
- 区块链浏览器_什么是区块链浏览器?
本文由IPFS原力区Iris原作 提到区块链浏览器,你会想到什么?是浏览器中用运到区块链技术了么?这样的↓↓↓ 这样的↓↓↓ NoNoNo它是这样的↓↓↓ 区块链浏览器:就像百度,是一种搜索工具,也是 ...
- echarts 不支持 手机 浏览器_最佳实践 | 地图加载慢,还不支持现有浏览器?巧用 Mapbox 静态地图!...
#When and How to Use Static Maps 地图加载慢?浏览器支持不友好?或许使用 Mapbox 静态地图是个讨巧的思路! 静态地图 -- Static Map,什么是静态地图, ...
- 如何升级浏览器_前谷歌员工爆料:谷歌工程师们是如何合谋“杀死”IE6浏览器的...
浏览器在互联网中的地位可见一斑,甚至可以说,它是比搜索引擎和社交软件更强的流量入口. 微软IE6当年在2001年作为Windows XP的默认浏览器发布,比Chrome首次发布还要早六年. 但是,谷歌 ...
- svm分类器训练详细步骤_「五分钟机器学习」向量支持机SVM——学霸中的战斗机...
大家好,我是爱讲故事的某某某. 欢迎来到今天的[五分钟机器学习]专栏内容 --<向量支持机SVM> 今天的内容将详细介绍SVM这个算法的训练过程以及他的主要优缺点,还没有看过的小伙伴欢迎去 ...
最新文章
- jquery 实现表单验证功能代码(简洁)
- 牛!何恺明包揽2项ICCV 2017最佳论文奖!这位高考状元告诉你什么是开挂的人生
- 实现给一个DIV加阴影效果!
- linux cgi转发串口数据库,CGI连接数据库的方法
- python之threading模块
- 求最大子段和的一些算法
- 3D建模场景怎么做?今天的干货来啦,机不可失失不再来
- python trie
- python预测发展趋势_Python预测算法哪家强?权游龙妈是生还是凉凉?
- python中str表示什么意思_python的str是什么类型
- java实现pdf转word,如何使用Java将pdf文件转换为word文件
- (已更新)婚礼类小程序前端界面模板源码
- imx6q 转换LVDS为VGA输出
- PHP显示了验证码但不能登陆,thinkphp5 登陆后台验证码无法显示
- python程序员面试算法宝典pdf-Python程序员面试笔试宝典
- 第十六周学习周报20181224-20181230
- (小米系统系列四)小米/红米手机获取root根目录权限
- 给windows电脑重装系统
- 卖了个 Chrome 插件,赚了几千美金,但是很后悔!
- 蓝桥杯 基础练习 分解质因数 C语言