一种Android应用程序动态生成控件中用户输入隐私检测方法与流程

文档序号:21695958发布日期:2020-07-31 22:35阅读:167来源:国知局
一种Android应用程序动态生成控件中用户输入隐私检测方法与流程

本发明涉及信息安全技术领域,尤其涉及一种android应用程序动态生成控件中用户输入隐私检测方法。



背景技术:

移动操作系统正在逐渐取代传统的桌面操作系统,成为互联网用户接入互联网的入口。此外,移动操作系统还衍生出平板电脑、智能家居、可穿戴设备等硬件平台。可以说,移动操作系统在人们的生活中扮演着不可或缺的角色。

在使用移动操作系统时,用户主要与安装在移动操作系统中的应用程序交互。移动应用程序根据与用户相关的信息,为用户提供个性化的服务,方便用户的生活。然而,这些信息同时也吸引了攻击者的目光,针对移动平台的攻击事件层出不穷,而针对隐私信息的攻击则为尤为严重。现有的隐私信息检测方法存在检测不够全面,安全性不够好的问题。

因此,亟需一种新的隐私信息检测方法。



技术实现要素:

有鉴于此,本发明的目的在于提出一种android应用程序动态生成控件中用户输入隐私检测方法,以解决现有的隐私信息检测方法存在检测不够全面,安全性不够好的问题。

基于上述目的,本发明提供了一种android应用程序动态生成控件中用户输入隐私检测方法,包括:

获取动态生成的输入控件;

获取输入控件的描述性文本;

提取描述性文本的关键词;

根据所述关键词判断所述输入控件中是否涉及敏感信息输入。

在其中一个实施例中,所述输入控件为edittext控件。

在其中一个实施例中,所述获取输入控件的描述性文本,包括:

将所述edittext控件的用户界面划分为预设数量的区域;

计算各个区域的权重值;

计算用户界面中每个textview控件与edittext控件的关联度;

选取关联度最大的textview控件的文本为所述描述性文本。

在其中一个实施例中,所述计算各个区域的权重值包括:

从样本应用程序中随机选择一个样本,判断样本中每个edittext控件对应的textview控件占据的区域,计算占用每个区域的控件总数,除以总控件数,得到该区域的权重值;

重复上述过程,直至权重值的变化幅度低于10%。

在其中一个实施例中,分别计算计算用户界面中每个textview控件与edittext控件的关联度包括:

对textview控件中的每个像素,计算该像素到edittext控件中心的物理距离,将该距离与像素所在区域的权重相乘,将所有像素的距离与权重的乘积加和,除以该textview控件的总像素数,得到该textview控件与edittext控件的关联度。

在其中一个实施例中,所述计算像素到edittext控件中心的物理距离包括:通过计算,其中,x1和y1分别为像素的横坐标和纵坐标,x2和y2分别为edittext控件中心的横坐标和纵坐标。

在其中一个实施例中,所述获取动态生成的edittext控件包括:

获取android应用程序运行时当前界面的edittext控件。

在其中一个实施例中,所述获取应用程序运行时当前界面的edittext控件包括:

获取android应用程序运行时当前界面的控件树;

遍历所述控件树,查找edittext控件。

在其中一个实施例中,所述关键词包括用户名、密码、验证码和身份证号。

在其中一个实施例中,所述提取描述性文本的关键词包括:

提取所述描述性文本中的名词和名词短语;

提取所述名词和名词短语中的关键词。

从上面所述可以看出,本发明提供的android应用程序动态生成控件中用户输入隐私检测方法,通过获取动态生成的输入控件,并分析获取输入控件的描述性文本,通过分析描述性文本,得到关键词,并根据关键词判断输入控件是否涉及敏感信息输入,从而能够对android应用程序中动态生成的控件中用户输入隐私信息的泄露情况进行检测,从而极大地提高了用户的隐私安全。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的android应用程序动态生成控件中用户输入隐私检测方法的流程图;

图2为本发明实施例的获取android应用程序运行时当前界面的edittext控件的流程图;

图3为本发明实施例的获取输入控件的描述性文本的流程图;

图4为本发明实施例的每个区域的权重值的计算的流程图;

图5为本发明实施例的每个textview控件与edittext控件的关联度的计算流程图;

图6为本发明实施例的检测android应用程序动态生成控件中用户输入隐私信息的整体方法的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

需要说明的是,除非另外定义,本发明实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

隐私信息泄露检测经历了静态检测、动态检测、动静检测结合的发展历程。典型检测方案如达姆施塔特工业大学的研究人员提出的flowdroid系统,采用数据流分析的分析方法静态分析移动应用程序中的敏感数据的流向。宾夕法尼亚州立大学的研究人员提出的taintdroid系统,利用动态指令插桩的方法实时监控移动应用程序中的敏感数据传播过程。复旦大学的研究人员提出的appintent系统,尝试将动静态检测进行结合,首先利用静态数据流分析获取应用程序中敏感数据传播的候选集,再通过动态符号化执行验证候选敏感数据传播是否会真实发生。

隐私泄露防护工作则致力于阻止移动应用程序不合理利用敏感信息。

然而,上述研究工作的研究目标皆为调用移动操作系统api获取的隐私信息(如imei、通讯录、短信等)。包含在用户输入信息中的大量隐私信息(如银行卡号、电子邮件地址等)被忽略了。与处于移动操作系统控制之下的隐私信息不同,该类隐私信息无法通过监控api来标记。且该类隐私信息结构多变,难以统一描述,而将所有用户输入信息标记为隐私信息会造成大量误报,并非可行之举。

本发明的发明人在长期的用户隐私信息泄露检测和隐私信息泄露防护两个方面展开了诸多研究工作,注意到很多与隐私输入相关的界面控件均关联有描述性文本,这些文本用于提示用户输入何种信息,通过分析这些描述性文本,对移动应用程序中用户输入隐私信息的泄露情况进行检测,让用户能够知晓应用程序对其输入的隐私信息的操作,保护用户的隐私信息安全。然而现有用户输入隐私信息检测方法仅对android应用程序中由布局文件定义的控件进行检测,没有对动态生成的控件进行检测。

发明人提出一种android应用程序动态生成控件中用户输入隐私检测方法,通过在运行时对android应用程序中的组件进行分析,通过关联度计算获取描述性文本,从而达到了检测动态生成控件中用户输入隐私信息的技术效果,提高了检测的全面性,极大地提高了用户的隐私安全。

请参阅图1,为本发明提供的一种android应用程序动态生成控件中用户输入隐私检测方法的流程图,包括:

s100,获取动态生成的输入控件;

s200,获取输入控件的描述性文本;

s300,提取描述性文本的关键词;

s400,根据所述关键词判断所述输入控件中是否涉及敏感信息输入。

本发明通过获取动态生成的输入控件,并分析获取输入控件的描述性文本,通过分析描述性文本,得到关键词,并根据关键词判断输入控件是否涉及敏感信息输入,从而能够对android应用程序中动态生成的控件中用户输入隐私信息的泄露情况进行检测,从而极大地提高了用户的隐私安全。

在步骤s100中,输入控件为edittext控件,通过edittext控件能够获取用户输入的字符,并发送所获得的字符。

获取动态生成的输入控件,可以通过获取android应用程序运行时当前界面的edittext控件,得到动态生成的输入控件。通过在应用程序运行时获取输入控件,能够获得实例化的,没有被布局文件所描述的控件,即动态生成的控件。

参见图2,获取android应用程序运行时当前界面的edittext控件可以包括:

s110,获取android应用程序运行时当前界面的控件树;

s120,遍历所述控件树,查找edittext控件。

步骤s110中,可以通过在android应用程序运行时,执行dump命令,获取控件树。所述控件树可以为由xml描述的控件树。通过在运行时获取控件树,能够获取到不会被apk文件中的布局文件描述的,被实例化的控件树,从而能够通过下一步的操作获取到动态生成的控件。

步骤s120中,通过遍历android应用程序运行时所得的控件树,查找edittext控件,能够得到动态生成的输入控件。

具体地,可以根据文件名称查找edittext控件。

参见图3,步骤s200中,获取输入控件的描述性文本可以包括:

s210,将所述edittext控件的用户界面划分为预设数量的区域;

s220,计算各个区域的权重值;

s230,计算用户界面中每个textview控件与edittext控件的关联度;

s240,选取关联度最大的textview控件的文本为所述描述性文本。

步骤s210中,用androidsdk(softwaredevelopmentkit,软件开发工具包)中提供的api(applicationprogramminginterface,应用程序接口),渲染布局文件,根据ui(userinterface,用户界面)组件间的相对坐标,将其转换为与android应用程序运行的终端的屏幕大小相关的绝对坐标。

具体地,预设数量可以为九。根据edittext控件的边界,将用户界面划分为九个区域。将用户界面划分区域,能够更加准确且快速地确定描述性文本。

如图4,步骤s220中,可以通过从样本应用程序中随机选择一个样本,判断样本中每个edittext控件对应的textview控件占据的区域,计算占用每个区域的控件总数,除以总控件数,得到该区域的权重值;

重复上述过程,直至权重值的变化幅度低于10%,得到区域对应的权重值。

也即,每个区域的权重值的计算可以包括:

s221,随机选取样本应用程序;

s222,判断样本应用程序运行时的多个用户界面中每个edittext控件对应的每个textview控件的对应区域,计算每个对应区域中的textview控件的总数;

s223,分别计算每个区域中的textview控件的总数与用户界面中的textview控件的总数的比值,得到每个区域的初设权重值;

s224,循环随机选取样本应用程序,直至每个区域的初设权重值的变化幅度低于10%。步骤s221中,具体指在多个样本应用程序中随机选取一个样本应用程序。

步骤s222中,判断指的是,样本应用程序运行时的所有用户界面中,通过人工判断每个edittext控件对应的每个textview控件的对应区域,得到多个对应区域。分别计算多个对应区域中,占用每个对应区域的textview控件总数。

步骤s223中,将同一用户界面中的每个区域中的textview控件的总数的和值作为该用户界面的textview控件总数。并将每个区域中textview控件的总数除以对应的用户界面中的所有区域的textview控件的总数,得到每个区域的初设权重值。

步骤s224,指的是,重复上述的步骤s221至步骤s224,直至每个区域的权重值均稳定于某一数值。

通过计算每个区域的权重,可以提高后续的关联度计算的准确性,进一步提高描述性文本获取的准确性。

步骤s230中,textview与edittext关联度=∑(像素到edittext控件中心的物理距离x像素所在区域的权重)/textview控件总数。

具体地,分别计算计算用户界面中每个textview控件与edittext控件的关联度,包括:

对textview控件中的每个像素,计算该像素到edittext控件中心的物理距离,将该距离与像素所在区域的权重相乘,将所有像素的距离与权重的乘积加和,除以该textview控件的总像素数,得到该textview控件与edittext控件的关联度。

请参阅图5,可以理解为,用户界面中每个textview控件与edittext控件的关联度可以通过如下步骤计算:

s231,分别计算每个textview控件中每个像素到edittext控件中心的物理距离,得到多个物理距离;

s232,分别计算每个textview控件中每个物理距离与对应像素所在区域的权重的乘积,得到多个乘积;

s233,分别计算每个textview控件中多个乘积的和与该textview控件中总像素数的比值,得到每个textview控件与edittext控件的关联度。

步骤s231中,每个textview控件中每个像素到edittext控件中心的物理距离的计算包括:

用androidsdk获取像素的x1坐标(横坐标)和y1坐标(纵坐标)以及edittext控件中心的坐标x2坐标(横坐标)和y2坐标(纵坐标),

通过计算textview控件中每个像素到edittext控件的物理距离,并与对应的权重相乘,再除以textview控件中的总像素,即可得到textview控件与edittext控件的关联度,能够准确的确定textview控件与edittext控件的相关性。

步骤s240中,将经步骤s230计算得到的关联度最大的textview控件,作为与edittext控件关联的textview控件,该textview控件中的文本即为edittext控件的描述性文本。

步骤s300中,可以通过自然语言处理(naturallanguageprocessing,nlp)提取关键词。具体地,先从描述性文本中提取名词和名词短语,再从提取的名词和名词短语中提取关键词。

关键词可以包括姓名(name)、性别(gender)、出生日期(dateofbirth)、电子邮件、邮箱(emailaddress\mailingaddress)、情感状态(relationshipstatus)、用户名(username)、验证码(password),银行卡号(bankcardnumber)以及身份证号(idnumber)等与具体自然人关联的信息。

通过提取名词和名词短语中的关键词,能够得到输入控件中的关键信息,确定输入控件要获取的信息。

步骤s400可以包括,将提取得到的关键词输入分类器中,得到输出结果。输出结果包括是或者否。当输出结果为是时,判断输入控件涉及敏感信息输入;当输出结果为否时,判断输入控件未涉及敏感信息输入。

分类器可以通过训练数据集进行训练,训练数据集可以由样本应用程序中的关键词组成。为了达到训练数据集具有足够的覆盖度,样本数据的总体数量应该在千条以上。同时,训练数据集应该满足正负样本(即包含敏感信息的名词和名词短语与不包含敏感信息的名词和名词短语)数量总体相对均衡,从而使分类器达到最佳的精确度。

本发明的分类器可以为现有的分类器中的任意一种,例如支持向量机svm或逻辑回归(logistics)。

通过建立包含敏感信息的名词和名词短语与不包含敏感信息的名词和名词短语的训练数据集,通过该训练数据集训练分类器之后,对于给定的任意名词和名词短语,能够通过分类器判断该名词和名词短语是否包含隐私数据。

本发明提供的android应用程序动态生成控件中用户输入隐私检测方法,在运行时对android应用程序中的组件进行分析,通过执行dump命令,获取控件树,并遍历控件树,得到edittext控件,分别计算edittext控件中每个textview控件中每个像素到edittext控件的距离,并分别计算每个距离与像素所在区域的权重的乘积,再分别将多个乘积加和,并除以对应textview控件中总像素数,得到每个textview控件与edittext控件的关联度,提取关联度最大的textview控件的文本中的名词和名词短语,并输入分类器,得到敏感信息输入的检测结果。通过本发明提供的方法,能够高效地对移动应用程序进行检测,从中查找存在动态输入控件的隐私泄露风险。

实施例

如图6,本发明提供一种检测android应用程序动态生成控件中用户输入隐私信息的方法,采用了uiautomator,包括:

步骤1:

在android移动应用程序运行时,执行dump命令,获取由xml描述的控件树。

步骤2:

遍历控件树,查找edittext控件。

步骤3:

获取edittext控件对应的描述性文本:

根据edittext控件的边界,将ui界面划分为九个区域,分别为每个区域赋予不同的权重值。

计算ui界面中每个textview控件相对edittext控件的关联度。

将关联度最大的textview视作与该edittext关联,该textview中的文本视作描述该edittext的文本。

步骤4:

用自然语言处理(naturallanguageprocessing,nlp)技术从描述性文本中提取名词和名词短语,并从提取的名词和名词短语中提取关键词。

步骤5:

用分类器判定该输入控件的描述性文本中是否包含用户输入隐私信息,从而判定该输入控件是否涉及敏感用户输入。

本发明实施例提供的方法,通过在运行时对android应用程序中的组件进行分析,达到了检测动态生成控件中用户输入隐私信息的技术效果,完善了现有技术,进一步保障了用户的隐私安全。

需要说明的是,本发明实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本发明实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。

本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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