CN114662150A - 一种数据获取方法、装置及电子设备 - Google Patents

一种数据获取方法、装置及电子设备 Download PDF

Info

Publication number
CN114662150A
CN114662150A CN202210318544.7A CN202210318544A CN114662150A CN 114662150 A CN114662150 A CN 114662150A CN 202210318544 A CN202210318544 A CN 202210318544A CN 114662150 A CN114662150 A CN 114662150A
Authority
CN
China
Prior art keywords
data
management system
access
access process
returned
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
CN202210318544.7A
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202210318544.7A priority Critical patent/CN114662150A/zh
Publication of CN114662150A publication Critical patent/CN114662150A/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • 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/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种数据获取方法、装置及电子设备,方法包括:获得第一应用发出的数据读取请求,触发数据访问进程,所述数据读取请求的读取对象为第一数据,所述第一应用运行在第一运行环境中,所述第一运行环境为容器运行环境;将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求;获得所述数据管理系统在访问检验通过后返回的第二数据,并释放挂起的所述数据访问进程;根据返回的第二数据获得所述第一数据。

Description

一种数据获取方法、装置及电子设备
技术领域
本申请涉及数据处理技术,更具体的说,是涉及一种数据获取方法、装置及电子设备。
背景技术
容器服务目前基本被各行各业的用户所接受,是云服务提供商的一个主要产品。根据k8s文档,密码和证书等涉及敏感信息的机密凭证,使用Secret对象进行存储。
Secret数据一般是以纯文本方式存储在etcd中,默认使用base64编码。由于系统安全漏洞无法完全杜绝,所以存在被黑客利用漏洞获取系统登录shell,并窃取Secret机要信息的风险。开发人员和运维人员失误不小心将Secret配置文本信息共享到开源代码库,也可能造成机密信息泄露。
发明内容
有鉴于此,本申请提供如下技术方案:
一种数据获取方法,包括:
获得第一应用发出的数据读取请求,触发数据访问进程,所述数据读取请求的读取对象为第一数据,所述第一应用运行在第一运行环境中,所述第一运行环境为容器运行环境;
将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求;
获得所述数据管理系统在访问检验通过后返回的第二数据,并释放挂起的所述数据访问进程;
根据返回的第二数据获得所述第一数据。
可选地,所述将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求,包括:
通过用户态文件系统将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求;
其中,所述用户态文件系统用于映射远端的所述数据管理系统中的数据,在所述第一运行环境启动过程中,对所述用户态文件系统和所述第一运行环境的文件系统执行挂载操作。
可选地,所述通过用户态文件系统将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求,包括:
读取操作的系统调用从所述用户态文件系统中读取与所述第一数据对应的接口;
通过操作系统内核将所述数据访问进程挂起;
通过所述接口向远端的数据管理系统发送所述数据读取请求。
可选地,所述访问检验表征对所述第一运行环境中的检验信息进行检验,所述检验信息表征所述数据访问进程的相关信息。
可选地,所述检验信息包括所述第一应用的合法访问调用栈指纹。
可选地,还包括:
在所述比对校验的检验结果表征访问校验未通过的情况下,返回错误指示信息。
可选地,所述根据返回的第二数据获得所述第一数据,包括:
通过终端执行的方式对所述第二数据进行处理,得到所述第一数据。
可选地,所述获得所述数据管理系统在访问检验通过后返回的第二数据,包括:
获得所述数据管理系统发送的数据映射ID;
向所述数据管理系统发送所述数据映射ID和所述第一应用的调用栈指纹;
在所述数据管理系统对所述数据映射ID和所述调用栈指纹校验通过后,获得所述数据管理系统返回的所述第一数据。
本申请还公开一种数据获取装置,包括:
请求接收模块,用于获得第一应用发出的数据读取请求,触发数据访问进程,所述数据读取请求的读取对象为第一数据,所述第一应用运行在第一运行环境中,所述第一运行环境为容器运行环境;
访问处理模块,用于将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求;
数据获得模块,用于获得所述数据管理系统在访问检验通过后返回的第二数据,并释放挂起的所述数据访问进程;
结果获得模块,用于根据返回的第二数据获得所述第一数据。
进一步的,本申请还公开了一种电子设备,包括:
处理器;
存储器,用于存储所述处理器的可执行程序指令;
其中,所述可执行程序指令包括:获得第一应用发出的数据读取请求,触发数据访问进程,所述数据读取请求的读取对象为第一数据,所述第一应用运行在第一运行环境中,所述第一运行环境为容器运行环境;将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求;获得所述数据管理系统在访问检验通过后返回的第二数据,并释放挂起的所述数据访问进程;根据返回的第二数据获得所述第一数据。
经由上述的技术方案可知,与现有技术相比,本申请实施例公开了一种数据获取方法、装置及电子设备,方法包括:获得第一应用发出的数据读取请求,触发数据访问进程,所述数据读取请求的读取对象为第一数据,所述第一应用运行在第一运行环境中,所述第一运行环境为容器运行环境;将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求;获得所述数据管理系统在访问检验通过后返回的第二数据,并释放挂起的所述数据访问进程;根据返回的第二数据获得所述第一数据。该方案不会使远端的访问数据以明文形式挂载在本地系统中,而是将远端的访问数据以不能够被直接读取的方式映射到本地上,从而在第一运行环境中的应用运行时干预访问数据的读取,防止访问数据被意外窃取,保障数据的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种数据获取方法的流程图;
图2为本申请实施例公开的挂起数据访问进程并发送数据读取请求的流程图;
图3为本申请实施例公开的获得数据管理系统返回的第二数据的流程图;
图4为本申请实施例公开的第一数据的映射关系实现架构示意图;
图5为本申请实施例公开的获取第一数据的流程原理示意图;
图6为本申请实施例公开的获取第一数据的时序流程示意图;
图7为本申请实施例公开的一种数据获取装置的结构是示意图;
图8为本申请实施例公开的一种电子设备的结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词的说明、简写或缩写总结如下:
K8s:即Kubernetes,或简称kube,是一种可自动实时Linux容器操作的开源平台。它可以帮助用户省去应用容器化过程的许多手动部署和扩展操作。可以将运行Linux容器的多组主机聚集在一起,由Kubernetes帮助轻松高效地管理这些集群。
Etcd:是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。
Shell:在计算机科学中,Shell俗称壳(用来区别于核),可以理解为计算机壳层,是指“为使用者提供操作界面”的软件(commandinterpreter,命令解析器)。
Pod:Pod是Kubernetes创建或部署的最小单位。一个Pod封装一个或多个容器(container)、存储资源(volume)、一个独立的网络IP以及管理控制容器运行方式的策略选项。Pod中运行一个容器。这是Kubernetes最常见的用法,可以将Pod视为单个封装的容器,但是Kubernetes是直接管理Pod而不是容器。Pod中也可以运行多个需要耦合在一起工作、需要共享资源的容器。
Fuse:用户空间文件系统(FilesysteminUserspace),是Linux中用于挂载某些网络空间,如SSH,到本地文件系统的模块,在SourceForge上可以找到相关内容。
用户态文件系统:是一个实现在用户空间的文件系统框架,通过FUSE内核模块的支持,使用者只需要根据fuse提供的接口实现具体的文件操作就可以实现一个文件系统。
ptrace:提供了一种机制使得父进程可以观察和控制子进程的执行过程,ptrace还可以检查和修改子进程的可执行文件在内存中的image及子进程所使用的寄存器中的值。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例可以应用于电子设备,本申请对该电子设备的产品形式不做限定,可以包括但并不局限于智能手机、平板电脑、可穿戴设备、个人计算机(personalcomputer,PC)、上网本等,可以依据应用需求选择。
图1为本申请实施例公开的一种数据获取方法的流程图。参见图1所示,数据获取方法可以包括:
步骤101:获得第一应用发出的数据读取请求,触发数据访问进程,所述数据读取请求的读取对象为第一数据,所述第一应用运行在第一运行环境中,所述第一运行环境为容器运行环境。
其中,所述容器运行环境可以为Pod。本申请中,所述第一应用发出的数据读取请求所请求的第一数据可以为密钥、安全凭证等机密性较高的数据,例如可以是Secret凭证信息。第一数据并不保存在本地文件系统,而是保存在远端的数据管理系统中,因此在本申请所述数据获取方法实施前,需要首先准备好预处理工作,使得远端的第一数据能够被映射到本地系统,从而被Pod环境中的第一应用能够识别并读取到第一数据。
其中,所述数据管理系统可以封装成k8s存储插件,这样可以无缝应用于k8s系统,应用在访问数据管理系统中数据被检测过程中无干扰和感知,应用也无需修改和适配,从而可方便的应用于当前的系统架构。此外,数据管理系统独立于远端,能够统一中心化管理机密信息,即安全也不易被突破和非法窃取。
为了实现容器环境中的第一应用可以访问读取远端的数据管理系统中的第一数据,需要进行的预处理工作可以但不限于不包括:预先自定义实现一个用户态文件系统,用于映射远端统一管理的Secret凭证信息,也即所述第一数据;该用户态文件系统基于Fuse实现。预处理工作完成后,后续在Pod启动过程中,就可以实现将所述用户态文件系统挂载到Pod文件系统中,保证Pod中的应用程序能够正常发起对Secret凭证信息的访问,从而能够在后续Pod应用运行时干预Secret凭证信息的读取,保障Secret凭证信息读取过程的安全性。
步骤102:将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求。
在Pod中的第一应用发出数据读取请求后,读取操作的系统调用可以进入Fuse文件系统读取接口,在返回读取数据前,第一应用将被操作系统的内核所挂起,进而用户态文件系统守护进程将向远端的数据管理系统分发送所述数据读取请求。
第一应用被操作系统的内核挂起,进而可以对第一应用发出的数据读取请求以及对应数据访问进程进行判断验证,以确定其合法性,从而有效保障第一数据获取的安全性。
步骤103:获得所述数据管理系统在访问检验通过后返回的第二数据,并释放挂起的所述数据访问进程。
在数据管理系统返回数据前,可以对所述数据读取请求的访问进行相应的检验,确定其合法性,只有在检验通过后,才会将访问数据,也即所述第二数据返回给第一应用。
第二数据返回后,认为此次数据访问进程已完成,进而释放挂起的所述数据访问进程,完成一次完整的Pod应用读取远端Secret凭证信息的过程。需要说明的是,上述实现过程中,Secret凭证信息并不会以明文形式保存于本地供应用直接调用读取,而是始终保存于远端的数据管理系统中,在有应用发出读取请求时,会在确保数据访问进程合法性的基础上确定是否返回Secret凭证信息,从而避免了恶意应用对Secret凭证信息的读取,保障了Secret凭证信息的安全。
步骤104:根据返回的第二数据获得所述第一数据。
数据管理系统返回的第二数据可能是没有任何处理的Secret凭证信息,也可能是经过加密、压缩、编码等处理的Secret凭证信息,因此本申请实施例中,在获得数据管理系统返回的第二数据后,可以根据返回的第二数据获得所述第一数据。其中,在所述第二数据为经过加密、压缩、编码等加工处理的数据时,可以进行对应的解密、解压缩、解码等处理,得到第一数据;而在所述第二数据为没有经过任何处理的原始数据时,则可以直接将所述第二数据确定为第一数据。其中,根据返回的第二数据获得所述第一数据,可以包括:通过终端执行的方式对所述第二数据进行处理,得到所述第一数据。
本实施例所述数据获取方法,不会使远端的访问数据以明文形式挂载在本地系统中,而是将远端的访问数据以不能够被直接读取的方式映射到本地上,从而在第一运行环境中的应用运行时干预访问数据的读取,防止访问数据被意外窃取,保障数据的安全性。
上述实施例中,所述将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求,可以包括:通过用户态文件系统将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求。
其中,所述用户态文件系统用于映射远端的所述数据管理系统中的数据,在所述第一运行环境启动过程中,对所述用户态文件系统和所述第一运行环境的文件系统执行挂载操作。
由于第一应用所能够识别的第一数据是通过用户态文件系统的映射实现的,因此读取第一数据的数据访问进程也是基于用户态文件系统实现的。本实施例中,挂起数据访问进程,具体可以是通过用户态文件系统将所述数据访问进程挂起。
而之所以对所述用户态文件系统和所述第一运行环境的文件系统执行挂载操作,是因为只有在用户态文件系统和所述第一运行环境的文件系统执行挂载操作后,Pod中的第一应用才会存在第一数据的目录信息。
基于以上,图2示出了挂起数据访问进程并发送数据读取请求的流程图。集合图2所示,所述通过用户态文件系统将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求,包括:
步骤201:读取操作的系统调用从所述用户态文件系统中读取与所述第一数据对应的接口。
用户态文件系统中包括多个读取接口,在读取数据前,需要首先确定与读取数据对应的接口,以便于通过改接口读取到所述第一数据。
步骤202:通过操作系统内核将所述数据访问进程挂起。
具体的,可基于用户态文件系统挂起数据访问进程,以供后续数据管理系统对于数据访问进程进行检测,并可以实现对数据访问进程的拦截。
步骤203:通过所述接口向远端的数据管理系统发送所述数据读取请求。
在确定了与所述第一数据对应的接口且将数据访问进程挂起后,可直接通过所述接口向远端的数据管理系统发送所述数据读取请求,后续数据管理系统可对对应访问进程进行访问检验,并基于验证结果确定是否返回请求数据。其中,所述访问检验表征对所述第一运行环境中的检验信息进行检验,所述检验信息表征所述数据访问进程的相关信息;所述检验信息可以包括所述第一应用的合法访问调用栈指纹。
可以理解的,在比对校验的检验结果表征访问校验通过的情况下,数据管理系统将所述数据访问进程请求的数据返回给所述第一应用;而在所述比对校验的检验结果表征访问校验未通过的情况下,则表明当前数据访问进程是非法的,存在安全隐患,则返回错误指示信息。
图3为本申请实施例公开的获得数据管理系统返回的第二数据的流程图。结合图3所示,所述获得所述数据管理系统在访问检验通过后返回的第二数据,可以包括:
步骤301:获得所述数据管理系统发送的数据映射ID。
步骤302:向所述数据管理系统发送所述数据映射ID和所述第一应用的调用栈指纹。
步骤303:在所述数据管理系统对所述数据映射ID和所述调用栈指纹校验通过后,获得所述数据管理系统返回的所述第二数据。
本实现介绍了数据管理系统对数据访问进程进行验证的一个实现,该实现中,数据管理系统通过其自身生成的随机数据映射ID和第一应用的调用栈指纹来验证数据访问进程的合法性。只有在所述数据访问进程通过访问检验后,才会向第一应用返回第二数据。
具体的,数据管理系统可以通过触发Pod中的检查进程,如checking进程来获得需要验证的信息。例如,数据管理系统通过Pod中的checking进程扫描Pod中哪个进程在访问Secret凭证信息,并利用Ptrace机制对数据访问进程的调用堆栈(CPU运行时栈)进行检查,根据检查结果来决定是否返回Secret凭证信息。
图4为本申请实施例公开的第一数据的映射关系实现架构示意图,其中的app为运行在Pod的应用,Kernel为内核,Userspace表示用户空间,VFS为虚拟文件系统,Secretd为用户态文件系统的守护进程。结合图4所示,一个具体实现中,在host主机上,基于fuse文件系统的用户态文件系统将Secret凭证信息映射到本地上(凭证文件系统SecretManager(对应所述数据管理系统)挂载点为host主机的/tmp/sec/,app1的Secret凭证信息放在/tmp/sec/app1/目录下),然后通过k8s的存储插件(CSI插件或者Flexvolume插件)将应用的Secret凭证信息挂载到Pod的文件中(如/mnt/secret/key1_1)。具体应用中,可以通过一段时间试运行,收集起来应用app1的合法的凭证访问调用栈指纹,保存在secretmanager的数据库中。这样后续可以基于保存的调用栈指纹确定当前获得的调用栈指纹是否合法。
图5为本申请实施例公开的获取第一数据的流程原理示意图;图6为本申请实施例公开的获取第一数据的时序流程示意图。结合图5和图6所示,数据获取过程可以包括:
1、app1读取secretd凭证信息,进程被挂起在读取的系统调用上,读取文件由于位于fuse文件系统上,数据读取请求将通过相关接口发送到secretd守护进程;
2、secretd守护进程将数据读取请求封装发送到中心的secretmanager,secretmanager可以采取以下两种方式进行处理:
(1)secretmanager根据数据读取请求的来源,发送指示给同名字空间的sidecarpod(起辅助作用的pod)中的checking进程扫描访问secretd凭证信息的进程,并获取数据访问进程的调用栈指纹;
①secretmanager得到的数据访问进程不是记录的合法进程,直接返回错误;
②如果数据访问进程调用栈指纹与之前记录的不一致,则很可能是因为漏洞被恶意攻击者利用,返回错误;
③如果调用栈指纹信息一致,则可以采用两种方式返回结果,两种任选其一;
A、直接返回secret凭证信息;
B、通知checking进程设置app1进程下一条指令的位置为断点,然后返回加密的secret凭证信息(如通过随机字符异或处理后的数据),在app1进程从读取系统调用返回后得到加密后的secret凭证信息,会被中断执行,checking进程解密secret凭证信息并注入到app1,读到的secret凭证信息后,让app1进程继续执行;
(2)通知checking进程设置app1进程下一条指令的位置为断点,然后返回secret凭证信息的随机映射id,在app1进程从读取系统调用返回后继续被挂起,checking进程从app1进程内存里读取随机映射id后,向secretmanager进程同时发送映射id和app1的调用栈指纹,secretmanager获得映射id和app1调用栈指纹后,判断是否是合法请求,如果合法返回secret凭证信息给checking,由checking回注给app1进程;如果非法,由checkping修改app1进程读到的返回值(以反应读取错误)或者不做处理,让app1继续执行。
3、app1继续按原有流程执行,如果合法访问则不受任何影响。
本申请所述数据获取方法,基于fuse文件系统的用户态文件系统挂起了应用对凭证的数据访问进程,并可以通过Ptrace技术获取应用的CPU调用栈,基于此技术收集合法访问调用栈指纹,并用于判断非法访问,从而实现了第一数据的安全获取,防止访问数据被意外窃取。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
上述本申请公开的实施例中详细描述了方法,对于本申请的方法可采用多种形式的装置实现,因此本申请还公开了一种装置,下面给出具体的实施例进行详细说明。
图7为本申请实施例公开的一种数据获取装置的结构示意图。参加图7所示,数据获取装置70可以包括:
请求接收模块701,用于获得第一应用发出的数据读取请求,触发数据访问进程,所述数据读取请求的读取对象为第一数据,所述第一应用运行在第一运行环境中,所述第一运行环境为容器运行环境。
访问处理模块702,用于将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求。
数据获得模块703,用于获得所述数据管理系统在访问检验通过后返回的第二数据,并释放挂起的所述数据访问进程。
结果获得模块704,用于根据返回的第二数据获得所述第一数据。
本实施例所述数据获取装置,不会使远端的访问数据以明文形式挂载在本地系统中,而是将远端的访问数据以不能够被直接读取的方式映射到本地上,从而在第一运行环境中的应用运行时干预访问数据的读取,防止访问数据被意外窃取,保障数据的安全性。
一个实现中,访问处理模块具体可用于:通过用户态文件系统将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求;其中,所述用户态文件系统用于映射远端的所述数据管理系统中的数据,在所述第一运行环境启动过程中,对所述用户态文件系统和所述第一运行环境的文件系统执行挂载操作。
一个实现中,访问处理模块具体可用于:读取操作的系统调用从所述用户态文件系统中读取与所述第一数据对应的接口;通过操作系统内核将所述数据访问进程挂起;通过所述接口向远端的数据管理系统发送所述数据读取请求。
一个实现中,所述访问检验表征对所述第一运行环境中的检验信息进行检验,所述检验信息表征所述数据访问进程的相关信息。
一个实现中,所述检验信息包括所述第一应用的合法访问调用栈指纹。
一个实现中,数据获取装置还包括:信息接收模块,用于在所述比对校验的检验结果表征访问校验未通过的情况下,返回错误指示信息。
一个实现中,结果获得模块具体可用于:通过终端执行的方式对所述第二数据进行处理,得到所述第一数据。
一个实现中,数据获得模块具体可用于:获得所述数据管理系统发送的数据映射ID;向所述数据管理系统发送所述数据映射ID和所述第一应用的调用栈指纹;在所述数据管理系统对所述数据映射ID和所述调用栈指纹校验通过后,获得所述数据管理系统返回的所述第二数据。
上述实施例中的所述的任意一种数据获取装置包括处理器和存储器,上述实施例中的请求接收模块、访问处理模块、数据获得模块、结果获得模块等均作为程序模块存储在存储器中,由处理器执行存储在所述存储器中的上述程序模块来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序模块。内核可以设置一个或多个,通过调整内核参数来实现回访数据的处理。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
在示例性实施例中,还提供了一种计算机可读存储介质,可直接加载到计算机的内部存储器,其中含有软件代码,该计算机程序经由计算机载入并执行后能够实现上述数据获取方法任一实施例所示步骤。
在示例性实施例中,还提供一种计算机程序产品,可直接加载到计算机的内部存储器,其中含有软件代码,该计算机程序经由计算机载入并执行后能够实现上述所述的数据获取方法任一实施例所示步骤。
进一步,本申请实施例提供了一种电子设备。图8为本申请实施例公开的一种电子设备的结构示意图。参见图8所示,电子设备包括至少一个处理器801、以及与处理器连接的至少一个存储器802、总线803;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的数据获取方法。
其中,所述程序指令包括:获得第一应用发出的数据读取请求,触发数据访问进程,所述数据读取请求的读取对象为第一数据,所述第一应用运行在第一运行环境中,所述第一运行环境为容器运行环境;将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求;获得所述数据管理系统在访问检验通过后返回的第二数据,并释放挂起的所述数据访问进程;根据返回的第二数据获得所述第一数据。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据获取方法,包括:
获得第一应用发出的数据读取请求,触发数据访问进程,所述数据读取请求的读取对象为第一数据,所述第一应用运行在第一运行环境中,所述第一运行环境为容器运行环境;
将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求;
获得所述数据管理系统在访问检验通过后返回的第二数据,并释放挂起的所述数据访问进程;
根据返回的第二数据获得所述第一数据。
2.根据权利要求1所述的数据获取方法,所述将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求,包括:
通过用户态文件系统将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求;
其中,所述用户态文件系统用于映射远端的所述数据管理系统中的数据,在所述第一运行环境启动过程中,对所述用户态文件系统和所述第一运行环境的文件系统执行挂载操作。
3.根据权利要求2所述的数据获取方法,所述通过用户态文件系统将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求,包括:
读取操作的系统调用从所述用户态文件系统中读取与所述第一数据对应的接口;
通过操作系统内核将所述数据访问进程挂起;
通过所述接口向远端的数据管理系统发送所述数据读取请求。
4.根据权利要去1所述的数据读取方法,所述访问检验表征对所述第一运行环境中的检验信息进行检验,所述检验信息表征所述数据访问进程的相关信息。
5.根据权利要求4所述的数据读取方法,所述检验信息包括所述第一应用的合法访问调用栈指纹。
6.根据权利要求4所述的数据读取方法,还包括:
在所述比对校验的检验结果表征访问校验未通过的情况下,返回错误指示信息。
7.根据权利要求1所述的数据获取方法,所述根据返回的第二数据获得所述第一数据,包括:
通过终端执行的方式对所述第二数据进行处理,得到所述第一数据。
8.根据权利要求1所述的数据获取方法,所述获得所述数据管理系统在访问检验通过后返回的第二数据,包括:
获得所述数据管理系统发送的数据映射ID;
向所述数据管理系统发送所述数据映射ID和所述第一应用的调用栈指纹;
在所述数据管理系统对所述数据映射ID和所述调用栈指纹校验通过后,获得所述数据管理系统返回的所述第二数据。
9.一种数据获取装置,包括:
请求接收模块,用于获得第一应用发出的数据读取请求,触发数据访问进程,所述数据读取请求的读取对象为第一数据,所述第一应用运行在第一运行环境中,所述第一运行环境为容器运行环境;
访问处理模块,用于将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求;
数据获得模块,用于获得所述数据管理系统在访问检验通过后返回的第二数据,并释放挂起的所述数据访问进程;
结果获得模块,用于根据返回的第二数据获得所述第一数据。
10.一种电子设备,包括:
处理器;
存储器,用于存储所述处理器的可执行程序指令;
其中,所述可执行程序指令包括:获得第一应用发出的数据读取请求,触发数据访问进程,所述数据读取请求的读取对象为第一数据,所述第一应用运行在第一运行环境中,所述第一运行环境为容器运行环境;将所述数据访问进程挂起,并向远端的数据管理系统发送所述数据读取请求;获得所述数据管理系统在访问检验通过后返回的第二数据,并释放挂起的所述数据访问进程;根据返回的第二数据获得所述第一数据。
CN202210318544.7A 2022-03-29 2022-03-29 一种数据获取方法、装置及电子设备 Pending CN114662150A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210318544.7A CN114662150A (zh) 2022-03-29 2022-03-29 一种数据获取方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210318544.7A CN114662150A (zh) 2022-03-29 2022-03-29 一种数据获取方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN114662150A true CN114662150A (zh) 2022-06-24

Family

ID=82032689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210318544.7A Pending CN114662150A (zh) 2022-03-29 2022-03-29 一种数据获取方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN114662150A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115186300A (zh) * 2022-09-08 2022-10-14 粤港澳大湾区数字经济研究院(福田) 文件安全处理系统及文件安全处理方法
CN116990203A (zh) * 2023-09-26 2023-11-03 天宇利水信息技术成都有限公司 基于声光信号融合的水沙通量同步在线监测方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901313A (zh) * 2010-06-10 2010-12-01 中科方德软件有限公司 一种Linux文件保护系统及方法
CN110308955A (zh) * 2019-06-05 2019-10-08 阿里巴巴集团控股有限公司 一种接口调用方法、系统及设备
US20200034528A1 (en) * 2018-07-27 2020-01-30 BicDroid Inc. Personalized and cryptographically secure access control in trusted execution environment
CN112965761A (zh) * 2021-03-10 2021-06-15 中国民航信息网络股份有限公司 一种数据处理方法、系统、电子设备及存储介质
CN114090096A (zh) * 2022-01-21 2022-02-25 成都云祺科技有限公司 一种网络虚拟文件系统实现方法、系统及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901313A (zh) * 2010-06-10 2010-12-01 中科方德软件有限公司 一种Linux文件保护系统及方法
US20200034528A1 (en) * 2018-07-27 2020-01-30 BicDroid Inc. Personalized and cryptographically secure access control in trusted execution environment
CN110308955A (zh) * 2019-06-05 2019-10-08 阿里巴巴集团控股有限公司 一种接口调用方法、系统及设备
CN112965761A (zh) * 2021-03-10 2021-06-15 中国民航信息网络股份有限公司 一种数据处理方法、系统、电子设备及存储介质
CN114090096A (zh) * 2022-01-21 2022-02-25 成都云祺科技有限公司 一种网络虚拟文件系统实现方法、系统及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115186300A (zh) * 2022-09-08 2022-10-14 粤港澳大湾区数字经济研究院(福田) 文件安全处理系统及文件安全处理方法
CN116990203A (zh) * 2023-09-26 2023-11-03 天宇利水信息技术成都有限公司 基于声光信号融合的水沙通量同步在线监测方法及系统
CN116990203B (zh) * 2023-09-26 2023-12-15 天宇利水信息技术成都有限公司 基于声光信号融合的水沙通量同步在线监测方法及系统

Similar Documents

Publication Publication Date Title
US11514159B2 (en) Method and system for preventing and detecting security threats
CN107463838B (zh) 基于sgx的安全监控方法、装置、系统及存储介质
US8474032B2 (en) Firewall+ storage apparatus, method and system
CN102624699B (zh) 一种保护数据的方法和系统
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
JP2016506107A (ja) 仮想マシンのための管理制御方法、装置及びシステム
CN114662150A (zh) 一种数据获取方法、装置及电子设备
WO2016065636A1 (zh) 用于终端的数据管理方法、数据管理装置和终端
CN110968872A (zh) 文件漏洞的检测处理方法、装置、电子设备及存储介质
US20170201528A1 (en) Method for providing trusted service based on secure area and apparatus using the same
CN108595950A (zh) 一种结合远程认证的sgx安全增强方法
JP2012008732A (ja) インストール制御装置およびプログラム
CN103034811B (zh) 一种文件处理的方法、系统及装置
Xu et al. Security enhancement of secure USB debugging in Android system
CN115391783A (zh) 客户机远程开启电脑方法、设备及云桌面客户机
US9633207B2 (en) Method for downloading at least one software component onto a computing device, and associated computer program product, computing device and computer system
CN114070548A (zh) 一种基于软加密狗装置的软件版权加密保护方法
Nazar et al. Rooting Android–Extending the ADB by an auto-connecting WiFi-accessible service
CN111814137A (zh) 终端的运维方法、运维系统及存储介质
CN118260774B (zh) 服务器的启动方法及装置、存储介质及电子设备
CN111177726A (zh) 一种系统漏洞检测方法、装置、设备及介质
CN115587342B (zh) 一种软件产品授权许可保护系统及方法
KR101003242B1 (ko) 유에스비 메모리 장치에 저장된 소프트웨어 불법복제방지 시스템 및 유에스비 메모리 장치에 저장된 소프트웨어를 실행하는 방법
JP2004118433A (ja) 外部プログラムの動作制御方法、動作制御プログラム、動作制御装置、及び、動作制御プログラム提供装置
CN113806716A (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