CN111433775B - 安全性增强方法及其电子设备 - Google Patents

安全性增强方法及其电子设备 Download PDF

Info

Publication number
CN111433775B
CN111433775B CN201880078624.1A CN201880078624A CN111433775B CN 111433775 B CN111433775 B CN 111433775B CN 201880078624 A CN201880078624 A CN 201880078624A CN 111433775 B CN111433775 B CN 111433775B
Authority
CN
China
Prior art keywords
executable code
encryption
code
application
identification model
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
Application number
CN201880078624.1A
Other languages
English (en)
Other versions
CN111433775A (zh
Inventor
徐载雨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN111433775A publication Critical patent/CN111433775A/zh
Application granted granted Critical
Publication of CN111433775B publication Critical patent/CN111433775B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2101Auditing as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2149Restricted operating environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Virology (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

提供了一种电子设备和方法,因为基于是否启用人工智能技术检测加密算法,所以该电子设备和方法对加密相关漏洞的攻击具有稳健性。安全性增强方法包括:挂接可执行代码到存储器的加载;将可执行代码输入到基于人工神经网络的加密代码标识模型;通过加密代码标识模型,确定是否允许可执行代码到存储器的加载;以及当不允许加载可执行代码时,阻止可执行代码到存储器的加载。

Description

安全性增强方法及其电子设备
技术领域
本公开涉及一种通过使用诸如深度学习的机器学习算法来模仿人脑的识别和判断的人工智能(AI)系统及其应用。更具体地,本公开涉及一种通过启用基于AI技术的加密算法的检测而对加密利用稳健的电子设备及其方法。更具体地,本公开涉及一种电子设备,该电子设备能够应对利用加密漏洞的利用,诸如未经授权的数据加密,而与用户的意图无关,或者数据加密超出所获得的与加密有关的权限,以及涉及可以使用电子设备执行的方法。
背景技术
AI系统是一种实现人类水平智能的计算机系统。根据AI系统,与现有基于规则的智能系统不同,机器可以自行学习,做出判断并且变得更加智能。AI系统使用得越多,识别率就越高,理解用户的喜好就越准确,因此,现有技术中基于规则的智能系统逐渐被基于深度学习的AI系统所取代。
AI技术包括深度学习的机器学习以及利用机器学习的元素技术(elementtechnology)。
机器学习是一种基于算法的技术,其独立地分类和学习输入数据的特性。元素技术是通过使用诸如深度学习的机器学习算法来模拟人脑的功能(诸如,识别和判断)的技术,并且划分为诸如语言理解、视觉理解、推理/预测、知识表示和运动控制的领域。
在其中应用AI技术的各个领域如下。语言理解是识别人类语言和字符并对其进行应用和处理的技术,并且包括自然语言处理、机器翻译、对话系统、查询响应、语音识别/合成等。视觉理解是像在人类视觉系统中那样识别和处理对象的技术,包括对象识别、对象跟踪、图像搜索、人类识别、场景理解、空间理解和图像增强。推理预测是通过判断信息进行逻辑推理和预测的技术,并且包括基于知识/概率的推理、优化预测、基于偏好的计划和推荐。知识表示是将人类经验信息自动化为知识数据的技术,并且包括知识构建(数据生成/分类)和知识管理(数据利用)。运动控制是控制车辆的自主驾驶和机器人的运动的技术,并且包括运动控制(导航、碰撞和行驶)、操作控制(行为控制)等。
当诸如勒索软件或恶意软件的恶意程序在未经许可的情况下加密数据时,则很难恢复加密数据。因此,优选的是在恶意程序加密数据之前阻止加密。
根据相关技术,基于诸如可执行代码的签名或散列(hash)值的程序标识符或通过分析恶意程序的行为来标识恶意程序,并且移除标识的恶意程序或阻止执行标识的恶意程序。然而,根据相关技术中的技术,由于新的恶意程序持续出现,因此需要相当的量的时间和花费来快速并且准确地标识新的恶意程序。另外,即使当确定程序不是恶意程序时,也不能够防止该程序执行超出针对该程序批准的权限的加密的动作。
为了对各种模式的不适当的数据加密采取措施,需要模拟人脑判断的人工智能技术的帮助。也就是说,需要提供安全性增强技术,以用于基于下述检测来增强检测与加密有关的漏洞利用的能力:对基于人工智能技术的加密算法的检测。
以上信息仅作为背景信息呈现,以帮助理解本公开。关于以上中的任何是否可以用作关于本公开的现有技术,既没有确定,也没有断言。
发明内容
技术方案
本公开的各方面将至少解决上述问题和/或缺点,并且至少提供下述优点。因此,本公开的方面在于提供一种对基于加密的黑客攻击具有稳健性的安全性增强电子设备和安全性增强方法。
本公开的另一方面在于提供一种电子设备和方法,其中,标识包括在应用的可执行代码中的加密算法可执行代码,并且基于是否找到加密算法可执行代码和找到的加密算法的类型中的至少一个来阻止应用的执行。
本公开的另一方面在于提供一种电子设备和方法,其中,基于标识包括在应用的可执行代码中的加密算法的结果,选择性地阻止将应用加载到存储器中。
本公开的另一方面在于提供一种电子设备和方法,其中,在从外部阻止的安全环境中执行应用,并且基于执行结果标识应用中包括的加密算法。
本公开的另一方面在于提供一种应用人工智能技术的电子设备和方法,其中,通过使用加密代码标识模型来标识应用的可执行代码中包括的加密算法,该加密代码标识模型通过使用利用应用的可执行代码的静态分析和动态分析的结果提取的特征数据通过机器学习获得。
本公开的另一方面在于提供一种电子设备和方法,其中,基于标识包括在应用的可执行代码中的加密算法的结果来确定是否允许安装应用。
本公开的另一方面在于提供一种电子设备和方法,其中,基于标识包括在应用的可执行代码中的加密算法的结果预先测试应用的加密功能的稳定性。
本公开的另一方面在于提供一种电子设备和方法,其中,检测并且防止超出针对应用批准的访问权限的加密尝试。
本公开的另一方面在于提供一种电子设备,其中,通过使用附加专用处理器来实现通过挂接应用的存储器加载执行测试的安全环境。
本公开的另一方面在于提供一种系统,其中,通过在用户终端中更新加密代码标识模型来增强(induce)用户终端的安全性,该加密代码标识模型通过机器学习经由关于加密算法的代码的特征数据和关于加密算法的漏洞的信息获得。
有益效果
本公开的一方面提供了一种对基于加密的黑客攻击具有稳健性的安全性增强电子设备和安全性增强方法。
附图说明
通过以下结合附图的描述,本公开的特定实施例的上述和其他方面、特征和优点将变得更加明显,在附图中:
图1是根据本公开的实施例的基于加密算法的安全性增强系统的框图;
图2A和图2B是用于描述根据本公开的各种实施例的与用于每种情况的安全性增强有关的操作的图;
图3是根据本公开的实施例的安全性增强系统的框图;
图4是根据本公开的实施例的电子设备的框图;
图5是根据本公开的实施例的监视功能的框图;
图6是用于描述根据本公开的实施例的电子设备标识包括在应用的可执行代码中的加密算法的操作的图;
图7示出根据本公开的实施例的访问列表的示例;
图8是根据本公开的实施例的电子设备的框图;
图9A、图9B和图9C是根据本公开的各种实施例的基于存储器加载挂接的安全性增强方法的流程图;
图10A和图10B是根据本公开的各种实施例的使用安装器的安全性增强方法的流程图;
图11A和图11B是根据本公开的各种实施例的另一安全性增强方法的流程图;
图12示出根据本公开的各种实施例的安全性增强方法的图;以及
图13是根据本公开的实施例的基于访问权限的安全性增强方法的流程图。
贯穿附图,相同的附图标记将被理解为指代相同的部件、组件和结构。
具体实施方式
根据本公开的方面,提供了一种使用电子设备执行的安全性增强方法。该安全性增强方法包括:挂接可执行代码到存储器的加载;将可执行代码输入到加密代码标识模型;通过使用加密代码标识模型确定是否允许可执行代码到存储器的加载;以及当不允许可执行代码的加载时,阻止可执行代码到存储器的加载。
该方法还包括:从可执行代码中提取特征数据,以及将特征数据输入到加密代码标识模型。特征数据可以包括在可执行代码的执行期间反复地被调用的数学函数或逻辑函数的调用序列。特征数据可以包括与可执行代码的执行期间的中央处理单元(CPU)的功耗有关的功耗数据。当CPU的功耗等于或大于阈值时,功耗数据包括CPU操作周期的数量。
确定是否允许可执行代码的存储器加载可以包括:当加密代码标识模型的输出数据指示在可执行代码中检测到加密代码时,不允许加载可执行代码,以及当加密代码标识模型的输出数据指示在可执行代码中未检测到加密代码时,允许加载可执行代码。
安全性增强方法还可以包括:当安装包括可执行代码的应用时,从应用的安装包中包括的许可信息中获得可用加密算法;以及在访问列表中匹配并且存储应用的标识信息和可用加密算法,其中,当加密代码标识模型的输出数据标识出加密算法不在访问列表中时,不允许加载可执行代码。
安全性增强方法还可以包括:从外部设备接收加密算法的漏洞信息,并且将漏洞信息存储在漏洞列表中,其中,当加密代码标识模型的输出数据标识出在漏洞列表中的漏洞时,不允许可执行代码的加载。
该方法还可以包括:基于可执行代码是否被包括在白名单中、可执行代码的执行频率或自安装或更新包括可执行代码的应用以来经过的时间段中的至少一个来确定是否执行挂接,以及基于是否存在包括可执行代码的应用的安装历史来确定是否执行挂接。
根据本公开的另一方面,提供一种使用电子设备执行的安全性增强方法。该安全性增强方法包括:当安装应用时,将应用的可执行代码输入到加密代码标识模型;基于加密代码标识的输出数据确定可执行代码是否通过安全性测试;当安全性测试失败时,对应用执行指定处理。通过使用加密代码标识模型的输出数据确定可执行代码是否已经通过安全性测试可以包括:当由加密代码标识模型的输出数据指示的加密算法与关于从应用的安装包中包括的应用所需的许可信息中获得的可用加密算法的信息不匹配时,确定可执行代码未能通过安全性测试。
根据本公开的另一方面,提供了一种使用电子设备执行的安全性增强方法。该安全性增强方法包括:以第一频率对第一类型的应用执行安全审核(audit),而无需用户操纵执行第一类型的应用;以及以第二频率对第二类型的应用执行安全审核,而无需用户操纵执行第二类型的应用,其中,安全审核包括将应用的可执行代码输入到加密代码标识模型,基于从加密代码标识模型输出的数据来确定可执行代码是否已经通过安全性测试。
根据本公开的另一方面,提供了一种使用电子设备执行的安全性增强方法。该安全性增强方法包括:从应用的安装包中包括的许可信息获得可用加密算法和可访问对象;将应用的标识信息、可用加密算法和可访问对象匹配并且存储在访问列表中;检测使用加密应用编程接口(API)的加密算法加密对象的指令,该加密API由安装在电子设备上的操作系统提供;基于访问列表确定加密算法和对象是否可以基于应用的访问权限来访问加密API;以及当加密算法或对象不可以访问加密API时,阻止指令。
安全性增强方法还可以包括:从外部设备接收加密算法的漏洞信息;基于漏洞信息更新漏洞列表;以及基于漏洞列表是否包括将由指令执行的漏洞来确定是否执行指令。
安全性增强方法还可以包括:从外部设备接收加密算法的漏洞信息;基于漏洞信息更新漏洞列表;以及当漏洞信息包括将由指令执行的漏洞时,将加密算法的漏洞的执行通知给外部设备。外部设备可以收集加密算法的漏洞信息,并且将该信息发送到电子设备,通过从电子设备收集漏洞加密算法的执行通知来生成统计数据,以及将统计数据发送到使用漏洞加密算法的应用开发者侧的系统。
根据本公开的另一方面,提供了一种电子设备。该电子设备包括:处理器;存储装置,被配置为存储应用;以及存储器,存储处理器可执行的多个指令,其中,多个指令包括:挂接应用的可执行代码到存储器的加载的指令;将可执行代码输入到加密代码标识模型的指令;基于加密代码标识模型确定是否允许加载可执行代码的指令;以及当不允许加载可执行代码时阻止可执行代码加载到存储器的指令。
多个指令还可以包括:在安全环境中执行可执行代码的指令,以及基于可执行代码的执行结果将值输入到加密代码标识模型的指令,其中,安全环境是沙箱环境,可执行代码的执行结果不影响沙箱环境外部的系统资源。
存储装置还被配置为存储访问列表,该访问列表包括从在应用的安装包中包括的许可信息获得的可用加密算法。多个指令还可以包括确定加密代码标识模型的输出数据是否标识出加密算法不在访问列表中的指令。访问列表包括从应用的要求许可信息获得的、与应用的标识信息相匹配的可访问对象,并且多个指令还可以包括:用于检测加密API的调用的指令,该加密API由安装在电子设备上的操作系统提供;用于通过参考访问列表确定加密算法和根据加密API的调用要加密的对象是否在调用加密API的应用的访问权限之内的指令;以及当确定加密算法和要加密的对象不在应用的访问权限之内时阻止执行调用加密API的加密相关例程的指令。
电子设备还可以包括网络接口,被配置为接收漏洞列表,该漏洞列表包括经由网络接口从外部设备接收的关于加密算法的漏洞的信息。多个指令还可以包括用于确定加密代码标识模型的输出数据是否标识出在漏洞列表中的漏洞的指令。
多个指令还包括安装功能,其中,安装功能包括:在安全环境中执行可执行代码的指令,将特征数据输入加密代码标识模型的指令,基于加密代码标识模型的输出数据确定可执行代码是否已经通过安全性测试的指令,以及当未通过安全性测试时卸载应用的指令。
多个指令还包括在没有用户输入的情况下对应用执行安全审核的功能,其中,执行安全审核的功能包括将可执行代码输入到加密代码标识模型,并且基于加密代码标识模型的输出数据确定可执行代码是否已经通过安全性测试的指令;当未通过安全性测试时执行预定义处理的指令;以及通过安全性测试时在应用的日志中记录安全性通过的指令,其中,多个指令还包括基于在一时间段内是否存在通过的安全性测试来确定是否执行指令以挂接加载可执行代码的指令。
根据本公开的另一方面,提供了一种电子设备。该电子设备包括:第一处理器;存储装置,存储应用的可执行代码;存储器,存储从存储装置加载的并且在第一处理器上执行的可执行代码;以及沙箱环境中的第二处理器,第二处理器执行多个指令以确定是否允许可执行代码到存储器的加载。多个指令可以包括:用于挂接将可执行代码从存储装置加载到存储器的指令;用于将可执行代码输入到加密代码标识模型的指令;用于控制加密代码标识模型确定是否允许可执行代码的存储器加载的指令;以及当确定不允许可执行代码的存储器加载时阻止可执行代码到存储器的加载的指令。
根据结合附图公开了本公开的各种实施例的下面的详细描述,本公开的其他方面、优点和显着特征对于本领域技术人员将变得明显。
本发明的模式
提供以下参考附图的描述以帮助全面理解如由权利要求及其等同物所限定的本公开的各种实施例。其包括各种具体细节以帮助理解,但是这些具体细节仅被认为是示例性的。因此,本领域普通技术人员将认识到,在不脱离本公开的范围和精神的情况下,可以对本文描述的各种实施例进行各种改变和修改。另外,为了清楚和简洁,可以省略对公知功能和构造的描述。
在以下描述和权利要求中使用的术语和词语不限于书面含义,而是仅由发明人用来使对本公开的清楚和一致的理解成为可能。因此,对于本领域技术人员而言应当明显的是,提供对本公开的各种实施例的以下描述仅是出于说明的目的,而不是出于限制由所附权利要求及其等同物所限定的本公开的目的。
将理解,单数形式的“一”、“一个”和“该”包括复数指代,除非上下文另外明确指出。因此,例如,对“组件表面”的引用包括对一个或多个这样的表面的引用。
图1是根据本公开的实施例的基于加密算法的安全性增强系统的框图。
参考图1,将描述根据本公开的实施例的基于加密算法的安全性增强系统的结构和操作。根据实施例的系统可以包括加密代码标识模型训练设备10、加密算法漏洞收集设备20以及一个或多个电子设备100。例如,电子设备100包括移动通信终端100a(即,智能手机)、可穿戴设备100b(例如,智能手表)、具有计算处理器的计算设备100c、平板型设备100d和膝上型设备100e或具有计算单元的数字设备。电子设备100还可以是向用户终端提供服务的服务器设备。
加密代码标识模型训练设备10通过使用训练数据来执行机器学习训练,该训练数据是加密算法的可执行代码的集合。训练数据可以优选地包括用于一个加密算法的多个不同可执行代码。训练数据可以优选地包括用于多个加密算法的可执行代码。加密代码标识模型训练设备10可以收集可执行代码,或者可以直接编译包括加密算法的分发库以获得可执行代码。分发库例如是OpenSSL或基于配对的密码术(PBC)。
机器学习训练可以用于生成用于确定加密算法的存在的模型,或者用于生成执行加密算法的存在的确定和加密算法类型的分类两者的模型。可以通过使用能够生成分类模型的各种算法来执行机器学习训练,诸如n元语法(n-gram)、神经网络、朴素贝叶斯、支持向量机(SVM)等。在一个实施例中,加密算法的类型被划分为互联网工程任务组(IETF)和国际标准组织(ISO)标准中指定的多个不同加密算法,诸如sha-256、aes-128-cbc、hmac-128等。
加密代码标识模型训练设备10从每个类型的加密算法的可执行代码中提取特征数据,并且通过使用提取的特征数据执行机器学习训练。
在下文中,将描述特征数据的提取的方法。特征数据的提取包括静态分析和动态分析。在静态分析中,在不执行加密算法的可执行代码的情况下来提取特征数据。另一方面,在动态分析中,执行加密算法的可执行代码,并且通过使用执行结果来提取特征数据。在下文中,将描述可以在本公开的一些实施例中执行的用于提取特征数据的静态分析和动态分析。
通过静态分析,可以解析加密算法的可执行代码以生成与表征加密算法的先前指定关键字的分布有关的特征数据。关键字包括与加密算法有关的串和与加密算法有关的函数名称/库名称。
示例串包括,例如“hash”、“digest”、“encrypt”、“key”、“sk”、“pk”、“rk”、“salt”和“seed”。这些串在加密算法中经常使用,因此是用作加密算法的标识/分类的参考的特征数据。
函数名称/库名称包括例如“hash”“、md5”“、big number”“、seed”“、sorting”和“ordering”中的至少一个。为了实现加密算法,需要导入和使用复杂(complex)数学函数。因此,以上示例的函数名称/库名称也是用作加密算法的标识/分类的参考的特征数据。
作为动态分析的形式,可以在安全环境中执行加密算法的可执行代码,并且在执行处理和执行可执行代码期间、反复地调用的数学/逻辑运算函数的调用序列的执行期间与中央处理单元(CPU)的功耗有关的数据可以被提取为特征数据。加密算法迭代地执行复数学/逻辑运算。数学/逻辑运算使用例如系统调用,诸如加法、乘法、移位、XOR、AND、OR、NOR和NAND。因此,反复的数学/逻辑运算函数的调用序列也可以是在加密算法的标识/分类中用作参考的特征数据。
作为动态分析的另一类型,可以在安全环境中执行加密算法的可执行代码,并且可以提取与在执行可执行代码期间CPU的功耗有关的数据作为特征数据。如上所述,加密算法涉及反复地执行的复杂数学/逻辑运算,因此,CPU的功耗将在运算期间增加。因此,在与执行加密算法的可执行代码期间CPU的功耗有关的数据也是在加密算法的标识/分类中用作参考的特征数据。
与CPU的功耗有关的数据可以是其中CPU的功耗的记录量等于或大于预先指定数值的CPU操作周期的数量。已知某些加密算法会反复地执行高度复杂的计算。例如,基于公共密钥的加密算法Rivest-Shamir-Adleman(RSA)将1024位整数乘法和模运算重复1024次。因此,执行RSA的可执行代码的CPU将在1024个操作周期上记录高水平的功耗。因此,与在执行加密算法的可执行代码期间记录等于或高于预先指定的数值的CPU功耗量的CPU操作周期数量有关的数据也可以是用作加密算法的标识/分类的参考的特征数据。
上面描述了加密代码标识模型训练设备10接收特征数据以执行机器学习训练的处理。加密代码标识模型训练设备10可以通过使用深度学习算法在学习处理中由自身提取可执行代码的特征数据,并且通过使用提取的特征数据生成加密代码标识模型。
加密代码标识模型训练设备10经由网络30将作为机器学习训练的结果而生成的加密代码标识模型40发送到电子设备100。加密代码标识模型40可以包括定义模型的参数集(机器学习(ML)参数集)。加密代码标识模型训练设备10可以通过使用周期性地或非周期性地更新的训练数据来更新加密代码标识模型40,并且将更新的加密代码标识模型40发送到电子设备100。
加密算法漏洞收集设备20收集和处理关于加密算法的漏洞的信息,从而生成包括每个加密算法类型的漏洞信息的漏洞列表。加密算法漏洞收集设备20可以周期性地或非周期性地更新漏洞列表,并且将漏洞列表发送给电子设备100。
漏洞信息可以包括指示漏洞的分数。当漏洞程度高时,例如,当加密算法中包括错误时,或者当在执行漏洞加密算法时在系统中引起严重的安全问题的情况下,可以将分数设置为较高。
加密算法漏洞收集设备20可以从执行漏洞列表中包括的漏洞加密算法的电子设备接收漏洞加密算法执行通知44。加密算法漏洞收集设备20收集漏洞加密算法执行通知44以生成统计数据,并且可以将统计数据发送到第三方系统,诸如使用漏洞加密算法的应用(未示出)的开发人员。
统计数据可以包括漏洞加密算法已被执行的次数。可以通过反映漏洞(vulnerable)加密算法的漏洞分数和上述执行次数两者来确定将统计数据发送到第三方系统的时间。例如,对于具有高漏洞分数的漏洞加密算法,可以设置统计数据通知条件,使得可以在执行次数为一时发送统计数据。当漏洞加密算法具有低漏洞分数时,可以设置统计数据通知条件,使得当执行次数为二(大于上述次数(一))时,发送统计数据。
电子设备100可以接收加密代码标识模型40和漏洞加密算法漏洞信息42,存储加密代码标识模型40和漏洞加密算法漏洞信息42,并且根据预定义的设置或与安全性相关的用户设置来执行安全性增强处理。在与安全性增强有关的操作期间,可以参考加密代码标识模型40和加密算法漏洞信息42中的至少一个。
在下文中,将参考图2A和图2B描述与各种电子设备100的安全性增强有关的操作的实施例。
图2A和图2B是用于描述根据本公开的各种实施例的与每种情况的安全性增强有关的操作的图。
参考图2A和图2B,示例方法在附图标记50确定应用是否由安装器合法地安装。描述了两个不同的示例。在第一示例中,基于由应用调用的加密算法执行加密算法(例如,使用应用编程接口(API)等)。在第二示例中,应用可以实现自身算法。在应用中,应用在用户级别执行。
参考图2A,将描述当安装器合法地安装应用时要考虑的情况。
当安装器合法地安装的应用的可执行代码包括加密算法的可执行代码,并且因此,执行应用的加密算法时,挂接应用的可执行代码到存储器(RAM)的加载,并且通过加密代码标识模型检测包括加密算法的可执行代码的可执行代码。也就是说,在附图标记51,方法确定应用使用加密算法是通过操作系统(OS)还是通过应用实现的算法来提供。当算法是由应用实现的算法时,在附图标记52方法挂接应用的可执行代码,并且确定应用中的加密算法。
挂接是下述概念,其包含用于临时保持要控制的目标例程的执行并且用于执行特定例程的各种方法论。
例如,挂接可以指在执行要控制的目标例程之前执行特定例程。在本公开的一些实施例中,目标例程可以是二进制代码被加载到存储器的系统功能(或内核功能)。为了设置挂接,可能需要相对于作为要挂接的对象的例程来注册挂接功能的操作。当挂接功能的注册成功时,在执行要挂接的例程之前,执行挂接功能。因此,除非挂接功能的内部例程返回,否则将不会执行要挂接的例程。因此,当要挂接的例程是存储器加载系统功能时,在确定挂接功能是否允许存储器加载之后,当允许存储器加载时,可以通过将引入到挂接功能中的存储器加载系统功能的参数发送到存储器加载系统而不改变,来允许存储器加载。当不允许存储器加载时,参数可能不会发送到存储器加载系统功能,或者根本没有执行存储器加载系统功能以阻止存储器加载。
在此,当应用的可执行代码包括加密算法的可执行代码时,当在附图标记53执行应用时,为了提高安全性,在附图标记54,电子设备可以通过无条件地阻止应用的存储器加载来响应;或者为了提供合理级别的可用性,在附图标记55,仅当通过使用加密代码标识模型检测到与要求许可信息(例如,清单文件)中描述的可用加密算法不同的加密算法时,电子设备才可以通过阻止应用的存储器加载来响应。
当在附图标记56检测到调用加密API时,其中提供由安装器合法地安装的应用,在附图标记57,加密API由操作系统调用,并且执行加密API执行的功能的内部例程。在此,作为加密API的参数,可以指定加密算法的类型和要加密的数据,并且因此,关于加密算法的类型和要加密的数据的信息被引入到功能的内部例程。在附图标记58,通过使用引入的信息,当安装应用时,可以阻止超出用户标识的所需权限的加密尝试。
例如,在根据所需权限仅允许加密算法类型A和B时,当指定加密算法类型C作为加密API的参数时,加密API的操作可能会被阻止。另外,在在所需权限中仅将联系人指定为可访问对象时,当将照片图像数据指定为加密API的参数时,加密API的操作可能会被阻止。另外,可以阻止下述加密API的操作,对该加密API,指定了所需权限中包括的加密算法类型和可访问对象中的至少一个之外的参数。
参考图2B,将描述与安装器不合法地安装应用的示例相对应的示例。
在附图标记61,当由安装器不合法地安装的应用的可执行代码包括加密算法的可执行代码并且因此执行自提供的加密算法时,应用的可执行代码到RAM的加载被挂接,并且在附图标记60,通过使用加密代码标识模型检测包括加密算法的可执行代码的可执行代码。在此,为了增强安全性,在附图标记62,电子设备可以通过无条件地阻止应用的存储器加载来响应,或者在附图标记63,当检测到的加密算法类型不是安全的加密算法类型时,电子设备可以通过阻止应用的存储器加载来响应。
安全加密算法类型可以包括:电子设备中存储的白名单中包括的加密算法类型、参考图1描述的漏洞列表中不包括的加密算法类型、或者根据漏洞列表具有漏洞分数等于或小于参考值的加密算法类型。
尽管不是由安装器合法地安装的应用,但是在附图标记65当调用操作系统提供的加密API时,在附图标记64,执行在调用加密API时执行的功能的内部例程,并且检测加密API的调用。然而,与当由安装器合法地安装应用时不同,不知道对未合法地安装的应用允许访问的范围。因此,在附图标记66,当安装器未合法地安装的应用调用操作系统提供的加密API时,电子设备可能会通过无条件阻止加密API的操作来响应。
图3是根据本公开的实施例的安全性增强系统的框图。
参考图3,将描述根据本公开的另一实施例的安全性增强系统的结构。安全性增强系统包括客户端部分和服务器部分。图3示出分别指示逻辑运算单元的模块。在下文中,将以模块分别被操作的顺序来描述模块。
当通过安装器71将应用70安装在客户端部分上时,安装器71从包括在应用70的安装包中的应用的要求许可信息(例如,清单文件)中获得关于要使用的加密算法的类型、可访问对象等的信息,并且通过访问列表管理器72将信息存储在访问列表73中。结果,可以根据每个应用在访问列表73中存储关于可用加密算法的类型和可访问对象的信息。
在将用于应用70的系统功能加载到存储器75中并且执行之前,首先执行挂接模块74。挂接模块74允许在安全环境中执行应用70的可执行代码,并且通过使用可执行代码的执行结果来配置关于加密代码标识模型76的输入数据。
可以通过使用服务器部分上的加密代码机器学习模块81通过机器学习来获得加密代码标识模型76。也就是说,加密代码标识模型76可以从服务器部分下载到客户端部分。加密代码标识模型76也可以存储在客户端部分上。
加密代码标识模型76的输出数据可以包括关于包括在可执行代码中的加密算法的类型的数据。控制器77可以接收输出数据,并且确定是否允许由挂接模块74保持的应用70的存储器加载。例如,控制器77可以通过确定包括在可执行代码中的加密算法的类型是否符合存储在访问列表73中的应用访问权限,或者确定包括在可执行代码中的加密算法类型是否是包括在经由漏洞列表管理器78可访问的漏洞列表79中的漏洞加密算法,来确定允许存储器加载。漏洞列表79可以包括从服务器部分的漏洞信息收集器82下载的漏洞加密算法信息。
当控制器77确定不允许存储器加载时,应用70的可执行代码未加载到存储器75。也就是说,挂接模块74结束其执行,而没有将控制返回到挂接的存储器加载系统功能。另外,通知模块80通知与不适当的加密算法的执行有关的客户端用户,或者通知服务器部分。另一方面,当控制器77确定允许存储器加载时,应用70的可执行代码被加载到存储器75。也就是说,挂接模块74通过将控制返回到挂接的存储器加载系统功能来结束其执行。
在下文中,将参考图4、图5、图6、图7和图8描述根据本公开的实施例的电子设备的结构和操作。
在实施例中,提供了一种电子设备,其中用于执行与安全性增强相关操作和应用的可执行代码的指令在相同处理器上执行。
图4是根据本公开的实施例的电子设备的框图。
参考图4,提供了一种电子设备,其中用于执行与安全性增强相关操作和应用的可执行代码的指令在不同处理器上执行。在图8中示出根据实施例的电子设备的结构的另一示例。
在说明书中,指令是指根据功能捆绑在一起并且在处理器上执行的命令集合。
首先,将参考图4描述根据实施例的电子设备的结构和操作。
参考图4,根据实施例的电子设备100包括处理器101、存储器102和存储装置103。电子设备100还可以包括:输入/输出接口104,用于接收例如用于执行应用的用户输入,并且用于提供视频或音频的输出;以及连接到网络30的网络接口105。系统总线106用作处理器101、存储器102、输入/输出接口104和存储装置103之间的数据发送和接收路径。存储器102可以是易失性数据存储设备,诸如RAM。存储装置103可以是数据存储设备,诸如非易失性存储器(例如,闪存)或硬盘。
存储装置103可以存储漏洞列表131a和访问列表132a。漏洞列表131a包括在通过使用加密算法漏洞收集设备接收的加密算法漏洞信息中。访问列表132a可以通过匹配和存储应用的标识信息和可用加密算法来获得,或者可以通过匹配和存储应用的标识信息、可用加密算法和可访问对象来获得,如图7所示。
存储装置103可以存储加密算法监视程序133a。加密算法监视程序133a包括包含多个指令的可执行代码,并且可执行代码被加载到存储器102并且存储在存储器102中。
存储器102加载存储在存储装置103中的可执行代码(或二进制代码)。处理器101提取存储在存储器102中的指令并执行指令。处理器101可以经由系统总线106接收存储在存储器102中的指令。
当启动电子设备100时,与安装在电子设备100上的操作系统相关联的数据被加载到存储器102。图4示出与加载到存储器102的操作系统有关的与操作系统相关指令122a。在处理器101上执行操作系统相关指令122a。如上所述,操作系统可以包括加密API 124。应用可以通过调用加密API 124来执行由操作系统提供的数据加密功能。
可以在处理器101上实现安全环境110。处理器101可以使程序在不能访问外部资源的安全环境110内执行。也就是说,可以以沙箱方式实现安全环境110。
另外,可以在存储器102中实现安全环境120。存储器102的安全环境120可以指在用户级别执行的应用不可访问的地址区域。也就是说,可以以安全元件(SE)的方式配置安全环境120。要注意的是,与图4不同,还可以通过使用诸如用户识别模块(SIM)卡的附加存储单元(未示出)来配置安全环境120。
包括在存储器102的安全环境120中的指令可以经由处理器-存储器桥107立即提供给处理器101。因此,通过根据本公开的实施例的尝试禁用安全性增强技术的黑客程序的指令,可以保护包括在安全环境120中的监视指令133b免于未经许可的情况下被替换。在处理器101的安全环境110中执行的指令的输出数据也可以经由处理器-存储器桥107存储在存储器102的安全环境120中。因此,可以保护监视指令133b的执行输出数据免于未经许可的情况下被黑客程序改变。
在存储器102的安全环境120中,可以将存储在存储装置103中的访问列表132a加载到附图标记133b,并且将存储在存储装置103中的漏洞列表131a加载到附图标记131b,以及从加密代码标识模型训练设备接收加密代码标识模型122。作为监视指令133b,可以由监视指令133b使用的漏洞列表131b和加密代码标识模型122都存储在安全环境120中,从而可以防止黑客程序阻止或改变监视指令133b的操作。
加密算法监视程序133a中包括的可执行代码可以在电子设备100启动时从存储装置103加载到存储器102的安全环境120中并且被存储,以及可以在处理器101的安全环境110下以后台模式处于恒定执行状态。在实施例中,监视指令133b可以不被加载到存储装置103,而是被加载到只读存储器(ROM)(未示出),从而更加安全地被保护以免于黑客程序。
在实施例中,电子设备100挂接可执行代码到存储器102的加载,在安全环境110中执行可执行代码,并且通过使用执行结果来配置要输入到加密代码标识模型122中的输入数据。
当通过使用从加密算法的可执行代码提取的特征数据通过机器学习获得加密代码标识模型122时,输入数据可以包括通过使用可执行代码的执行结果提取的特征数据。另一方面,当通过使用将加密算法的可执行代码的执行结果和可执行代码本身中的至少一个作为数据集通过深度学习获得加密代码标识模型122时,输入数据可以包括可执行代码的执行结果和可执行代码本身中的至少一个。
在下文中,为了更好地理解,将基于以下假设进行描述:将特征数据输入到加密代码标识模型122中。然而,应当注意,本公开的范围涵盖反映加密算法的可执行代码的执行结果并且被输入到加密代码标识模型122中的所有类型的输入数据。
当提取可执行代码的特征数据并且将特征数据输入到加密代码标识模型122时,通过使用加密代码标识模型的输出数据来确定是否允许可执行代码的存储器加载,以及当确定不允许可执行代码的存储器加载,阻止可执行代码到存储器102的加载。在下文中,将关于可执行代码存储在存储装置103中的APP(应用)#1 134a和#2 135a描述实施例。
当经由输入/输出接口104输入APP#2的执行操纵时,操作系统122b控制电子设备100,使得APP#2的可执行代码135a被加载到存储器102。在将APP#2的可执行代码135a加载并且存储在存储器102中之前,监视指令133b挂接APP#2的可执行代码135a。
例如,通过挂接执行程序的系统调用(诸如EXEC())或者通过在执行系统调用的内部逻辑的存储器加载操作的部分之前通过将跳转指令插入监视指令133b,执行监视指令133b的挂接。
图5是根据本公开的实施例的监视功能的框图。
参考图5,由于挂接,不将APP#2的可执行代码135a加载到存储器102,直到监视指令133b命令再次返回程序执行系统调用。如上所述,在保持APP#2的可执行代码135a的存储器加载之后,监视指令133b执行确定是否允许APP#2的可执行代码135a的存储器加载的指令。在图5中示出此处可执行的指令的示例。在图5中还示出用于执行挂接的存储器加载挂接指令133b-1。
同时,当在存储器加载挂接指令133b-1已经挂接所有可执行代码的存储器加载并且保持存储器加载的同时执行测试时,当作为测试结果发现没有问题时释放挂接以允许执行存储器加载,然后电子设备100的整体操作速度可能会过慢。在实施例中,在不损害安全性增强目的的范围内,可以将一些可执行代码从存储器加载挂接中排除,以防止电子设备100的操作速度过度降低。在下文中,将描述关于上述实施例。
可以基于是否将应用的可执行代码包括在白名单中,执行可执行代码的次数以及安装或更新可执行代码的应用之后经过的时间段中的至少一个来确定是否对应用的可执行代码执行挂接。当应用的可执行代码包括在白名单中时,该白名单是被确认安全的可执行代码的列表,优选地,可执行代码可以免于挂接。另外,应用被执行的次数越多,应用是具有高稳定性的通用应用的可能性就越大,因此,优选地,被执行多次的应用可以优选地免于挂接。如果在安装或更新应用之后没有经过太多时间,则很有可能不在应用上执行根据实施例的安全性测试。因此,在安装或更新应用之后的时间段越长,可以优选地免于应用的挂接。也可以通过共同反映用于确定的上述因素中的至少一些来执行是否免于挂接。
另外,还可以基于关于应用的安装历史是否存在来确定是否挂接可执行代码。与合法地安装的应用相比,未合法地安装在电子设备上的应用可能被认为更可能是恶意程序。因此,仅当不存在可执行代码的应用的安装历史时,才可以挂接可执行代码的存储器加载,并且当存在可执行代码的应用的安装历史时,可以使可执行代码免于存储器加载挂接。
图6是用于描述根据本公开的实施例的电子设备识别包括在应用的可执行代码中的加密算法的操作的图。
参考图6,在挂接之后,对APP#2的可执行代码135a执行可执行代码特征数据提取指令133b-2和加密算法分类器指令133b-3。参考图6,可执行代码特征数据提取指令133b-2可以在安全环境110中执行APP#2的可执行代码135a,并且基于执行结果提取特征数据。
与图6不同,应当注意,APP#2的可执行代码135a的特征数据也可以从加密代码标识模型122的内部提取。例如,当通过基于深度学习的机器学习生成加密代码标识模型122时,可以从加密代码标识模型122的内部提取APP#2的可执行代码135a的特征数据。在此,加密代码标识模型122可以包括多个卷积神经网络(CNN)层。在此,加密代码标识模型122可以直接接收APP#2的可执行代码135a。
如上所述,安全环境110可以是沙箱环境。由于代码特征数据提取指令133b-2在沙箱环境中执行APP#2的可执行代码135a,即使在可能对APP#2的可执行代码135a产生不利影响的加密相关逻辑也包含在APP#2的可执行代码135a中时,执行加密相关逻辑的结果也不会影响沙箱环境之外的系统资源。因此,可以防止对电子设备100的数据进行加密,使得由于执行用于特征数据提取的APP#2的可执行代码135a的执行而不能解密数据。
上面已经参考图1进行了描述,通过使用从加密代码标识模型训练设备10接收的数据配置加密代码标识模型122。可执行代码特征数据提取指令133b-2也可以优选地以与加密代码标识模型训练设备10相同的方式执行特征数据提取。因此,通过参考加密代码标识模型训练设备10的特征数据提取描述,与可执行代码特征数据提取指令133b-2的特征数据提取有关的操作将变得明显。
加密算法分类器指令133b-3将特征数据输入到加密代码标识模型122中,并且通过使用加密代码标识模型的输出数据来确定是否允许APP#2的可执行代码135a的存储器加载。
如图6所,将描述当确定在APP#2的可执行代码135a中包括加密算法aes-128-cbc的可执行代码时执行的电子设备100的操作,并且为了更好地理解,在此将提到参考图2A和图2B介绍的要考虑的四种情况。
当根据用户操纵通过执行安装器将APP#2安装在电子设备上时,由于加密算法aes-128-cbc的可执行代码包括在APP#2的可执行代码135a中,因此对应于图2A的情况53。在此,如上所述,由于包括加密算法的可执行代码,因此在附图标记54可以无条件地阻止APP#2的加密算法的存储器加载,或者当根据访问列表132bAPP#2不具有加密算法aes-128-cbc的执行权限时,可以阻止APP#2的可执行代码135a的存储器加载(55)。根据图7所示的访问列表132b,APP#2的唯一可执行加密算法是RSA,因此,APP#2的可执行代码135a不能被加载到存储器。
在实施例中,仅当找不到APP#2的安装记录时,电子设备才可以阻止存储器加载。在这种情况下,由于通过执行安装器将APP#2安装在电子设备中,将找到安装记录,并且因此不会阻止APP#2的存储器加载。
回到参考图5,示出各种监视功能。例如,访问列表查询指令133b-4可以访问访问列表132b的内容,存储器加载许可确定指令133b-6可以根据预定设置或安全相关用户设置来确定是否允许应用的可执行代码的存储器加载,并且当允许存储器加载时,存储器加载挂接释放指令133b-7可以释放挂接。
回到参考图6,当APP#2具有加密算法aes-128-cbc的执行权限时,当aes-128-cbc包括在漏洞列表131b中时,可以基于aes-128-cbc的漏洞阻止APP#2的可执行代码135a的存储器加载(55)。图5示出用于查询漏洞列表131b的内容的漏洞列表查询指令133b-5。
当根据用户操纵通过安装器的执行未将APP#2安装在电子设备中时,仅通过网络接口105从外部设备接收APP#2的可执行代码135a,并且将其存储在存储装置103中,由于加密算法aes-128-cbc的可执行代码包括在APP#2的可执行代码135a中,因此通过使用恶意利用安全漏洞获取的执行权限来尝试执行,这对应于图2B的情况61。在此,如上所述,由于包括加密算法的可执行代码,因此可以无条件地阻止APP#2的可执行代码的存储器加载(62),或者当aes-128-cbc未注册为在说明书中描述的“安全加密算法”时,可以阻止APP#2的可执行代码135a的存储器加载(63)。
回到参考图4,通过监视指令133b阻止在附图标记135b,APP#2的可执行代码135a从存储装置103到存储器102的加载。与APP#2不同,因为APP#1是不执行加密的应用,所以APP#1通常可以在附图标记134b加载并在附图标记134c存储在存储器102中。
在实施例中,电子设备100在应用的安装期间自动执行与加密算法有关的安全性测试。在下文中,将参考APP#3的安装器执行代码136a来描述实施例。
将APP#3的安装器执行代码136a加载到(136b)并且存储在存储器102中。加载到存储器102以执行的安装器136c可以通过使用包括在APP#3的安装包(未示出)中的APP#3的要求许可信息配置APP#3的可执行代码,并且将APP#3的标识符、可用加密算法和可访问对象添加访问列表132b。
当完成安装相关操作时,在附图标记136d安装程序136c也自动执行监视指令133b,而无需用户操纵。监视指令133b在安全环境中执行由安装器136c配置的APP#3的可执行代码,并通过执行结果提取可执行代码的特征数据,并将特征数据输入到加密代码标识模型122中,通过使用加密代码标识模型122的输出数据确定APP#3的可执行代码是否通过安全性测试。
当由加密代码标识模型122的输出数据指示的加密算法与从包括在应用的安装包中的应用的要求许可信息中获得的关于可用加密算法的信息不匹配时,监视指令133b可以确定可执行代码未通过安全性测试。由加密代码标识模型122的输出数据指示的加密算法与可用加密算法不匹配,意味着在APP#3的可执行代码中存在未被通知给用户的另一种加密算法的可执行代码。因此,在这种情况下,可能最好不要以正常方式完成APP#3的安装。
当通过确定安全性测试是否已经通过来确定失败时,监视指令133b对APP#3执行先前指定处理。先前指定处理可以是例如向安装器136c提供测试失败的通知,使得安装器136c采取诸如卸载,或者直接移除或加扰由监视指令133b执行的可执行代码的动作以禁用执行。
在实施例中,电子设备100可以基于包括在应用的可执行代码中的加密算法的识别结果,对应用的加密功能稳定性执行预测试。预测试的频率可能会根据应用类型而有所不同。也就是说,可以以第一频率对第一类型应用执行安全性测试处理而无需执行第一类型应用的用户操纵,并且可以以第二频率对第二类型应用执行安全性测试处理而无需执行第二类型应用的用户操纵。
在实施例中,具有高执行频率的类型的应用可能更重要,因此,预测试的频率也可能高。在另一实施例中,具有放置在默认页面的背景屏幕上的图标的应用也可能重要,因此预测试的频率也可能高。
上面已经描述了这样的实施例,在不损害安全性增强目的的范围内,由于免于存储器加载挂接而防止电子设备100的操作速度的降低。通过预测试的应用可以在测试结果有效的特定时期内免于存储器加载挂接。
安全性测试处理可以由安全性测试处理指令133c执行。安全性测试处理指令133c管理测试时段(例如,每日测试,每周测试等),并且基于测试时段选择要作为测试对象的应用。安全性测试处理指令133c调用监视指令133b以对选择的应用执行测试。如上所述,监视指令133b确定可执行代码是否已经通过安全性测试。对于尚未通过安全性测试的应用,可以自动采取诸如用户通知、停用、黑名单注册、强行删除等措施。
图7示出根据本公开的实施例的访问列表的示例。
参考图7,电子设备100检测到超出对应用批准的访问权限的加密尝试,并且阻止该尝试。通过基于图7的访问列表132b进行描述,当APP#1调用加密API并通过使用RSA算法尝试加密(通过使用不可用加密算法)时,或者当APP#2通过使用RSA算法尝试联系人的加密(不可访问对象的加密)时,或者当APP#3通过使用RSA算法尝试文件的加密(通过使用不可用加密算法对不可访问对象加密),电子设备100可以阻止这些尝试。在下文中,当APP#3调用加密API以通过使用sha-256算法加密图片时,电子设备100的操作。
APP#3安装器136c从包括在应用的安装包中的应用要求许可信息(例如,清单文件)中获得关于可用加密算法和可访问对象的信息,并匹配应用的标识信息、可用加密算法和可访问对象,并将它们存储在访问列表132a中。访问列表132a被周期性地或非周期性地验证,然后被加载到安全环境120中。
执行APP#3,并由APP#3调用加密API 124。通过执行加密API 124的内部逻辑,通过使用访问列表132b来确定根据加密API 124的调用的(加密算法sha-256、加密对象)是否在APP#3的访问权限之内。尽管APP#3具有通过使用hmac-128算法和sha-256算法对联系人或文件加密的权限,但是由于调用加密API以通过使用sha-256算法加密图片,因此加密API124阻止加密相关例程的执行。在此,加密API 124可以显示关于阻止执行加密相关例程的消息。
在实施例中,加密API 124在漏洞列表131b检查由参数指定的加密算法的漏洞,并且可以基于关于从检查获得的漏洞的信息来确定是否执行加密相关例程。也就是说,即使根据加密API 124的调用的(加密算法[sha-256]、加密对象)在APP#3的访问权限之内,由于关于sha-256算法的漏洞信息包括在漏洞列表中131b,并且漏洞分数超过参考值,因此阻止执行sha-256算法。在此,电子设备100可以将作为漏洞加密算法的sha-256算法的执行通知给加密算法漏洞收集设备20。
图8是根据本公开的实施例的电子设备的框图。
参考图8,在单独的安全环境下使用专用处理器来实现电子设备100,在该单独的安全环境中,通过挂接应用的存储器加载来执行测试。在下文中,将通过着重于与图4的电子设备100的差异来描述图8的电子设备100。
参考图8,电子设备100包括:处理器101,执行从存储装置103加载到存储器102的应用的可执行代码134c;以及加密算法监视处理器108,执行用于确定是否允许可执行代码加载到存储器的多个指令。
参考图4描述的安全环境被视为以附加加密算法监视处理器108的形式实现。也就是说,可以仅在加密算法监视处理器108内部执行在加密算法监视处理器108上执行的程序,而不能访问外部资源,诸如存储装置103、输入/输出接口104和网络接口105。也就是说,加密算法监视处理器108是沙箱环境的实现。
加密算法监视处理器108可以包括内部存储装置(未示出)。访问列表132b、漏洞列表131b和加密代码标识模型122可以存储在内部存储装置中。
电子设备100可以进行控制,以使得所有可执行代码由加密算法监视处理器108相对于许可来确定,然后被加载到存储器102中。图8示出如下情形:当根据通过加密算法监视处理器108确定是否允许加载将将APP#1的可执行代码134a加载到存储器102中(134b)并且将APP#1的可执行代码134a存储在存储器102(134c)时,处理器101可以执行APP#1的可执行代码134a,但是加密算法监视处理器108将APP#2的可执行代码135a的加载尝试(135b)确定为不允许,因此可执行代码135a没有加载到存储器102。监视指令133b的操作与参考图4描述的操作没有不同。
在下文中,将参考图9A、图9B、图9C、图10A、图10B、图11A、图11B、图12和图13描述根据本公开的一些实施例的安全性增强方法。可以使用电子设备执行安全性增强方法。电子设备可以是例如图1所示的电子设备100。应当注意,方法可以包括参考图1、图2A、图2B、图3、图4、图5、图6、图7和图8描述的电子设备的至少一些操作。因此,在下面提供的安全性增强方法的描述中,也可以在不对操作进行描述的情况下,将参考图1、图2A、图2B、图3、图4、图5、图6、图7和图8描述的电子设备的操作包括在上述方法中。另外,在以下方法的描述中,当未描述执行操作的对象时,对象可以被解释为电子设备。
图9A、图9B和图9C是根据本公开的各种实施例的基于存储器加载挂接的安全性增强方法的流程图。
参考图9A,示出用于控制是否执行由电子设备执行的应用的方法。
在操作S102中,挂接应用的可执行代码的存储器加载。存储器加载由用于执行应用的用户操纵来触发,例如,由电子设备的用户选择应用的图标。在挂接暂时将应用的可执行代码的加载保持在存储器中的同时,在操作S105中将可执行代码输入到加密代码标识模型中,结果,在操作S107中,加密代码标识模型确定是否允许可执行代码的存储器加载。
将可执行代码输入到加密代码标识模型中意味着将可执行代码本身输入到加密代码标识模型中,或者将从可执行代码中提取的特征数据输入到加密代码标识模型中。下面将参考图9B或图9C详细描述将从可执行代码中提取的特征数据输入到加密代码标识模型中的实施例。
当加密代码标识模型确定是否允许可执行代码的存储器加载时,这可能意味着通过使用加密代码标识模型的输出数据来确定是否允许存储器加载,或者加密代码标识模型本身确定是否允许存储器加载。
当在操作S112中确定允许存储器加载时,例如,通过在操作S114中将参数从挂接功能发送到存储器加载系统功能,释放存储器加载的挂接。当在操作S112中确定不允许存储器加载时,在操作S116中阻止存储器加载,并且在操作S118中可以显示由于可执行代码中包括的加密操作的安全设置违反而导致通知应用不可执行的消息。
在下文中,将参考图9B描述将从可执行代码中提取的特征数据输入到加密代码标识模型中的实施例。
在操作S100中,从外部设备下载并存储关于加密代码标识模型的数据。外部设备可以是参考图1描述的加密代码标识模型训练设备10。当加密代码标识模型是基于人工神经网络的模型时,下载数据可以是用于定义人工神经网络的参数集。
在实施例中,加密代码标识模型可以被嵌入在电子设备中。也就是说,加密代码标识模型的下载是选择性操作。对此,图9C示出没有在操作S100中下载加密代码标识模型的操作的流程图。当加密代码标识模型嵌入在电子设备中时,电子设备可以从外部设备下载与嵌入式加密代码标识模型相比更新的加密代码标识模型。外部设备可以是用于管理电子设备的系统软件的更新的服务器,并且当加密代码标识模型被更新时,服务器可以将用于加密代码标识模型的更新命令发送到电子设备。
在操作S102中,挂接将应用的可执行代码加载到存储器。加载到存储器的尝试是由执行应用的用户操纵触发,诸如选择应用的图标。当挂接临时保持应用的可执行代码加载到存储器时,在操作S104中在安全环境中执行应用的可执行代码,并在操作S106中通过反映执行结果来提取特征数据,并且在操作S108中,将特征数据输入到加密代码标识模型中以确定可执行代码中包括的加密算法。为了防止电子设备的操作速度的降低,在实施例中,可以通过基于可执行代码是否被包括在白名单中,执行可执行代码的次数以及在安装或更新可执行代码的应用之后经过的时间中的至少一个来确定可执行代码免于挂接。另外,根据另一实施例,当存在可执行代码的应用的安装历史时,可以免于挂接。
在操作S110中,基于确定结果来确定是否允许关于应用的可执行代码的存储器加载。在下文中,将描述根据一些实施例的确定方法。
在第一实施例中,当在应用的可执行代码中找到加密算法的可执行代码时,可执行代码的存储器加载可以被无条件地阻止。
在第二实施例中,当加密代码标识模型的输出数据指示从可执行代码中检测到加密代码时,查询可执行代码的应用的安装记录,并且当找不到该应用的安装记录时,确定不允许存储器加载。也就是说,根据实施例,当在应用的可执行代码中找到加密算法的可执行代码时,仅当未通过安装器合法地安装应用时才阻止可执行代码的执行。
在第三实施例中,从参考图7等描述的访问列表中搜索由加密代码标识模型的输出数据指示的加密算法是否是应用的可用加密算法,并且作为搜索结果,当加密代码标识模型的输出数据指示的加密算法不是应用的可用加密算法时,不允许可执行代码的存储器加载。也就是说,根据实施例,当在应用的可执行代码中找到加密算法的可执行代码时,仅当加密算法没有被注册为安装包中的可用算法并且未经用户批准时,才阻止可执行代码的执行。
在第四实施例中,从参考图4等描述的漏洞列表查询由加密代码标识模型的输出数据指示的加密算法的漏洞,并且基于查询的关于漏洞的信息确定是否允许可执行代码的存储器加载。也就是说,根据实施例,当在应用的可执行代码中找到加密算法的可执行代码时,仅当报告关于加密算法的漏洞时才阻止可执行代码的执行。
在第五实施例中,可以将第三实施例和第四实施例组合。也就是说,根据实施例,即使当加密算法被注册为安装包中的可用算法并得到用户批准时,当关于加密算法报告漏洞时,阻止可执行代码的执行。
在第六实施例中,基于存储在电子设备中的环境设置值选择第一至第五实施例中的一个。
在第七实施例中,基于应用的可靠性选择第一至第六实施例中的一个。应用的制造商(manufacturer)的可靠性越高,写入应用的要求许可信息越准确,以及执行应用的频率越高,可以给应用的可靠性赋予越高的值。
当在操作S112中确定允许存储器加载时,例如,通过在操作S114中将参数从挂接功能发送到存储器加载系统功能,释放挂接存储器加载。当在操作S112中确定不允许存储器加载时,在操作S116中阻止存储器加载,并且在操作S118中可以显示通知由于加密算法的安全性设置违反不可执行应用的消息。
同时,根据本公开的另一实施例,当安装应用时,可以基于检测应用中包括的加密算法的可执行代码的结果确定是否正常完成安装。将参考图10A描述实施例。
图10A和图10B是根据本公开的各种实施例的使用安装器的安全性增强方法的流程图。
参考图10A,在操作S100中下载加密代码标识模型之后,在操作S103中执行应用的安装器。当安装器配置应用的可执行代码时,在操作S104、S106、S108、S110和S113中立即执行与关于可执行代码的加密算法有关的安全性测试。关于安全性测试方法,参考参考图9A至图9C描述的操作。也就是说,为了在操作S113中确定是否通过安全性测试,可以执行图9A、图9B和图9C的操作S112中与确定是否允许存储器加载有关的操作。
在实施例中,加密代码标识模型可以被预先存储在电子设备中。也就是说,加密代码标识模型的下载是选择性操作。对此,图10B示出没有在操作S100中下载加密代码标识模型的操作的流程图。
作为确定的结果,当确定应用的可执行代码中没有问题时,在操作S119中将正常完成安装。另一方面,当确定应用的可执行代码有问题时,在操作S117中对应用执行预先指定处理。例如,可以显示对用户的通知消息,并且可以再次卸载该应用。
根据实施例,可以完全阻止可能在加密算法方面存在问题的应用的安装。
根据本公开的另一实施例,基于对包括在应用的可执行代码中的加密算法的识别结果,对应用的加密功能稳定性进行预测试。将参考图11A和图11B描述实施例。
图11A和图11B是根据本公开的各种实施例的另一安全性增强方法的流程图。
参考图11A,在操作S100中下载加密代码标识模型之后,在操作S101中,确定是否是执行预安全性测试的时间。预安全性测试可以定期重复,也可以在发生特定事件时执行。预安全性测试可以是第一周期的测试或第二周期的测试。例如,第一周期的测试可以是每日测试,而第二周期的测试可以是每周测试。特定事件可以是例如从诸如安全服务服务器的外部设备接收用于执行测试的触发消息。
在实施例中,加密代码标识模型可以被预先存储在电子设备中。也就是说,加密代码标识模型的下载是选择性操作。对此,图11B示出没有在操作S100中下载加密代码标识模型的操作的流程图。
当在操作S101中确定到了执行预安全性测试的时间,在操作S102中,选择要作为安全性测试的对象的应用。例如,当现在要执行的预安全性测试是每日测试时,可以选择要进行每日测试对象的应用,当现在要进行的预安全性测试是每周测试时,可以选择每周测试对象的应用。
在实施例中,具有高执行频率的类型的应用更有可能是重要的,因此可以将应用选择为具有短周期的预测试的目标,诸如每日测试。根据以上内容,作为第一周期的预安全性测试的对象的应用的执行频率可以高于作为第二周期的预安全性测试的对象的应用的执行频率,第二周期长于第一周期。
在另一实施例中,具有在默认页面的背景屏幕上放置的图标的应用也可能更重要,因此可以选择应用作为具有短周期的测试(诸如每日测试)的目标。
在另一实施例中,可以通过反映应用的类别来选择预安全性测试的目标应用。例如,对于安全性最为重要的类别中的应用,诸如“财务”、“照片和视频”、“生产力”、“社交网络”、“购物”和“医学”,可以是短周期预安全性测试的对象,诸如每日测试。
接下来,在操作S104、S106、S108和S110中,对作为安全性测试的对象的所选应用执行与加密算法有关的安全性测试。关于安全性测试方法,参考图9A、图9B和图9C描述的操作被参考。也就是说,为了在操作S113中确定是否通过了安全性测试,可以执行与在图9A、图9B和图9C中在操作S112中确定是否允许存储器加载有关的操作。
作为确定的结果,当确定在应用的可执行代码中没有问题时,在操作S120中,安全性测试结果日志将被记录在电子设备中。安全性测试结果日志包括关于作为安全性测试对象的每个应用的测试时间点和测试结果的数据。如上所述,从应用通过安全性测试的那一刻起测试有效期未到期的应用可以免于存储器加载挂接。另一方面,当确定作为安全性测试对象的应用的可执行代码有问题时,在操作S117中对应用执行预先指定处理。例如,可以显示对用户的通知消息,并且可以强行卸载未通过安全性测试的应用,或者可以删除应用的可执行代码。
图12示出根据本公开的各种实施例的安全性增强方法的图。
参考图12,示出以高频率执行在根据图11A或图11B的方法的描述中描述的预测试的应用以及以低频率执行在根据图11A或图11B的方法的描述中描述的预测试的应用。可以对涉及高重要性数据的应用137频繁地执行预测试;可以对涉及中等重要性数据的应用138以中等频率执行预测试;并且可以对涉及低重要性数据的应用139以低频率执行预测试。
涉及高重要性的数据的应用137可以是例如用于生成和处理与用户的健康有关的信息的医疗保健应用或用于执行诸如移动银行和股票交易的金融功能的应用。
涉及中等重要性数据的应用138可以是例如用于生成和处理与用户的隐私有关的信息的社交网络服务(SNS)相关应用。
涉及低重要性数据的应用139可以是例如访问对公众开放的信息的信息查询应用(例如,网络浏览器)。
在另一个实施例中,检测到超出对应用批准的访问权限的加密尝试,并且阻止尝试。将参考图13描述实施例。
图13是根据本公开的实施例的基于访问权限的安全性增强方法的流程图。
参考图13,在操作S200中,从应用安装包的许可信息(例如,清单文件)获得信息(例如,可用加密算法/可访问对象等),并且在操作S201中,将获得的信息存储在访问列表中。可以在安装应用时执行操作S200和操作S201。另外,在操作S202中,存储从诸如图1的加密算法漏洞收集设备20的外部设备下载的漏洞列表。
在操作S204中,在加密API的功能内检测由应用的可执行代码调用加密API,该加密API由电子设备的操作系统提供。关于加密算法的类型和要加密的数据的信息以加密API的参数形式引入到功能内部的例程中。在操作S206中,引入的信息可以用于识别加密算法的类型和要加密的对象。在操作S206中,通过使用已调用加密API的处理的标识符信息,还识别了应用的标识符。
在操作S208中,通过检查从访问列表中识别的信息,确定根据加密API的调用的(加密算法的类型、要加密的对象)是否在应用的可访问范围内。当在操作S210中对加密API的调用不在可访问范围内时,在操作S218中显示通知应用尝试超出访问权限的加密的消息,并且在步骤S220中,阻止与调用的加密API的加密有关的内部逻辑的执行。
当在操作S210中加密API的调用在可访问范围内时,在操作S212中,漏洞列表中查询根据加密API的调用的加密算法是否具有漏洞。当在操作S214中作为查询的结果确定例如由于调用的加密算法的漏洞分数超过参考值而导致加密API的执行中存在问题时,在操作S218中,显示通知尝试执行已知在应用中存在漏洞的加密算法的消息,执行向外部设备通知尝试加密算法的执行,并且在操作S220中,阻止与调用的加密API的加密有关的内部逻辑的执行。当在操作S214中作为查询的结果确定执行加密API没有问题时,在操作S216中正常执行调用的加密API。与图13不同,可以不执行关于漏洞的确定过程,并且当在操作S210中对加密API的调用在可访问范围内时,可以在操作S216中以正常方式立即执行加密API。
可以通过执行由计算机可读代码体现的计算机程序来执行根据上述本公开的实施例的方法。计算机程序可以经由诸如互联网的网络从第一电子设备发送到第二电子设备并且被安装在第二电子设备上,并且因此可以在第二电子设备中使用。第一电子设备和第二电子设备可以包括服务器设备、属于用于云服务的服务器池的物理服务器以及诸如台式个人计算机(PC)的固定型电子设备中的任何一个。
可以将计算机程序存储在非暂时性记录介质上,诸如数字通用盘(DVD)-ROM、闪存设备等。
应当理解,本文描述的实施例应仅在描述性意义上考虑,而不是出于限制的目的。每个实施例中的特征或方面的描述通常应被认为可用于其他实施例中的其他类似特征或方面。
尽管已经参考本公开的各种实施例示出和描述了本公开,但是本领域技术人员将理解,在不脱离由所附权利要求及其等同物定义的本公开的精神和范围的情况下,可以在形式和细节上进行各种改变。

Claims (12)

1.一种使用电子设备执行的安全性增强方法,所述安全性增强方法包括:
从应用的安装包中包括的许可信息中获得可用加密算法;
在访问列表中匹配并且存储所述应用的标识信息和所述可用加密算法,
挂接所述应用的可执行代码到存储器的加载;
将可执行代码输入到加密代码标识模型;
通过使用加密代码标识模型,确定是否允许可执行代码到存储器的加载;以及
当不允许可执行代码的加载时,阻止可执行代码到存储器的加载,
其中,所述确定包括:
当加密代码标识模型的输出数据指示在可执行代码中未检测到加密代码时,允许可执行代码的加载,并且
当加密代码标识模型的输出数据指示在可执行代码中检测到加密代码并且加密代码标识模型标识出不在所述访问列表中的加密算法时,不允许可执行代码的加载。
2.根据权利要求1所述的安全性增强方法,还包括:
从可执行代码中提取特征数据;以及
将特征数据输入到加密代码标识模型。
3.根据权利要求2所述的安全性增强方法,其中,特征数据包括在可执行代码的执行期间反复地被调用的数学函数或逻辑函数的调用序列。
4.根据权利要求2所述的安全性增强方法,
其中,特征数据包括与可执行代码的执行期间的中央处理单元(CPU)的功耗有关的功耗数据,以及
其中,当CPU的功耗等于或大于阈值时,功耗数据包括CPU操作周期的数量。
5.根据权利要求1所述的安全性增强方法,
其中,当加密代码标识模型的输出数据指示在可执行代码中检测到加密代码时以及当未找到包括可执行代码的应用的安装记录时,不允许可执行代码的加载。
6.根据权利要求1所述的安全性增强方法,还包括:
从外部设备接收加密算法的漏洞信息,并且将漏洞信息存储在漏洞列表中,
其中,当加密代码标识模型的输出数据标识出在漏洞列表中的漏洞时,不允许可执行代码的加载。
7.根据权利要求1所述的安全性增强方法,还包括基于下述中的至少一个来确定是否执行挂接:可执行代码是否包括在白名单中、可执行代码的执行频率或自安装或更新包括可执行代码的应用以来经过的时间段。
8.根据权利要求1所述的安全性增强方法,还包括基于是否存在包括可执行代码的应用的安装历史来确定是否执行挂接。
9.一种电子设备,包括:
处理器;
存储装置,被配置为存储应用以及访问列表,所述访问列表包括从所述应用的安装包中包括的许可信息中获得可用加密算法;以及
存储器,存储由处理器可执行的多个指令,
其中,多个指令包括:
挂接应用的可执行代码到存储器的加载的指令;
将可执行代码输入到加密代码标识模型的指令;
基于加密代码标识模型确定是否允许可执行代码的加载的指令;以及
当不允许可执行代码的加载时阻止可执行代码到存储器的加载的指令,
其中用于确定的指令包括:
当加密代码标识模型的输出数据指示在可执行代码中未检测到加密代码时,用于确定允许可执行代码的加载的指令,和
当加密代码标识模型的输出数据指示在可执行代码中检测到加密代码并且加密代码标识模型标识出不在所述访问列表中的加密算法时,用于确定不允许可执行代码的加载的指令。
10.根据权利要求9所述的电子设备,其中,多个指令还包括:
在安全环境中执行可执行代码的指令,以及
基于可执行代码的执行结果将值输入到加密代码标识模型的指令,
其中,安全环境是沙箱环境,并且可执行代码的执行结果不影响沙箱环境外部的系统资源。
11.根据权利要求9所述的电子设备,还包括:
网络接口,被配置为接收漏洞列表,所述漏洞列表包括经由网络接口从外部设备接收的关于加密算法的漏洞的信息,
其中,多个指令还包括用于确定加密代码标识模型的输出数据是否标识出在漏洞列表中的漏洞的指令。
12.根据权利要求9所述的电子设备,
其中,多个指令还包括安装功能,以及
其中,安装功能包括:
在安全环境中执行可执行代码的指令,
基于执行结果提取可执行代码的特征数据的指令,
将特征数据输入加密代码标识模型的指令,
基于加密代码标识模型的输出数据确定可执行代码是否已经通过安全性测试的指令,以及
当未通过安全性测试时卸载应用的指令。
CN201880078624.1A 2017-12-07 2018-12-06 安全性增强方法及其电子设备 Active CN111433775B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020170167588A KR102456579B1 (ko) 2017-12-07 2017-12-07 암호화 관련 취약점 공격에 강인한 전자 장치 및 그 방법
KR10-2017-0167588 2017-12-07
PCT/KR2018/015355 WO2019112326A1 (en) 2017-12-07 2018-12-06 Security enhancement method and electronic device therefor

Publications (2)

Publication Number Publication Date
CN111433775A CN111433775A (zh) 2020-07-17
CN111433775B true CN111433775B (zh) 2023-07-07

Family

ID=66696993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880078624.1A Active CN111433775B (zh) 2017-12-07 2018-12-06 安全性增强方法及其电子设备

Country Status (5)

Country Link
US (1) US11100214B2 (zh)
EP (1) EP3665604B1 (zh)
KR (1) KR102456579B1 (zh)
CN (1) CN111433775B (zh)
WO (1) WO2019112326A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11233805B2 (en) * 2020-01-28 2022-01-25 Cyberark Software Ltd. Centralized security assessments of scripts in network environments
US11232198B2 (en) 2020-01-28 2022-01-25 Cyberark Software Ltd. Dynamic visualization of scripts based on centralized security assessments
US11546137B2 (en) 2020-02-26 2023-01-03 International Business Machines Corporation Generation of a request to initiate a secure data transfer in a computing environment
US11652616B2 (en) 2020-02-26 2023-05-16 International Business Machines Corporation Initializing a local key manager for providing secure data transfer in a computing environment
US11310036B2 (en) 2020-02-26 2022-04-19 International Business Machines Corporation Generation of a secure key exchange authentication request in a computing environment
US11502834B2 (en) 2020-02-26 2022-11-15 International Business Machines Corporation Refreshing keys in a computing environment that provides secure data transfer
US11184160B2 (en) 2020-02-26 2021-11-23 International Business Machines Corporation Channel key loading in a computing environment
US11405215B2 (en) * 2020-02-26 2022-08-02 International Business Machines Corporation Generation of a secure key exchange authentication response in a computing environment
US11489821B2 (en) 2020-02-26 2022-11-01 International Business Machines Corporation Processing a request to initiate a secure data transfer in a computing environment
KR20220170183A (ko) * 2021-06-22 2022-12-29 공주대학교 산학협력단 신경망을 기반으로 암호화 데이터를 분류하는 방법, 컴퓨팅장치 및 컴퓨터-판독가능 매체
KR20230053543A (ko) 2021-10-14 2023-04-21 세종사이버대학교 산학협력단 공개키 암호의 오류 탐지 방법 및 이를 수행하기 위한 컴퓨팅 장치
KR102454948B1 (ko) * 2021-11-01 2022-10-17 주식회사 지엔 IoT 기기 점검 방법 및 그 장치
CN115577568B (zh) * 2022-11-17 2023-03-28 中国汽车技术研究中心有限公司 仿真模型的操作权限确定方法、设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289632A (zh) * 2011-08-30 2011-12-21 武汉大学 一种在软件源代码未知情况下对可执行文件进行加密方法
CN102638444A (zh) * 2011-06-10 2012-08-15 吴东辉 应用软件的网络终端式构造方法和系统
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
CN106446613A (zh) * 2016-08-29 2017-02-22 武汉启目科技有限公司 一种终端预装应用程序的保护方法
US9798884B1 (en) * 2016-10-11 2017-10-24 Veracode, Inc. Systems and methods for identifying insider threats in code

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8112745B2 (en) * 2006-03-22 2012-02-07 Honeywell International Inc. Apparatus and method for capabilities verification and restriction of managed applications in an execution environment
US8010803B2 (en) * 2006-10-12 2011-08-30 Black Duck Software, Inc. Methods and apparatus for automated export compliance
US8732839B2 (en) * 2007-07-31 2014-05-20 Sony Corporation Automatically protecting computer systems from attacks that exploit security vulnerabilities
US9509714B2 (en) * 2014-05-22 2016-11-29 Cabara Software Ltd. Web page and web browser protection against malicious injections
US8312249B1 (en) * 2008-10-10 2012-11-13 Apple Inc. Dynamic trampoline and structured code generation in a signed code environment
US20120180126A1 (en) * 2010-07-13 2012-07-12 Lei Liu Probable Computing Attack Detector
US20120159193A1 (en) 2010-12-18 2012-06-21 Microsoft Corporation Security through opcode randomization
EP2515552A1 (en) 2011-04-18 2012-10-24 Nagravision S.A. Secure utility metering monitoring module
US20120167057A1 (en) * 2010-12-22 2012-06-28 Microsoft Corporation Dynamic instrumentation of software code
KR20130094522A (ko) * 2012-02-16 2013-08-26 한국전자통신연구원 보안 진단을 위한 휴대 단말기 및 보안 진단 방법
US9703950B2 (en) 2012-03-30 2017-07-11 Irdeto B.V. Method and system for preventing and detecting security threats
US8893088B2 (en) 2013-04-02 2014-11-18 Apple Inc. Dynamic program evaluation for system adaptation
US9591003B2 (en) * 2013-08-28 2017-03-07 Amazon Technologies, Inc. Dynamic application security verification
US9262296B1 (en) 2014-01-31 2016-02-16 Cylance Inc. Static feature extraction from structured files
EP3103070B1 (en) 2014-02-07 2023-09-13 Cylance Inc. Application execution control utilizing ensemble machine learning for discernment
US9514309B1 (en) * 2014-04-30 2016-12-06 Symantec Corporation Systems and methods for protecting files from malicious encryption attempts
US9774614B2 (en) 2014-06-24 2017-09-26 Qualcomm Incorporated Methods and systems for side channel analysis detection and protection
US10193872B2 (en) * 2015-08-12 2019-01-29 Cyphyx, Llc System and methods for dynamically and randomly encrypting and decrypting data
US10203943B2 (en) * 2015-08-13 2019-02-12 Samsung Electronics Co., Ltd. Static analysis and reconstruction of deep link handling in compiled applications
US20170046510A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Methods and Systems of Building Classifier Models in Computing Devices
US10255443B2 (en) * 2016-02-11 2019-04-09 Line Corporation Method, apparatus, system and non-transitory computer readable medium for code protection
US20200019702A1 (en) * 2016-03-25 2020-01-16 Nokia Technologies Oy A hybrid approach of malware detection
US10482248B2 (en) * 2016-11-09 2019-11-19 Cylance Inc. Shellcode detection
US10447671B1 (en) * 2017-03-29 2019-10-15 Symantec Corporation Systems and methods for recovering encrypted information
US10873588B2 (en) * 2017-08-01 2020-12-22 Pc Matic, Inc. System, method, and apparatus for computer security

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
CN102638444A (zh) * 2011-06-10 2012-08-15 吴东辉 应用软件的网络终端式构造方法和系统
CN102289632A (zh) * 2011-08-30 2011-12-21 武汉大学 一种在软件源代码未知情况下对可执行文件进行加密方法
CN106446613A (zh) * 2016-08-29 2017-02-22 武汉启目科技有限公司 一种终端预装应用程序的保护方法
US9798884B1 (en) * 2016-10-11 2017-10-24 Veracode, Inc. Systems and methods for identifying insider threats in code

Also Published As

Publication number Publication date
EP3665604A4 (en) 2020-07-01
EP3665604B1 (en) 2023-02-15
US11100214B2 (en) 2021-08-24
WO2019112326A1 (en) 2019-06-13
KR20190067542A (ko) 2019-06-17
KR102456579B1 (ko) 2022-10-20
US20190180028A1 (en) 2019-06-13
CN111433775A (zh) 2020-07-17
EP3665604A1 (en) 2020-06-17

Similar Documents

Publication Publication Date Title
CN111433775B (zh) 安全性增强方法及其电子设备
Saracino et al. Madam: Effective and efficient behavior-based android malware detection and prevention
US10104107B2 (en) Methods and systems for behavior-specific actuation for real-time whitelisting
US9357397B2 (en) Methods and systems for detecting malware and attacks that target behavioral security mechanisms of a mobile device
EP3117361B1 (en) Behavioral analysis for securing peripheral devices
EP2839406B1 (en) Detection and prevention of installation of malicious mobile applications
US9781143B1 (en) Systems and methods for detecting near field communication risks
US20160379136A1 (en) Methods and Systems for Automatic Extraction of Behavioral Features from Mobile Applications
US11438349B2 (en) Systems and methods for protecting devices from malware
KR20160055725A (ko) 가상 머신의 내부에서 실행하는 모바일 애플리케이션에 의해 네이티브 코드를 로딩, 링크, 및 실행하는 보안 정책
US20230274003A1 (en) Identifying and correcting vulnerabilities in machine learning models
Hamed et al. Mobile malware detection: A survey
Martinelli et al. I find your behavior disturbing: Static and dynamic app behavioral analysis for detection of android malware
US10339307B2 (en) Intrusion detection system in a device comprising a first operating system and a second operating system
WO2021121382A1 (en) Security management of an autonomous vehicle
US20190325134A1 (en) Neural network detection of malicious activity
Kandukuru et al. Android malicious application detection using permission vector and network traffic analysis
KR20160039234A (ko) 영역 지향 프로그래밍을 통한 모바일 보안 향상 시스템 및 방법
Jeong et al. SafeGuard: a behavior based real-time malware detection scheme for mobile multimedia applications in android platform
CN113836529A (zh) 进程检测方法、装置、存储介质以及计算机设备
CN112948829A (zh) 文件查杀方法、系统、设备及存储介质
Teufl et al. Android-On-device detection of SMS catchers and sniffers
Zhu et al. A Dynamic Supervisory Mechanism of Process Behaviors Based on Dalvik VM
Olorunshola et al. SYNTHETIC MINORITY OVER-SAMPLING TECHNIQUE AND RESAMPLE APPROACH FOR ANDROID MALWARE DETECTION USING TREE-BASED CLASSIFIERS
Nadimpalli Universal Skeptic Binder-Droid-Towards Arresting Malicious Communication of Colluding Apps in Android

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant