CN114595461A - 一种数据处理的方法和装置 - Google Patents

一种数据处理的方法和装置 Download PDF

Info

Publication number
CN114595461A
CN114595461A CN202210138769.4A CN202210138769A CN114595461A CN 114595461 A CN114595461 A CN 114595461A CN 202210138769 A CN202210138769 A CN 202210138769A CN 114595461 A CN114595461 A CN 114595461A
Authority
CN
China
Prior art keywords
program
target
loader
library
bug
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.)
Pending
Application number
CN202210138769.4A
Other languages
English (en)
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.)
Alibaba China Co Ltd
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba China Co Ltd
Alibaba Cloud Computing 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 Alibaba China Co Ltd, Alibaba Cloud Computing Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210138769.4A priority Critical patent/CN114595461A/zh
Publication of CN114595461A publication Critical patent/CN114595461A/zh
Priority to PCT/CN2023/074419 priority patent/WO2023155697A1/zh
Pending legal-status Critical Current

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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种数据处理的方法和装置,应用于运行Linux操作系统的目标设备,Linux操作系统部署有第一程序,所述方法包括:将目标侵入和加载器加载至第一程序的第一内存空间,并通过目标侵入和加载器,获取针对第一程序的漏洞修复库;在第一内存空间中,创建针对目标侵入和加载器的第二内存空间,并配置与第一程序的第一运行环境相互隔离的第二运行环境;其中,第二内存空间仅供目标加载器及可被其加载的程序使用;基于第二运行环境,在第二内存空间中加载漏洞修复库,并采用漏洞修复库,对第一程序进行漏洞修复。通过本发明实施例,实现了跨Linux发行版的漏洞修复,能够适用于不同的Linux发行版,且仅需要进行一次编译。

Description

一种数据处理的方法和装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据处理的方法和装置。
背景技术
随着科学技术的发展,在智慧家居、智慧安防、智慧工业等领域对智能设备的需求越来越多,如物联网设备等智能设备接入量近年来迅猛增长,已经超过了移动设备的增长速率。
在这些智能设备中,Linux操作系统是其使用最多的操作系统之一,而Linux操作系统发行版由传统的IT安全领域的数种扩大至数十乃至上百种,由于发行版的多样性,传统的漏洞修复手段难以适用。
发明内容
鉴于上述问题,提出了以便提供克服上述问题或者至少部分地解决上述问题的一种数据处理的方法和装置,包括:
一种数据处理的方法,应用于运行Linux操作系统的目标设备,Linux操作系统部署有第一程序,所述方法包括:
将目标侵入和加载器加载至第一程序的第一内存空间,并通过目标侵入和加载器,获取针对第一程序的漏洞修复库;
在第一内存空间中,创建针对目标侵入和加载器的第二内存空间,并配置与第一程序的第一运行环境相互隔离的第二运行环境;其中,第二内存空间仅供目标加载器及可被其加载的程序使用;
基于第二运行环境,在第二内存空间中加载漏洞修复库,并采用漏洞修复库,对第一程序进行漏洞修复。
可选地,在采用漏洞修复库,对第一程序进行漏洞修复之前,还包括:
根据漏洞修复库中的侵入挂接指导信息,侵入第一程序中目标位置内容,并建立目标位置内容与漏洞修复库的挂接关系;
采用漏洞修复库,对目标位置内容进行漏洞修复,包括:
在第一程序调用目标位置内容时,根据挂接关系,引导至漏洞修复库,以对目标位置内容进行漏洞修复。
可选地,还包括:
在漏洞修复完成后,返回第一程序的执行流程。
可选地,在根据漏洞修复库中的侵入挂接指导信息,侵入第一程序中目标位置内容,并建立目标位置内容与漏洞修复库的挂接关系之前,还包括:
采用预置的公钥信息,对漏洞修复库进行签名验证;
在签名验证通过后,执行根据漏洞修复库中的侵入挂接指导信息,侵入第一程序中目标位置内容,并建立目标位置内容与漏洞修复库的挂接关系。
可选地,目标侵入和加载器包括侵入器和加载器,侵入器用于对第一程序进行侵入和挂接,加载器用于创建第二内存空间、配置第二运行环境,并加载漏洞修复库。
可选地,漏洞修复库为目标侵入和加载器从云端获取的。
可选地,目标设备为物联网设备,第一程序为用户态程序。
一种数据处理的装置,应用于运行Linux操作系统的目标设备,Linux操作系统部署有第一程序,所述装置包括:
漏洞修复库获取模块,用于将目标侵入和加载器加载至第一程序的第一内存空间,并通过目标侵入和加载器,获取针对第一程序的漏洞修复库;
第二运行环境配置模块,用于在第一内存空间中,创建针对目标侵入和加载器的第二内存空间,并配置与第一程序的第一运行环境相互隔离的第二运行环境;其中,第二内存空间仅供目标加载器及可被其加载的程序使用;
漏洞修复模块,用于基于第二运行环境,在第二内存空间中加载漏洞修复库,并采用漏洞修复库,对第一程序进行漏洞修复。
一种电子设备,包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上所述的数据处理的方法。
一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上所述的数据处理的方法。
本发明实施例具有以下优点:
在本发明实施例中,通过将目标侵入和加载器加载至Linux操作系统部署的第一程序的第一内存空间,并通过目标侵入和加载器,获取针对第一程序的漏洞修复库,在第一内存空间中,创建针对目标侵入和加载器的第二内存空间,并配置与第一程序的第一运行环境相互隔离的第二运行环境,然后基于第二运行环境,在第二内存空间中加载漏洞修复库,并采用漏洞修复库,对第一程序进行漏洞修复,实现了跨Linux发行版的漏洞修复,能够适用于不同的Linux发行版,且仅需要进行一次编译,避免了针对每一个Linux发行版都编译一套不同的二进制代码,降低了漏洞修复的难度。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种数据处理的方法的步骤流程图;
图2a是本发明一实施例提供的一种程序内部运行的示意图;
图2b是本发明一实施例提供的另一种程序内部运行的示意图;
图2c是本发明一实施例提供的一种补丁下载的示意图;
图2d是本发明一实施例提供的另一种程序内部运行的示意图;
图2e是本发明一实施例提供的另一种程序内部运行的示意图;
图3是本发明一实施例提供的另一种数据处理的方法的步骤流程图;
图4是本发明一实施例提供的一种数据处理实例的步骤流程图;
图5是本发明一实施例提供的一种数据处理的装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,示出了本发明一实施例提供的一种数据处理的方法的步骤流程图,该方法可以应用于运行Linux操作系统的目标设备,该目标设备可以为物联网设备,该Linux操作系统可以部署有第一程序,即宿主程序,相对于安全服务程序、漏洞修复库而言,第一程序为受保护程序。
其中,第一程序可以为一个运行于Linux操作系统之上的用户应用程序,可以是命令行工具,也可以是业务级的应用服务或基于容器环境运行的程序,即其为用户态程序,Linux操作系统中程序分为内核态程序和用户态程序,内核态程序是由Linux开源的团队维护,对计算机下层提供对硬件的封装、以及对用户态程序提供统一的系统调用接口,实现对硬件、网络、文件系统的差异屏蔽。用户态程序是指基于Linux内核,由开发者开发的应用程序,如浏览器、通讯软件、图片处理软件、拍照软件等。
具体的,可以包括如下步骤:
步骤101,将目标侵入和加载器加载至第一程序的第一内存空间,并通过目标侵入和加载器,获取针对第一程序的漏洞修复库。
其中,目标侵入和加载器(LLIM,Linux Loading and Invasion Machine)可以为二进制动态加载器,是一个可随着程序在操作系统中的加载而一并加载的共享库,其可以具有两方面的功能:
一方面,LLIM可以作为一个普通的与二进制链接位置无关的共享库,可以被操作系统的加载器加载到程序的内存空间(即第一内存空间)中。
另一方面,LLIM可以是一个自身具备自包含空间(即第二内存空间)和线程隔离机制的加载器,通过它可以加载其他程序,如安全服务程序、漏洞修复库,并将其他程序线程化运行于宿主程序(即第一程序)进程空间内。
在LLIM内部,其可以提供一种“线程隔离”机制,确保自身以及被LLIM所加载的其它ELF共享库在内存中,续接与宿主程序的执行流程中,其线程上下文是完全独立的。也即是说,可执行代码运行于LLIM本体或者其加载二进制库的内存代码范围时,线程栈、私有变量、锁等资源均独立自治,进而可以保证LLIM及其加载的所有ELF可以运行于任意Linux宿主环境。
如图2a,除了宿主程序中用户的Libc和LLIM的自包含Libc中线程私有数据和私有数据的存储池之外,通过线程隔离机制,可以创建与宿主程序的线程空间相隔离的自包含空间(即第二内存空间)。
宿主程序的线程空间可以通过Hook和地址跳转、导出函数调用跳转、dlopen接口跳转等方式跳转至LLIM自身空间中可执行程序、共享库入口、代码块,由LLIM创建的与Linux环境无关的自包含空间可以具有线程环境无关的库、线程环境无关的代码块、LLIM创建的新线程。
具体的,LLIM可以包括侵入器和加载器,侵入器可以用于对第一程序进行侵入和挂接,加载器可以用于创建第二内存空间、配置第二运行环境,并加载漏洞修复库。
如图2b,宿主程序通过二进制侵入挂接Linux侵入加载器LLIM核心,其侵入并挂钩(HOOK)在异构Linux用户态ELF内存可执行代码任意位置,并在挂钩点部署一个额外并且和宿主程序隔离(与宿主上下文无关)的ELF加载器,用于按需加载与宿主程序上下文隔离的共享库。其中,Linux侵入加载器LLIM核心中侵入器可以存在Linked map Hook(适用于Android)、Instrument Hook(适用于GNU Linux)、Inline Hook(适用于所有Linux指令级侵入),加载器可以存在ELF parse、地址重定向、数字签名验证的功能。
在待检测和待修复的Linux操作系统中,植入LLIM侵入和加载器,并可以让其在系统中第一程序开始运行时就进行加载至第一程序的第一内存空间,持续存活于第一程序体内,具体可以在第一程序运行之前,Linux操作系统会负责为其加载所需要的共享库,LLIM可以以一个共享库的形式被加载到第一程序的进程空间。
在具体实现中,漏洞修复库为LLIM从云端获取的LLIM可以通过网络链接云端二进制漏洞补丁库,一旦接收到漏洞修复库新的补丁修复推送,立即下载修复补丁至漏洞修复库。
需要说明的是,如图2c,开发者根据CVE修复建议开发漏洞修复补丁,进而由发布者对补丁进行签名和上传至云端,进而由装有本发明通用Linux二进制漏洞修复Agent的设备下载和部署漏洞修复补丁。
具体的,通过在Linux系统内部植入漏洞扫描的agent即可完成目标二进制对象(可执行程序、共享库)漏洞和CVE(Common Vulnerabilities&Exposures,通用漏洞披露)漏洞库信息的一一匹配,可以从CVE信息当中可以检索到漏洞产生的机理以及一些修复建议。
根据CVE信息提供的漏洞修复机理和修复建议,修复补丁开发者可以针对性的开发修复补丁,修复逻辑需要完全替换或者局部替换掉出现漏洞的可执行代码,或者对代码的参数、返回值等进行一系列边界校验。
在漏洞修复补丁开发好之后,结合LLIM所支持的特定libc环境进行构建,生成可动态链接的共享库,进而可以往当中加入侵入挂接指导信息,其可以用于在运行时指示对待修复第一程序进行侵入挂钩。
步骤102,在第一内存空间中,创建针对目标侵入和加载器的第二内存空间,并配置与第一程序的第一运行环境相互隔离的第二运行环境;其中,第二内存空间仅供目标加载器及可被其加载的程序使用。
对于LLIM,其可以在第一内存空间中创建针对LLIM的第二内存空间,第二内存空间仅供LLIM及可被其加载的程序使用,即LLIM的自包含空间,自包含空间是Linux进程加载器为符合自身libc库链接而创建的一个命名空间,在这个空间中它只为应用程序加载特定目录下的共享库文件。
在第二内存空间中,可以配置与第一程序的第一运行环境相互隔离的第二运行环境,其可以包括链接共享库、初始化线程上下文、启动线程等,初始化线程上下文可以包括堆栈、线程私有变量、设备和内存管理等方面的初始化。
步骤103,基于第二运行环境,在第二内存空间中加载漏洞修复库,并采用漏洞修复库,对第一程序进行漏洞修复。
在本发明一实施例中,在采用漏洞修复库,对第一程序进行漏洞修复之前,还可以包括:根据漏洞修复库中的侵入挂接指导信息,侵入第一程序中目标位置内容,并建立目标位置内容与漏洞修复库的挂接关系。
在本发明一实施例中,采用漏洞修复库,对目标位置内容进行漏洞修复,可以包括:在第一程序调用目标位置内容时,根据挂接关系,引导至漏洞修复库,以对目标位置内容进行漏洞修复。
其中,侵入挂接指导信息可以包括修复目标库名称、修复目标函数符号名称、修复目标挂接地址(即目标位置内容)、补丁函数入口符号名和地址。
在漏洞修复库下载完成后,可以读取其中的二进制侵入挂接指导信息,按照侵入挂接指导信息,准确的侵入第一程序中目标位置内容,并可以建立目标位置内容与漏洞修复库的挂接关系。
在LLIM创建独立于宿主程序上下文的内存代码空间(即第二内存空间)的基础上,可以在其中加载漏洞修复库,并可以将侵入和挂接的逻辑引导到漏洞修复库逻辑当中执行,覆盖掉第一程序中目标位置内容中原来有漏洞的业务逻辑。
在本发明一实施例中,还可以包括:
在漏洞修复完成后,返回第一程序的执行流程。
在漏洞修复结束之后,可以返回到宿主程序(即第一程序)的流程。
在本发明一实施例中,在根据漏洞修复库中的侵入挂接指导信息,侵入第一程序中目标位置内容,并建立目标位置内容与漏洞修复库的挂接关系之前,还可以包括:
采用预置的公钥信息,对漏洞修复库进行签名验证;在签名验证通过后,执行根据漏洞修复库中的侵入挂接指导信息,侵入第一程序中目标位置内容,并建立目标位置内容与漏洞修复库的挂接关系。
由于漏洞修复库可以通过数字签名生成工具,结合RSA体系的私钥对进行数字签名,将签名信息置入数字签名节,供运行时使用LLIM公钥进行解密和签名验证,以防止补丁伪造。
在漏洞修复库下载完成后,LLIM可以读取补丁库数字签名段的内容,并用内置的公钥进行签名验证,在验证通过后进行后续操作。
如图2d,在Linux Kernel的基础上,目标Linux宿主程序体(即第一程序)触发程序起点进行程序运行,当调用具有漏洞的代码(即目标位置内容)时,可以通过Linux侵入加载器LLIM核心在与宿主上下文无关的运行环境中调用漏洞修复组件,漏洞修复组件可以漏洞修复库中漏洞修复代码进行漏洞修复,在修复完成后可以返回目标Linux宿主程序体的后续代码。
具体的,如图2e,漏洞修复组件中漏洞修复补丁解析器可以解析漏洞修复库中补丁文件,进而可以指导侵入,Linux侵入加载器LLIM核心中二进制侵入器可以侵入具有漏洞的宿主程序中漏洞代码,并流程挂接到漏洞修复组件中漏洞修复补丁部署器,漏洞修复补丁部署器用于流程引导至漏洞修复库,Linux侵入加载器LLIM核心中二进制加载器可以加载漏洞修复库。
其中,漏洞修复组件当中包含漏洞修复补丁解析器和补丁部署器,漏洞修复补丁解释器是一个ELF文件解释器,可以根据ELF文件头解释出每个段和节的信息,补丁部署器则会在LLIM加载完成漏洞修复补丁库之后,对待修复目标的逻辑地址进行跳转引导,实现漏洞程序向补丁程序的跳转。
在本发明实施例中,通过将目标侵入和加载器加载至Linux操作系统部署的第一程序的第一内存空间,并通过目标侵入和加载器,获取针对第一程序的漏洞修复库,在第一内存空间中,创建针对目标侵入和加载器的第二内存空间,并配置与第一程序的第一运行环境相互隔离的第二运行环境,然后基于第二运行环境,在第二内存空间中加载漏洞修复库,并采用漏洞修复库,对第一程序进行漏洞修复,实现了跨Linux发行版的漏洞修复,能够适用于不同的Linux发行版,且仅需要进行一次编译,避免了针对每一个Linux发行版都编译一套不同的二进制代码,降低了漏洞修复的难度。
参照图3,示出了本发明一实施例提供的另一种数据处理的方法的步骤流程图,具体可以包括如下步骤:
步骤301,将目标侵入和加载器加载至第一程序的第一内存空间,并通过目标侵入和加载器,获取针对第一程序的漏洞修复库。
在待检测和待修复的Linux操作系统中,植入LLIM侵入和加载器,并可以让其在系统中第一程序开始运行时就进行加载至第一程序的第一内存空间,持续存活于第一程序体内,具体可以在第一程序运行之前,Linux操作系统会负责为其加载所需要的共享库,LLIM可以以一个共享库的形式被加载到第一程序的进程空间。
在具体实现中,漏洞修复库为LLIM从云端获取的LLIM可以通过网络链接云端二进制漏洞补丁库,一旦接收到漏洞修复库新的补丁修复推送,立即下载修复补丁至漏洞修复库。
步骤302,采用预置的公钥信息,对漏洞修复库进行签名验证。
由于漏洞修复库可以通过数字签名生成工具,结合RSA体系的私钥对进行数字签名,将签名信息置入数字签名节,供运行时使用LLIM公钥进行解密和签名验证,以防止补丁伪造。
在漏洞修复库下载完成后,LLIM可以读取补丁库数字签名段的内容,并用内置的公钥进行签名验证,在验证通过后进行后续操作。
步骤303,在签名验证通过后,根据漏洞修复库中的侵入挂接指导信息,侵入第一程序中目标位置内容,并建立目标位置内容与漏洞修复库的挂接关系。
其中,侵入挂接指导信息可以包括修复目标库名称、修复目标函数符号名称、修复目标挂接地址(即目标位置内容)、补丁函数入口符号名和地址。
在漏洞修复库下载完成后,可以读取其中的二进制侵入挂接指导信息,按照侵入挂接指导信息,准确的侵入第一程序中目标位置内容,并可以建立目标位置内容与漏洞修复库的挂接关系。
步骤304,在第一内存空间中,创建针对目标侵入和加载器的第二内存空间,并配置与第一程序的第一运行环境相互隔离的第二运行环境;其中,第二内存空间仅供目标加载器及可被其加载的程序使用。
对于LLIM,其可以在第一内存空间中创建针对LLIM的第二内存空间,第二内存空间仅供LLIM及可被其加载的程序使用,即LLIM的自包含空间,自包含空间是Linux进程加载器为符合自身libc库链接而创建的一个命名空间,在这个空间中它只为应用程序加载特定目录下的共享库文件。
在第二内存空间中,可以配置与第一程序的第一运行环境相互隔离的第二运行环境,其可以包括链接共享库、初始化线程上下文、启动线程等,初始化线程上下文可以包括堆栈、线程私有变量、设备和内存管理等方面的初始化。
步骤305,基于第二运行环境,在第二内存空间中加载漏洞修复库,并在第一程序调用目标位置内容时,根据挂接关系,引导至漏洞修复库,以对目标位置内容进行漏洞修复。
在LLIM创建独立于宿主程序上下文的内存代码空间(即第二内存空间)的基础上,可以在其中加载漏洞修复库,并可以将侵入和挂接的逻辑引导到漏洞修复库逻辑当中执行,覆盖掉第一程序中目标位置内容中原来有漏洞的业务逻辑。
步骤306,在漏洞修复完成后,返回第一程序的执行流程。
在漏洞修复结束之后,可以返回到宿主程序(即第一程序)的流程。
以下结合图4对本发明实施例进行示例性说明:
1、漏洞修复组件发现漏洞修复补丁部署,对其进行数字签名校验,并通过数字签名检验后,解析侵入指导信息(即侵入挂接指导信息),然后指导LLIM侵入器对待修复点(即目标位置内容)进行侵入挂钩。
2、LLIM侵入器对存在漏洞的目标程序(即第一程序)进行侵入和挂钩。
3、漏洞修复组件指导LLIM加载器加载漏洞修复补丁并进行线程隔离。
4、存在漏洞的目标程序在漏洞利用逻辑处的实际执行流程跳转到漏洞修复逻辑,漏洞修补补丁执行修复,并在修复完成后返回目标程序。
具体而言,相对于传统IT安全漏洞修复、移动设备移动修复、云服务器漏洞修复有以下优势:
1、采用的挂接技术结合了Link map、Instrument、Inline三种方案,有效的侵入任意Linux体系的ELF,可对抗诸如Android进程的RELRO防御机制。
2、漏洞修复补丁开发简单,只需要根据CVE漏洞机理和修复建议手动开发补丁即可。且编译环境统一,无需跨发行版Linux编译环境(例如跨GNULinux、Android、OpenWRT等开发环境和工具链)。
3、部署实施过程精确,用户仅需对特定宿主系统中的用户态程序精确开发HOOK点信息以及修复逻辑并定向部署,避开了内核态修复影响面大、不可恢复和撤销带来的风险。
4、可进行热修复,LLIM实时在线监听补丁下发信息,并可执行基于内存ELF修改的热加载,进程不重启、设备不停机,大大方面了物联网设备使用。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明一实施例提供的一种数据处理的装置的结构示意图,该装置可以应用于运行Linux操作系统的目标设备,Linux操作系统可以部署有第一程序,具体可以包括如下模块:
漏洞修复库获取模块501,用于将目标侵入和加载器加载至第一程序的第一内存空间,并通过目标侵入和加载器,获取针对第一程序的漏洞修复库。
第二运行环境配置模块502,用于在第一内存空间中,创建针对目标侵入和加载器的第二内存空间,并配置与第一程序的第一运行环境相互隔离的第二运行环境;其中,第二内存空间仅供目标加载器及可被其加载的程序使用。
漏洞修复模块503,用于基于第二运行环境,在第二内存空间中加载漏洞修复库,并采用漏洞修复库,对第一程序进行漏洞修复。
在本发明一实施例中,还可以包括:
挂接关系建立模块,用于根据漏洞修复库中的侵入挂接指导信息,侵入第一程序中目标位置内容,并建立目标位置内容与漏洞修复库的挂接关系。
在本发明一实施例中,漏洞修复模块503,可以包括:
挂接位置修复子模块,用于在第一程序调用目标位置内容时,根据挂接关系,引导至漏洞修复库,以对目标位置内容进行漏洞修复。
在本发明一实施例中,还可以包括:
返回执行模块,用于在漏洞修复完成后,返回第一程序的执行流程。
在本发明一实施例中,还可以包括:
签名验证模块,用于采用预置的公钥信息,对漏洞修复库进行签名验证;在签名验证通过后,调用挂接关系建立模块。
在本发明一实施例中,目标侵入和加载器包括侵入器和加载器,侵入器用于对第一程序进行侵入和挂接,加载器用于创建第二内存空间、配置第二运行环境,并加载漏洞修复库。
在本发明一实施例中,漏洞修复库为目标侵入和加载器从云端获取的。
在本发明一实施例中,第一程序为用户态程序。
本发明一实施例还提供了一种电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上数据处理的方法。
本发明一实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上数据处理的方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对所提供的一种数据处理的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种数据处理的方法,其特征在于,应用于运行Linux操作系统的目标设备,所述Linux操作系统部署有第一程序,所述方法包括:
将目标侵入和加载器加载至所述第一程序的第一内存空间,并通过所述目标侵入和加载器,获取针对所述第一程序的漏洞修复库;
在所述第一内存空间中,创建针对所述目标侵入和加载器的第二内存空间,并配置与所述第一程序的第一运行环境相互隔离的第二运行环境;其中,所述第二内存空间仅供所述目标加载器及可被其加载的程序使用;
基于所述第二运行环境,在所述第二内存空间中加载所述漏洞修复库,并采用所述漏洞修复库,对所述第一程序进行漏洞修复。
2.根据权利要求1所述的方法,其特征在于,在所述采用所述漏洞修复库,对所述第一程序进行漏洞修复之前,还包括:
根据所述漏洞修复库中的侵入挂接指导信息,侵入所述第一程序中目标位置内容,并建立所述目标位置内容与所述漏洞修复库的挂接关系;
所述采用所述漏洞修复库,对所述目标位置内容进行漏洞修复,包括:
在所述第一程序调用所述目标位置内容时,根据所述挂接关系,引导至所述漏洞修复库,以对所述目标位置内容进行漏洞修复。
3.根据权利要求2所述的方法,其特征在于,还包括:
在漏洞修复完成后,返回所述第一程序的执行流程。
4.根据权利要求2或3所述的方法,其特征在于,在所述根据所述漏洞修复库中的侵入挂接指导信息,侵入所述第一程序中目标位置内容,并建立所述目标位置内容与所述漏洞修复库的挂接关系之前,还包括:
采用预置的公钥信息,对所述漏洞修复库进行签名验证;
在签名验证通过后,执行所述根据所述漏洞修复库中的侵入挂接指导信息,侵入所述第一程序中目标位置内容,并建立所述目标位置内容与所述漏洞修复库的挂接关系。
5.根据权利要求1所述的方法,其特征在于,所述目标侵入和加载器包括侵入器和加载器,所述侵入器用于对所述第一程序进行侵入和挂接,所述加载器用于创建所述第二内存空间、配置所述第二运行环境,并加载所述漏洞修复库。
6.根据权利要求1所述的方法,其特征在于,所述漏洞修复库为所述目标侵入和加载器从云端获取的。
7.根据权利要求1所述的方法,其特征在于,所述目标设备为物联网设备,所述第一程序为用户态程序。
8.一种数据处理的装置,其特征在于,应用于运行Linux操作系统的目标设备,所述Linux操作系统部署有第一程序,所述装置包括:
漏洞修复库获取模块,用于将目标侵入和加载器加载至所述第一程序的第一内存空间,并通过所述目标侵入和加载器,获取针对所述第一程序的漏洞修复库;
第二运行环境配置模块,用于在所述第一内存空间中,创建针对所述目标侵入和加载器的第二内存空间,并配置与所述第一程序的第一运行环境相互隔离的第二运行环境;其中,所述第二内存空间仅供所述目标加载器及可被其加载的程序使用;
漏洞修复模块,用于基于所述第二运行环境,在所述第二内存空间中加载所述漏洞修复库,并采用所述漏洞修复库,对所述第一程序进行漏洞修复。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据处理的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据处理的方法。
CN202210138769.4A 2022-02-15 2022-02-15 一种数据处理的方法和装置 Pending CN114595461A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210138769.4A CN114595461A (zh) 2022-02-15 2022-02-15 一种数据处理的方法和装置
PCT/CN2023/074419 WO2023155697A1 (zh) 2022-02-15 2023-02-03 一种数据处理的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210138769.4A CN114595461A (zh) 2022-02-15 2022-02-15 一种数据处理的方法和装置

Publications (1)

Publication Number Publication Date
CN114595461A true CN114595461A (zh) 2022-06-07

Family

ID=81806704

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210138769.4A Pending CN114595461A (zh) 2022-02-15 2022-02-15 一种数据处理的方法和装置

Country Status (2)

Country Link
CN (1) CN114595461A (zh)
WO (1) WO2023155697A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023155697A1 (zh) * 2022-02-15 2023-08-24 阿里云计算有限公司 一种数据处理的方法和装置
WO2023155686A1 (zh) * 2022-02-15 2023-08-24 阿里云计算有限公司 一种数据处理的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109409096B (zh) * 2018-11-15 2021-02-26 百度在线网络技术(北京)有限公司 内核漏洞修复方法、装置、服务器及系统
US11106792B2 (en) * 2019-03-29 2021-08-31 Acronis International Gmbh Methods and systems for performing a dynamic analysis of applications for protecting devices from malwares
US11409862B2 (en) * 2019-07-22 2022-08-09 Cloud Linux Software Inc. Intrusion detection and prevention for unknown software vulnerabilities using live patching
CN114595461A (zh) * 2022-02-15 2022-06-07 阿里云计算有限公司 一种数据处理的方法和装置
CN114595462A (zh) * 2022-02-15 2022-06-07 阿里云计算有限公司 一种数据处理的方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023155697A1 (zh) * 2022-02-15 2023-08-24 阿里云计算有限公司 一种数据处理的方法和装置
WO2023155686A1 (zh) * 2022-02-15 2023-08-24 阿里云计算有限公司 一种数据处理的方法和装置

Also Published As

Publication number Publication date
WO2023155697A1 (zh) 2023-08-24

Similar Documents

Publication Publication Date Title
US11599348B2 (en) Container image building using shared resources
Vidas et al. All your droid are belong to us: A survey of current android attacks
CN105068932B (zh) 一种Android应用程序加壳的检测方法
CN114595461A (zh) 一种数据处理的方法和装置
Dahse et al. Code reuse attacks in php: Automated pop chain generation
US20170024230A1 (en) Method, apparatus, and computer-readable medium for ofuscating execution of an application on a virtual machine
CN102254113A (zh) 一种检测和拦截移动终端恶意代码的方法及系统
Lim et al. An Android Application Protection Scheme against Dynamic Reverse Engineering Attacks.
Gasparis et al. Detecting android root exploits by learning from root providers
CN109388946B (zh) 恶意进程检测方法、装置、电子设备及存储介质
CN111880987A (zh) 应用程序的动态监测方法、装置、存储介质以及电子装置
US8959485B2 (en) Security protection domain-based testing framework
US11269988B2 (en) Automated software application verification system
CN108595950A (zh) 一种结合远程认证的sgx安全增强方法
CN109614107B (zh) 一种软件开发工具包的集成方法和装置
CN108958785B (zh) 一种应用程序升级方法及装置
CN114595462A (zh) 一种数据处理的方法和装置
WO2023035751A1 (zh) 移动端应用的智能混淆
Shim et al. Static and dynamic analysis of Android malware and goodware written with unity framework
CN110414218B (zh) 内核检测方法、装置、电子设备及存储介质
Cloosters et al. Riscyrop: Automated return-oriented programming attacks on risc-v and arm64
CN109977671B (zh) 一种基于编译器修改的Android锁屏型勒索软件检测方法
CN104156247A (zh) 一种应用升级方法及装置
Riganelli et al. Controlling interactions with libraries in android apps through runtime enforcement
CN112134905B (zh) 基于安卓系统的签名方法、装置以及设备

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