作者ettoolong (ettoolong)
看板Browsers
标题Re: [-Fx-] 套件审核等到天荒地老...
时间Wed Sep 29 12:16:24 2021
难得在这边看到有关套件审核的讨论, 就顺便来分享一下有关套件审核的部份.
以下是我凭记忆写的, 有错误的话欢迎指正.
Firefox(AMO)和Chrome(CWS)一开始就使用了两个不同的审核策略,
所以我们可以分别讨论这两个两种不同的作法.
首先是Firefox(AMO), 主要是人工审核,
但实际上全球审核员只有十几人(2018年时, 现在不晓得有没有增加),
AMO上面约25300个套件只有118个是完全审核的(刚刚查的数据),
其余的为部份审查(审查过之前某一版, 但没审过最新版)或未审查.
可想而知, 大部份的套件都是没审过的, 除非你就只装一两个, 像我就是这种,
不然多少都会装到没审过的, 我所有在AMO的套件, 现在也都是未审核状态.
那如何确保没审过的套件是安全的呢? 审核团队用的是一个叫风险值的指标.
首先, 当你上传一个新套件, AMO後台就会先把这个套件作分析,
大致上就是看你套件manifest.json内容, 看你的API permissions & Host permissions,
看你有没有content script 和 该 content script 的 match patterns,
看你有没有自订CSP, 看你有没有用到高风险API(eval 或类似作用的code),
看你有没有使用混淆後的code,
权限越大, 能改动越多网站, 使用高风险API, 就会有一个越高的风险值.
审核者一上线就会看到一个用风险值排序的套件列表, 然後从一些高风险的套件开始审.
另外, 上传新版本也会提高风险值, 例如一个套件经过人工审核後,
风险值就会降一些, 经过多次更版, 如果都没有重新审核, 风险值就会一直叠加
(就会跑到审核列表的前面一些),
距离最後一次审核版本, 改越多, 加越多, 直到重新被人工审核.
再来就是套件的人工审核其实是分两块,
一块叫内容审核, 一块叫安全性审核, 两块的审核员是分开的.
内容审核其实是你上传套件的第一关, 审核员无需技术背景,
只要审核你的套件内容有无违反AMO条款(不能有色情, 赌博, 违反美国法律之类的),
一般来说你上传新套件或新版本, 会发现没有立即出现在架上,
那就是因为还没通过内容审核, 虽然这个过程也是人工, 但因为不用实际检查程式码,
所以可以审很快, 只要审查员上线, 通常可以审个上百个.
* 有一阵子AMO是上传就上架, 但是後来AMO受到广告攻击,
用自动化方式上传一堆广告套件, AMO 也不像CWS要缴5块美金,
所以砍帐号也无法阻止自动化注册, 最後只好把上架後的内容审核改到上架前执行.
安全性审核就是大家平常比较熟知的审核, 需要技术背景,
主要就是检查你套件是否安全, 有没有把使用者资料传到特定地方,
有没有动态注入代码问题, 有没有提供混淆前的原始码,
有没有对应的隐私条款, 有没有严重效能问题等.
一般你上传套件後, 只要通过内容审核, 就会立即上架,
之後(可能是很久以後)才会有安全性审核.
再来是Chrome(CWS), 主要是自动审核, 但近两三年有人工审核,
Google作为大数据的霸权, 除了结合静态分析和动态分析外,
还导入了机器学习, 用来自动分析套件是否有问题,
从2015年的一份报告中指出Google已累积了超过45TB的动态分析资料.
Google的机器人会查询搜索引擎, 浏览社交媒体, 查看热门新闻网站,
看看有没有该套件的相关资讯.
举例来说, 如果有新闻网站报导了一篇某某套件窃取使用者资料,
或是有社群网站上有人讨论到某某套件含有恶意程式码,
Google就会自动下架该套件(当然会经过一些AI判定)
这也就是为啥有时候在CWS上的套件会莫明其妙下架,
因为AI有时候会误判, 而当恶意套件在论坛上被讨论时,
套件也会自动下架, 因为AI是24小时随时都在帮忙监看的.
得益於越来越强大的机器学习, CWS的无人工审核让开发者上传套件後
无需等候人工审核就可以直接上架,
但是还是有不少漏网之鱼, 比起AMO, CWS常常是套件被使用者发现问题後才下架.
(AMO也偶有恶意套件, 但相对少一些, 但审核人力问题, 很难改善)
毕竟恶意套件也有很多手段让你难以透过简单的自动检查发现问题.
这两年我在上传套件到CWS时, 有注意到, 含有content script
(且有大范围match patterns)的套件, 在上传後会出现要人工审核(虽然不知道是
真人工还是人工智慧), 因此需要等个一两天才会真的上架.
说明了Google对安全性的要求仍然是持续进步的.
实际上我也很久没认真写套件了, 所以上面的资讯可能没有到最新,
不过大方向应该还是一样的, 可以给想开发套件的人一点参考.
如果对上面提到的部份有问题, 欢迎讨论.
--
巴巴人 巅峰46级,有监於自己的肉体与力量的极限,苦思烦恼後,他所作出的结论是:
Thankful。为了报答先祖赐予自己的无尽力量,他想表示一点心意,於是想到了 ─
一天一万次Thankful的先祖鎚。首先
调整呼吸,敬拜、祈祷,摆好准备姿势,挥鎚!
完成这些连续动作,一开始花的时间是五秒到六秒。第一天实行下来,还没挥完一万次,
就花了十八小时以上。每天过着挥完就睡,醒来继续挥的日子。经过了两星期,他察觉到
异状。挥完了一万次,太阳仍未下山。
Thankful的先祖鎚一万次,花不到一小时的时间!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.222.157.197 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Browsers/M.1632889000.A.8A7.html
※ 编辑: ettoolong (61.222.157.197 台湾), 09/29/2021 13:03:22
1F:推 MK47: 推解说 比推文里一堆胡说八道的好多了 09/29 14:05
2F:推 s9209122222: Firefox 真的很可怜,要是人力够就好了 09/29 14:35
3F:→ MilchFlasche: 厉害的一篇文。呜,希望Firefox的CSS实做以及JavaSc 09/29 16:34
4F:→ MilchFlasche: ript相容性都能维持不坠啊……有的bug十几年了还在 09/29 16:34
5F:推 frankmito: 所以现在火狐的状态是内容审核也人力不足罗 09/29 19:12
6F:→ Seventhsky: 人力不足是常态了 所以真的不知道那麽爱开新企画干嘛 09/29 19:13
7F:→ Seventhsky: 最後还不是没人力做下去草草收掉 都不知道loop几次了 09/29 19:14
8F:推 sdbb: 帮火狐QQ 09/29 23:29
9F:推 rockmanx52: 一直开新专案八成是有管理「专家」导入KPI制度的结 09/30 03:38
10F:→ rockmanx52: 果 09/30 03:38
11F:→ rockmanx52: 毕竟修Bug跟维护稳定性在「管理专家」眼中不是什麽 09/30 03:39
12F:→ rockmanx52: 「有生产力」的工作 09/30 03:39
13F:→ Kagero: 反正firefox又赢了 赢到再丢个几千万用户也没差 09/30 18:21
14F:→ Kagero: 说不定Mozilla的目标是拿掉附加元件 09/30 18:22
15F:→ Kagero: 才会这样搞人 毕竟第三方就是危险 没第三方才保证安全 09/30 18:23
16F:→ m20081015: 粗暴言论duck不必,FX当初会崛起就是因为附加元件,为 10/01 09:39
17F:→ m20081015: 安全性把附加元件拔掉?Mozilla又不是头壳坏掉,随着 10/01 09:39
18F:→ m20081015: 浏览器技术演进,追随越快的网页渲染载入、越快的启动 10/01 09:39
19F:→ m20081015: 速度,旧型的附加元件已经不合时宜 10/01 09:39
20F:→ alchemy123: 讲得这麽浮夸 铬v3装没看见 颗颗 10/01 10:29
如果你是指 manifest v3 的问题的话, 我之前已经发过文了,有兴趣可以再回去看,
基本上 Firefox 也会很快跟上v3,
但会不会完全照 Chrome 的规格改掉 webRequest API 就还不确定,
这也是公开的资讯, 有兴趣可以去 AMO 的 blog 上找一下之前的文章.
21F:推 Kenqr: 推 10/02 16:04
22F:推 stucode: 推 10/02 22:35
23F:推 NiGHTsC: FF:你的超能力是什麽? - Google:我很有钱。 10/04 03:55
24F:→ t7yang: Google: 别忘了,你还是靠我养的,每年两亿 10/05 20:49
25F:推 BDrip: Fx:你不养我 就找Bing喔? 10/05 21:08
26F:推 danny0838: 可否冒昧问问资讯来源?是两家公司公开说明过审查方针 10/05 23:09
27F:→ danny0838: ?还是你认识两家公司的员工?XD 10/05 23:09
28F:→ danny0838: Fx最近的状况就是(1)以前不用人工审核的现在通通要审, 10/05 23:11
29F:→ danny0838: 而且一个版本审一个月以後,下个版本即使只更动一两行 10/05 23:11
30F:→ danny0838: ,也要审差不多一个月... (2)以前unlisted几乎不用审的 10/05 23:12
31F:→ danny0838: 现在也变成都要审,看起unlisted再也没什麽用了XD 10/05 23:12
32F:→ danny0838: (3)用很瞎的安全性理由退件...我有空另外说明好了... 10/05 23:16
(1)上传一个新版本要一个月会才上架, 这就真的很扯,
一般来说最多一天就会上了, 但是以前发生过後台出错,
套件被重复签章或没有被自动签章这类的问题,
因此如果上传後太久没有出现, 建议去线上频道直接问.
先加入 Matrix, 然後找 Add-on Reviewer 这个 room,
https://wiki.mozilla.org/Matrix
有3个room跟套件有关, 分别是 Add-ons, AMO, Add-on Reviewer,
跟审核有关的问题, 或是套件被reject, 都可以上 Add-on Reviewer 问.
跟开发有关的问题可以在 Add-ons 问.
(2) unlisted 要审这我也是觉得满奇怪的, 以前是不用审的,
而且我也不记得官方有公布过这类的政策修改, 建议也是去频道上问比较准.
(3) 可以说明一下所谓的很瞎理由吗?
因为审查本身也是有一些基本规则(哪些可以/哪些不行).
所以可能要看到退件理由才能确定是不是真的很瞎.
基本上AMO和CWS审查方针都是查得到的资料.
AMO的在:
https://extensionworkshop.com/documentation/publish/add-on-policies/
上面提及的内容审查(Content Review)的审查内容
就在 Content 这个段落内.
更多审核的资讯可以参考这几篇:
https://wiki.mozilla.org/Add-ons/Reviewers/Guide
此为 reviewer 的指南, 内容含盖所有 reviewer 要知道的内容,
(包含工具, 政策, 流程, 团队 等)
如果只是想看一下流程, 可以看这篇:
https://wiki.mozilla.org/Add-ons/Reviewers/Guide/Reviewing
如果你在AMO上有自己的套件, 就可以去报名Add-on reviewer.
如果想要帮忙解决人力问题的, 可以去试试,
但是我刚刚查了一下, 已经找不到报名reviewer的计画(计画关闭中),
不过如果真的有兴趣的话, 还是可以去 Matrix 的 Add-on Reviewer 那边问问.
CWS的审核流程也是很多年前公开过的.
不过我现在一时找不到详细内容, 所以我才会说是凭印象写 XD,
其实那篇内容比我上面讲的还复杂, 除了自动检查程式码内容,
机器人自动收集扩充套件资讯外, 还包含防毒软体,
使用者回报之类的流程, 然後还有一些ML的分析,
解释CWS如何透过特徵分析(函盖套件程式码内容, 社群讨论, 开发者分析,
下载量和安装量分析, 评论分析 等)
找出有问题的套件.
※ 编辑: ettoolong (61.222.157.197 台湾), 10/07/2021 11:13:48
33F:推 th: 好用心,推! 10/14 10:38
34F:推 alchemy123: 感谢大大回覆,避免误会,我是指上面的k先生。希望f 10/15 22:39
35F:→ alchemy123: f不要脑袋又撞到全部跟进== 10/15 22:39