CN103544430B - 运算环境安全方法和电子运算系统 - Google Patents
运算环境安全方法和电子运算系统 Download PDFInfo
- Publication number
- CN103544430B CN103544430B CN201310000890.1A CN201310000890A CN103544430B CN 103544430 B CN103544430 B CN 103544430B CN 201310000890 A CN201310000890 A CN 201310000890A CN 103544430 B CN103544430 B CN 103544430B
- Authority
- CN
- China
- Prior art keywords
- application package
- characteristic
- measured
- data set
- similarity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 124
- 230000008569 process Effects 0.000 claims description 35
- 238000009434 installation Methods 0.000 claims description 32
- 238000012856 packing Methods 0.000 claims description 32
- 238000004891 communication Methods 0.000 claims description 22
- 230000009471 action Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 6
- 230000000875 corresponding effect Effects 0.000 description 34
- 238000004458 analytical method Methods 0.000 description 29
- 239000013598 vector Substances 0.000 description 18
- 210000001835 viscera Anatomy 0.000 description 11
- 238000004806 packaging method and process Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000001914 filtration Methods 0.000 description 9
- SPBWHPXCWJLQRU-FITJORAGSA-N 4-amino-8-[(2r,3r,4s,5r)-3,4-dihydroxy-5-(hydroxymethyl)oxolan-2-yl]-5-oxopyrido[2,3-d]pyrimidine-6-carboxamide Chemical compound C12=NC=NC(N)=C2C(=O)C(C(=O)N)=CN1[C@@H]1O[C@H](CO)[C@@H](O)[C@H]1O SPBWHPXCWJLQRU-FITJORAGSA-N 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000002596 correlated effect Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 238000012216 screening Methods 0.000 description 5
- 238000005336 cracking Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 239000003826 tablet Substances 0.000 description 4
- 102100021677 Baculoviral IAP repeat-containing protein 2 Human genes 0.000 description 3
- 102100021662 Baculoviral IAP repeat-containing protein 3 Human genes 0.000 description 3
- 102100037024 E3 ubiquitin-protein ligase XIAP Human genes 0.000 description 3
- 101000896157 Homo sapiens Baculoviral IAP repeat-containing protein 2 Proteins 0.000 description 3
- 101000896224 Homo sapiens Baculoviral IAP repeat-containing protein 3 Proteins 0.000 description 3
- 101000804865 Homo sapiens E3 ubiquitin-protein ligase XIAP Proteins 0.000 description 3
- 101001064096 Homo sapiens Protein disulfide-thiol oxidoreductase Proteins 0.000 description 3
- 102100030728 Protein disulfide-thiol oxidoreductase Human genes 0.000 description 3
- 210000003484 anatomy Anatomy 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 3
- 239000010931 gold Substances 0.000 description 3
- 229910052737 gold Inorganic materials 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100269977 Arabidopsis thaliana APK2 gene Proteins 0.000 description 1
- 101000692648 Avena sativa Phytochrome A type 3 Proteins 0.000 description 1
- 101100421536 Danio rerio sim1a gene Proteins 0.000 description 1
- 101100112995 Schizosaccharomyces pombe (strain 972 / ATCC 24843) sim4 gene Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
运算环境安全方法和电子运算系统。该运算环境安全方法包括:(a)解开待测的应用程序包以取得至少一数据组,其中各该至少一数据组是为应用程序包的多个方面中的相关的内容。(b)依据该至少一数据组,估计待测的应用程序包是否重新包装程序。(b)包括以下:(c)对于各该至少一数据组,分析该数据组的对应的方面的相关的内容的特征关系,并据以产生该数据组对应的特征数据。(d)依据该至少一数据组的特征数据及从数据库中取得的与该特征数据相距对应距离内的对应的搜寻结果,决定是否为重新包装的应用程序包。
Description
技术领域
本公开涉及一种运算环境安全方法和电子运算系统。
背景技术
在智能手机上,软件安全的防护除了应用传统个人计算机上的机制外,因为有集中的软件市集例如安卓(Android)平台的“GooglePlay”,因此在智能手机上的应用软件,都会利用程序代码签章(CodeSigning)的机制来做安全防护。在智能手机上执行的软件,需要有签章过才能执行,如此可以确保应用软件没被修改,也可证明此软件的开发者有经过软件市集的验证。另外智能手机上的软件并不像个人计算机可以自由取得安装和散布,软件的安装过程和安装后都有保护,无法任意复制并传播出去。
虽然在智能手机上的保护比个人计算机上严谨,但是通过系统漏洞,取得手机root或JB后,破解者就有办法,取得受保护的应用软件。然后,破解者将取得的应用软件加入恶意程序代码并适当修改后,产生新的程序代码签章再重新包装。此种破解应用软件签章,进行修改或加入恶意程序代码再重新包装后散布的动作,称为「重新包装」(Repackage)。此等重新包装的程序被再上架到软件市集,或放到盗版软件网站或论坛上,让不知情的使用者下载安装,而达到恶意程序散布的目的。由于破解者直接修改或植入恶意软件后,再行重签即可,故重新包装的情况在安卓(Android)平台上屡见不鲜。而相关报告指出,2011年下半年,在GoogleAndroid平台上的恶意软件,月增长率平均有60%,其中大部分均为重新包装产生至各市集或网络论坛散布,可见在如Android平台的恶意软件防治成为运算环境安全所关注的议题。
发明内容
本公开有关于一种运算环境安全方法和电子运算系统。
根据一实施例,提出一种运算环境安全方法,包括:(a)通过电子运算系统,解开待测的应用程序包以取得至少一数据组,其中各该至少一数据组是为该应用程序包的多个方面中的相关的内容。(b)依据该至少一数据组,估计该待测的应用程序包是否重新包装程序。(b)包括以下:(c)对于各该至少一数据组,分析该数据组的该对应的方面的相关的内容的特征关系,并依据该特征关系产生该数据组对应的特征数据。(d)依据该至少一数据组的特征数据及从数据库中取得的与该特征数据相距对应距离内的对应的搜寻结果,决定该待测的应用程序包是否为重新包装的应用程序包。该电子运算系统依据该决定的结果对该待测的应用程序包进行处理。
根据一实施例,一种电子运算系统,包括:通信单元以及控制单元。控制单元,通过该通信单元,接收待测的应用程序包,其中该控制单元至少:解开待测的应用程序包以取得至少一数据组,其中该待测的应用程序包包括多个方面相关的内容,各该至少一数据组是为该应用程序包的这些方面中的相关的内容;对于各该至少一数据组,分析该数据组的该对应的方面的相关的内容的特征关系,并依据该特征关系产生该数据组对应的特征数据;依据该至少一数据组的特征数据及从数据库单元中取得的与该特征数据相距对应距离内的对应的搜寻结果,决定该待测的应用程序包是否为重新包装的应用程序包。该电子运算系统依据该决定的结果对该待测的应用程序包进行处理。
为了对本公开的上述及其他方面有更佳的了解,下文以实施例,并配合附图,作详细说明如下:
附图说明
图1绘示针对应用程序的上架或安装时实现运算环境安全的机制的示意图。
图2示意一应用程序具有多个方面相关的内容。
图3绘示运算环境安全方法的一实施例的流程图。
图4绘示运算环境安全方法应用于提供软件上架的服务系统上的一实施例的流程图。
图5绘示运算环境安全方法应用于欲进行软件安装的电子装置的一实施例的流程图。
图6是为依据运算环境安全方法的一实施例的软件架构的方块图。
图7绘示实现运算环境安全方法的实施例的一电子运算系统的基本架构的方块图。
图8是为针对应用程序包中使用者接口方面的相关内容作分析的一实施例的示意图。
图9是为针对使用者接口方面的相关内容作相似度评估的一实施例的流程图。
图10是为针对程序运作方面的相关内容作相似度评估的一实施例的流程图。
图11是为针对程序所使用的资源方面的相关内容作相似度评估的一实施例的流程图。
图12是为一电子装置及一服务系统上实现运算环境安全方法的实施例的方块图。
【主要元件符号说明】
10:服务系统
11、21:筛选机制
20:电子装置
100:运算环境安全系统
110:前置处理模块
120:分析模块
121:使用者接口方面的分析模块
123:程序运作方面的分析模块
125:程序使用的资源方面的分析模块
130:相似度评估模块
131:使用者接口方面的相似度评估模块
133:程序运作方面的相似度评估模块
135:程序使用的资源方面的相似度评估模块
140:决定模块
150:数据库模块
200:电子运算系统
210:控制单元
220:通信单元
230:存储单元
240:显示单元
300:画面
400:电子装置
410、510:通信模块
500:服务系统
S10-S35、S110-S137、S210-S237、S310-S330、S410-440、S510-S540:步骤
具体实施方式
以下提供有关于一种运算环境安全方法和电子运算系统的实施例。
图1绘示针对应用程序的上架或安装时实现运算环境安全的机制的示意图。如图1所示,在以服务系统10提供软件下载如应用程序市集的运算环境中,服务系统10如独立服务器或分散式服务系统或云端系统具有筛选机制11,在应用程序未上架前,通过筛选机制11以助决定应用程序(例如应用程序1及2)是否可能为重新包装的应用程序,进而判定应用程序是否为恶意程序如包含恶意代码,从而决定是否拒绝此应用程序上架或允许上架。此外,在取得应用程序下载使用的运算环境中,如应用程序市集或其他网站或来源中可能不具有筛选机制11。为免在不知情下安装了恶意程序的风险,通过在电子装置20上实现筛选机制21,可在应用程序(例如应用程序3)未安装以前,产生如筛选机制11的作用,从而决定是否允许或拒绝安装此应用程序。
黑客与抄袭软件者,通过破解或修改他人合法软件并重新包装为新的应用程序的方式,统称重新包装方式(repackage),散播恶意软件的与剽窃软件从而获利或达成其他不正当意图。而修改软件的基本作法,就是在原有程序的基础之下,插入具有修改者或黑客目的的程序代码,因此对原始程序的功能或程序代码的删除或修改将会非常的少(一般来说是不会更动)。重新包装方式的情形,例如在AndroidMarket(或称GooglePlay)上的亦有出现,因为AndroidMarket上的APK采用SafeSign的机制(即开发者自行签章),可对其他部分进行检验,但实际上并未加密,因此可以轻易的从破解的应用程序包(如APK)中移除其原有的签章(如signedA)并在加入恶意代码后,重新签署一个新的签章(如称为signedB)并因此获得上架许可,因次传播速度非常的快。
由上可知对于原有程序及重新包装的程序的可能在内容上具有相似性,故筛选机制11或21可据此观点实施以决定应用程序是否可能为重新包装的应用程序。如图2所示,应用程序可视作包括多个方面相关的内容,例如使用者接口方面的相关内容、程序运作方面的相关内容、程序所使用的资源方面的相关内容、或针对其他方面的内容。重新包装的应用程序,在各个方面的相关内容的比较上,将会大于或等于原始程序。
此外,一般程序间,通常会有一定比例的相似,如某部分程序代码使用相同的应用程序接口(API)、使用者接口布局(UILayout)等。但若是重新包装的应用程序的特性,通常以于原始程序中新增或插入欲达成其目的的恶意程序代码达成,故其相关程序代表性参数与原始程序间的关系如:
即原始程序所涵盖的相关内容(AppO)被重新包装的应用程序的相关内容(AppR)所包含。故筛选机制11或21的一些实施例对于程序各方面相关的内容的比对,可基于此关系从而决定应用程序是否为重新包装。
图3绘示运算环境安全方法的一实施例的流程图。上述的筛选机制11或21可据图3的实施例实现于电子运算系统(如服务系统或电子装置)中筛选重新包装的应用程序。
如步骤S10所示,通过电子运算系统,解开待测的应用程序包(applicationpackage)以取得至少一数据组,其中该待测的应用程序包包括多个方面相关的内容(如图2所示意),各该至少一数据组是为该应用程序包的这些方面中的相关的内容。例如,可实施步骤S10针对使用者接口方面、程序运作方面和程序所使用的资源方面中至少一、二或三方面的相关内容以得出相对应的至少一数据组,以供步骤S20针对所采用的数据组作为步骤20中作分析之用。又例如,步骤S10可利用剖析(parsing)的方式,取得采用的数据组。
如步骤S20所示,依据该至少一数据组,估计该待测的应用程序包是否重新包装程序,步骤S20包括步骤S21、S23。
如步骤S21所示,对于各该至少一数据组,分析该数据组的该对应的方面的相关的内容的特征关系,并依据该特征关系产生该数据组对应的特征数据。例如,对于使用者接口方面的相关的内容的数据组而言,针对如使用者接口的布局(userinterfacelayout)的关系或使用者接口中元件的阶层关系(hierarchy)作出分析,并量化这些被分析出来的关系据以产生特征数据如以矩阵或阵列的方式描述,以便于后续的相似度评估步骤S21中使用。有关对应用程序的某方面的相关的内容的数据组的分析处理,将以实施例说明于后。
如步骤S23所示,依据该至少一数据组的特征数据及从数据库中取得的与该特征数据相距对应距离内的对应的搜寻结果,决定该待测的应用程序包是否为重新包装的应用程序包。电子运算系统可依据步骤S23的决定的结果对待测的应用程序包进行处理。其中另一实施例,决定该待测的应用程序包是否为重新包装的应用程序包后,输出该决定的结果。
在步骤S23中,此数据库例如包括多个应用程序包所对应的这些方面相关的特征数据,例如已知的多个应用程序对于前述的使用者接口方面相关的特征数据。在步骤S23中,搜寻结果是从数据库搜寻与待测的应用程序包的某一或多个数据组的特征数据相距对应距离内的数据库中已知应用程序的特征数据,其中对于不同的数据组,可以有不同的对应距离。
故此,从数据库中取得搜寻结果亦即基于前述关系式1:的观念,从数据库中找出可能的已知应用程序并假设为原始程序AppO。假设待测的应用程序的某数据组的特征数据以矩阵或向量来表达,例如是V1=[m1,m2,…,mk],其中m1至mk为数值,k为大于等于1的整数。在此数据库中可以寻找与向量V1在距离内的向量(可能有一个至多个向量),而寻找到的一或多个向量(可将之视为向量的集合)以Vx代表,可对应到此数据库中一或多个已知的应用程序包(可视为程序包集合)记作Ax。例如,对某数据组的特征数据,对于向量V1与数据库中的向量Vk的距离(或差异的大小),可以利用数学上各种向量之间的距离(distance)(如欧几里得距离(EuclideanDistance)及其推广)或相似度(similarity)的定义来加以运算。
例如,将向量V1与Vs进行余弦数值的计算相似度(cosinesimilarity)=(V1*Vs)/(|V1|*|Vs|),所计算出的余弦值即为相似度指数α;α=1时,表示两向量的相似度高(距离最小),α=0时,表示两向量的相似度最小(或视为距离最大或不相关)。故此在一实施例中,可以设对应的距离的范围值,例若向量V1与Vs的相似度(或距离)于0.9至1之间,即可视为在此对应的距离内,从而在数据库中找出合符此条件的向量Vs(可能有一或多个)以及其对应的应用程序包(可能有一或多个)作为搜寻结果。据此搜寻结果,例如找到的程序包Vx的数量或当中距离最小的结果,决定该待测的应用程序包是否为重新包装的应用程序包。此外,在其他步骤S23实施例中,也可针对待测的应用程序的多个数据组的特征数据,找出搜寻结果,以决定是否为重新包装。
在其他实施例中,步骤S23也可包括如步骤S33及S35。如步骤S33所示,依据该至少一数据组的特征数据及从数据库中取得的与该特征数据相距对应距离内的对应的搜寻结果,评估该待测的应用程序包的相似度。而该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度。
如步骤S35所示,依据该待测的应用程序的相似度,决定该待测的应用程序包是否为重新包装的应用程序包。电子运算系统可依据步骤S35的决定的结果对待测的应用程序包进行处理。其中另一实施例,决定该待测的应用程序包是否为重新包装的应用程序包后,输出该决定的结果。
例如,图4绘示运算环境安全方法应用于提供软件上架的服务系统上的一实施例的流程图。如步骤S110所示,响应于软件上架的请求,该服务系统接收该待测的应用程序包。如步骤S120所示,通过该服务系统,进行依据如图3中实施例的筛选方法。如步骤S130所示,依据该决定的结果,如果该待测的应用程序包被决定为重新包装的应用程序包且为恶意程序,则如步骤S135所示,该服务系统拒绝该上架的请求,使该待测的应用程序包不能上架。如果否,则如步骤S137所示,该服务系统例如使待测的应用程序包上架。
又如图5绘示运算环境安全方法应用于欲进行软件安装的电子装置的一实施例的流程图。如步骤S210所示,通过电子装置,接收该待测的应用程序包。如步骤S220所示,该电子装置,响应软件安装程序的请求,在欲安装该待测的应用程序包之前,进行依据如图3中实施例的筛选方法。如步骤S230所示,依据该决定的结果,如果该待测的应用程序包被决定为重新包装的应用程序包且为恶意程序,则如步骤S235所示该电子装置拒绝安装该待测的应用程序包。如果否,则如步骤S237所示,该电子装置例如可安装待测的应用程序包。
图6是为依据运算环境安全方法的一实施例的软件架构的方块图。运算环境安全系统100包括前置处理模块110、分析模块120、相似度评估模块130、决定模块140以及数据库模块150。前置处理模块110例如实现如图3所示的步骤S10。分析模块120用以实现步骤S21。相似度评估模块130例如用以实现步骤S33。决定模块140例如用以实现步骤S35。数据库模块150例如用以实现步骤S23中所使用的数据库。
而图6的实例示意分析模块120针对应用程序包的三个方面相关的内容作出分析其中的关系,故相对地前置处理模块110及相似度评估模块130亦作因应的实现。例如前置处理模块110实现剖析方式(parsing)解开应用程序包以取得三个数据组,分别给予分析模块120的三个子模块:使用者接口方面的分析模块121、程序运作方面的分析模块123以及程序使用的资源方面的分析模块125,其中分析模块120中各子模块的执行次序可以是平行方式执行或依各种次序执行。
又例如相似度评估模块130亦作因应的实现,由三个子模块:使用者接口方面的相似度评估模块131、程序运作方面的相似度评估模块133以及程序使用的资源方面的相似度评估模块135,分别接收来自分析模块120的三个子模块所产生的特征数据。相似度评估模块130的三个子模块分别决定使用者接口方面的相似性元数据、程序运作方面的相似性元数据以及程序使用的资源方面的相似性元数据。而相似度评估模块130基于这些相似性元数据,决定待测的应用程序包的相似度,以让决定模块140据以决定该待测的应用程序包是否为重新包装的应用程序包。其中另一实施例,决定该待测的应用程序包是否为重新包装的应用程序包后,输出该决定的结果。
此外,在一些实施例中,分析模块120中各子模块也可将所得到的特征数据上传至数据库中进行搜寻;而评估模块130可自数据库模块150取得对应的搜寻结果。
在其他实施例中,分析模块120也可实施为针对应用程序包的二个方面相关的内容分析其中的关系,例如包括两个子模块:使用者接口方面的分析模块121和程序运作方面的分析模块123。
图7是为实现运算环境安全方法的实施例的电子运算系统的基本硬件架构的方块图。如图7所示,电子运算系统200,包括控制单元210、通信单元220、存储单元230以及显示单元240。控制单元210可用以实现如图3所的运算环境安全方法的实施例。又一些实施例中,电子运算系统200是为服务系统,可实施为单一的服务器;或由多台服务机台组成的分散式的服务系统,其中的各单元也可以实作为服务器,如存储单元230可视为存储数据库并作为数据库服务器供步骤S23使用。又或服务系统是云端运算系统,其中各单元可为云端中的服务器。又一些实施例中,电子运算系统200可实现电子装置,如智能装置如手机、平板计算机或智能电视或导航装置等具有通信功能的装置,能下载应用程序并安装的功能。例如,电子装置利用通信单元220可接收应用程序包,或通过通信连结(如有线或无线网络连结)从外部的数据库中取得的搜寻结果。此电子运算系统200也可视所要实现的产品的设计需求而加上其他装置。
此外,如图6所举例的软件架构也可利用图7所示的电子运算系统200实施例,例如控制单元210(如处理器或多台服务器)实现前置处理模块110、分析模块120、相似度评估模块130、决定模块140,而数据库模块150以存储单元230或外部的存储单元实现(如存储装置中的数据库或外部的数据库服务器)。而通信单元220(如服务器中的通信电路)用以使前置处理模块110、分析模块120、相似度评估模块130、决定模块140得以与外部的数据库连结。
以下举例说明如图3的步骤S21针对应用程序的某方面的相关的内容的数据组的分析处理以及步骤S23的相似度评估的实施例。而如图6的分析模块120及相似度评估模块130也可据以实现。
针对使用者接口方的分析
对于使用者接口方面的相关的内容的分析而言,一些实施例中,可针对如使用者接口的布局(userinterfacelayout)、使用者接口中元件的阶层关系(hierarchy)、相关的事件(event)、应用程序接口(applicationinterface,API)等的一或多个来作出分析,进而得知待测的应用程序与已知的应用程序的相似度。
如图8中,应用程序包的使用者接口程序代码所对应的画面(view)300中具有的使用者接口元件例如命令列M1、选择功能的按钮B1、B2,这些元件可分别对应到事件1、2、3。故可针对应用程序的使用者界面或各个画面中的使用者接口元件及相关使用的信息,如元件间的关系、处理的事件内容或操作,进行分析,并得出可描述用作比对的特征关系,产生对应的特征数据,或可称为诠释数据或元数据(metadata)。例如以矩阵或阵列或各种合适的编码方式描述特征数据,从而有助于从数据库中检索及比对之用。
举例来说,如图8中示意的使用者接口的布局(layout),包含图形、图片、选项、及其间排列的相对位置与对应关系,以及与事件处理相关元件(如命令列M1、按钮B1、B2)。又事件的对应的处理函数的API呼叫及相关的程序信息,也可纳入分析,并将其分析得出的特征数据,交由步骤S33的相似度评估或相似度评估模块130进行处理。
针对使用者接口方面,在一实施例中,步骤S21可包括:依据该第一数据组,分析使用者接口中各画面与各元件的阶层关系以作为特征关系之一,并依据该特征关系产生该第一数据组对应的第一特征数据。又在另一实施例中,步骤S21可还包括:依据该第一数据组,分析使用者接口中各元件与布局相关执行程序代码,以得出各元件与对应的k处理事件之间的关系及对应的应用程序接口的名称与数量作为特征关系之一,并依据该特征关系产生该第一数据组对应的第二特征数据。相对于上述步骤S21的实施例,步骤S33可包括:依据该第一数据组的该第一特征数据和该第二特征数据以及从该数据库中取得的与该特征数据相距对应距离内的特征数据对应的搜寻结果,决定使用者接口方面的相似性元数据;其中该待测的应用程序包的相似度是为基于使用者接口方面的该相似性元数据而决定。此外,针对使用者接口方面,步骤S21也可仅产生一种特征数据或更多的特征数据。
请参考图9,步骤S33可基于此实施例而评估待测的应用程序(如称为A1)与从数据库搜寻得到的已知的程序包(或可视为程序包集合)Ax的相似性。如步骤S310所示,决定待测的应用程序A1与程序包Ax是否相似。例如设定程序接口如称为Layout(Ax,A1)函数用来计算Ax与A1间的相似度。依据前述关系式1的观念,假设A1是Ax的重新包装,Ax与A1在使用者接口的层级与所包含的元件关系及数量上,则依然会是重新包装的程序会包含(大于或等于)原始程序。如果是Layout(Ax,A1)判断出来的差距过大,表示使用者接口的布局中各元件信息的统计或关联计算产生的结果差距过大使Layout(Ax,A1)=F,则如步骤S315所示,代表待测的应用程序包A1与程序包Ax不相似。如果Layout(Ax,A1)=T,即结果为是,则如步骤S320所示,继续以事件的处理函数中所用的应用程序接口(API)来进行比较。例如设定程序接口如称为Api(Ax,A1)函数用来计算Ax与A1间有关应用程序接口方面的相似度。
例如,Layout(Ax,A1)可包括以下关系(称关系式2),如果存在:
Ax的布局元件的集合A1的布局元件的集合的关系;且
(A1的布局元件的数量)-(Ax的布局元件的数量)≤d1
则Layout(Ax,A1)=T(即判定为相似),其中d1为有关布局元件方面的对应的距离(或称为差异)的条件。此函数Layout(Ax,A1)在数据库中,寻找被A1所包含但距离小于d1的所有应用程序Ax来进行比对,来判定Ax是否可能为重新包装产生A1前的原始程序。
例如,Api(Ax,A1)可包括以下关系(称关系式3),如果存在:
Ax的UI相关API的集合A1的UI相关API的集合的关系;且
(A1的这些API的数量)-(Ax的这些API的数量)≤d2
则Api(Ax,A1)=T(即判定为相似),其中d2为有关布局元件方面的API的对应的距离的条件。此函数Api(Ax,A1)在数据库中,寻找被A1所包含但距离小于d2的所有应用程序Ax来进行比对,来判定Ax是否可能为重新包装产生A1前的原始程序。
若Layout(Ax,A1)=T且Api(Ax,A1)=T,此时表示程序包Ax和A1相似度高,则如步骤S330所示,决定有关于(Ax,A1)的相似性元数据Sim1。故此实施例可视为前述步骤S33的实施例中,基于第一特征数据和第二特征数据以产生使用者接口方面对应的相似性元数据,以供步骤S35或评估模块130使用。
此外,在一些实施例中,可将关系式3所得的A1与Ax有差异的API(其中对应的API数量的差值少于d2)记录起来,如存于报告文件之中,此记录的信息可用作动态检测时,寻找恶意程序代码位置时的参考信息。
又在一些实施例中,此部分Layout()与Api()所使用的元数据,也可用来建立前述数据库的索引,以便依照其距离参数,以提取适当的已知应用程序的特征数据与A1的特征数据进行比对,从而找出适当的Ax。
针对程序运作方面
针对程序运作方面,可从程序代码中使用的应用程序接口或数据进行分析。在一实施例中,步骤S21可包括:依据程序运作方面相关的内容的数据组,分析执行代码中各应用程序接口(API)所使用的参数及参数内容的关系以作为特征关系,并依据该特征关系产生该数据组对应的特征数据。
在另一实施例中,步骤S21可包括:依据程序运作方面相关的内容的数据组,分析执行代码的数据流程,对此数据组中多个输入数据(或称为来源数据(source))、这些输入数据所历经的处理动作(或称为处理路径(path))及所对应的最后动作(或称为最后流向(sink))以作为特征关系,并依据该特征关系产生该数据组对应的特征数据。这些输入数据所历经的处理动作及所对应的最后动作是对应到此数据组的码流(codeflow)中的应用程序接口。
这些程序运作方面有关于数据流向的分析有助判断重新包装的应用程序甚至是恶意程序代码。例如,步骤S21(或分析模块120)可针对程序运作方面,对于应用程序内核的执行代码部分(如通过步骤S10产生的数据组),提取出所需的相关信息:如被呼叫的API、敏感性数据于程序中的输入输出流向与处理路径、程序内核片段等,加以分析。
举例而言,分析程序代码后,得出关于某数据的码流以虚拟程序代码表示如下:
宣告data1为整数;
data2=API1(data1);
data3=API2(data2);
API3(data3);
故此,来源数据为:data1,处理路径为:[API1,API2],而最后流向为:API3,故特征关系为:{data1,[API1,API2],API3}。而一般来说,程序代码中有许多来源数据,以及相对应的数据路径以及最后流向,这些有关来源数据的特征关系的集合,可据以产生待测的应用程序针对程序运作方面的特征数据,或可称为诠释数据或元数据(metadata)。例如以矩阵或阵列或各种合适的编码方式描述特征数据,从而有助于从数据库中检索及比对之用。特征数据是为供步骤S33或相似度评估模块130使用。
为了运算环境安全,除了一般的来源数据外,还可针对相关的敏感数据进行分析,例如对于移动通信装置(如手机或平板计算机)的应用程序来说,敏感数据如机器码、国际移动设备识别码(IEMI)、个人识别码(PIN)、通信记录等。举例而言,分析程序代码发现应用程序接口API_1读取了手机的机器码mCode(如表示为API_1(mCode)),在经历一连串的处理路径后,最后由应用程序接口API_2送至某一网络目的位置(如表示为API_2(URL)),由此{mCode,[API_1(mCode),…],API_2(URL)}代表程序处理数据的特征关系,可据以产生特征数据。
在一些实施例中,程序运作方面有关于数据流向的分析,可采用动态分析方法中的污染源分析(TaintAnalysis)。污染源分析可追踪预先定义的敏感性数据或具有危险动作的数据操作,记录数据的扩散的历程及数据目的端(sink),可据以发出警告,例如数据目的端可能令数据外泄的程序操作及目的端,如网络或外接存储卡等。故应用此污染源分析中有关来源数据到数据目的端的历程的技术可作为辨识软件的特征关系而应用在步骤S33或分析模块123;此外,也可用以监控数据外泄的方式,从而分辨是否恶意程序。
步骤S21或分析模块120针对程序运作方面的实施例所产生的特征数据,可进一步由步骤S33或相似度评估模块130进行处理。请参考图10,步骤S33或相似度评估模块130可基于此实施例而评估待测的应用程序(如称为A1)与从数据库搜寻得到的已知的程序包(或可视为程序包集合)Bx的相似度。如步骤S410所示,依据针对程序运作方面的特征数据例如前述从来源数据至目的端的处理路径,比较已知的程序包Bx与待测的应用程序A1。步骤S410是使用数据库中已有的记录作比对;另外,一些例子中,比对的范围可利用待测的应用程序的其他方面的分析中所搜寻到的范围例如对于前述静态检测中令Layout()=T或Api()=T的程序包集合Ax。此外,例如设定程序接口如称为Path(Ax,A1)函数用来计算Ax与A1间有关数据流向的相似度。
Path()例如可包括以下关系(称关系式4),如果存在:
Ax的处理路径的集合A1的处理路径集合的关系;且
(A1的处理路径的数量)-(Ax的处理路径的数量)≤d3
则Path(Ax,A1)=T(即判定为相似),其中d3为有关处理路径方面的对应的距离(或称为差异)的条件。此函数Path(Ax,A1)在数据库中,寻找被A1所包含但距离小于d3的所有应用程序Ax来进行比对,来判定Ax是否可能为重新包装产生A1前的原始程序。
如步骤S430所示,判断处理路径是否相似。如果Path(Ax,A1)=F,则如步骤S435所示,待测的应用程序包A1与程序包Ax不相似。如果Path(Ax,A1)=T,表示找出了相似且符合条件的已知的程序包,此时表示程序包Ax和A1相似度高,则如步骤S440所示,决定有关于(Ax,A1)的相似性元数据Sim2。
针对程序所使用的资源方面
在一实施例中,针对程序所使用的资源方面,步骤S21可包括:依据程序所使用的资源方面的数据组,分析程序使用的资源的关系以作为特征关系之一,并依据特征关系产生该数据组对应的特征数据。程序使用的资源是指程序所用的数据,故可以视为程序代码中所设定请求的资源(resource)、权限设定(permission)或非程序代码的内容的关系。非程序代码的内容例如程序代码中所使用的超连结、程序脚本(script)、呈现内容的文件(contentfile)。
例如在安卓(Android)平台上,应用程序包的格式为APK文件(为封装格式),其中包含数个dex文件(程序执行代码)、属性内容(properties)(所包含的图片、数据与其他文件)与清单文件(manifest),其中清单文件是为对权限与相关资源使用的设定与程序宣告,并以XML描述。故此,从步骤S10或前置处理模块110,可以产生针对程序所使用的资源方面的数据组。
例如,针对程序所使用的资源方面,步骤S21或分析模块120可将例如以XML数据表示的所设定请求的资源或权限设定的名称、个数解析并对其他程序相关参数合并为特征数据。
又一实施例中,步骤S21或分析模块120可将其他资源数据,如图片、音频或其他数据,采用哈希方式(hash,杂凑)产生相关的特征数据,以供步骤S33或相似度评估模块130进行评估。
请参考图11,步骤S33或相似度评估模块130可基于此实施例而评估待测的应用程序(如称为A1)与从数据库搜寻得到的已知的程序包(或可视为程序包集合)Ax的相似性。针对程序所使用的资源方面,如步骤S510所示,决定待测的应用程序A1与程序包Ax是否相似。例如设定程序接口如称为Per(Ax,A1)函数用来计算Ax与A1间关于权限设定(permission)的相似度。如果是Per(Ax,A1)判断出来的差距过大,则如步骤S515所示,代表待测的应用程序包A1与程序包Ax不相似。如果Per(Ax,A1)=T,即结果为是,则进一步评估其他资源方面的相似度。如步骤S520所示,从数据库中取得与应用程序包A1相关的元数据,例如是前述XML描述的元数据。如步骤S530所示,决定程序包Ax相关的元数据的相似性元数据Sim3。如步骤S540所示,决定其他媒体文件(如图像文件等)的相似性元数据Sim4。
在步骤S510中,例如将待测的应用程序A1与数据库中得到的程序包Ax进行比对。由前述关系式1的观念,如果应用程序A1是某支程序的重新包装的话,其所包括的权限设定将会是大于或等于原始程序的权限设定。故此,Per(Ax,A1)例如可包括以下关系(称关系式5),如果存在:
Ax的权限设定的集合A1的权限设定集合的关系;且
(A1的权限设定的数量)-(Ax的权限设定的数量)≤d4
则Per(Ax,A1)=T(即判定为相似),其中d4为有关权限设定方面的对应的距离(或称为差异)的条件。此函数Per(Ax,A1)在数据库中,寻找被A1所包含但距离小于d4的所有程序包Ax来进行比对,来判定Ax是否可能为重新包装产生A前的原始程序。
待测的应用程序是否重新包装
对于前述步骤S21、S23或分析模块120、评估模块130的不同实施例,能产生一个或多个相似性元数据,以供如步骤S35或决定模块140决定待测的应用程序是否重新包装。在一实施例中,步骤S23、或步骤S33或评估模块130所产生的相似性元数据(如Sim1至Sim4中的一个或多个),可用来评估出Ax与A1的相似度指数α,以决定待测的应用程序A1是否属于重新包装或其他属性的决定结果。例如,将所有元数据(如sim1至sim4)排列成向量与搜寻到的V1(转换成数值排列)进行如前述的余弦数值的计算相似度α。另外,也可对每一元数据进行加权(表示其所占比重也许不同)后,所计算出的余弦值即为相似度指数α。
相似度指数α评估的结果关系表示如下:
若α≥β(0<β<1),β表示预设的相似度临界值:则Ax与A1两者为相似程序。亦即决定结果是为应用程序A1可视为Ax的重新包装。
若α<β,则程序包A1为新的程序。亦即,决定结果是为应用程序A1可视为不是Ax的重新包装。
如此步骤S35或决定模块140可得出决定结果。请参考图4及图5,步骤S130或步骤S230可依据此决定结果而进一步判断待测的应用程序包A1是否恶意程序。例如,在一实施例中,决定结果是为应用程序A1可视为Ax的重新包装,如果检查发现A1不是Ax的改版,且并非同一作者或公司的应用程序,则待测的应用程序包A1为恶意程序或侵权程序的可能性非常高,则据此拒绝其上架(如步骤S135)或拒绝安装(如步骤S235)。此外,也可记录此待测的应用程序包A1的相关信息于数据库,也可进一步分析此待测的应用程序包A1,以确认是否有新型恶意程序发现。又一实施例中,如果A1不是Ax的重新包装,可再针对其他相关特征数据进行分析,以确认是否为恶意程序或正常程序。
在其他实施例中,针对待测的应用程序A1的一个或多方面作分析所产生的差异(如步骤S21或分析模块120),例如令Path()=T的程序包Ax与待测的应用程序包A1有差异的处理路径的相关信息,如权限设定(对应到Per())、使用者接口布局(对应到Layout())或应用程序接口(对应Api())有差异的相关信息,可用来评估是否为恶意程序。此外,而所差异的一个或多个处理路径更可以直接与既有的恶意程序信息泄漏的特征数据比对,可提前找出明确的恶意程序代码或恶意程序类型。
此外,在其他实施例中,判定产生的结果则依照预先设定的条件决定此程序可否进行上架或是安装于装置端,不论可安装或不可安装,均可依照市集或是营运商的政策决定后续是否继续进行其他检测。
此外,在其他实施例中,拒绝应用程序包的上架或安装或是否进行如步骤S20的估计也可配合运算平台的已有机制而进行。例如在安卓(Android)平台上,应用程序包的格式为APK文件(为封装格式),其中包含数个dex文件(程序执行代码)、属性内容(properties)(所包含的图片、数据与其他文件)与清单文件(manifest),其中清单文件是为对权限与相关资源使用的设定与程序宣告,并以XML描述。
步骤S10或前置处理模块110例如实施为对APK文件进行解析的动作,并将dexfiles、properties及manifest中对应之后的步骤S20或分析模块120所需的相关信息,进行解析与整理成针对各方面(如使用者接口方面、程序操作方面、程序使用的资源方面的一或多个方面)相关的数据组,或称为元数据(metadata)。步骤S10或前置处理模块110的一实施例在接收到待测的APKA1时,会将APK中所组成的各个部分解析出来,在将相关信息交给下一步骤S20或分析模块120以前,会先将待测的APK的安全性信息(如APK名称、开发者信息与签章等),先作初步筛选。
实现此筛选可设定比对函数Mt(APKName,Sign_Key)来处理,其中APKName代表此APK的名称与开发者信息,而Sign_Key则代表签章所使用的金钥,APKName与Sign_Key的组合,可用来验证APK与开发者的身份。
如果比对函数Mt()回传为(T,T)表示待测的APKA1为已知的程序与合法的签章金钥,则APKA1可不用再行测试。待测的APKA1为已知即表示之前已测试过并在数据库中建有记录,由于合法签章代表程序内容并未被修改过,可确认其完整性,故APKA1可不用再行测试。但需要进一步比对此待测的APKA1是否在黑名单(blacklist)上。如果不在黑名单上,则允许上架或安装,否则拒绝此黑名单上有记录的APK进行安装。
第二种情形为Mt()=(T,F),表示此为已知程序与开发者,但签章金钥验证有误,表示此程序可能为窜改或传输时发生错误。无论如何,签章信息有误,表示程序完整性出现问题,则无须进行下一步检查,直接拒绝。
第三种情形为Mt()=(F,T)或(F,F),Mt()=(F,T)表示签章金钥无误,但是程序名称未有记录,则表示待测的APKA1应该是新的程序,需要进行进一步的分析测试。Mt()=(F,F)表示此程序为全新的程序,数据库中对其名称与金钥信息均未有记录,则也应该继续进一步的分析测试。故在此种情形下,步骤S10或前置处理模块110所取得的分析数据,将如图3所示,由步骤S20继续处理。
上述有关Android平台的步骤S10或前置处理模块110的实施例,可将不需要进行进一步筛检的程序先过滤出来。然而,上述仅是一种实施方式而已,运算环境安全方法的实施方式亦不受限于此。
另外,在一些实施例中,前述如图3的实施例的步骤S21的依据分析待测的应用程序包所得的特征关系产生该数据组对应的特征数据,或是步骤S23中使用的数据库中的特征数据,可采用统计的方式取得。例如,对于数据库的建立而言,对于已知的应用程序包如APK1、APK2、AP3等,可以利用剖析(parsing)后统计程序元件等被使用的数量、或被呼叫的次数或其他引用情况等,并予以量化,例如以如前述的向量或阵列或矩阵等方式,以作为某一APK的特征数据。例如,表一所示,为使用者接口方面或程序运作方面以其他方面,有关于程序的描述,如Android程序中Activity,service、view的数目的个数等,对APK1而言,此特征数据为[4,2,2,2,1],其他可如此类推。又如表二所示,某种或多种程序接口,如个别或不同的API、类别(class)、类别的方法(method)的使用情况。对于待测的应用程序包而言,也可以采用与同样的方式,予以量化,以得到对应的特征数据,以便于前述的数据库中进行搜寻。
个数 | APK1 | APK1 | APK1 |
Activity | 4 | 3 | 6 |
Service | 2 | 3 | 1 |
View,TextView,Button, | 2 | 1 | 1 |
Input Event:onClick() | 2 | 1 | 1 |
onLongClick() | 1 | 0 | 3 |
表一
表二
另外一些实施例中,对于每个APK中经由剖析后统计可得知的数据如表一及表二所示,此部分对应dexfile中经剖析后,对于API呼叫的内容产生的统计结果,可预先建立所有APK可用API的词库,包含Android及Java可用的API名称,并进行排序(或予以编号),以利建立各APK的特征数据或元数据。依此,此已知的APK或待测的应用程序包,对其dexfile全域范围所作的统计数据,可描述为产生Vapi=[v1,v2,v3……vk]的向量代表其dex中所使用各API的统计向量,Vapi的元素如v3为0可代表此对应的API未被使用,而k的个数,即为Android及Java中所可以使用的API个数(或经删除无意义的API后的个数)。
又,对在步骤S23的一实施例中,在进行寻找与向量V1在对应距离内的向量Vs时,对向量V1=[m1,m2,…,mk]中的各个值,可依照经验或归纳的权重对m1,m2,…,mk各施以加权值w1,w2,…,wk以表示其所占比重不同,依此再进行向量Vs的寻找。例如参照表二为例,当中URLConnection的方法与APK与网络连线有关,亦与运算环境安全有关,故可将的权重增加。在一些实施例中,对于加权值的观念,也可用于如步骤S33、S35的相似度计算,即以不同角度,作出待测应用程序是否为重新包装的决定。
前述如图3的运算环境安全方法的步骤或如图6的运算环境安全的软件架构的模块,可实现于电子装置端或服务系统(如应用市集端)执行,也可分散于两者而作不同的实现方现。例如图12是为于电子装置400及服务系统500上实现运算环境安全方法的实施例的方块图。电子装置400及服务系统500分别实现通信模块410及510。如图12所示,服务系统500利用运算环境安全方法的实施例于应用程序上架前作出检测是否重新包装。另外,电子装置400也可实现运算环境安全方法的实施例径行快速筛检以维护装置端的安全。如图12所示的实施例,配置于电子装置400的模块为静态分析的模块(如使用者接口方面或程序使用的数据方面的分析模)。此实施方式不会耗用大量的装置端资源进行应用程序的即时检视与监视,能避免消耗有限的移动装置电源。
其中电子装置400可通过通信模块410建立通信连结以从数据库(如服务系统500的数据库或其他数据库)取得与待测的应用程序包A1相类似的程序包的特征数据或元数据(metadata),来进行数据的查询及比对。如果电子装置400依据静态检测部分得出的相似度指数α判定待测的应用程序包A1为重新包装的应用程序,则不需要回到服务系统500再进行检测,即可拒绝执行安装动作。在一实施例中,如果电子装置400判定待测的应用程序包A1是为全新的程序,则回传静态检测所分析得到的特征数据到数据库(例如建立在服务系统500或其他数据库)进行存储。服务系统500例如是分散式系统或云端的服务系统。
在一实施例中,电子装置400例如为智能装置(如手机、平板计算机、网络电视等)上所预载的安装程序(installer)搭配,以确认使用者不会忽略云端所响应的结果而依旧安装有恶意威胁的不明来源程序。此外,在服务系统500及电子装置400上实施的方式当可参照如图3或图6的实施例作各种不同的方式实施,故并不受限于图12的实施例。
此外,虽然上述实施例中以安卓平台举例,然而依上述运算环境安全方法、服务系统及电子装置的实施例可实施于任可平台如各种智能装置的作业平台、甚至是个人计算机的运算环境中。
此外,另公开一种计算机或运算装置可读式信息存储介质的实施例,其上存储有至少一程序或软件模块执行上述运算环境安全方法的实施例。当具有存储器的电子装置或服务系统(称为电子运算系统)载入此信息存储介质后,此电子运算系统执行多个程序指令,这些程序指令用于执行上述运算环境安全方法的实施例,例如是实施于服务系统(如作为软件市集)或电子装置(如手机、平板计算机、网络电视等)。本实施例的计算机可读式信息存储介质比如但不受限于,光学式信息存储介质、磁式信息存储介质或固件,也可包括可在网络/传递媒介(如空气等)上传递的程序代码等。
综上所述,虽然以实施例公开如上,然其并非用以限定本申请的实施方式。本公开所属领域技术人员,在不脱离本公开的精神和范围内,当可作各种的更动与润饰。因此,本申请的保护范围当视所附权利要求书所界定者为准。
Claims (25)
1.一种运算环境安全方法,包括:
(a)通过电子运算系统,解开待测的应用程序包以取得至少一数据组,其中各该至少一数据组是为该应用程序包的多个方面中的相关的内容,其中这些方面相关的内容包括使用者接口方面的内容,该至少一数据组包括:第一数据组,该第一数据组是为该应用程序包中与使用者接口方面相关的内容;以及
(b)依据该至少一数据组,估计该待测的应用程序包是否重新包装程序,该步骤(b)包括:
(c)对于各该至少一数据组,分析该数据组的对应的方面的相关的内容的特征关系,并依据该特征关系产生该数据组对应的特征数据;以及
(d)依据该至少一数据组的特征数据及从数据库中取得的与该特征数据相距对应距离内的对应的搜寻结果,决定该待测的应用程序包是否为重新包装的应用程序包,其中该数据库包括多个应用程序包所对应的这些方面相关的特征数据;
其中该电子运算系统依据该决定的结果对该待测的应用程序包进行处理。
2.如权利要求1所述的运算环境安全方法,其中在解开待测的应用程序包的步骤之前,还包括:
响应于软件上架的请求,通过该电子运算系统的通信单元,接收该待测的应用程序包;
其中通过该电子运算系统,进行该步骤(b);
其中该电子运算系统是为服务系统,依据该决定的结果,如果该待测的应用程序包被决定为重新包装的应用程序包且为恶意程序,则该服务系统拒绝该上架的请求,使该待测的应用程序包不能上架。
3.如权利要求1所述的运算环境安全方法,其中在解开待测的应用程序包的步骤之前,还包括:
通过该电子运算系统的通信单元,接收该待测的应用程序包;
其中通过该电子运算系统的控制单元,响应软件安装程序的请求,在欲安装该待测的应用程序包之前,进行该步骤(b);
其中依据该决定的结果,如果该待测的应用程序包被决定为重新包装的应用程序包且为恶意程序,则该电子运算系统拒绝安装该待测的应用程序包。
4.如权利要求1所述的运算环境安全方法,其中该步骤(d)包括:
依据该至少一数据组的特征数据及从数据库中取得的与该特征数据相距对应距离内的对应的搜寻结果,评估该待测的应用程序包的相似度,其中该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度;以及
依据该待测的应用程序的相似度,决定该待测的应用程序包是否为重新包装的应用程序包;其中,通过该电子运算系统的通信单元,该电子运算系统通过通信连结从该数据库中取得该搜寻结果。
5.如权利要求1所述的运算环境安全方法,其中该步骤(c)包括:
依据该第一数据组,分析使用者接口中各画面与各元件的阶层关系以作为特征关系之一,并依据该特征关系产生该第一数据组对应的第一特征数据。
6.如权利要求5所述的运算环境安全方法,其中该步骤(c)还包括:
依据该第一数据组,分析使用者接口中各元件与布局相关执行程序代码,以得出各元件与对应的处理事件之间的关系及对应的应用程序接口的名称与数量作为特征关系之一,并依据该特征关系产生该第一数据组对应的第二特征数据。
7.如权利要求6所述的运算环境安全方法,其中该步骤(d)包括:
依据该第一数据组的该第一特征数据和该第二特征数据以及从该数据库中取得的与该特征数据相距对应距离内的特征数据对应的搜寻结果,决定使用者接口方面的相似性元数据;
基于使用者接口方面的该相似性元数据,决定该待测的应用程序包的相似度,其中该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度;以及
依据该待测的应用程序的相似度,决定该待测的应用程序包是否为重新包装的应用程序包。
8.如权利要求1所述的运算环境安全方法,其中这些方面相关的内容还包括程序运作方面的内容,各该至少一数据组还包括:第二数据组,该第二数据组是为该应用程序包中与程序运作方面相关的内容。
9.如权利要求8所述的运算环境安全方法,其中该步骤(c)包括:
依据该第二数据组,分析执行代码中各应用程序接口(API)所使用的参数及参数内容的关系以作为特征关系,并依据该特征关系产生该第二数据组对应的第一特征数据。
10.如权利要求8所述的运算环境安全方法,其中该步骤(c)包括:
依据该第二数据组,分析执行代码的数据流程,对该第二数据组中多个输入数据、这些输入数据所历经的处理动作及所对应的最后动作以作为特征关系,并依据该特征关系产生该第二数据组对应的第一特征数据,其中这些输入数据所历经的处理动作及所对应的最后动作对应到该第二数据组的码流中的应用程序接口。
11.如权利要求8所述的运算环境安全方法,其中该步骤(d)包括:
依据该第一数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第一定距离内的特征数据对应的搜寻结果,决定使用者接口方面的相似性元数据;以及
依据该第二数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第二定距离内的特征数据对应的搜寻结果,决定程序运作方面的相似性元数据;
基于使用者接口方面的该相似性元数据及该程序运作方面的该相似性元数据,决定该待测的应用程序包的相似度,其中该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度;以及
依据该待测的应用程序的相似度,决定该待测的应用程序包是否为重新包装的应用程序包。
12.如权利要求8所述的运算环境安全方法,其中这些方面相关的内容还包括程序使用的资源方面的内容,各该至少一数据组包括:第三数据组,该第三数据组是为该应用程序包中与程序使用的资源方面的内容。
13.如权利要求12所述的运算环境安全方法,其中该步骤(c)包括:
依据该第三数据组,分析程序使用的资源的关系以作为特征关系之一,并依据该特征关系产生该第三数据组对应的特征数据。
14.如权利要求13所述的运算环境安全方法,其中程序使用的资源的关系是为该待测的应用程序包的所设定请求的权限设定的关系。
15.如权利要求13所述的运算环境安全方法,其中程序使用的资源的关系是为该待测的应用程序包的非程序代码的内容的关系。
16.如权利要求12所述的运算环境安全方法,其中该步骤(d)包括:
依据该第一数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第一定距离内的特征数据对应的搜寻结果,决定使用者接口方面的相似性元数据;
依据该第二数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第二定距离内的特征数据对应的搜寻结果,决定程序运作方面的相似性元数据;
依据该第三数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第三定距离内的特征数据对应的搜寻结果,决定程序使用的资源方面的相似性元数据;
基于使用者接口方面的该相似性元数据及该程序运作方面的该相似性元数据及程序使用的资源方面的该相似性元数据,决定该待测的应用程序包的相似度,其中该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度;以及
依据该待测的应用程序的相似度,决定该待测的应用程序包是否为重新包装的应用程序包。
17.一种电子运算系统,包括:
通信单元;以及
控制单元,通过该通信单元,接收待测的应用程序包,其中该控制单元至少:
解开待测的应用程序包以取得至少一数据组,其中该待测的应用程序包包括多个方面相关的内容,各该至少一数据组是为该应用程序包的这些方面中的相关的内容,其中这些方面相关的内容包括使用者接口方面的内容,各该至少一数据组包括:第一数据组,该第一数据组是为该应用程序包中与使用者接口方面相关的内容;
对于各该至少一数据组,分析该数据组的对应的方面的相关的内容的特征关系,并依据该特征关系产生该数据组对应的特征数据;
依据该至少一数据组的特征数据及从数据库单元中取得的与该特征数据相距对应距离内的对应的搜寻结果,决定该待测的应用程序包是否为重新包装的应用程序包,其中该电子运算系统依据该决定的结果对该待测的应用程序包进行处理。
18.如权利要求17所述的电子运算系统,还包括该数据库单元,该数据库单元具有多个应用程序包所对应的这些方面相关的特征数据,其中该电子运算系统是为服务系统,如果该控制单元决定该待测的应用程序包为重新包装的应用程序包且为恶意程序,则该服务系统拒绝该待测的应用程序包的上架的请求,使该待测的应用程序包不能上架。
19.如权利要求17所述的电子运算系统,其中该电子运算系统是为电子装置,通过该通信单元,该电子运算系统通过通信连结从该数据库单元中取得该搜寻结果。
20.如权利要求19所述的电子运算系统,其中若该待测的应用程序包被决定为重新包装的应用程序包且为恶意程序,则该电子运算系统拒绝安装该待测的应用程序包。
21.如权利要求19所述的电子运算系统,其中若该控制单元决定该待测的应用程序包并非为重新包装且为全新的程序,则该电子运算系统通过通信连结将该至少一数据组的特征数据回传到该数据库单元存储。
22.如权利要求17所述的电子运算系统,其中这些方面相关的内容还包括程序运作方面的内容,各该至少一数据组还包括:第二数据组,该第二数据组是为该应用程序包中与程序运作方面相关的内容。
23.如权利要求22所述的电子运算系统,其中该控制单元:
依据该第一数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第一定距离内的特征数据对应的搜寻结果,决定使用者接口方面的相似性元数据;以及
依据该第二数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第二定距离内的特征数据对应的搜寻结果,决定程序运作方面的相似性元数据;
该控制单元基于使用者接口方面的该相似性元数据及该程序运作方面的该相似性元数据,决定该待测的应用程序包的相似度,并依据该待测的应用程序包的相似度决定该待测的应用程序包是否为重新包装的应用程序包,其中该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度。
24.如权利要求22所述的电子运算系统,其中这些方面相关的内容还包括程序使用的资源方面的内容,各该至少一数据组包括:第三数据组,该第三数据组是为该应用程序包中与使用者接口方面相关的内容。
25.如权利要求24所述的电子运算系统,其中该控制单元:
依据该第一数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第一定距离内的特征数据对应的搜寻结果,决定使用者接口方面的相似性元数据;以及
依据该第二数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第二定距离内的特征数据对应的搜寻结果,决定程序运作方面的相似性元数据;
依据该第三数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第三定距离内的特征数据对应的搜寻结果,决定程序使用的资源方面的相似性元数据;
该控制单元基于该使用者接口方面的该相似性元数据及该程序运作方面的该相似性元数据及程序使用的资源方面的该相似性元数据,决定该待测的应用程序包的相似度,并依据该待测的应用程序包的相似度决定该待测的应用程序包是否为重新包装的应用程序包,其中该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101125177A TWI461953B (zh) | 2012-07-12 | 2012-07-12 | 運算環境安全方法和電子運算系統 |
TW101125177 | 2012-07-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103544430A CN103544430A (zh) | 2014-01-29 |
CN103544430B true CN103544430B (zh) | 2016-06-01 |
Family
ID=49915209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310000890.1A Active CN103544430B (zh) | 2012-07-12 | 2013-01-04 | 运算环境安全方法和电子运算系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9053322B2 (zh) |
CN (1) | CN103544430B (zh) |
TW (1) | TWI461953B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9053307B1 (en) | 2012-07-23 | 2015-06-09 | Amazon Technologies, Inc. | Behavior based identity system |
KR101739125B1 (ko) * | 2013-02-27 | 2017-05-24 | 한국전자통신연구원 | 모바일 디바이스용 어플리케이션의 권한을 분석하고 위험성을 검출하기 위한 장치 및 방법 |
KR102038964B1 (ko) * | 2013-03-18 | 2019-11-26 | 삼성전자주식회사 | 어플리케이션 간의 상호 인증 방법 및 장치 |
US9921827B1 (en) | 2013-06-25 | 2018-03-20 | Amazon Technologies, Inc. | Developing versions of applications based on application fingerprinting |
US9652617B1 (en) * | 2013-06-25 | 2017-05-16 | Amazon Technologies, Inc. | Analyzing security of applications |
US10269029B1 (en) | 2013-06-25 | 2019-04-23 | Amazon Technologies, Inc. | Application monetization based on application and lifestyle fingerprinting |
US9262470B1 (en) | 2013-06-25 | 2016-02-16 | Amazon Technologies, Inc. | Application recommendations based on application and lifestyle fingerprinting |
JP6161459B2 (ja) * | 2013-07-31 | 2017-07-12 | 株式会社日立製作所 | 事業性評価装置、事業性評価方法及び事業性評価プログラム |
CN103632089A (zh) * | 2013-12-16 | 2014-03-12 | 北京网秦天下科技有限公司 | 应用安装包的安全检测方法、装置和系统 |
US10242191B2 (en) | 2014-05-26 | 2019-03-26 | Nippon Telegraph And Telephone Corporation | Dynamically-loaded code analysis device, dynamically-loaded code analysis method, and dynamically-loaded code analysis program |
EP2953045A1 (en) * | 2014-06-05 | 2015-12-09 | Thomson Licensing | Apparatus and method for data taint tracking |
JP6258189B2 (ja) * | 2014-12-24 | 2018-01-10 | 日本電信電話株式会社 | 特定装置、特定方法および特定プログラム |
US9866574B1 (en) * | 2015-06-01 | 2018-01-09 | Amazon Technologies, Inc. | Protected data type handling awareness |
US9940479B2 (en) * | 2015-10-20 | 2018-04-10 | International Business Machines Corporation | Identifying and tracking sensitive data |
CN106506597B (zh) * | 2016-10-09 | 2019-06-21 | 腾讯科技(北京)有限公司 | 对象控制方法和装置 |
RU2654146C1 (ru) * | 2017-06-16 | 2018-05-16 | Акционерное общество "Лаборатория Касперского" | Система и способ обнаружения вредоносных файлов с использованием элементов статического анализа |
EP3416085B1 (en) * | 2017-06-16 | 2020-06-03 | AO Kaspersky Lab | System and method of detecting malicious files with the use of elements of static analysis |
US11710067B2 (en) * | 2018-10-10 | 2023-07-25 | Visa International Service Association | Offline security value determination system and method |
CN112632551B (zh) * | 2021-03-11 | 2021-09-28 | 北京邮电大学 | 一种第三方库信息泄露检测方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200824401A (en) * | 2006-08-31 | 2008-06-01 | Microsoft Corp | Software authorization utilizing software reputation |
CN101236584A (zh) * | 2007-01-31 | 2008-08-06 | 三星电子株式会社 | 检测入侵代码的设备及其方法 |
TW201220118A (en) * | 2010-11-12 | 2012-05-16 | Univ Nat Chiao Tung | A method and a system for automatically analyzing and classifying a malicious program |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282698B1 (en) | 1998-02-09 | 2001-08-28 | Lucent Technologies Inc. | Detecting similarities in Java sources from bytecodes |
US7284274B1 (en) | 2001-01-18 | 2007-10-16 | Cigital, Inc. | System and method for identifying and eliminating vulnerabilities in computer software applications |
US6792543B2 (en) | 2001-08-01 | 2004-09-14 | Networks Associates Technology, Inc. | Virus scanning on thin client devices using programmable assembly language |
TWI256212B (en) | 2003-11-05 | 2006-06-01 | Ind Tech Res Inst | Architecture and method of multilayered DRM protection for multimedia service |
DE602005014225D1 (de) * | 2004-04-30 | 2009-06-10 | Research In Motion Ltd | System und verfahren zum administrieren einer digitalen zertifikatprüfung |
US20070239993A1 (en) * | 2006-03-17 | 2007-10-11 | The Trustees Of The University Of Pennsylvania | System and method for comparing similarity of computer programs |
WO2007117574A2 (en) | 2006-04-06 | 2007-10-18 | Smobile Systems Inc. | Non-signature malware detection system and method for mobile platforms |
US8347386B2 (en) | 2008-10-21 | 2013-01-01 | Lookout, Inc. | System and method for server-coupled malware prevention |
US9367680B2 (en) | 2008-10-21 | 2016-06-14 | Lookout, Inc. | System and method for mobile communication device application advisement |
IL197477A0 (en) * | 2009-03-08 | 2009-12-24 | Univ Ben Gurion | System and method for detecting new malicious executables, based on discovering and monitoring of characteristic system call sequences |
KR101122650B1 (ko) | 2010-04-28 | 2012-03-09 | 한국전자통신연구원 | 정상 프로세스에 위장 삽입된 악성코드 탐지 장치, 시스템 및 방법 |
US8844032B2 (en) * | 2012-03-02 | 2014-09-23 | Sri International | Method and system for application-based policy monitoring and enforcement on a mobile device |
US20130254880A1 (en) * | 2012-03-21 | 2013-09-26 | Mcafee, Inc. | System and method for crowdsourcing of mobile application reputations |
US8756432B1 (en) * | 2012-05-22 | 2014-06-17 | Symantec Corporation | Systems and methods for detecting malicious digitally-signed applications |
-
2012
- 2012-07-12 TW TW101125177A patent/TWI461953B/zh active
-
2013
- 2013-01-04 CN CN201310000890.1A patent/CN103544430B/zh active Active
- 2013-01-15 US US13/741,426 patent/US9053322B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200824401A (en) * | 2006-08-31 | 2008-06-01 | Microsoft Corp | Software authorization utilizing software reputation |
CN101236584A (zh) * | 2007-01-31 | 2008-08-06 | 三星电子株式会社 | 检测入侵代码的设备及其方法 |
TW201220118A (en) * | 2010-11-12 | 2012-05-16 | Univ Nat Chiao Tung | A method and a system for automatically analyzing and classifying a malicious program |
Also Published As
Publication number | Publication date |
---|---|
CN103544430A (zh) | 2014-01-29 |
TWI461953B (zh) | 2014-11-21 |
TW201403368A (zh) | 2014-01-16 |
US9053322B2 (en) | 2015-06-09 |
US20140020094A1 (en) | 2014-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103544430B (zh) | 运算环境安全方法和电子运算系统 | |
Pasquier et al. | Runtime analysis of whole-system provenance | |
US20190251267A1 (en) | Assessment and analysis of software security flaws | |
US20190303579A1 (en) | Decentralized, immutable, tamper-evident, directed acyclic graphs documenting software supply-chains with cryptographically signed records of software-development life cycle state and cryptographic digests of executable code | |
US20190305959A1 (en) | Announcement smart contracts to announce software release | |
Zhou et al. | Fast, scalable detection of" piggybacked" mobile applications | |
US20190303541A1 (en) | Auditing smart contracts configured to manage and document software audits | |
US20190303623A1 (en) | Promotion smart contracts for software development processes | |
CN116506217B (zh) | 业务数据流安全风险的分析方法、系统、存储介质及终端 | |
CN104067283B (zh) | 识别移动环境的木马化应用程序 | |
CN113489713B (zh) | 网络攻击的检测方法、装置、设备及存储介质 | |
Zhan et al. | Research on third-party libraries in android apps: A taxonomy and systematic literature review | |
US11336676B2 (en) | Centralized trust authority for web application components | |
US11526586B2 (en) | Copyright detection in videos based on channel context | |
CN110708335A (zh) | 访问认证方法、装置及终端设备 | |
US10387889B1 (en) | Brand recognition and protection in mobile applications | |
CN112214518B (zh) | 一种基于区块链的地理空间基础数据共享方法及系统 | |
CN112016138A (zh) | 一种车联网自动化安全建模的方法、装置和电子设备 | |
CN110298171A (zh) | 移动互联网大数据应用的智能检测与安全防护方法 | |
Ban et al. | B2SMatcher: fine-Grained version identification of open-Source software in binary files | |
Neupane et al. | On the data privacy, security, and risk postures of IoT mobile companion Apps | |
CN114139161A (zh) | 一种批量检测漏洞的方法、装置、电子设备及介质 | |
CN104243215A (zh) | 终端设备口令管理的方法、设备及系统 | |
US10467423B1 (en) | Static analysis-based tracking of data in access-controlled systems | |
Niu et al. | Clone analysis and detection in android applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |