
同学的听众是每月7100万。 与整个Internet受众一样,我们的用户也面临常见的安全威胁:网络钓鱼,病毒,密码重用。 通常,攻击社交网络用户的经济引擎是垃圾邮件的传播。 尽管此类攻击并非直接由Odnoklassniki造成的,但我们有兴趣加以应对,为此,我们正在调查所有重大的垃圾邮件事件。
在我们发现门户网站用户之间存在异常活动之后,便开始了对新的(成功的)垃圾邮件攻击的典型调查。 它可以表示为单个服务的负载增加(例如图片上传或搜索服务),相同类型内容的有效分发(例如指向相似站点的链接),甚至表示对支持服务的呼叫数量增加。
在调查过程中,对我们而言,首先重要的是确定垃圾邮件在社交网络中的分布方式。 通常,这种调查的结果是检测到一组感染了病毒的设备。 有时,在它们散布的垃圾邮件中,我们会找到病毒本身的链接。 因此,我们设法恢复了分配方案并找到了相关的用户。
此类攻击的一个有趣的特殊情况是感染了恶意的浏览器扩展。 Chrome扩展程序既可以安装在Chrome本身中,也可以安装在基于Chromium的浏览器中,例如Opera和Yandex.Browser。 也就是说,网络的最大份额可能被覆盖。 其他浏览器(Firefox,Safari)的恶意扩展很少见。 我可以假设由于这种浏览器的受众相对较少,因此病毒的开发不会带来任何好处。
我们甚至可以计算用户中恶意扩展的传播程度:

每天我们注册100-200,000受感染的用户。 在2018年,总共有120万用户使用了受感染的浏览器。
2017年初,在OWASP俄罗斯第6次聚会上,我们已经
谈到了Odnoklassniki在对抗Chrome恶意扩展的传播方面的经验。 在近两年中,发生了很多变化。 但是首先,让我们弄清楚扩展是如何工作的。
因此,Chrome允许用户通过安装扩展程序自定义浏览器。
扩展提供了
Javascript API ,它们可以使用,包括:
- 拦截和修改HTTP请求和响应;
- 修改显示页面的DOM;
- 管理浏览器界面(打开和关闭选项卡,将项目添加到上下文菜单);
- 管理扩展列表;
- 订阅系统事件,例如,通过鼠标和键盘;
- 读取浏览器历史记录和站点数据。
扩展程序通过Chrome网上应用店以带有源代码和资源(图片,样式,HTML页面)的存档的形式分发。 扩展的关键组件如下:
- 清单是带有扩展名配置的JSON。 除其他事项外,清单声明了扩展将获得其数据访问权限的必要权限和域。
- 后台脚本在其自身上下文中在后台执行,与网页代码隔离。 它们旨在接收和处理来自浏览器的各种事件,并具有对其API的完全访问权限。
- 内容脚本在网页的上下文中执行。 页面本身和扩展的Javascript环境彼此隔离,扩展无法访问页面的变量和功能,反之亦然。 脚本可以使用
XMLHttpRequest
修改DOM页面并执行跨站点请求。 与常规页面不同,相同的原始策略和CORS服务器策略不适用于扩展请求,它们仅受清单中请求的访问集限制。
假设有人决定编写自己的病毒。 他能意识到什么?
访问用户数据如上所述,扩展可以拦截页面和服务器之间的请求和响应。 很明显,在这种情况下,用于保护数据在传输过程中的通用机制-SSL-不会帮助保护页面数据,因为浏览器会将其传输到已经解密的扩展程序中。
更改页面内容该扩展有权访问DOM,可以添加和删除元素,从而更改页面界面。 经典示例是横幅广告的替换。
用户活动跟踪该扩展程序可以订阅来自键盘和鼠标的事件,从而在浏览器中跟踪用户操作并收集密码,个人数据,银行卡号。
为用户执行动作该扩展程序可能会在受害者页面的上下文中违反相同的源策略执行脚本。 这意味着扩展名也可以启动用户可以在站点上执行的任何操作。
绕过两因素身份验证和其他帐户保护用户自己在浏览器中通过身份验证和授权,因此,扩展名接收与合法用户相同的会话。
完美的僵尸网络通常,智能验证码和防洪系统依赖于以下事实:通过IP,指纹和随时间分配的请求,可以将僵尸程序的流量与正常用户的流量区分开。 扩展请求不能与真实用户的请求分开。
今年,Google
宣布了多项旨在阻止恶意软件在应用商店中传播的创新。 从第三方来源安装扩展程序,禁止内联安装,加强审核规则,禁止对扩展程序进行混淆和任意代码执行。
尽管如此,恶意扩展仍继续用于攻击用户。 典型的目标是帐户盗窃(
示例 ),个人数据(
示例 ),垃圾邮件或欺骗性广告(
示例 )。
为了成功进行攻击,扩展必须解决以下问题:
由于商店中的审核更加严格,病毒作者正在寻找发布扩展的新方法。 在这里,我们观察到了垃圾邮件发送者适应垃圾邮件过滤器的经典情况:一个具有数十万用户的扩展名变成了来自拥有少量用户的不同作者的数十种不同扩展名,后来这些扩展名开始模仿具有良好声誉的流行应用程序。 扩展现在托管在流行的云服务中,其服务器部分和“控制中心”定义了在任何给定时间被感染的浏览器的行为。
从商店中删除后,可以在安装它们的用户的浏览器中禁用被识别为恶意的扩展。 为了保留受感染的观众并能够安装新的扩展程序而不是远程扩展程序,病毒编写者对与该扩展程序不直接相关的浏览器设置进行了更改:注册服务工作者,向用户订阅通知,将其替换为主页或搜索服务。 所有这些都使您可以将链接发送到浏览器,以安装该病毒的新版本。

对于我们观察到的病毒,垃圾邮件是主要收入来源。 在为扩展分发垃圾邮件的多种方法中,最有可能的是以下几种:
- 替换并在访问的页面上添加广告 。 如上所述,扩展程序可以对查看页面的内容进行任意更改,包括用自己的内容替换网站上的合法广告,或者通过打开弹出窗口,新标签或将某些网站重定向到广告来向用户显示其他广告。
用广告代替扩展的一种明显形式是使用HTML5通知。 安装扩展程序并使其在浏览器中处于活动状态后,足以诱骗受害者进入一个页面,该页面将注册服务工作者并签署用户通知。 而且,由于此服务工作者与扩展没有直接关系,因此即使从浏览器中删除了扩展,作者仍将拥有以推送通知的形式与用户进行交流的渠道。
如果将扩展名从商店中删除,则类似的机制也将与社会工程学结合使用,以重新感染受害者:用户收到带有吸引人的内容(例如,“ ok.ru新未读消息”)的推送,并带有安装新版本病毒而不是已删除版本的链接。 - 使用受害者的帐户在社交网络上分发垃圾邮件 。 安装在浏览器中的扩展程序可以代表当前用户执行请求,包括以用户的正常内容为幌子发送垃圾邮件(向朋友写消息,在公共场所张贴便笺和帖子,上传照片或视频)。
综上所述,我们可以得出结论,恶意浏览器扩展仍然是对用户和Web应用程序的重大威胁。 扩展提供了一种传播恶意代码的便捷机制:它们不需要高要求的创建条件,在安装过程中不会引起用户的怀疑,反病毒软件也很少发现它们。
由于浏览器中的网页权限明显少于扩展名,并且无能为力,无法保护用户,这一事实使情况更加恶化。 希望Google在Store上宣布的反病毒活动能够成功。 但是,在这种情况发生之前,我们会尽力减少病毒在社交网络中的传播,并尽可能安全地使用服务。