高德地图也有类似百度系的 wormhole 后门

2015-11-06 00:02:51 +08:00
 honeycomb

分析原文在此:
http://drops.wooyun.org/papers/10180

我用 Network Tools 试了一下
revoke 它的 AMapService 就能阻止它在本地开放 6677 端口

2284 次点击
所在节点    分享发现
17 条回复
PP
2015-11-06 00:06:19 +08:00
我可以从另外一个角度理解后门问题吗?比如强制更新算不算是后门迹象?
honeycomb
2015-11-06 00:25:03 +08:00
@PP
强制更新一般来说是
1 ,违反 Play Store 或是 App Store 的规则
2 ,普遍的做法是不允许应用这种东西自己更新自己,这是它和传统软件的主要区别。因为应用本身就运行在受限的环境 /沙盘下。

考虑到 C&C(命令与控制)是后门常见的一种能力
那么强制更新,我觉得归类为后门是有道理的

应用市场很重要的一个任务是制约应用开发者,用脚投票需要在有这种制约的情况下,才能有效。
PP
2015-11-06 00:31:28 +08:00
@honeycomb 谢谢解答!我还遇到过一种情况,安卓端优酷 3.7 版我用得很开心,忽然有一天就不让用了,人家也不自动下载安装新版本,只是让旧版本打开后提示更新然后强行退出,不清楚是当初埋的桩还是后来推的命令,总归觉得这种做法多多少少也是比较猥琐的。
squid157
2015-11-06 00:34:17 +08:00
@honeycomb

那也得看怎么强制了

- 依赖网络的游戏 通常不会允许老版本客户端 这是一种
- 年久失修的老版本 服务器 API 都不知道换了多少代了 说不定连请更新三个字都没法告诉用户的 也是有可能 下个 OICQ 肯定是屁也干不了的

至于个别软件那种自己下好了东西直接把老版本覆盖的 值得商榷
squid157
2015-11-06 00:35:39 +08:00
@PP 看我上一条回复 也不一定是他主动逼你更新 而也可能是服务端架构调整没法支持老版本了
shenqiu15
2015-11-06 00:38:17 +08:00
高的垃圾
PP
2015-11-06 00:39:27 +08:00
@squid157 有这种可能,不过要说能落在优酷身上我是不信的。
allan1st
2015-11-06 00:44:12 +08:00
我觉得静默更新和强制你自己去商店下载更新才能用是两种不同的东西。
yyfearth
2015-11-06 03:05:49 +08:00
@honeycomb 强制更新是可以理解的 毕竟后端服务 API 更新
老版本客户端就会没办法使用 而且也不可能要求开发者一只保持 API 兼容性 成本很高的
尤其是那种 API 安全性更新(比如加强用户登陆校验机制和加密) 基本上除了强制要求更新 根本无解

@PP 首先看上面 另外这个不需要推送命令 只需要在老 API 上面返回一个错误信息就好了
会强制更新的 App 肯定都是用了服务器后端的 App 而不是本地离线类型的 App
功能都是需要后端支持的 后端升级了 接口不兼容 只能要你更新 App 了
一般情况 做后端服务 会支持最近几个版本的 API 兼容性 不过兼容的越多 成本越高
但是如果你长时间不更新 App 那么慢慢的 后端就会不兼容你的 App 版本

@squid157
1 但是如果是自动下载安装包 自动替代 就可以算是后门了 因为可以覆盖自己 那也可以静默安装别的
2 另外的做法是自动下载二进制执行包 这个比上面那种好一些 但是一般违反了 Store 的规定
3 现在比较流行的做法是把部分页面用 HTML5 写
然后客户端自动下载更新这些 HTML + 资源文件
如果不考虑离线操作 甚至可以直接载入服务器 HTML 展示
这样就可以不用更新 App 而更新 App 功能了 而且不是二进制文件 不违法 Store 规定
honeycomb
2015-11-06 09:12:57 +08:00
@squid157
@yyfearth

这里的问题是什么
我们用的不是 PC 机,而是有系统设计商和应用市场运营者强势参与的高封闭性移动系统
因此,要更新一个应用不仅要 1 ,获得用户同意,也要 2 ,获得应用市场运营者的同意,且 3 ,不能违反系统设计商定下的规则。

此次的支付宝在 Google Play 下架就是例子。
因为 2 在内地的 Android 无效,这就是为什么我们都希望 Google Play 至少可以入内地。
再因为 Android 6 以前对 3 的限制比较少

这是一个没得选择的事情,如果想不按规则,那就不能做
yyfearth
2015-11-06 10:02:21 +08:00
@honeycomb 我后面也有说啊 自动下载更新二进制包是禁止的 但是国内的市场和开发商并不买账
但是 如果是动态内容 就没什么关系
我看到很多 App 都会更新 HTML 内容 然后实现一些功能
这个是市场允许的

另外 用户有权利不更新 但是开发商也有权利停止服务啊(整个 App 或者 某些版本)
honeycomb
2015-11-06 11:05:31 +08:00
@yyfearth
如果是封闭应用市场的话
开发商不会选择停止服务的---->这就是我说到的制约

比方说,百度在 iOS 应用端的地图停止服务的话
从此开始在 iOS 上就没有百度地图这个东西了
PP
2015-11-06 12:20:41 +08:00
@yyfearth 谢谢解答!
yyfearth
2015-11-06 13:34:11 +08:00
@honeycomb 我是说停止服务器端的服务 并不是说 App 下架
App Store 不可能说你停止了老版本 API 服务就让你新版本下架的
honeycomb
2015-11-06 17:09:00 +08:00
@yyfearth 这是可能的。
因为停止服务端对老版本的支持而造成事实上的强制更新, app store 可以用下架来表示反对,不让玩了。

而 app 自己不能执行检查更新或升级自己的逻辑,那就意味着在服务端这么做是在给自己下套
yyfearth
2015-11-06 17:21:24 +08:00
@honeycomb 我所知道的身边几个公司 都是支持最近的 2-4 个大版本 基本上是 1-2 年的时间
之前的版本都是不支持的
另外除非你用一值用老版本 或者 iTunes 恢复 否则也不可能从 App Store 下载到很旧的版本

API 保持兼容性的成本非常高
尤其是如果之前有安全漏洞需要修复 那么很可能修好后 老版本就没办法再连接上
而且 现在一般的 App 一般都是只上架最新版本 不可能对旧版本进行修复

另外不再支持的旧版本 连接 API 后 得到错误信息 并且展示给用户 也不能算是远程控制

我觉得要求用户强制更新 和 自动强制更新 是完全不一样的 后面的才违法了 Store 的规定
前者的话 只要不是太过分 一般也没事啊
honeycomb
2015-11-06 18:31:11 +08:00
@yyfearth

" 都是支持最近的 2-4 个大版本"
这就没问题呀

要求用户从版本 A 强制更新到下一个版本 B 和 自动强制更新是一样的

如果版本 A-2 , A-1 依然能使用,那么要求版本 A-3 必须更新到版本 B 就没有问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/234013

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX