本发明涉及互联网
技术领域:
,具体而言,涉及一种应用程序的攻击检测方法、装置、电子设备及可读介质。
背景技术:
:随着移动互联网技术的发展,越来越多的用户选择在手机上进行日常操作。一些不法商贩以及黑产为了某些利益,开始频繁的攻击手机上的应用程序,来获取超额收益。目前,相关技术中一般都是通过如下几种检测方式检测针对应用程序的攻击:1、检测设备是否用使用修改系统框架服务xposed。2、检测设备是否有最高权限root。3、通过检测某些“特定”文件是否存在来检测针对应用程序攻击。以上检测针对应用程序的攻击方法,已经被黑产所熟知,很容易通过一些技术手段来绕过,例如,在非root下很难检测,又例如,通过禁止访问某些“特定的”文件,导致无法检测。因此,需要一种新的应用程序的攻击检测方法、装置、电子设备及可读介质,以提升应用程序的攻击检测方法的准确性。在所述
背景技术:
部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。技术实现要素:有鉴于此,本发明提供一种应用程序的攻击检测方法、装置、电子设备及可读介质,至少在一定程度上提升应用程序的攻击检测方法的准确性。本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。根据本发明实施例的一方面,提供一种应用程序的攻击检测方法,其中,所述方法包括:调用第一接口获取设备的第一运营商信息;调用第二接口获取所述设备的基站信息,并基于所述基站信息获取第二运营商信息;将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果;基于所述比对结果确定目标应用程序是否被攻击。在本发明的一些示例性实施例中,基于前述方案,将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果,包括:判断所述第一运营商信息包括的运营商的数目是否超过阈值;若判断结果为否,将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果。在本发明的一些示例性实施例中,基于前述方案,所述方法还包括:若判断所述第一运营商信息包括的运营商的数目超过阈值,确定所述目标应用程序被攻击。在本发明的一些示例性实施例中,基于前述方案,将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果,包括:将所述第一运营商信息与所述第二运营商信息中相同账号标识所对应的运营商进行比对,获取比对结果。在本发明的一些示例性实施例中,基于前述方案,基于所述比对结果确定目标应用程序是否被攻击,包括:若所述比对结果为相同,确定所述目标应用程序未被攻击;若所述比对结果为不同,确定所述目标应用程序被攻击。在本发明的一些示例性实施例中,基于前述方案,所述第一接口包括:获取运营商信息接口。在本发明的一些示例性实施例中,基于前述方案,所述第二接口包括:获取基站信息接口。根据本发明实施例的另一方面,提供一种应用程序的攻击检测装置,其中,所述装置包括:第一获取模块,配置为调用第一接口获取设备的第一运营商信息;第二获取模块,配置为调用第二接口获取所述设备的基站信息,并基于所述基站信息获取第二运营商信息;比对模块,配置为将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果;确定模块,配置为基于所述比对结果确定目标应用程序是否被攻击。在本发明的一些示例性实施例中,基于前述方案,所述比对模块,包括:判断单元,配置为判断所述第一运营商信息包括的运营商的数目是否超过阈值;比对单元,配置为若判断结果为否,将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果。在本发明的一些示例性实施例中,基于前述方案,所述比对模块还包括确定单元,配置为若判断所述第一运营商信息包括的运营商的数目超过阈值,确定所述目标应用程序被攻击。在本发明的一些示例性实施例中,基于前述方案,所述比对模块,配置为将所述第一运营商信息与所述第二运营商信息中相同账号标识所对应的运营商进行比对,获取比对结果。在本发明的一些示例性实施例中,基于前述方案,所述确定模块,配置为若所述比对结果为相同,确定所述目标应用程序未被攻击;若所述比对结果为不同,确定所述目标应用程序被攻击。在本发明的一些示例性实施例中,基于前述方案,所述第一接口包括:获取运营商信息接口。在本发明的一些示例性实施例中,基于前述方案,所述第二接口包括:获取基站信息接口。根据本发明实施例的再一方面,提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上所述的方法步骤。根据本发明实施例的再一方面,提供一种电子设备,其中,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法步骤。本发明实施例中,调用第一接口获取设备的第一运营商信息;调用第二接口获取所述设备的基站信息,并基于所述基站信息获取第二运营商信息;将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果;基于所述比对结果确定目标应用程序是否被攻击。实现了基于运营商信息进行应用程序的攻击检测,降低了该检测方法被攻击的风险,提升应用程序的攻击检测方法的准确性。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1是根据一示例性实施例示出的应用程序的攻击检测方法的流程图;图2是根据另一示例性实施例示出的应用程序的攻击检测方法的流程图;图3是根据一示例性实施例示出的一种应用程序的攻击检测装置的结构示意图;图4是根据一示例性实施例示出的一种电子设备的结构示意图。具体实施方式现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。在实现本发明的过程中,发明人发现,黑产等攻击应用程序时,为了模拟正常等环境,“欺骗”应用程序,往往会注入一些常见的手机信息,如运营商信息,但是由于每个手机的运营商信息均不一样,黑产往往是批量注入,这样就给识别留下了痕迹。本发明实施例针对这种情况,设计了安卓系统下基于运营商信息的应用程序的攻击检测方法。下面结合具体的实施例,对本发明实施例中提出的应用程序的攻击检测方法进行详细的说明。需要说明的是,该方法可以由任意具有计算处理能力的模块/组件完成,但本发明并不限于此。该模块/组件可以加载于目标应用程序,用于检测针对目标应用程序的攻击。需要指出的是,本发明实施例可以应用于安卓系统中。图1是根据一示例性实施例示出的应用程序的攻击检测方法的流程图。如图1所示,该方法可以包括但不限于以下步骤:在s110中,调用第一接口获取设备的第一运营商信息。根据本发明实施例,第一接口可以是获取运营商信息接口,通过调用该接口,可以获取到目标应用程序所在的设备的第一运营商信息。在s120中,调用第二接口获取所述设备的基站信息,并基于所述基站信息获取第二运营商信息。根据本发明实施例中,第二接口可以是获取基站信息接口,通过调用该接口,可以获取到目标应用程序所在的设备的基站信息。如,[{mnc:00,lac:10438,cid:26493,dbm:-77,type:gsm}……{mnc:00,lac:10438,cid:39643,dbm:-89,type:gsm}],其中,mnc(mobilenetworkcode,移动网络号码)用于识别移动用户所归属的移动通信网,由2~3位数字组成。例如,中国移动系统使用00、02、04、07,中国联通gsm系统使用01、06、09,中国电信cdma系统使用03、05、电信4g使用11,中国铁通系统使用20等。lac(locationareacode,位置区码)是为寻呼而设置的一个区域,覆盖一片地理区域。cid(cellidentity,基站编号),是个16位的数据(范围是0到65535)。dbm:表示信号强度,type:表示类型。需要说明的是,一个设备可以对应于多个基站信息。根据本发明实施例,在获取到基站信息后,可以对基站信息进行分析,得到目标应用程序所在的设备的第二运营商信息。例如,通过分析基站信息中的mnc可以得到第二运营商信息。如,上述示例中,mnc:00,可以获取到第二运营商信息为:中国移动。需要指出的是,本发明实施例中除了采集第一运营商信息、基站信息,还可以采集到移动设备型号,操作系统版本号,以及imsi(internationalmobilesubscriberidentificationnumber,国际移动用户识别码),meid(mobileequipmentidentifier,移动终端标识号)、imei(internationalmobileequipmentidentity,移动设备国际识别码)等设备标识信息。在s130中,将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果。根据本发明实施例,在进行比对前,可以判断所述第一运营商信息包括的运营商的数目是否超过阈值,若判断结果为否,将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果。若判断结果为是,则直接判断该目标应用程序被攻击。例如,运营商包括:中国移动、中国联通以及中国电信3个,而每个手机一般最多可以支持双卡双待,若获取到第一运营商信息中包括的运营商的数目已经超过了阈值2个,则直接判断该目标应用程序被攻击。根据本发明实施例,进行比对时,将所述第一运营商信息与所述第二运营商信息中相同账号标识所对应的运营商进行比对,获取比对结果。例如,某设备内包含两个账号标识,分别为卡1和卡2,其中卡1的第一运营商信息为中国移动,卡2的第一运营商信息为中国联通。将获取到的卡1的第二运营商信息与中国移动进行比对,将获取到的卡2的第二运营商信息与中国联通进行比对,获取卡1和卡2的比对结果。在s140中,基于所述比对结果确定目标应用程序是否被攻击。本发明实施例中,比对结果并不是指每个账号标识的比对结果是否相同,而是指每个相同的账号标识的第一运营商信息与第二运营商信息的比对结果,若第一运营商信息与第二运营商信息中每个相同账号标识对应的运营商均相同,则比对结果为相同。例如,获取到如表1所示的各账号标识的运营商信息:卡1卡2第一运营商信息中国移动中国联通第二运营商信息中国移动中国联通表1由表1可知,获取到卡1的第一运营商信息与第二运营商信息相同,均为中国移动,卡2的第一运营商信息与第二运营商信息相同,均为中国联通,则比对结果为相同。需要指出的是,若未获取某账号标识的第二运营商信息,则不将该账号标识计入比对结果中。例如,若未获取到表1中的卡2的第二运营商信息,则卡2的比对结果不计入最终的比对结果,由于卡1的第一运营商信息与第二运营商信息相同,比对结果为相同。本发明实施例中,若第一运营商信息与第二运营商信息中相同的账号标识中存在对应的运营商不同的账号标识,则比对结果为不同。例如,获取到如表2所示的各账号标识的运营商信息:卡1卡2第一运营商信息中国移动中国联通第二运营商信息中国联通中国联通表2由表2可知,获取到卡1的第一运营商信息与第二运营商信息不相同,分别为中国移动和中国联通,卡2的第一运营商信息与第二运营商信息相同,均为中国联通,则比对结果为不同。需要指出的是,若未获取某账号标识的第二运营商信息,则不将该账号标识计入比对结果中。例如,若未获取到表2中的卡2的第二运营商信息,则卡2的比对结果不计入最终的比对结果,由于卡1的第一运营商信息与第二运营商信息不同,比对结果不同。根据本发明实施例,若比对结果为相同,确定所述目标应用程序未被攻击,若所述比对结果为不同,确定所述目标应用程序被攻击。例如,表1所对应的示例中,目标应用程序未被攻击,表2所对应的示例中,目标应用程序被攻击。需要说明的是,由于黑产在攻击应用程序时,为了模拟正常等环境,“欺骗”应用程序,往往会注入一些常见的手机信息,如运营商信息,但是由于每个手机的运营商信息均不一样,黑产往往是批量注入,这就导致了通过调用第一接口获取第一运营商信息的错误。本发明实施例基于现有移动操作系统进程的开发,由于使用的通用的信息,黑产很难识别,不需要root,而且不需要文件读取操作,黑产很难攻击。本发明实施例中,通过将设备的基站信息,得到设备的真正的运营商信息,即第二运营商信息,将第一运营商信息与第二运营商信息进行比对,若比对结果为相同,说明第一运营商信息是正确的,应用程序未被攻击,若比对结果为不同,说明第一运营商信息是错误的,也就是黑产批量注入的,因此应用程序被攻击。根据本发明实施例,当运行该应用程序的攻击检测方法的模块/组件确定目标应用程序的攻击结果后,向目标应用程序发送该攻击结果。本发明实施例中,调用第一接口获取设备的第一运营商信息;调用第二接口获取所述设备的基站信息,并基于所述基站信息获取第二运营商信息;将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果;基于所述比对结果确定目标应用程序是否被攻击。实现了基于运营商信息进行应用程序的攻击检测,降低了该检测方法被攻击的风险,提升应用程序的攻击检测方法的准确性。下面结合具体应用场景,对本发明实施例中提出的应用程序的攻击检测方法进行进一步的说明。图2是根据另一示例性实施例示出的应用程序的攻击检测方法的流程图。如图2所示,该方法可以包括但不限于以下步骤:在s201中,调用第一接口获取设备的第一运营商信息。在s202中,调用第二接口获取所述设备的基站信息,并基于所述基站信息获取第二运营商信息。在s203中,判断第一运营商信息包括的运营商的数目是否超过阈值。若判断结果为是,则执行s206,若判断结果为否,则执行s204。在s204中,判断所述第一运营商信息与所述第二运营商信息中相同账号标识所对应的运营商是否相同。本发明实施例中,若第一运营商信息与第二运营商信息中每个相同账号标识对应的运营商均相同,则比对结果为相同。若第一运营商信息与第二运营商信息中相同的账号标识中存在对应的运营商不同的账号标识,则比对结果为不同。若判断结果为是,则执行s205,若判断结果为否,则执行s206。在s205中,确定目标应用程序未被攻击。在s206中,确定目标应用程序被攻击。本发明实施例中,调用第一接口获取设备的第一运营商信息;调用第二接口获取所述设备的基站信息,并基于所述基站信息获取第二运营商信息;将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果;基于所述比对结果确定目标应用程序是否被攻击。实现了基于运营商信息进行应用程序的攻击检测,降低了该检测方法被攻击的风险,提升应用程序的攻击检测方法的准确性。应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施例。下述为本发明装置实施例,可以用于执行本发明方法实施例。在下文对系统的描述中,与前述方法相同的部分,将不再赘述。图3是根据一示例性实施例示出的一种应用程序的攻击检测装置的结构示意图,其中,所述装置300包括:第一获取模块310,第二获取模块320,比对模块330以及确定模块340。第一获取模块310,配置为调用第一接口获取设备的第一运营商信息。第二获取模块320,配置为调用第二接口获取所述设备的基站信息,并基于所述基站信息获取第二运营商信息。比对模块330,配置为将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果。确定模块340,配置为基于所述比对结果确定目标应用程序是否被攻击。本发明实施例中,调用第一接口获取设备的第一运营商信息;调用第二接口获取所述设备的基站信息,并基于所述基站信息获取第二运营商信息;将所述第一运营商信息与所述第二运营商信息进行比对,获取比对结果;基于所述比对结果确定目标应用程序是否被攻击。实现了基于运营商信息进行应用程序的攻击检测,降低了该检测方法被攻击的风险,提升应用程序的攻击检测方法的准确性。图4是根据一示例性实施例示出的一种电子设备的结构示意图。需要说明的是,图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。如图4所示,计算机系统400包括中央处理单元(cpu)401,其可以根据存储在只读存储器(rom)402中的程序或者从存储部分408加载到随机访问存储器(ram)403中的程序而执行各种适当的动作和处理。在ram403中,还存储有系统400操作所需的各种程序和数据。cpu401、rom402以及ram403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。以下部件连接至i/o接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至i/o接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(cpu)401执行时,执行本申请的终端中限定的上述功能。需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,其中,模块的名称在某种情况下并不构成对该模块本身的限定。以上具体示出和描述了本发明的示例性实施例。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。当前第1页12