对于移动端 App,虚拟机注册或类似作弊行为有何应对良策?
1、APP攻击大致策略
对APP进行攻击的一般思路包括反编译APP代码、破解APP通讯协议、安装虚拟机自动化模拟: a、首先看能否反编译APP代码(例如Android APP),如果能够反编译,从代码层面理清APP业务逻辑(例如新用户注册),则直接在攻击软件中模拟此部分逻辑,相对于破解通讯协议及安装虚拟机自动化模拟而言,此种攻击方法是所有攻击者最优的选择方案。
反欺诈手段:代码混淆、核心算法加密(例如微信 android app)等。 b、如果无法反编译代码,则攻击者一般会选择通过对网络通讯协议抓包,破解通讯协议。
反欺诈手段:保证通讯协议的安全,例如采用SSL、防止中间人攻击(MITM)、报文签名、动态token等。 c、如果反编译代码及破解通讯协议都不管用情况下,一般才会采用安装bluestacks或android/iOS虚拟机安装APP进行攻击的方式。 当然以上策略很多情况下是综合使用的。
2、一般采用虚拟机进行攻击的手段:
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:梁川
链接:https://www.zhihu.com/question/33537532/answer/64966375
来源:知乎 )、采用ADSL、3G/4G、Proxy、VPN或IP池端等方式获取动态IP,规避对IP地址的反欺诈限制
反欺诈手段:IP黑名单、Proxy 检测、GeoIP等等 )、伪造IMEI、GUID/UUID、MAC地址等硬件设备信息
反欺诈手段:没什么好的手段,只能通过建立用户数字指纹库、黑名单库,结合访问规则、行为特征等其他策略进行防护。 )、篡改虚拟机特征信息(例如user-agent、ROOT/越狱),伪装为真实系统
反欺诈手段:只能尽量多研究各种虚拟机的特征信息,对这些特征信息进行检测,抓住攻击者疏漏的信息。
例如陌陌曾经对安装的bluestacks上的陌陌进行提示:你当前的设备存在安全隐患而无法登录,建议使用正规手机或Pad来使用陌陌,或提示为盗版等。
其原理在于:检测是否存在/data/Bluestacks.prop 文件,如果存在,则可以判定为bluestacks 虚拟机。 )、篡改GPS位置等动态信息,例如针对微信、陌陌的mock gps等软件
反欺诈手段:只能采用GPS模拟检测、用户访问规则、行为特征等综合策略进行防护。 )、对虚拟机进行ROOT或越狱,配合WIFI、DNS/MAC攻击等攻击手段,对服务器端漏洞进行攻击
典型例子是iOS上的IAP支付欺诈问题,使用IAP Tracker和IAP Free这样的越狱插件伪造交易凭证。
iOS游戏使用苹果的IAP支付,客户端回调服务器之后,服务器收到之后如何做校验? - 梁川的回答 )、页面安全攻击
对采用webview的页面进行XSS、SQL注入等攻击,尤其是结合虚拟机及自动化软件(例如篡改user-agent)
反欺诈手段:与虚拟机关系不大,本质上是服务器端的安全问题。 )、本地安全攻击
对虚拟机进行ROOT或越狱,然后获取对APP本地存储数据的读写权限,篡改数据或盗取数据。
反欺诈手段:数据加密存储;敏感数据别存放在本地。 8)、采用按键精灵/sikuli/触摸精灵等自动化工具 +虚拟机方式进行批量注册、自动化登录、模拟人工自动化操作
这是采用模拟器反欺诈最核心的问题。
3、反欺诈手段:
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:梁川
链接:https://www.zhihu.com/question/33537532/answer/64966375
来源:知乎 a、高大上的生物探针技术(类似支付宝 APP):
采用所谓的生物探针技术,识别用户独一无二的操作行为。
原理:正如签名笔迹一样,每个人的行为习惯都是独一无二的,如屏幕敲击频率、点击位置偏好等。通过机器学习,为每一个用户建立多维度的行为模型,称之为用户画像。将用户当前操作与模型进行匹配,可以准确地识别出风险及异常。 b、黑名单库
这里的黑名单库本质上是综合性策略,包括用户黑名单、邮件地址黑名单、手机号黑名单、IP黑名单、代理服务器黑名单、数字指纹黑名单、身份证黑名单、银行卡黑名单、区域黑名单(例如某个区域是作弊、骗取贷款高发地区)等等。 c、基于用户身份特征信息验证
例如手机号绑定+短信验证码、同一手机号只能注册绑定一个用户、同一用户同时在线数限制、在不同手机使用登录重新登陆策略等等。 d、在业务流程中,保证用户体验的前提下,增加一些互动元素,切断自动化操作
一个典型例子是,微信打飞机流行时候,用户首次安装登录微信时候,会出现打飞机的主界面,且跳过按钮不固定,要在虚拟机自动化注册、登录就极为麻烦。 e、基于用户访问规则、行为特征反欺诈
用户访问规则的例子:用户通过IP地址黑名单访问;用户通过代理服务器访问;两个用户通过同样的浏览器ID访问(钓鱼);用户短时间内通过两个地理上非常远的地方登录;用户从不同的IP地址,通过一个会话进行两个或两个以上的操作(中间人攻击)
用户行为特征的例子:用户在一个不常见的地址做特殊的操作、用户在一个不常见的地址做异常的操作、在短时间内很多用户做相同的操作、用户的行为与已有的欺诈类似。 f、反欺诈引擎/风控引擎
基于APP及业务积累的各种大数据,采用机器学习算法,建立反欺诈引擎/风控引擎,综合以上手段,对各种欺诈事件进行综合性防护。
参考链接:
https://www.zhihu.com/question/33537532
对于移动端 App,虚拟机注册或类似作弊行为有何应对良策?的更多相关文章
- Question | 移动端虚拟机注册等作弊行为的破解之道
本文来自网易云社区 "Question"为网易云易盾的问答栏目,将会解答和呈现安全领域大家常见的问题和困惑.如果你有什么疑惑,也欢迎通过邮件(zhangyong02@corp.ne ...
- 如何设计一个 App 的注册登录流程?
移 动设备发力之前的登录方式很简单:用户名/邮箱+密码+确认密码,所有的用户登录注册都是围绕着邮箱来做.随着移动设备和社交网络的普及,邮箱不再是唯 一,渐渐的出现了微博,QQ,微信等第三方登录方式,手 ...
- 【转】移动端App测试实用指南
转自:互联网那点事 英文原文: http://mobile.smashingmagazine.com/2012/10/22/a-guide-to-mobile-app-testing/ 测试人员常被看 ...
- 【转】【CDC翻客】移动端App测试实用指南
译者注:本文从测试人员的角度出发,提出了100多个在测试移动App过程中需要考虑的问题.不管你是测试人员.开发.产品经理或是交互设计师,在进行移动App开发时,这些问题都很有参考价值.我和Queen ...
- 移动端App uni-app + mui 开发记录
前言 uni-app uni-app是DCloud推出的终极跨平台解决方案,是一个使用Vue.js开发所有前端应用的框架,官网:https://uniapp.dcloud.io/ mui 号称最接近原 ...
- day97:MoFang:移动端APP开发准备&移动端项目搭建&APICloud前端框架
目录 1.移动端开发相关概念 1.APP类型 2.移动端屏幕介绍 3.移动端自适配方案 4.元信息(meta) 2.APP开发准备 1.注册APPCLoud账号 2.下载APP开发编辑器 3.下载AP ...
- 向虚拟机注册钩子,实现Bean对象的初始化和销毁方法
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 有什么方式,能给代码留条活路? 有人说:人人都是产品经理,那你知道吗,人人也都可以是 ...
- 报表开发工具Finereport移动端app js接口列表【全】
应用报表工具Finereport的开发人员会发现其移动端app 同样也推出了很多js接口,那这些接口到底有多少,其移动端又有哪些地方支持调用js,这些接口具体又该如何调用呢.根据我平时的开发经验,给大 ...
- 移动销售端app的需求分析
随着网络时代的发展,人们对于网络的依赖越来越大,网上购物便成了一个很大的消费者市场.. 如何分析一个综合的移动销售端app的需求我认为首先要确定用户,从用户的角度一个一个功能过,评估每一个功能的需求, ...
随机推荐
- 项目的整体框架,以及Topology的设计
一:说明 1.项目的整体框架 2.Topology的设计 3.记录 0. 89.201.10.122 - - [1528033390201] "GET /edit.php HTTP/1.1& ...
- hdu 2126 Buy the souvenirs 【输出方案数】【01背包】(经典)
题目链接:https://vjudge.net/contest/103424#problem/K 转载于:https://blog.csdn.net/acm_davidcn/article/detai ...
- POJ 2337 Catenyms(有向欧拉图:输出欧拉路径)
题目链接>>>>>> 题目大意: 给出一些字符串,问能否将这些字符串 按照 词语接龙,首尾相接 的规则 使得每个字符串出现一次 如果可以 按字典序输出这个字符串 ...
- jax-rs示例
compile 'org.glassfish.jersey.core:jersey-client:2.9.1' @Path("/{appId}/{env}/downloadSDK" ...
- STL之双向队列(dequeue)
//双向队列 deque #include <deque> #include <cstdio> #include <algorithm> using namespa ...
- Alpha冲刺随笔—:第一天
课程名称:软件工程1916|W(福州大学) 作业要求:项目Alpha冲刺(十天冲刺) 团队名称:葫芦娃队 作业目标:在十天冲刺里对每天的任务进行总结. 随笔汇总:https://www.cnblogs ...
- loj#2552. 「CTSC2018」假面
题目链接 loj#2552. 「CTSC2018」假面 题解 本题严谨的证明了我菜的本质 对于砍人的操作好做找龙哥就好了,blood很少,每次暴力维护一下 对于操作1 设\(a_i\)为第i个人存活的 ...
- 搞IT,算法编程不错的学习网址 & 一些专栏博客大神的地址(汇总)
博客专栏大神 王晓华(算法的乐趣) 算法系列:http://blog.csdn.net/orbit/article/category/830251 PostgreSQL深入理解内核系列:http:// ...
- [Go] 理解 golang 中的 nil
nil是什么 相信写过Golang的程序员对下面一段代码是非常非常熟悉的了: if err != nil { // do something.... } 当出现不等于nil的时候,说明出现某些错误了, ...
- 9.7 dubbo心跳机制
dubbo的心跳机制: 目的:检测provider与consumer之间的connection连接是不是还连接着,如果连接断了,需要作出相应的处理. 原理: provider:dubbo的心跳默认是在 ...