CN113111384A - 一种防止Linux执行中的进程信息泄露的方法 - Google Patents

一种防止Linux执行中的进程信息泄露的方法 Download PDF

Info

Publication number
CN113111384A
CN113111384A CN202110435624.6A CN202110435624A CN113111384A CN 113111384 A CN113111384 A CN 113111384A CN 202110435624 A CN202110435624 A CN 202110435624A CN 113111384 A CN113111384 A CN 113111384A
Authority
CN
China
Prior art keywords
combination
path
sys
open function
linux
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
CN202110435624.6A
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.)
Hangzhou Dawancheng Information Technology Co ltd
Original Assignee
Hangzhou Dawancheng Information Technology 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 Hangzhou Dawancheng Information Technology Co ltd filed Critical Hangzhou Dawancheng Information Technology Co ltd
Priority to CN202110435624.6A priority Critical patent/CN113111384A/zh
Publication of CN113111384A publication Critical patent/CN113111384A/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/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application

Landscapes

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

Abstract

本发明公开了一种防止Linux执行中的进程信息泄露的方法,其包括以下步骤:(1)通过kprobes技术挂钩系统内核函数中的do_sys_open函数,判断do_sys_open函数每次打开文件时,其对象的路径是否为/proc/数字组合/*,其中的数字组合是若干个数字的组合,*是通配符,代表任意字符的组合;(2)如果对象的路径不是/proc/数字组合/*,则继续执行do_sys_open函数;(3)如果对象的路径是/proc/数字组合/*,则执行以下步骤:(3.1)提取数字组合,并转换为struct task_struct结构;(3.2)获取task_struct结构中对应的系统进程的全路径;(3.3)判断步骤(3.2)中获得的全路径,若为受保护进程的路径,则修改路径名,以阻止do_sys_open函数的访问;从而阻止系统去读导出的信息,进而起到保护作用。

Description

一种防止Linux执行中的进程信息泄露的方法
技术领域
本发明属于软件领域,尤其涉及一种防止Linux执行中的进程信息泄露的方法。
背景技术
程序和程序之间,经常通过命令行方式传递参数,这参数里面可能包含涉密信息。以最常用的VeraCrypt为例其用于加密磁盘,由于Linux本身的“缺陷”,只要VeraCrypt这个进程不退出,是很容易泄露的。比如,执行ps-ef命令,可以很清晰地获取传递的密钥。通过逆向分析类似ps-ef命令,可以发现该类命令,可以发现该命令是从Linux系统的/proc目录下获取信息的。当Linux系统生成一个进程后,如果其他进程想要获取这个进程的信息,通过类似ps的命令获得,系统会把相关的信息导出到这个目录下,造成信息泄露。
发明内容
为了克服上述问题,本发明提供一种在系统试图将受保护进程的信息导出前,阻止其导出的防止Linux进程信息泄露的方法。
本发明的技术方案是提供防止Linux执行中的进程信息泄露的方法,其是一种在Linux操作系统下执行、用以保护特定进程的信息的方法,其特征在于,包括以下步骤:
(1)通过kprobes技术挂钩系统内核函数中的do_sys_open函数,判断do_sys_open函数每次打开文件时,其对象的路径是否为/proc/数字组合/*,其中的数字组合是若干个数字的组合,*是通配符,代表任意字符的组合;
(2)如果对象的路径不是/proc/数字组合/*,则继续执行do_sys_open函数;
(3)如果对象的路径是/proc/数字组合/*,则执行以下步骤:
(3.1)提取所述数字组合,并转换为struct task_struct结构以将所述数字组合转换为数字类型,作为进程ID;
(3.2)在进程队列里面寻找该进程ID,以获取该进程ID对应的全路径;
(3.3)判断步骤(3.2)中获得的全路径,该全路径若为所述特定进程对应的路径,则修改do_sys_open函数的返回路径,使其不同于所述特定进程对应的路径,以保护所述特定进程;否则则正常执行do_sys_open函数。
优选的,所述特定进程是通过命令行执行veracrypt命令的进程,所述特定进程对应的路径为/usr/bin/veracrypt。
优选的,所述步骤(3.1)中,提取数字组合,并转换为struct task_struct结构的方法是:采用kstrtoint函数将进程ID的数据类型从字符串转换为整数。
优选的,所述步骤(3.3)中,修改路径名的方法是将所述数字组合修改为0。
优选的,所述步骤(3.3)中,修改路径名的方法还包括将do_sys_open函数的返回值设为0。
优选的,所述步骤(3.2)中,在进程队列里面寻找该进程ID,以获取该进程ID对应的全路径的方法是,调用系统函数for_each_process来遍历全部的系统进程。
本发明的防止Linux进程信息泄露的方法,预先要知道受保护的进程的映像路径名和文件内容哈希,当导出事件发生时,通过进程ID,获取到进程映像路径名和文件内容哈希,以判断是否是受保护进程的id和其导出路径;从而阻止系统去读导出的信息,进而起到保护作用。
附图说明
图1是本发明的原理示意图。
具体实施方式
下面对本发明的具体实施方式作进一步详细的描述。
如图1所示,一种防止Linux执行中的进程信息泄露的方法,其是一种在Linux操作系统下执行的方法,所述加密命令是通过Linux命令行执行的,包括以下步骤:
(1)Linux操作系统提供了一种叫做kprobes的技术,允许在内核的函数中挂钩(hook)来监视内核的行为。kprobes调试技术是内核开发者们专门为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。利用kprobes技术,内核开发人员可以在内核的绝大多数指定函数中动态的插入探测点来收集所需的调试状态信息而基本不影响内核原有的执行流程。kprobes技术目前提供了3种探测手段:kprobe、jprobe和kretprobe,其中jprobe和kretprobe是基于kprobe实现的,他们分别应用于不同的探测场景中。通过kprobes技术挂钩系统内核函数中的do_sys_open函数,在其中加入自定义的流程,详见后续的源代码。该流程会判断do_sys_open函数每次打开文件时,其对象的路径是否为/proc/数字组合/*,其中的数字组合是若干个数字的组合,*是通配符,代表任意字符的组合;
(2)如果对象的路径不是/proc/数字组合/*,则继续执行do_sys_open函数;
(3)如果对象的路径是/proc/数字组合/*,则执行以下步骤:
(3.1)提取数字组合,并转换为struct task_struct结构以将所述数字组合转换为数字类型,作为进程ID;
(3.2)在进程队列里面寻找该进程ID,以获取对应的系统进程的全路径;
(3.3)判断步骤(3.2)中获得的全路径,若为加密进程的路径,则修改路径名,以阻止do_sys_open函数的访问。
进一步地,特定进程是通过命令行执行veracrypt命令的进程。用户可通过veracrypt命令进行加密或解密的操作。加密或解密的过程中,其中的密钥信息可通过ps–ef命令等,从系统中获取,从而发生泄密。为保护密钥,则判断步骤(3.2)中获得的全路径是否为VeraCrypt进程的路径:/usr/bin/veracrypt,如是则修改路径名(比如路径是/proc/1234,则把路径改成非法的路径/proc/0,),以阻止访问,达到防止密钥泄露的目的。当然,特定进程也可以是任何其他需要保护的进程。
进一步地,所述步骤(3.1)中,提取数字组合,并转换为struct task_struct结构的方法是:采用kstrtoint函数将进程ID字符串转换为整数。
进一步地,所述数字组合修改为0,所述通配符修改为0。
该方法的最佳实施例的源代码为:
Figure BDA0003032889340000031
Figure BDA0003032889340000041
Figure BDA0003032889340000051
Figure BDA0003032889340000061
Figure BDA0003032889340000071
本方法的原理是首先预先要知道受保护的进程的映像路径名和文件内容哈希,当导出事件发生时,通过进程ID,获取到进程映像路径名和文件内容哈希,以知道是受保护进程的id和其导出路径。在系统试图阻止去读导出信息,从而起到保护作用。
以上实施例仅为本发明其中的一种实时方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,再不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (6)

1.一种防止Linux执行中的进程信息泄露的方法,其是一种在Linux操作系统下执行、用以保护特定进程的信息的方法,其特征在于,包括以下步骤:
(1)通过kprobes技术挂钩系统内核函数中的do_sys_open函数,判断do_sys_open函数每次打开文件时,其对象的路径是否为/proc/数字组合/*,其中的数字组合是若干个数字的组合,*是通配符,代表任意字符的组合;
(2)如果对象的路径不是/proc/数字组合/*,则继续执行do_sys_open函数;
(3)如果对象的路径是/proc/数字组合/*,则执行以下步骤:
(3.1)提取所述数字组合,并转换为struct task_struct结构以将所述数字组合转换为数字类型,作为进程ID;
(3.2)在进程队列里面寻找该进程ID,以获取该进程ID对应的全路径;
(3.3)判断步骤(3.2)中获得的全路径,该全路径若为所述特定进程对应的路径,则修改do_sys_open函数的返回路径,使其不同于所述特定进程对应的路径,以保护所述特定进程;否则则正常执行do_sys_open函数。
2.根据权利要求1所述的一种防止Linux命令行密钥泄露的方法,其特征在于:所述特定进程是通过命令行执行veracrypt命令的进程,所述特定进程对应的路径为/usr/bin/veracrypt。
3.根据权利要求1所述的一种防止Linux命令行密钥泄露的方法,其特征在于:所述步骤(3.1)中,提取数字组合,并转换为struct task_struct结构的方法是:采用kstrtoint函数将进程ID的数据类型从字符串转换为整数。
4.权利要求1所述的一种防止Linux命令行密钥泄露的方法,其特征在于:所述步骤(3.3)中,修改路径名的方法是将所述数字组合修改为0。
5.权利要求1所述的一种防止Linux命令行密钥泄露的方法,其特征在于:所述步骤(3.3)中,修改路径名的方法还包括将do_sys_open函数的返回值设为0。
6.权利要求1所述的一种防止Linux命令行密钥泄露的方法,其特征在于:所述步骤(3.2)中,在进程队列里面寻找该进程ID,以获取该进程ID对应的全路径的方法是,调用系统函数for_each_process来遍历全部的系统进程。
CN202110435624.6A 2021-04-22 2021-04-22 一种防止Linux执行中的进程信息泄露的方法 Pending CN113111384A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110435624.6A CN113111384A (zh) 2021-04-22 2021-04-22 一种防止Linux执行中的进程信息泄露的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110435624.6A CN113111384A (zh) 2021-04-22 2021-04-22 一种防止Linux执行中的进程信息泄露的方法

Publications (1)

Publication Number Publication Date
CN113111384A true CN113111384A (zh) 2021-07-13

Family

ID=76719401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110435624.6A Pending CN113111384A (zh) 2021-04-22 2021-04-22 一种防止Linux执行中的进程信息泄露的方法

Country Status (1)

Country Link
CN (1) CN113111384A (zh)

Similar Documents

Publication Publication Date Title
US7140005B2 (en) Method and apparatus to test an instruction sequence
US7607122B2 (en) Post build process to record stack and call tree information
US7237123B2 (en) Systems and methods for preventing unauthorized use of digital content
US6907396B1 (en) Detecting computer viruses or malicious software by patching instructions into an emulator
US10235520B2 (en) System and method for analyzing patch file
US11159541B2 (en) Program, information processing device, and information processing method
CN101136049B (zh) 信息处理系统和信息处理方法
US11822654B2 (en) System and method for runtime detection, analysis and signature determination of obfuscated malicious code
US7631356B2 (en) System and method for foreign code detection
CN107690645A (zh) 使用解释器虚拟机的行为恶意软件检测
RU2723665C1 (ru) Динамический индикатор репутации для оптимизации операций по обеспечению компьютерной безопасности
US7284276B2 (en) Return-to-LIBC attack detection using branch trace records system and method
US7251735B2 (en) Buffer overflow protection and prevention
JPWO2005024630A1 (ja) 不正コードの防止方法および防止プログラム
CN110188547B (zh) 一种可信加密系统及方法
KR101064164B1 (ko) 리눅스 커널 기반 스마트 플랫폼 내에서의 커널 무결성 검사 및 변조된 커널 데이터 복구 방법
CN109117201B (zh) 一种程序退出的方法及相关设备
CN110135151B (zh) 基于lsm与系统调用拦截相配合的可信计算实现系统及方法
JP2006330864A (ja) サーバ計算機システムの制御方法
EP4016343A1 (en) Processor arrangement for monitoring control-flow integrity
CN113111384A (zh) 一种防止Linux执行中的进程信息泄露的方法
Petkovic et al. A host based method for data leak protection by tracking sensitive data flow
KR100746944B1 (ko) 정보 유출 방지 방법 및 정보 유출 방지를 수행하는프로그램이 저장된 기록 매체
CN111832054B (zh) 一种基于多线程环境的透明加解密方法、系统及存储介质
US20220407695A1 (en) Electronic device and control method thereof

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