11月18号,2017看雪安全开发者峰会在北京悠唐皇冠假日酒店举行。来自全国各地的开发人员、网络安全爱好者及相应领域顶尖专家,在2017看雪安全开发者峰会汇聚一堂,只为这场“安全与开发”的技术盛宴。

在移动互联网时代,互联网业务飞速发展,在这样的大背景下滋生了一条以刷单、倒卖、刷榜、引流、推广为主的灰色产业链。山寨APP遍地开花,给原APP的开发者带来了很大的冲击,这些人往往被称为“打包党”。他们以低成本换取了高额的利润,给互联网企业以及用户都带来了巨大的损失。虽然加固技术、风险控制、设备指纹、验证码等技术也都在飞速发展,但实际效果并不能让人满意。本次峰会上,自由Android安全研究员、看雪会员陈愉鑫揭露了多个真实案例的技术细节、开发流程、运营流程,描述了一条以刷单、倒卖、刷榜、引流、推广为主的灰色产业链,并提出了一些防护建议,协议安全需要从体系上进行加强。

自由Android安全研究员、看雪会员 陈愉鑫

陈愉鑫,自由Android安全研究员、看雪会员。热爱APP通信协议分析,曾经分析过各商城、直播软件协议流程并还原加密。对灰色产业链流程略有研究。

以下为演讲:

陈愉鑫:大家好,我叫陈愉鑫,网名无名侠。今天很高兴能够在这里和大家相聚,这一次看雪的峰会办的特别好,我是2012年成为看雪的会员,这几年我在看雪也学了很多的知识,非常感谢看雪能够给我们提供这样的一个平台,我今天演讲的题目是移动APP灰色产业案例分析与防范。

大家玩过薅羊毛吗?我首先讲的是薅羊毛的工业革命。之所以叫它为什么工业革命,是因为我想讲薅羊毛怎么样从手工到脚本自动化完成。今天我会以小米商城、抢购软件做一个简单的例子,针对这些东西我会提出防范的建议。

羊毛党的工业革命。手动薅然后转换成自动化脚本,这一群人可以做什么?首先就是情报的搜集,要提前知道有那些活动,比如说今天发什么券他们都会提前知道,或者某一个什么APP有奖可以抽。羊毛党提前知道活动之后再找合伙人准备小号,准备小号就会批量注册,批量注册就涉及到注册协议的分析,现在这些APP里面都做了加密算法,这些加密算法有没有用,未知。也有很多加固,这些加固是否有效果,我们也未知。注册小号之后就会准备VPS,VPS越多请求量就越大。比如抽奖,用很多机器抽,肯定会比单人快。找技术人员,比如说分宜写法,解决算法脱掉破解,这些薅羊毛相当于做一个管理,管理下面的技术人员。活动上线之后,这个协议以及算法都生效了可以开始分析了,活动上线之后就要在第一时间内把这个东西做出来,所以上线之后就会找技术脱壳,找技术分析协议,直到出一个完整的软件出来。

安卓App容易被反编译以及调试,大部分的算法都是用Java写的,反编译非常容易,还有一些非常核心的算法会放在SO里面,但是效果也不是很好。做这一块的技术人很多,会的人也很多,做起来特别方便。

这是小米的抢购软件,在小米商城上有活动,比如说小米商城有一个板块叫做真心想要,这个板块里面就定期有非常低价商品出售的活动,这些活动一旦出来了,有一些人就会写脚本,买很多的服务器,同时开抢,抢到之后以稍微高的一点的价格转手出去。很多人从这个里面捞了很多钱。

首先我们来分析一下小米抢购软件的解决方案,要怎么样做一个抢购软件?我们要抢购东西首先要有一个API接口来源,小米应该有三个端,Web端,app以及盒子端。App又有Android和iOS两个端 ,iOS分析成本比较高,安卓比较容易。

小米盒子的商城里面时候也有一些便宜的东西,盒子看着挺难分析的,实际上可以很容易把里面的算法、协议提取出来。小米盒子抓包可能有一些困难,因为小米盒子没有代理配置功能,但是小米也自己犯了一个坑,发包函数里面会把发的数据通过log输出,我们通过查看logcat日志,可以知道他发送了什么。

做抢购就需要大量的小号,这些小号需要注册脚本,就涉及到一个验证码的识别,这个解码平台很多验证码就可以识别。今天上午看到一个笑话,验证码需要你手机上的尾码乘以数字是多少,这种解码平台就无能为力了,感觉特别好,这是一个特别好的思路。

小米的登陆算法也挺复杂的,会涉及到很多的步骤包括设备信息绑定等等。登陆之后,我们还会涉及到一个批量设置收货地址,批量下单。这些东西的原理还是非常简单,模拟一下小米数据包,像爬虫一样。抓包不能完全防止,因为抓包禁止不了,服务端也不可能完全对这个客户端鉴权,所以只能提高协议难度。

最简单的方法是最每一个数据包里添加一个sign 字段,仅仅通过抓包我们是无法得知该sign字段的计算方法的。我们知道一点的是,这个字段必须输入正确才可以成功登陆一个账号,一般这种解决思路就是通过逆向APP寻找注册密钥,还原这个过程,把真正密码以及提交后的加密密码对应生成关系,生成之后又可以让服务器认可,服务器认可之后就可以登陆,这是一个基本的思路。

现在许多应用开发商为了图方便,于是就直接调用Java的Crypto算法库。直接调用这样的算法库会存在一个潜在的安全隐患,密钥是固定的,算法也是固定的。既然是Java的算法库,那么就可以通过Hook的方法输出密钥、加密数据等重要信息。即使一个APP已经加固甚至做过许多混淆也没有太大的用处。在这种情况下,逆向就显得太慢了!

千里之提毁于蚁穴,有小部分APP选择使用加固产品,但是只使用了DEX加固功能,他们又将协议加密算法的代码放在SO里面,这样加固就没有起到太大的作用。

我们如何利用经过OLLVM编译的SO呢? SO文件是已经编译的可执行文件,那么既然都叫可执行文件了,是否有手段可以让这些SO执行起来呢? 有部分APP中的加密SO有x86版本,这就非常好办,直接load到内存,设置环境执行即可。如果只有ARM版本的SO又该如何处理呢? 我选择使用Unicorn 库模拟执行。Unicorn是一款基于Qemu模拟器内核的库,提供了许多方便的API接口。利用该库,我可以通过编程,完完全全虚拟出一颗ARM的处理器以及内存。

模拟执行成本就低了,而且使用Unicorn模拟执行还是线程安全的,非常适合羊毛党的业务需求。

模拟执行对抗方法也很简单,在核心的算法内增加上下文依赖,增加系统API调用,尽量避免纯运算函数。

其它的安全建议还有许多,例如修改标准算法也是不错的选择。最简单的方法是修改Base64的映射表、替换字符等等。再复杂一点就是修改Hash函数的初始化常量、增删算法部分逻辑等等,比较典型的是jd的tea算法。

自己实现VM也是一种不错的方案,自己实现VM有一个好处,可以根据自身APP的业务需求来设计。Bytecode可以灵活更新,甚至可以根据设备信息生成唯一加密算法。

最后,我建议核心点的协议采用一些二进制的序列化协议,这样能增加分析的难度。

注:本文根据大会主办方提供的速记整理而成,不代表CSDN观点。

2017看雪安全开发者峰会更多精彩内容:

  • 2017看雪安全开发者峰会在京召开 共商网络安全保障之策
  • 中国信息安全测评中心总工程师王军:用技术实现国家的网络强国梦
  • 兴华永恒公司CSO仙果:Flash之殇—漏洞之王Flash Player的末路
  • 中国婚博会PHP高级工程师、安全顾问汤青松:浅析Web安全编程
  • 威胁猎人产品总监彭巍:业务安全发展趋势及对安全研发的挑战
  • 启明星辰ADLab西南团队负责人王东:智能化的安全——设备&应用&ICS
  • 腾讯反病毒实验室安全研究员杨经宇:开启IoT设备的上帝模式
  • 绿盟科技应急响应中心安全研究员邓永凯:那些年,你怎么写总会出现的漏洞
  • 腾讯游戏安全高级工程师胡和君:定制化对抗——游戏反外挂的安全实践
  • 绿盟科技网络安全攻防实验室安全研究员廖新喜:Java JSON 反序列化之殇
  • 阿里安全IoT安全研究团队Leader谢君:如何黑掉无人机

自由Android安全研究员陈愉鑫:移动App灰色产业案例分析与防范相关推荐

  1. matlab 直流电源突变,鑫诺尔科技:直流电源案例分析及经验分享

    原标题:鑫诺尔科技:直流电源案例分析及经验分享 鑫诺尔科技:直流电源案例分析及经验分享 随着我国电网规模不断扩大,技术等级不断提高,电网技术实现新的跨越.直流电源装备水平实现了一体化.智能化,以满足保 ...

  2. android游戏加载,Android 游戏引擎libgdx 资源加载进度百分比显示案例分析

    因为案例比较简单,所以简单用AndroidApplication -> Game -> Stage 搭建框架 一.主入口,无特殊 public class App extends Andr ...

  3. UI设计师养成记-陈松鑫-专题视频课程

    UI设计师养成记-58913人已学习 课程介绍         UI设计师是指从事对软件的人机交互.操作逻辑.界面美观的整体设计工作人员.1)本套课程为溪聚网络联合Adobe创意大学官方独家课程,第一 ...

  4. Android最新最全100余款开源App(对应Github开源项目)

    最近整理了一些开源的APP,以及对应的一些Github开源项目,现在做一些记录,以便以后查阅. 介绍与链接 BeautifulRefreshLayout-漂亮的美食下拉刷新 https://githu ...

  5. 计算机设计基于Android实现高德地图校内导航出行app【项目源码+简要论文说明】

    基于Android实现高德地图校内导航出行app项目演示 如今手机的发展非常迅速,手机越来越成为人们不可缺少的东西.手机从最初功能简单的功能机,发展到如今几乎无所不能的智能机,满足了人们的日常需求,手 ...

  6. 基于Android实现高德地图校内导航出行app项目演示【项目源码+简要论文说明】分享

    基于Android实现高德地图校内导航出行app项目演示 如今手机的发展非常迅速,手机越来越成为人们不可缺少的东西.手机从最初功能简单的功能机,发展到如今几乎无所不能的智能机,满足了人们的日常需求,手 ...

  7. 我们参观机器人产业园的感想_工商联组织执常委赴醴陵华鑫电瓷电器产业园交流学习...

    11月18日上午,市工商联组织执常委及部分民营企业家代表30余人赴醴陵华鑫电瓷电器产业园进行参观和交流学习.工商联党组书记余波玲带队,副主席邱长青和工商联机关干部参加. 华鑫电瓷电器董事长石军生首先带 ...

  8. Android WindowManager 解析与骗取 QQ 密码案例分析

    最近在网上看见一个人在乌云上提了一个漏洞,应用可以开启一个后台 Service,检测当前顶部应用,如果为 QQ 或相关应用,就弹出一个自定义 window 用来诱骗用户输入账号密码,挺感兴趣的,总结相 ...

  9. Android性能优化——腾讯、字节、阿里、百度、网易等互联网公司项目实战+案例分析(附PDF)

    前言 当我们还在用按键.滑盖.翻盖手机的时候,全触屏手机来了; 当我们觉得二维码这项发明没有意义的时候,支付宝和微信等狠狠地给了我们响亮的耳光; 当我们以为扫码支付只有支付宝的时候,微信支付来了; 当 ...

最新文章

  1. 在WinXP上通过Virtual PC安装WinCE
  2. 麻省理工学院让软体机器人拥有了更好的触觉和空间感知能力
  3. Apache Kafka之设计
  4. Java applet java.lang.OutOfMemoryError: Java heap space
  5. HTTP事务的延迟—TCP的影响
  6. c语言7.5return的值是,这个真心搞不懂了。求助
  7. 线程与进程的控制原语对比
  8. 面试 | 从一个API缓存演化,详细了解Redis各项功能
  9. VMware-NAT连接网络
  10. git与gitlab使用教程
  11. AI芯片发展的前世今生
  12. WPS标题编号级别,根据上一级自动编号
  13. MySQL高级-(存储引擎、索引、锁)
  14. [北力电子] 无人机4G图传数传一体 pixhawk mavlink GSLINK 720P
  15. 点击小图查看大图的定位功能
  16. 未接响铃1秒是什么意思_18650锂电池3C到底是什么意思?看了秒懂
  17. 如何在线直线度测量应用方法
  18. linux 如何把某个文件夹下的可执行文件全局使用
  19. 聊聊 GPL、LGPL 开源代码许可协议,顺便提一下 MIT
  20. GeoJson格式标准规范

热门文章

  1. Android界面尺寸规范
  2. 速读-张量流处理器(TSP)
  3. “华为 30 岁以下员工仅占 28%”上热搜,网友:说好的 35 岁天花板呢?
  4. python continue 用法_Python中Continue语句的用法的举例详解
  5. 两个实打实干活的同事离职了,老板连谈都没谈,一句挽留都没有,你怎么看
  6. Android中的su命令使用
  7. Go语言如何实现删除Winmail邮箱系统中收件箱的所有邮件
  8. 一条线 理解SSH登录前因后果
  9. SDN(一) 用OpenWRT将路由器刷成openflow交换机
  10. Android大赛首轮获奖作品解析