一种基于区块链技术的Android恶意应用程序控制方法与流程

文档序号:12722239阅读:204来源:国知局
一种基于区块链技术的Android恶意应用程序控制方法与流程

本发明属于网络空间安全技术领域,尤其涉及一种基于区块链技术的Android恶意应用程序控制方法。



背景技术:

随着网络的迅速普及应用、数字化技术的快速发展,网络空间安全问题逐渐融于人们的工作和生活,为越来越多的人们所重视。近年来,随着移动互联网和智能移动设备的飞速发展,越来越多的人们在使用智能手机。Android作为一款Google开发的手机操作系统,占据了近81%的市场份额。然而,在吸引众多硬件软件厂商纷纷投资的同时,很多恶意的手机应用程序开发者,也借着这个势头,将自己开发的恶意手机应用程序投放进市场,这些恶意应用程序可能会盗取用户的隐私数据,甚至骗取钱财等。AVL移动安全团队统计2014年移动恶意代码数据时发现,Android恶意代码总量已增至123万。Android恶意代码泛滥,进行Android恶意应用程序检测和控制刻不容缓。

Android恶意应用程序的猖狂,很大程度归因于目前APP市场的高度开放:

1.管理上的不统一,不同于Apple公司的IOS系统,IOS的管理非常集中,只有一个官方的APP市场可以发布应用程序,未经过官方APP市场发布的应用程序不能够安装到用户手机上。而Android市场非常开放,任何APP市场,甚至于个人开发者,都可以通过各种渠道发布和传播应用程序,而这些应用程序可以仅仅通过用户授权就能安装至手机。

2.IOS的APP市场审核机制非常严格,不存在像Android那样良莠不齐的审核机制。Android市场不管是审核APK还是开发者都相对松散,如安智市场等很多APP市场,开发者审核流程只需要上传身份证照片,一般3天之内就能通过。自己写的应用也只需要1~2天就能审核上架。

3.写恶意应用程序的成本低廉。在Android市场中发布一款恶意应用程序不需要付出任何成本。而在IOS市场中,注册成为开发者的同时就要向Apple公司上缴一定的年费;一旦提交的应用程序是恶意的,对于开发者而言,意味着申请年费的资金将无法收回。

如果APP市场本身可以提供可靠的APP相关服务,且加大监管力度,保证其提供的每一个APK都是安全可靠的,也就不会有现在恶意代码泛滥的现象了。另外,如果开发者本身只可以向APP市场提供安全可靠的APP应用程序的话,那么就能从源头上消灭恶意应用程序。

为此,本发明引入区块链技术来解决这一问题。区块链技术是当今发展中一项具有影响力的技术,是比特币的核心技术。现将以比特币为例,描述构成一条区块链的基本要素:

1.信任机制保证:区块链在比特币中,充当着一个分布式记账本的角色,比特币的交易之所以是可靠的,是由于区块链中的区块记录着链条上的每一笔交易,每一个区块不仅记录着当前块中所有交易hash组成的Merkel root信息,也记录着上一个区块的hash值,所有的hash值串成一条链,保证了区块上每一笔交易的不可篡改性。

2.交易过程:交易的本质是,区块载入输入脚本,去解锁输出脚本。所谓的输出脚本,本质上是由上一笔交易传递过来的一个带有签名信息的密文,记录着上一笔交易中(假设买方为Bob,卖方为Alice),卖方(即用户Alice)授权给买方(即用户Bob)一部分比特币的使用权。Alice用Bob的公钥加密信息,同时用自己的私钥签名,解锁脚本就是Bob可以用自己的私钥去解密这个信息,以证明自己具有使用权,同时这个消息经过Alice签名,证明Alice已经将比特币的使用权转让出去了。

3.去中心化:因为每个节点都拥有全部的区块(这里不讨论SPV简单验证情况),所以所有的节点都拥有验证交易合法性的能力,不需要任何可信第三方去进行证明。同时,每个节点在网络上不断更新自己,以确保自己拥有的是最新的区块。

4.矿工:拥有全部区块,并负责产生新区块的节点。

5.挖矿:产生新区块的过程。区块产生的本质其实是通过一个叫POW(Proof of Work,具体见下面说明)的算法计算得出的,POW是一个数学上的计算难题。人们用这个难题的解与交易池(所有的交易会通过网络进行传播,到达矿工节点,矿工节点确认交易后,将交易在下一次区块生成时候写入区块,这个交易暂时停留的地方就叫做交易池)中的交易进行组合生成一个完整的区块。人们争相进行POW计算,用以获得新的区块的原因是因为新产生一个区块会给计算出这个区块的人12.5比特币的奖励,这个过程就叫挖矿。为什么这个工作量是有价值的,因为它耗费了人们的计算能源、存储空间和时间,价值本身其实是凝结在物质背后的无差别的人类劳动。

6.POW:思想是来源于掷骰子游戏,两个骰子,掷出小于12点的概率非常大,只要不是两个6点就满足条件,而掷出小于3点的概率非常小,每个骰子都要小于2点。POW就借鉴了这个思想,产生hash的过程类似于掷骰子,矿工需要将所有交易加上一个区块的hash值,加上一个随机数,通过遍历随机数,生成小于某个固定数值的hash值(hash本身可以表示成一个16进制表示的数字)。区块链中规定,每10分钟就会产生一个新的区块,这是由于区块本身在产生的时候,如果其发现产生速度大于10分钟就会缩减难度,小于10分钟就会增加难度,保证难度一直处在合适的范围内。



技术实现要素:

为了解决现有技术Android恶意应用程序难以检测和控制的问题,本发明提供一种基于区块链技术的Android恶意应用程序控制方法。

本发明基于区块链技术的Android恶意应用程序控制方法,包括以下步骤:

步骤一、将APP市场注册成为区块链节点,各APP市场之间达成三个基本共识机制:可靠性、趋利性及信誉量化性;

步骤二、开发者向APP市场上传应用程序,并产生相应的上传记录,形成上传交易,如果APP市场同意接收,开发者对该交易进行签名;如果APP市场拒绝接收,证明该APP为恶意应用程序,APP市场对该交易进行签名;如果在APP上传过程中直接被APP市场反馈为是恶意应用程序,则变为反馈交易的一部分,对APP市场自身或其开发者造成信誉度的缺损;

步骤三、用户向APP市场提交下载请求,形成下载交易;当用户下载一个APP的时候,系统生成一个交易信息,APP市场利用自己的私钥对交易信息进行签名,通过网络发送到交易池中;等待新的交易信息所构建的区块产生,交易写入区块链中;

步骤四、用户对APP市场进行反馈,APP市场对开发者进行反馈,形成反馈交易;

步骤五、区块链中的每个区块,通过挖矿方式增加信誉度。

与现有技术相比,本发明具有如下优点及有益效果:

1、本发明将APP市场注册为区块链节点,APP市场所发布的每一个应用程序都会被区块链记录下来,并直接反馈到APP市场本身的信誉度上,因而经常发布恶意应用程序的APP市场就很难再吸引顾客,久而久之就会走向衰亡,而一个经常发布恶意应用程序的开发者就会失去和他合作的所有APP市场,面临失业。因此,本发明能够很好地从源头上控制恶意程序的发布与流通,有效遏制了恶意代码泛滥之现象。

2、为了防止DDOS攻击(即分布式拒绝服务攻击),本发明还利用数据去重技术,将下载与上传的APK版本只保存一份,在区块链中的下载记录也只保存一份,极大减少了资源的开销。

3、对于一次反馈交易,只计算一次信誉度的下降情况,有效避免了APP市场本身或者开发者本身被多个用户反馈,导致信誉度急速下降的情况。对于一次反馈交易,信誉度的下降会存在连锁反应,即发现一个恶意APP,提供这个APP下载服务的APP市场及开发者的信誉度均下降。

4、对于区块链中的每个区块,通过挖矿方式增加信誉度,一个APP市场具有越高的信誉度,其具有越多的收益,因而本发明能打破一家APP市场独家垄断的局面,在保证竞争的同时能促使所有APP市场都尽可能提供较好的服务。

附图说明

图1是本发明实施例提供的一种基于区块链技术的Android恶意应用程序控制方法的流程图;

图2是本发明实施例提供的一种基于区块链技术的Android恶意应用程序控制系统的区块链与交易池结构示意图。

具体实施方式

下面将结合实施例和附图对本发明做进一步详细说明,但本发明的具体实施方式并不限于此。

实施例

本发明Android恶意应用程序控制方法将区块链应用在Android的APP市场上,APP市场发布的每一个应用程序都会被区块链记录下来,并直接反馈到APP市场本身的信誉度上,那么经常发布恶意应用程序的APP市场就很难再吸引顾客,久而久之就会走向衰亡,而一个经常发布恶意应用程序的开发者就会失去和他合作的所有APP市场,面临失业。参加图1,具体来说包括以下步骤:

步骤一、将APP市场注册为区块链节点,各个APP市场之间达成共识:

共识一:可靠性。区块链中大部分节点都是诚实可靠的。

共识二:趋利性。对于一个APP市场或者一个开发者而言,其发布恶意应用程序量的多少会直接或者间接影响其收益额的大小。并存在以下关系:发布恶意应用程序越多,信誉度下降,用户量下降,营业额下降;反之亦然。

共识三:信誉量化性。为了衡量信誉度,我们引入一个变量来描述这个值,即可以利用一个具体的数值来表示信誉度的高低。

步骤二、开发者向APP市场上传APP,并产生相应的上传记录,形成上传交易。上传记录指的是一个开发者向一个APP市场上传一个APP的过程。

上传交易包括以下信息:(1)交易索引;(2)上传记录(包括开发者信息、上传的APP市场信息、APK哈希值、交易时间);(3)导致现在开发者信誉度下降或者上升的对应事件;(4)开发者当前的信誉度。

当开发者想要上传一个APP的时候,系统会生成一个交易信息,首先,市场会进行一次对APP的检测操作,以确定是否接受这个APP,因为这个APP很有可能是恶意的。此时APP市场不知道这是一个上传过程还是反馈过程(参见反馈过程)。如果同意接收,开发者会对这个交易进行签名;如果拒绝接收,证明该APP为恶意应用程序,APP市场会对这个交易进行签名。如果在APP上传过程中直接被反馈为恶意程序,则会变为反馈交易的一部分,当有6个以上的APP市场同时拒绝接受这个APP,那么这次上传交易就会转换为对开发者的负反馈。交易通过网络传递到交易池中,等待新的区块产生,写入区块链中。当被拒绝后的上传交易在交易池中等待过久,该上传交易会被交易池优先清理。当被清理时,如果该交易的部分反馈交易次数小于等于3,则转换为对APP市场的负反馈。理由是APP市场有可能误判或有意认定这个APP是恶意的。

步骤三、用户向APP市场提交下载请求,形成下载交易。

下载交易包括以下信息:(1)交易索引;(2)下载记录(包括APP市场信息、APK的哈希值、交易时间);(3)导致现在APP市场信誉度下降或者上升的对应事件;(4)APP市场当前的信誉度。当用户下载一个APP的时候,系统会生成一个下载交易信息,市场用自己的私钥对所下载的交易信息进行签名,然后通过网络发送到交易池中;等待新的交易信息所构建的区块产生,将交易写入区块链中,如图2。

为了防止DDOS攻击(即分布式拒绝服务攻击),可以利用数据去重技术,将下载与上传的APK版本只保存一份,同样也只在区块链中的下载记录保存一份(对于不同平台存不同的一份记录),因为建立区块链的目的是为了维持信誉度的动态变化,对于同一个开发者上传的同一个APP而言,所有的上传记录只需要记录一个指针地址,因为对于开发者的反馈,所有的反馈行为对于不同的平台都是一样的,都来源于同一个开发者,其签名也是一样的。对于下载记录而言,同一个APP可能经过不同的平台,但是针对下载信息进行的签名,而不是针对这个APP本身。在用户反馈的时候,也只关心是哪个平台提供的这个APP。对于同一个平台而言,同一个APP可能供成千上万的人下载,因此只存一份记录可以极大减少开销。

本发明专利设定每10分钟产生一个区块,一年产生区块的数量保持固定。产生区块的难度调节可参考比特币的生成规则。而区块的最大容量,可以通过不同种类的APP近一年的上传、下载和反馈量除以一年产生的区块数量来决定,具体存在以下关系:

Volume_Maxsize=(uloadrecord(times)+download(times)+feedback(times))/number of blocks

步骤四、APP市场或用户向矿工节点进行反馈,构成反馈交易。反馈过程产生的信息指的是一个APP市场向矿工节点(APP市场)反馈恶意开发者信息,或者一个用户向一个矿工节点(APP市场)反馈恶意APP市场的过程。包括:(1)交易索引;(2)下载记录的索引值;(3)被认为有恶意行为的APK;(4)交易时间戳。

用户向任意一个APP市场(不包含第一次下载该应用的APP市场)发起反馈过程,在绝大多数情况下,此时APP市场并不能区分这是一个上传过程,还是一个反馈过程。本发明专利设定已经存在该应用程序的APP市场将不能作为验证方。因为APP恶意检测技术的能力是逐步提升的,APP市场可能为了隐瞒之前的一次检测失误,而故意发布假的检测结果。

在个别情况下,如果能区分出来这个交易过程是上传过程,而不是反馈过程,那么在上传过程中,APP市场就无法进行反馈,这种情况也就不会存在APP市场反馈假结果现象了。无法区分的目的是为了让APP市场不能故意发布假的结果来诋毁其他APP市场。

在绝大多数情况下,无法区分上传过程与反馈过程的理由是,同样一个APP可以被上传至多个APP市场,通过检索区块中是否存在这样一条上传记录并不能确定其是否为一个上传过程。

如果该APP存在于之前区块记录的上传过程中,即该APP市场发现在别人的交易记录中发现该APP上传记录。此时,其不能区分该记录是上传过程还是反馈过程,因为同样一个APP可以被上传至多个APP市场。如果该APP在之前的区块记录中并没有发现,此时,其能区分出该记录就是一个上传过程;并且可以肯定,该APP是上传至自己APP市场的。就等于为自己检测上传的APP是否有恶意行为,但并不能对其余APP市场构成恶意反馈。

对于一次反馈交易,我们只计算一次信誉度的下降情况。不存在平台本身或者开发者本身被多个用户反馈,而导致信誉度急速下降的情况。对于一次反馈交易,信誉度的下降会存在连锁反应,即发现一个恶意APP,提供这个APP下载服务的平台(即APP市场)的信誉度也会受影响,最后也会导致开发者信誉度也下降。

APP市场会诚实进行检测的,如下情况均为不诚实行为:

1.对于每一个上传的APP,不管是否是恶意程序,是否是上传过程还是反馈过程,都宣称是恶意APP,对其危害是:(1)有可能拒绝一个正常APP的上传,导致没有新APP上传到它的APP市场。久而久之,如果一直没有新APP加入,APP市场就会失去竞争力。(2)当交易池中的恶意APP反馈凑不齐3个时,被移除交易池的时候,该过程会转换为对APP市场的负反馈。

2.对于每一个上传的APP,不管是否是恶意程序,是否是上传过程还是反馈过程,都宣称是正常APP,久而久之,其市场极有可能接收到真实的恶意APP,在后续的下载交易过程中,将被用户反馈,导致其信誉度下降。

对于开发者的反馈交易与之类似,不予赘述。

交易写入的过程与比特币类似,不予赘述。在矿工节点挖到矿(解决POW问题)的时候,节点首先从交易池里面取出交易,然后生成Merkel root,最后写入交易。

这里可能存在这样一个矿工节点,专门写别人的交易,不写自己的交易,尤其是不写对自己不好的交易,假设每一个节点都这样,最终,所有节点的交易信息仍然会被写入区块链中。要想控制区块的内容,除非利用51%以上的节点进行攻击,掌握区块链中绝大多数的算力,这在实际应用过程中很难实现。

步骤五、通过挖矿方式产生新的区块,增加信誉度。一个APP市场具有越高的信誉度,其具有越多的收益。相关引理如下:

引理1:信誉度在一定程度与收益正相关,甚至可以这么说,信誉意味着金钱。

引理2:具有越高信誉度的节点,越想保护好这条区块链,保障这条区块链交易的真实性,维护好这条区块链的信誉度。如果区块链机制崩溃,其信誉度优势将不复存在。

引理3:根据引理1与2,因为信誉高的节点想维护好这条链,所以必须进行一些行为。区块链如果没有新区块产生,机制就会崩溃,因而本发明必须给那些信誉度高、想维护好这条区块链的节点一些信誉度的奖励。

关于反馈动机说明:有两个利益的驱使反馈,第一个,作为APP市场而言,其希望通过反馈排除自己的竞争对手。所有负反馈的来源是恶意开发者,消除恶意开发者,是APP市场愿意看到的。第二个,对于用户而言,其反馈恶意APP市场是自己能享受安全服务的前提,同时,因为上面的引理1,我们可以采取奖励机制,因为APP市场信誉度下降了,其有一定的财产损失。这些损失的财产,最简单直接的方式可以转换为对用户的奖励。同时,应用时的额外强制措施也促进了APP市场进一步加强自身的管理。

POW相关的定理:

定理1:一个APP市场或者开发者的信誉度越高,在一次负反馈的过程中,下降的信誉度也越大。这与实际的情况相吻合,例如名誉越高的人,其名誉越容易因为一件小事而遭受大的影响。

定理2:一个APP市场或者开发者的信誉度越高,在一次挖矿的过程中,获得的信誉度上升就会越小。这与实际的情况相吻合,例如考试成绩50分要想提高到60分很容易,但是90分要想提高到100分就比较困难。

定理1、定理2主要是想打破一家APP市场独家垄断的局面,实现最后所有的APP市场都尽可能提供较好的服务,但是并不是没有竞争。APP市场本身可以通过强化自己的恶意代码检测技术来保证自己市场的APP不受恶意代码的侵害。最后只有拥有较强检测技术的一些公司会保存下来。鼓励多家APP市场共同发展,并不代表所有的APP市场都一样。

以上所述仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1