CN105335651B - 一种基于Linux操作系统的进程防护方法 - Google Patents

一种基于Linux操作系统的进程防护方法 Download PDF

Info

Publication number
CN105335651B
CN105335651B CN201510684816.5A CN201510684816A CN105335651B CN 105335651 B CN105335651 B CN 105335651B CN 201510684816 A CN201510684816 A CN 201510684816A CN 105335651 B CN105335651 B CN 105335651B
Authority
CN
China
Prior art keywords
signal
sys
linux
management
kernel
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
CN201510684816.5A
Other languages
English (en)
Other versions
CN105335651A (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.)
China Electronics Technology Network Security Technology Co ltd
Original Assignee
Chengdu Westone Information Industry Inc
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 Chengdu Westone Information Industry Inc filed Critical Chengdu Westone Information Industry Inc
Priority to CN201510684816.5A priority Critical patent/CN105335651B/zh
Publication of CN105335651A publication Critical patent/CN105335651A/zh
Application granted granted Critical
Publication of CN105335651B publication Critical patent/CN105335651B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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

Abstract

本发明涉及Linux系统中运行的进程安全防护领域,尤其是涉及一种基于Linux操作系统的进程防护方法及装置。本发明针对现有技术存在的问题,提出一种方法,该方法采用对Linux操作系统的信号传递机制进行管控,进而保护操作系统的进程。本发明过程包括Linux操作系统某线程发送信号时,该线程调用sys_kill类系统调用函数,然后通过无条件转移指令到内核管控模块处;内核管控模块并判断该信号的源进程、目的进程以及类型;如果该信号的目的进程是受保护进程的,则丢弃此信号,并直接返回错误码;内核管控模块屏蔽此信号的后续处理;否则,行操作系统原来的信号处理流程、完成整个执行过程。

Description

一种基于Linux操作系统的进程防护方法
技术领域
本发明涉及Linux系统中运行的进程安全防护领域,尤其是涉及一种基于Linux操作系统的进程防护方法。
背景技术
在信息安全领域,为了保护系统的安全,需要对系统进行不间断的守护,也即是守护进程不能被意外,甚至被恶意软件故意的强制退出。一旦被强制退出,整个系统的安全将不被保护。
为了保证守护进程的安全,因此需要一种技术避免守护进程被其他人退出,甚至恶意kill掉。
发明内容
本发明的目的在于:针对现有技术存在的问题,本发明提出一种方法,该方法采用对Linux操作系统的信号(signal)传递机制进行管控,在操作系统内核中的信号传递的入口点进行判断,对信号的产生原源、目的、原因进行判断,如果是恶意的发给受保护进程的信号将被截获并丢弃,并记录相关信息。
本发明目的通过下述技术方案来实现:
一种基于Linux操作系统的进程防护方法包括:
步骤1:内核模块在proc文件系统中创建一个文件,用户态将所述文件中需要保护的进程参数传递到内核模块,并对需要保护的信号在运行过程中进行保护;
步骤2:加载内核模块,生成对Linux操作系统的sys_kill系统调用函数进行管控的内核管控模块;
步骤3:Linux操作系统某线程发送信号时,首先该线程调用sys_kill系统调用函数,然后通过无条件转移指令到步骤2生成的对操作系统sys_kill类系统调用函数管控的内核管控模块处;内核管控模块保存该线程的相关寄存器、获取该线程函数的参数,并判断该信号的源进程、目的进程以及类型;
步骤4:如果该信号的目的进程是受保护进程的保护信号,则内核管控模块丢弃此信号,并直接返回调用线程相应的无权限操作的错误码;内核管控模块屏蔽此信号的后续处理;如果信号目的进程不需要保护,则执行操作系统原来的信号处理流程、完成整个执行过程。
进一步的,所述用户态将所述文件中需要保护的进程的相关参数传递到内核模块的方法是使用Lunix操作系统的普通文件接口操作内核模块在proc文件系统中创建的文件,并由该文件传递到内核模块。
进一步的,所述加载内核模块,生成对操作系统的sys_kill系统调用函数进行管控指令,是在操作系统运行期间动态生成的。
进一步的,所述操作系统在线程发送信号时,调用sys_kill系统调用函数后,通过无条件转移指令的方式快速的跳转到对操作系统的sys_kill系统调用函数进行管控指令。
进一步的,所述步骤4中如果信号目的进程不需要保护,执行操作系统原来的信号处理流程、完成整个执行过程具体过程是:将执行通过无条件转移指令转移时,被覆盖的sys_kill系统调用函数指令,然后跳转到原sys_kill系统调用函数被覆盖指令之后,执行linux原来的流程处理信号。
本发明的有益效果:
1、在操作系统运行过程中,实时生成监控Linux信号处理接口的指令。对内核中信号模块的入口点(sys_kill系统调用函数等)进行管控,当操作系统中有线程发送信号时,本发明对信号进行分析、判断,如果信号目的进程是受保护进程相关的保护信号,则丢弃此信号,并直接返回调用线程相应的无权限操作的错误码,操作系统对此信号的后续处理被屏蔽,从而阻断信号传递到被保护的进程,达到保护进程的目的。
2、本发明不仅可以对普通的信号进行保护屏蔽,对SIGKILL/SIGTERM也能够进行保护。
3、本发明对操作系统进程进行保护时,使用信号来源、信号的类型、信号目的进行处理。信号类型、信号目的可以判断目标是否被保护,而不被保护的进程的信号则仍旧使用操作系统的信号处理机制。从而达到既保护系统进程、又不影响操作系统进程所有其他信号的正确传递。
4、采用本发明的技术方法,在不影响操作系统正常信号机制的情况下,对特定的进程进行保护。对操作系统信号处理模块的信号入口进行管控,对信号的类型、源、目的、信号类型进行组合分析,从而确定此信号是否能够送达目的,如果目的不需要保护,则利用系统原机制将信号送达目的,如果目的受保护,或者源无发送信号权限,此时本系统将当期的信号丢弃,直接给源返回相应的错误码。
附图说明
图1本发明原理图。
具体实施方式
下列非限制性实施例用于说明本发明。
本发明技术包括两部分,一部分是用户态,另一部分是内核模块, 两部分通过proc文件系统交互。
用户态部分:提供进程申请保护,用户态通过proc文件将信息传递给内核管控模块。
内核态部分: 对Linux操作系统内核的信号处理接口进行管控,在管控过程中先获取接口函数的参数,根据参数的值判断此信号的目的地(接收信号的进程),如果目的进程此信号收到保护,则将此信号丢弃,否则信号按照系统的默认方式处理。
实施方式一包括:
步骤1:用户态通过内核模块创建proc文件系统的文件,将所述文件中需要保护的进程的参数传递到内核模块,并对需要保护的信号在运行过程中进行保护;
步骤2:加载内核模块,生成对Linux操作系统的sys_kill系统调用函数进行管控的内核管控模块;
步骤3:Linux操作系统在某线程发送信号时,首先调用sys_kill系统调用函数,然后通过无条件转移指令到步骤2生成的对操作系统的内核管控模块;内核管控模块保存该线程的相关寄存器、获取该线程函数的参数,并对该信号的源进程、目的进程以及类型进行判断。
步骤4:如果该信号的目的进程是受保护进程的保护信号,则丢弃此信号,并直接返回调用线程相应的无权限操作的错误码,操作系统屏蔽此信号的后续处理,从而阻断信号传递到被保护的进程,达到保护进程的目的。
步骤5:如果信号目的进程不需要保护,则完整执行操作系统原来的信号处理流程、完成整个执行过程。
实施方式二:
1、用户态库通过内核模块创建的proc文件系统的文件,并使用操作系统的普通文件接口操作proc中的文件,将参数传递内核模块,并对写入的进程的相关的信号在其运行过程中进行保护。
2、通过动态生成机器指令控制码对内核态的sys_kill系统调用函数进行接管并监控,对于受保护的进程,进行信号过滤:
a)如果是其他进程发送的信号,包括SIGKILL/SIGTER等信号进行过滤,并根据用户的设置判断是否让此信号发送到目的进程,并直接返回权限不够的错误码。
b)如果是由于进程自身的原因产生的信号,则让其通过系统原有的信号机制传递信号。
如图1所述,步骤1:通过无条件转移指令将sys_kill系统调用函数的控制权转移到控制模块;
步骤2:保持当前线程的执行环境(通用寄存器和返回地址信息),获取被监控函数的参数;
步骤3:根据步骤2获得的参数判断是否目的进程受保护的信号;
步骤4:如果被保护,此线程将从此步骤返回,sys_kill系统调用函数将不会被执行。也即是信号不能发送到目的进程,从而达到保护的目的;
步骤5:如果不受保护,则在此处调用的sys_kill系统调用函数被覆盖指令的等价指令,执行完被覆盖指令后;
步骤6:执行被监控sys_kill系统调用函数没有被覆盖的指令;
步骤7:被监控的sys_kill系统调用函数返回之后,获取步骤2保持的真实返回地址并返回。
对于非监控进程的信号,控制码在判断完非监控进程后,转而执行系统原信号处理流程。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种基于Linux操作系统的进程防护方法,其特征在于包括:
步骤1:内核模块在proc文件系统中创建一个文件,用户态将所述文件中需要保护的进程参数传递到内核模块,并对需要保护的信号在运行过程中进行保护;所述用户态将所述文件中需要保护的进程参数传递到内核模块的方法是使用Lunix操作系统的普通文件接口操作内核模块在proc文件系统中创建的文件,并由该文件传递到内核模块;
步骤2:加载内核模块,生成对Linux操作系统的sys_kill系统调用函数进行管控的内核管控模块;
步骤3:Linux操作系统某线程发送信号时,首先该线程调用sys_kill系统调用函数,然后通过无条件转移指令到步骤2生成的对操作系统sys_kill系统调用函数管控的内核管控模块处;内核管控模块保存该线程的相关寄存器、获取该线程函数的参数,并判断该信号的源进程、目的进程以及类型;
步骤4:如果该信号的目的进程是受保护进程的保护信号,则内核管控模块丢弃此信号,并直接返回无权限操作的错误码给调用sys_kill系统调用函数的线程;内核管控模块屏蔽此信号的后续处理;如果信号目的进程不需要保护,则执行操作系统原来的信号处理流程、完成整个执行过程;
其中,所述步骤4中如果信号目的进程不需要保护,执行操作系统原来的信号处理流程、完成整个执行过程具体过程是:将执行通过无条件转移指令转移时,被覆盖的sys_kill系统调用函数,然后跳转到原sys_kill系统调用函数被覆盖指令之后,执行linux原来的流程处理信号,被监控的sys_kill系统调用函数返回之后,获取步骤2保持的真实返回地址并返回。
2.根据权利要求1中所述的一种基于Linux操作系统的进程防护方法,其特征在于所述加载内核模块,生成对操作系统的sys_kill系统调用函数进行管控指令,是在操作系统运行期间动态生成的。
3.根据权利要求1中所述的一种基于Linux操作系统的进程防护方法,其特征在于所述操作系统在线程发送信号时,调用sys_kill系统调用函数后,通过无条件转移指令的方式快速的跳转到对操作系统的sys_kill系统调用函数进行管控指令。
CN201510684816.5A 2015-10-22 2015-10-22 一种基于Linux操作系统的进程防护方法 Active CN105335651B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510684816.5A CN105335651B (zh) 2015-10-22 2015-10-22 一种基于Linux操作系统的进程防护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510684816.5A CN105335651B (zh) 2015-10-22 2015-10-22 一种基于Linux操作系统的进程防护方法

Publications (2)

Publication Number Publication Date
CN105335651A CN105335651A (zh) 2016-02-17
CN105335651B true CN105335651B (zh) 2018-09-18

Family

ID=55286171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510684816.5A Active CN105335651B (zh) 2015-10-22 2015-10-22 一种基于Linux操作系统的进程防护方法

Country Status (1)

Country Link
CN (1) CN105335651B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672445A (zh) * 2020-05-13 2021-11-19 华为技术有限公司 记录目标程序运行状态信息的方法以及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1834978A (zh) * 2005-03-14 2006-09-20 株式会社Ntt都科摩 访问控制装置以及访问控制方法
CN101206692A (zh) * 2006-12-20 2008-06-25 联想(北京)有限公司 检测进程的方法及设备
CN102982283A (zh) * 2012-11-27 2013-03-20 蓝盾信息安全技术股份有限公司 一种杀死受保护的恶意计算机进程的系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341649B2 (en) * 2004-07-06 2012-12-25 Wontok, Inc. System and method for handling an event in a computer system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1834978A (zh) * 2005-03-14 2006-09-20 株式会社Ntt都科摩 访问控制装置以及访问控制方法
CN101206692A (zh) * 2006-12-20 2008-06-25 联想(北京)有限公司 检测进程的方法及设备
CN102982283A (zh) * 2012-11-27 2013-03-20 蓝盾信息安全技术股份有限公司 一种杀死受保护的恶意计算机进程的系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
网络安全防御系统的研究与设计;苗胜;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20040315(第01期);正文第33-34页 *

Also Published As

Publication number Publication date
CN105335651A (zh) 2016-02-17

Similar Documents

Publication Publication Date Title
KR102306568B1 (ko) 컴퓨터 시스템의 제어 흐름 무결성의 프로세서 트레이스 기반 집행
EP3039608B1 (en) Hardware and software execution profiling
RU2686552C2 (ru) Системы и способы предоставления результата текущей команды процессора при выходе из виртуальной машины
Wang et al. Numchecker: Detecting kernel control-flow modifying rootkits by using hardware performance counters
US10049211B1 (en) Hardware-accelerated prevention of code reuse attacks
Abbasi et al. ECFI: Asynchronous control flow integrity for programmable logic controllers
Yuan et al. Hardware-assisted fine-grained code-reuse attack detection
KR100645983B1 (ko) 불법 프로세스 검출 모듈 및 그 방법
US10140448B2 (en) Systems and methods of asynchronous analysis of event notifications for computer security applications
CN104866762B (zh) 安全管理程序功能
EP2979211B1 (en) Protecting software application
EP2973155B1 (en) Method, apparatus, system, and computer readable medium for providing apparatus security
CN109726549A (zh) 用于采用处理器沙箱支持的不可信代码执行的技术
CN101408917A (zh) 应用程序行为合法性检测方法及系统
KR20180018531A (ko) 인터프리터 가상 머신을 이용한 행동 멀웨어 탐지
KR20140031947A (ko) 가상 분할 모니터링을 위한 시스템 및 방법
US10650147B2 (en) Method and apparatus for ensuring control flow integrity
CN106462508A (zh) 访问控制与代码调度
CN105264540A (zh) 数据处理设备中的软件库的安全保护
GB2552966A (en) Methods and apparatus for protecting domains of a device from unauthorised accesses
CN105404559B (zh) 在数据处理装置中进行除错
CN105335651B (zh) 一种基于Linux操作系统的进程防护方法
Zeng et al. Tailored application-specific system call tables
US20180226136A1 (en) System management mode test operations
CN106775923B (zh) 处理器协助的内核地址空间细粒度管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: No. 333, Yunhua Road, Chengdu hi tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan 610041

Patentee after: China Electronics Technology Network Security Technology Co.,Ltd.

Address before: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041

Patentee before: CHENGDU WESTONE INFORMATION INDUSTRY Inc.

CP03 Change of name, title or address