分析原文在此:
http://drops.wooyun.org/papers/10180
我用 Network Tools 试了一下
revoke 它的 AMapService 就能阻止它在本地开放 6677 端口
1
PP 2015-11-06 00:06:19 +08:00
我可以从另外一个角度理解后门问题吗?比如强制更新算不算是后门迹象?
|
2
honeycomb OP @PP
强制更新一般来说是 1 ,违反 Play Store 或是 App Store 的规则 2 ,普遍的做法是不允许应用这种东西自己更新自己,这是它和传统软件的主要区别。因为应用本身就运行在受限的环境 /沙盘下。 考虑到 C&C(命令与控制)是后门常见的一种能力 那么强制更新,我觉得归类为后门是有道理的 应用市场很重要的一个任务是制约应用开发者,用脚投票需要在有这种制约的情况下,才能有效。 |
3
PP 2015-11-06 00:31:28 +08:00
@honeycomb 谢谢解答!我还遇到过一种情况,安卓端优酷 3.7 版我用得很开心,忽然有一天就不让用了,人家也不自动下载安装新版本,只是让旧版本打开后提示更新然后强行退出,不清楚是当初埋的桩还是后来推的命令,总归觉得这种做法多多少少也是比较猥琐的。
|
4
squid157 2015-11-06 00:34:17 +08:00
@honeycomb
那也得看怎么强制了 - 依赖网络的游戏 通常不会允许老版本客户端 这是一种 - 年久失修的老版本 服务器 API 都不知道换了多少代了 说不定连请更新三个字都没法告诉用户的 也是有可能 下个 OICQ 肯定是屁也干不了的 至于个别软件那种自己下好了东西直接把老版本覆盖的 值得商榷 |
6
shenqiu15 2015-11-06 00:38:17 +08:00
高的垃圾
|
8
allan1st 2015-11-06 00:44:12 +08:00
我觉得静默更新和强制你自己去商店下载更新才能用是两种不同的东西。
|
9
yyfearth 2015-11-06 03:05:49 +08:00 1
@honeycomb 强制更新是可以理解的 毕竟后端服务 API 更新
老版本客户端就会没办法使用 而且也不可能要求开发者一只保持 API 兼容性 成本很高的 尤其是那种 API 安全性更新(比如加强用户登陆校验机制和加密) 基本上除了强制要求更新 根本无解 @PP 首先看上面 另外这个不需要推送命令 只需要在老 API 上面返回一个错误信息就好了 会强制更新的 App 肯定都是用了服务器后端的 App 而不是本地离线类型的 App 功能都是需要后端支持的 后端升级了 接口不兼容 只能要你更新 App 了 一般情况 做后端服务 会支持最近几个版本的 API 兼容性 不过兼容的越多 成本越高 但是如果你长时间不更新 App 那么慢慢的 后端就会不兼容你的 App 版本 @squid157 1 但是如果是自动下载安装包 自动替代 就可以算是后门了 因为可以覆盖自己 那也可以静默安装别的 2 另外的做法是自动下载二进制执行包 这个比上面那种好一些 但是一般违反了 Store 的规定 3 现在比较流行的做法是把部分页面用 HTML5 写 然后客户端自动下载更新这些 HTML + 资源文件 如果不考虑离线操作 甚至可以直接载入服务器 HTML 展示 这样就可以不用更新 App 而更新 App 功能了 而且不是二进制文件 不违法 Store 规定 |
10
honeycomb OP |
11
yyfearth 2015-11-06 10:02:21 +08:00
@honeycomb 我后面也有说啊 自动下载更新二进制包是禁止的 但是国内的市场和开发商并不买账
但是 如果是动态内容 就没什么关系 我看到很多 App 都会更新 HTML 内容 然后实现一些功能 这个是市场允许的 另外 用户有权利不更新 但是开发商也有权利停止服务啊(整个 App 或者 某些版本) |
12
honeycomb OP |
14
yyfearth 2015-11-06 13:34:11 +08:00
@honeycomb 我是说停止服务器端的服务 并不是说 App 下架
App Store 不可能说你停止了老版本 API 服务就让你新版本下架的 |
15
honeycomb OP @yyfearth 这是可能的。
因为停止服务端对老版本的支持而造成事实上的强制更新, app store 可以用下架来表示反对,不让玩了。 而 app 自己不能执行检查更新或升级自己的逻辑,那就意味着在服务端这么做是在给自己下套 |
16
yyfearth 2015-11-06 17:21:24 +08:00
@honeycomb 我所知道的身边几个公司 都是支持最近的 2-4 个大版本 基本上是 1-2 年的时间
之前的版本都是不支持的 另外除非你用一值用老版本 或者 iTunes 恢复 否则也不可能从 App Store 下载到很旧的版本 API 保持兼容性的成本非常高 尤其是如果之前有安全漏洞需要修复 那么很可能修好后 老版本就没办法再连接上 而且 现在一般的 App 一般都是只上架最新版本 不可能对旧版本进行修复 另外不再支持的旧版本 连接 API 后 得到错误信息 并且展示给用户 也不能算是远程控制 我觉得要求用户强制更新 和 自动强制更新 是完全不一样的 后面的才违法了 Store 的规定 前者的话 只要不是太过分 一般也没事啊 |