插入干扰关键词的答题APP OCR类辅助外挂的防护方法
2018-09-12◆杨钦
◆杨 钦
插入干扰关键词的答题APP OCR类辅助外挂的防护方法
◆杨 钦
(武汉轻工大学数学与计算机学院 湖北 430023)
随着答题app的火爆,基于OCR技术的答题app辅助外挂已经对app生态造成了很大的影响。针对这类外挂的防护迫切需要升级。本文着手于答题app中OCR类辅助外挂的防护问题,基于辅助外挂和搜索引擎原理,提出一种插入干扰关键词的答题app OCR类辅助外挂的防护方法,能够很好地解决答题app中的OCR类辅助外挂的防护问题。
答题app;OCR辅助外挂;外挂防护;关键词干扰
0 引言
答题app最初由国外的HQ Trivia 发起,广受好评,国内也马上出现了这类app。国内的答题app虽然在2018年初才兴起,但是各大厂商纷纷跟进,不光有冲顶大会、芝士超人等专门的答题app,许多平台app在其入口也插入了直播答题的功能,如今日头条、yy答题等,甚至qq中也出现了直播答题的入口[1]。
在巨额奖金的诱惑下,各种针对答题类app的辅助外挂纷纷出现[2]。
在国内,答题类app在外挂出现后进行了升级,可以针对流量截取类外挂进行精准打击。但是出现的新型基于OCR技术的外挂由于并不对app进行任何攻击性操作,只截取app显示的内容,利用OCR技术进行作弊,很难将其与普通用户区分开来。这类针对直播答题类app的OCR辅助外挂仍然逍遥法外,没有被厂商的反外挂程序精准打击。
在国外,有人提出通过修改答题app UI界面的方式来进行辅助外挂防护。但是由于OCR技术日趋成熟,抗干扰能力加强,这种调整app UI的方法效果有限,并且其中的加干扰图层方式对答题用户的题目识别产生了干扰[3-4]。
本文着手于目前火热的答题app中的OCR类辅助外挂的防护问题,根据OCR辅助外挂原理和搜索引擎的特性,提出了一种通过插入干扰关键词的方式进行答题类app中OCR类辅助外挂防护的方法。
1 答题app中OCR辅助外挂分析
1.1 基本介绍
(1)外挂基本介绍
最近,在答题类app火爆全国的时候,网上也出现了针对答题类app的OCR类辅助外挂。它通过手机与电脑主机连接,让主机能够获取手机中app的答题界面,然后利用OCR技术抽取抢答的题目和答案。利用搜索引擎搜索出答案后传回手机模拟选择答案。
这类外挂由于不对app进行任何恶意行为,仅仅是截取图片,因此一般针对app外挂的防护方法无法有效对这种OCR类外挂进行防护。
(2)技术背景介绍
ADB,即Android Debug Bridge,是一个命令行工具,允许开发人员将 Android 设备连接到开发系统(例如 PC)与其通信。它有一套独特的在 Android 权限系统下指定的功能,可以实现主机端和手机端的交互[5]。
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。OCR技术当前应用广泛,技术成熟。免费的OCR平台中比较著名的有国内百度AI的OCR平台和国外google的tessact-OCR平台,网上的图像识别类辅助外挂都是基于这两个平台进行OCR处理[6]。
但是Google tessact-OCR平台的识别准确率在未训练的情况下比百度OCR识别的准确率低,因此一般的中文答题app中的OCR类辅助外挂都采用百度OCR平台作为OCR工具。
1.2 辅助外挂原理分析
通过对目前网上针对直播答题的辅助外挂样本的分析与总结,我们可以发现这类辅助外挂在作用时主要分为三步,如图1所示。
图1 答题app中图像识别类辅助外挂工作原理
第一步,主机与手机连接,使得主机程序能够与手机连通交互,获取答题app显示的图片信息(连接模块),如图2。
图2 主机程序获取答题app界面代码
第二步,获取答案。
答案获取过程如下:
(1) 主机程序获取手机中答题app的答题页面图片后,根据不同机型和不同的答题app设置题目区域和答题区域对传回来的图片进行切割,得到题目图片和选项图片,如图3、图4所示。
图片3 辅助外挂中小米note3图片切割效果
(2) 将切割后得到的题目图片和选项图片传到图像识别平台进行OCR识别,提取答题app中答题界面的题目和选项,如图5。
图5 基于百度OCR平台的图片文字识别
(3) 将从图片中抽取出来的题目以一定策略放入搜索引擎中进行搜索,获取搜索结果得出题目答案。
现有辅助外挂的搜索策略有两种:题目+选项计数搜索法和题目搜索结果包含选项词频搜索法。最后,根据计数的不同来确定答案,出现次数最多的确定为题目答案,如图6。
图6 两种搜索策略
第三步,将答案传回手机端,模拟手机点击操作选择答案(模拟点击模块,外挂样本中只有部分样本有这个模块)。
目前的针对答题app的图像识别类辅助外挂均是利用adb中的adb shell getevent | grep -e "x" -e "y"命令来模拟点击答案。
2 防护方案分析及实现
2.1 防护方案分析
基于辅助外挂的原理,我们对这类OCR类辅助外挂的防护也可以分为三个步骤,如图7。
图7 答题app中图像识别辅助外挂防护分析
(1)阻止主机与手机端的连接。
目前出现的辅助外挂均是通过开发者模式,借助ADB工具来完成电脑主机之间的交互。
基于答题app中图像识别类辅助外挂的此种现状,我们可以通过监控ADB程序的进程,一旦监控到有ADB工具在app运行环境中运行,立即停止app运行或并尝试杀死ADB进程,如图8。而由于答题app在android系统中的权限不足,不能直接杀死adb进程,我们只能停止答题app自身运行来避免app生态受到辅助外挂的破坏[7]。
图8 android中的adb进程
(2)阻止辅助外挂中答案获取模块获取正确答案。
搜索引擎工作过程[8]:
①获取输入的搜索内容;
②利用分词算法将用户输入的搜索内容划分为一个个关键词[9];
③利用关键词在搜索数据库中搜索索引;
④结果显示。
如题目“埃菲尔铁塔位于哪个国家”放入搜索引擎搜索后,提取的关键词主要是“埃菲尔铁塔”、“位于”和“国家”,如图9。
图9 搜索结果
由于网上各种信息网络上信息纷繁复杂,各种信息充斥其间,而搜索引擎只是起关键词搜索作用并无信息判断功能。因此,在搜索时向搜索内容加入一个相关关键词能够大幅度干扰搜索结果。
在答题界面中题目区块前加入相关关键词来干扰搜索结果,如图10。
图片10 在题目中加入干扰关键词及干扰效果
这里我们可以看到在答题界面中加入干扰词后,原本外挂运行结果为“法国”的题目干扰后外挂运行结果为“印度”。
为了加大对辅助外挂的干扰,进一步降低辅助外挂的准确率,在选项中加入干扰关键词,如图11。
图11 在题目和选项均加入干扰词及干扰效果
在题目和选项中均加入干扰关键词后,反图像识别辅助外挂的效果进一步加强。对使用“题目搜索结果包含选项词频”搜索策略的辅助外挂,防护效果更加有效。并且,由于在选项图片中加入了干扰,使得辅助外挂将选项部分识别出错,能对后面辅助外挂中模拟点击动作产生保护作用。
(3)阻止外挂模拟在手机中模拟点击。
模拟点击可以利用MotionEvent实现模拟点击、利用AccessibilityService实现模拟点击以及借助反射实现模拟点击。但是这些模拟点击方法可以被其他类型的外挂防护措施很好地防护。因此,在答题app中图片识别类辅助外挂防护中,我们只要杜绝外挂利用adb工具来模拟点击就可以了。由于防护原理一样,模拟点击模块的防护功能由阻止连接模块和答案干扰模块共同实现。
2.2 防护方案实现
(1)ADB阻止模块
ADB阻止模块运行在答题app运行环境中,实时监测app运行环境中有无adb进程。如果发现运行环境中有adb进程,则限制答题app的运行,如图12、13。
图12 检测是否有adb程序运行
图13 限制答题app进程
(2)答案干扰效果验证
答案干扰模块在答题app内随题目显示运行,在显示题目前对显示的题目内容做干扰。由于无法获取答题app中的题库信息,我们采取从当前答题app中截取题目来作为实验数据,比对相同的题目集下加防护与不加防护辅助外挂答题准确率,来验证答案干扰方案的效果。
3 结论
3.1 环境
答题app运行在Mi_Note_3手机中,安卓版本为7.1.1。
实验题目数据从答题应用头脑王者中获取。
辅助外挂样本为目前网上针对答题app的典型OCR辅助外挂——TopSup。
3.2 结果
在ADB阻止模块中,ADB监控程序能够很好地检测到ADB进程,并限制答题app的活动。
在答案干扰部分中,通过对从真实答题app中获取的题目集进行处理,在相同的题目集下采取不同的防护方法,然后比对采取不同防护方法时辅助外挂的答题准确率来验证防护效果。具体情况如表1所示。
表1 采取防护前后答题正确率对比
注:由于网络搜索目标资源不同,不同题目集的正确率可能会有一定偏差。
从表1中,我们可以看到未防护前的辅助外挂答题准确率为98.3%,采用关键词防护后答题准确率降至7.6%,而采用UI防护后的辅助外挂答题准确率为28.3%。
从结果中我们可以发现,插入关键词的防护模式可以有效降低辅助外挂的答题准确率,在不干扰用户识别的情况下尽可能地干扰OCR类辅助外挂的功效。
3.3 结论与展望
近年来,移动互联网行业火爆异常,各种app的出现极大地方便了我们的日常生活和工作,提高了我们的生活效率。在一个又一个火爆app的背后,是一类又一类app外挂的出现。它们破解app、伪造通讯、模拟用户行为,为app厂商带来了巨额损失,极大地破坏了app的用户生态[10]。随着人工智能技术的发展,许多新型外挂借助图像识别技术实现了弱辅助外挂,逃避外挂防护系统的查杀。
2018年开年以来,答题app火遍全国,不论老少,都知道王思聪在答题app中“撒币”,答题可以分钱。而与此同时,针对答题app的OCR类辅助型外挂也出现在网络中,破坏了app用户的使用体验,给app厂商带来了损失。
本文着手于答题app中出现的OCR类辅助外挂,基于OCR外挂原理和搜索引擎特性提出一种针对答题app中出现的图像识别类外挂的防护方法。通过ADB连接阻止模块和答案干扰模块,对答题app中出现的OCR类辅助外挂进行了有效防护。
外挂的攻与防是一个长久的话题,我们要紧跟信息技术的发展,关注人工智能环境下的新型外挂,提出更多的解决办法,丰富应对人工智能外挂的应对措施。
[1]周琦.直播答题:2018 年新风口[N].CHINA ECONOMIC WEEKLY, 2018.
[2]赵丽.直播答题“江湖”现作弊产业链[N].法制日报, 2018.
[3]AppleCrazy. AppleCrazy's Blog[EB/OL]. https://applecrazy.github.io/blog/posts/protect-trivia-from-bots/,2017.
[4]Stephen,Cognetta.hackernoon.com[EB/OL].https://hackernoon.com/i-hacked-hq-trivia-but-heres-how-they-can-stop-me-68750ed16365, 2017.
[5]范琛琛, 施勇, 薛质.基于ADB调试的Andriod系统植入研究[J].信息安全与通信保密,2015.
[6]王文华.浅谈OCR技术的发展和应用[J].福建电脑, 2012.
[7]Joshua J.Drake.Android Hacker's Handbook[M].北京:人民邮电出版社,2015.
[8]刘佳.中文搜索引擎的设计与实现[D].东华大学,2008.
[9]刘宏伟.搜索引擎中中文WEB文本自动分类研究[D].暨南大学,2007.
[10]李京春.移动终端APP应用安全问题及防护措施[J].信息安全与通信保密,2014.