CN115827103A - 一种程序运行方法及系统 - Google Patents
一种程序运行方法及系统 Download PDFInfo
- Publication number
- CN115827103A CN115827103A CN202211639638.0A CN202211639638A CN115827103A CN 115827103 A CN115827103 A CN 115827103A CN 202211639638 A CN202211639638 A CN 202211639638A CN 115827103 A CN115827103 A CN 115827103A
- Authority
- CN
- China
- Prior art keywords
- program
- parent process
- root
- child process
- parent
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 160
- 230000000977 initiatory effect Effects 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开一种程序运行方法及系统,涉及程序运行领域,该方法包括规划程序中父进程和子进程的目录结构;以root用户权限启动程序中父进程;并对父进程进行环境初始化和配置解析;利用父进程拉起子进程;子进程进行根目录切换,并丢弃掉root用户权限,转为普通用户权限;利用子进程循环处理业务,并发起委托业务至父进程;父进程根据委托业务获取处理结果,并将处理结果发送至子进程。本发明能够在提升安全性的同时,兼顾临时“获取高权限”存取文件、执行命令。
Description
技术领域
本发明涉及程序运行领域,特别是涉及一种程序运行方法及系统。
背景技术
软件系统(或者别称程序)在运行时,会不可避免地存取磁盘上的文件,或者执行磁盘上的命令,以便完成相关功能。
但是,由于程序设计时不太注意,或者根本不在意安全性问题,则会导致程序错误地存取文件、执行命令。例如,读取了系统机密信息,造成机密信息泄露,或者向系统关键文件里面写入了错误的数据,导致系统运行异常。再如,执行了不希望的命令(比如重启、关机),也会导致系统运行出现异常。
另外,当程序遭到攻击时,由于程序运行的权限很高,则会更加容易出现上述安全问题。
而现有技术中以普通用户权限运行程序。以Linux系统为例,存在超级用户root,其拥有系统最高权限,可以存取根文件系统下的任何文件,也可以执行系统中的任何命令。除了root用户,还可以创建非root用户,即其他的、一般的用户,它们对系统文件的存取会受到限制,同时执行的命令也有限。故而,一般会以普通用户权限运行程序,以达到增强安全性的目的。以普通用户权限运行程序,虽说一定程度上增强了程序安全性,但当程序内部需要高权限去存取文件、执行命令时,就没办法操作了。
因此,亟需提供一种提升程序安全性的方法或系统。
发明内容
本发明的目的是提供一种程序运行方法及系统,能够在提升安全性的同时,兼顾临时“获取高权限”存取文件、执行命令。
为实现上述目的,本发明提供了如下方案:
一种程序运行方法,包括:
规划程序中父进程和子进程的目录结构;
以root用户权限启动程序中父进程;并对父进程进行环境初始化和配置解析;
利用父进程拉起子进程;
子进程进行根目录切换,并丢弃掉root用户权限,转为普通用户权限;
利用子进程循环处理业务,并发起委托业务至父进程;
父进程根据委托业务获取处理结果,并将处理结果发送至子进程。
可选地,所述目录结构包括:根文件系统、访问系统中文件的最开始路径、系统用户名、密码信息、程序安装路径、程序以及子进程切换根目录后的根目录。
可选地,所述并对父进程进行环境初始化和配置解析,具体包括:
读取命令行参数、初始化日志系统;
读取配置文件解析配置。
可选地,所述利用子进程循环处理业务,并发起委托业务至父进程,具体包括:
当子进程执行自己权限的网络请求时,获取对应的数据,并将获取的数据返回客户端;
当子进程执行自己权限外的网络请求时,根据对应的网络请求发起委托任务至父进程。
一种程序运行系统,包括:
目录结构规划模块,用于规划程序中父进程和子进程的目录结构;
父进程启动模块,用于以root用户权限启动程序中父进程;并对父进程进行环境初始化和配置解析;
子进程拉起模块,用于利用父进程拉起子进程;
子进程启动模块,用于子进程进行根目录切换,并丢弃掉root用户权限,转为普通用户权限;
委托业务发起模块,用于利用子进程循环处理业务,并发起委托业务至父进程;
委托业务处理模块,用于父进程根据委托业务获取处理结果,并将处理结果发送至子进程。
可选地,所述目录结构包括:根文件系统、访问系统中文件的最开始路径、系统用户名、密码信息、程序安装路径、程序以及子进程切换根目录后的根目录。
可选地,所述父进程启动模块具体包括:
初始化单元,用于读取命令行参数、初始化日志系统;
配置解析单元,用于读取配置文件解析配置。
可选地,所述委托业务发起模块具体包括:
子进程处理单元,用于当子进程执行自己权限的网络请求时,获取对应的数据,并将获取的数据返回客户端;
委托业务发起单元,用于当子进程执行自己权限外的网络请求时,根据对应的网络请求发起委托任务至父进程。
一种程序运行系统,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现所述的一种程序运行方法。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明所提供的一种程序运行方法及系统,程序以父子两个进程运行,父进程以root用户权限先初始化环境,解析配置等,然后拉起子进程,在子进程中进行根目录切换,且丢弃掉root用户权限。而提权操作通过父子进程间通信,子进程委托父进程进行处理。子进程提供具体业务处理,权限低,且切换根目录,其基本上任何文件都读取不了,任何命令也无法执行。即使通过网络攻破了子进程,其对系统造成的破坏也非常小。本发明能够在提升安全性的同时,兼顾临时“获取高权限”存取文件、执行命令。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种程序运行方法流程示意图;
图2为本发明所提供的一种程序运行系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种程序运行方法及系统,能够在提升安全性的同时,兼顾临时“获取高权限”存取文件、执行命令。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
,如图1所示,本发明所提供的一种程序运行方法,包括:
S101,规划程序中父进程和子进程的目录结构;所述目录结构包括:根文件系统、访问系统中文件的最开始路径、系统用户名、密码信息、程序安装路径、程序以及子进程切换根目录后的根目录。
作为一个具体的实施例,/:根文件系统;访问系统中文件的最开始路径;
/etc/passwd:系统用户名、密码信息;
/usr/local/test_priv:我们的程序安装路径;
/usr/local/test_priv/sbin/test_priv:我们的程序;
/usr/local/test_priv/var/run/test_priv:子进程切换根目录后的根目录。
S102,以root用户权限启动程序中父进程;并对父进程进行环境初始化和配置解析;我们的程序“/usr/local/test_priv/sbin/test_priv”以root用户权限启动,其可以访问的目录范围为根目录“/”,即任何内容都能访问,任何命令都能执行。
Windows系统的administrator就是管理员用户,具备所有的权限,zhangsan用户就是普通用户,具备的权限有限;而Linux系统中,root用户是管理员,具备所有的权限,非root用户就是普通用户,权限有限。Linux系统下,程序以文件的形式存储在磁盘上,运行起来后就叫进程,程序文件的所有者为root用户或者其他用户。
S102具体包括:
读取命令行参数、初始化日志系统;
读取配置文件解析配置。
S103,利用父进程拉起子进程;父进程与子进程执行的任务不同。
S104,子进程进行根目录切换,并丢弃掉root用户权限,转为普通用户权限;
子进程切换根目录到“/usr/local/test_priv/var/run/test_priv”,然后进入到自己的根目录下。此后,子进程所能访问的目录范围就只能是自己的根目录,即“/usr/local/test_priv/var/run/test_priv”,其他目录无法访问,例如上面的“/etc/passwd”。
S105,利用子进程循环处理业务,并发起委托业务至父进程;
S105具体包括:
当子进程执行自己权限的网络请求时,获取对应的数据,并将获取的数据返回客户端;
当子进程执行自己权限外的网络请求时,根据对应的网络请求发起委托任务至父进程。例如,去读取“/etc/passwd”文件。
S106,父进程根据委托业务获取处理结果,并将处理结果发送至子进程。例如,父进程去读取“/etc/passwd”文件;父进程是有权限。
如图2所示,本发明所提供的一种程序运行系统,包括:
目录结构规划模块201,用于规划程序中父进程和子进程的目录结构;
父进程启动模块202,用于以root用户权限启动程序中父进程;并对父进程进行环境初始化和配置解析;
子进程拉起模块203,用于利用父进程拉起子进程;
子进程启动模块204,用于子进程进行根目录切换,并丢弃掉root用户权限,转为普通用户权限;
委托业务发起模块205,用于利用子进程循环处理业务,并发起委托业务至父进程;
委托业务处理模块206,用于父进程根据委托业务获取处理结果,并将处理结果发送至子进程。
所述目录结构包括:根文件系统、访问系统中文件的最开始路径、系统用户名、密码信息、程序安装路径、程序以及子进程切换根目录后的根目录。
所述父进程启动模块202具体包括:
初始化单元,用于读取命令行参数、初始化日志系统;
配置解析单元,用于读取配置文件解析配置。
所述委托业务发起模块205具体包括:
子进程处理单元,用于当子进程执行自己权限的网络请求时,获取对应的数据,并将获取的数据返回客户端;
委托业务发起单元,用于当子进程执行自己权限外的网络请求时,根据对应的网络请求发起委托任务至父进程。
为了执行上述实施例一对应的方法,以实现相应的功能和技术效果,本发明还提供一种程序运行系统,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现所述的一种程序运行方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种程序运行方法,其特征在于,包括:
规划程序中父进程和子进程的目录结构;
以root用户权限启动程序中父进程;并对父进程进行环境初始化和配置解析;
利用父进程拉起子进程;
子进程进行根目录切换,并丢弃掉root用户权限,转为普通用户权限;
利用子进程循环处理业务,并发起委托业务至父进程;
父进程根据委托业务获取处理结果,并将处理结果发送至子进程。
2.根据权利要求1所述的一种程序运行方法,其特征在于,所述目录结构包括:根文件系统、访问系统中文件的最开始路径、系统用户名、密码信息、程序安装路径、程序以及子进程切换根目录后的根目录。
3.根据权利要求1所述的一种程序运行方法,其特征在于,所述并对父进程进行环境初始化和配置解析,具体包括:
读取命令行参数、初始化日志系统;
读取配置文件解析配置。
4.根据权利要求1所述的一种程序运行方法,其特征在于,所述利用子进程循环处理业务,并发起委托业务至父进程,具体包括:
当子进程执行自己权限的网络请求时,获取对应的数据,并将获取的数据返回客户端;
当子进程执行自己权限外的网络请求时,根据对应的网络请求发起委托任务至父进程。
5.一种程序运行系统,其特征在于,包括:
目录结构规划模块,用于规划程序中父进程和子进程的目录结构;
父进程启动模块,用于以root用户权限启动程序中父进程;并对父进程进行环境初始化和配置解析;
子进程拉起模块,用于利用父进程拉起子进程;
子进程启动模块,用于子进程进行根目录切换,并丢弃掉root用户权限,转为普通用户权限;
委托业务发起模块,用于利用子进程循环处理业务,并发起委托业务至父进程;
委托业务处理模块,用于父进程根据委托业务获取处理结果,并将处理结果发送至子进程。
6.根据权利要求5所述的一种程序运行系统,其特征在于,所述目录结构包括:根文件系统、访问系统中文件的最开始路径、系统用户名、密码信息、程序安装路径、程序以及子进程切换根目录后的根目录。
7.根据权利要求5所述的一种程序运行系统,其特征在于,所述父进程启动模块具体包括:
初始化单元,用于读取命令行参数、初始化日志系统;
配置解析单元,用于读取配置文件解析配置。
8.根据权利要求5所述的一种程序运行系统,其特征在于,所述委托业务发起模块具体包括:
子进程处理单元,用于当子进程执行自己权限的网络请求时,获取对应的数据,并将获取的数据返回客户端;
委托业务发起单元,用于当子进程执行自己权限外的网络请求时,根据对应的网络请求发起委托任务至父进程。
9.一种程序运行系统,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-4中任一项所述的一种程序运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211639638.0A CN115827103B (zh) | 2022-12-19 | 2022-12-19 | 一种程序运行方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211639638.0A CN115827103B (zh) | 2022-12-19 | 2022-12-19 | 一种程序运行方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115827103A true CN115827103A (zh) | 2023-03-21 |
CN115827103B CN115827103B (zh) | 2024-04-09 |
Family
ID=85516951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211639638.0A Active CN115827103B (zh) | 2022-12-19 | 2022-12-19 | 一种程序运行方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827103B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080022281A1 (en) * | 2006-07-19 | 2008-01-24 | Microsoft Corporation | Trusted communications with child processes |
CN110472381A (zh) * | 2019-07-31 | 2019-11-19 | 广州微算互联信息技术有限公司 | 基于安卓系统的root权限隐藏方法、系统及存储介质 |
CN111782305A (zh) * | 2020-07-21 | 2020-10-16 | 江苏荣泽信息科技股份有限公司 | 一种高效安全智能合约运行环境的方法 |
US20210011740A1 (en) * | 2019-07-12 | 2021-01-14 | National University of Defense Technology, People's Liberation Army of China | Method and system for constructing lightweight container-based user environment (cue), and medium |
CN112965760A (zh) * | 2021-03-04 | 2021-06-15 | 北京鲸鲮信息系统技术有限公司 | 修改根目录的方法、装置、电子设备和可读存储介质 |
CN114372256A (zh) * | 2022-01-07 | 2022-04-19 | 北京百度网讯科技有限公司 | 应用程序运行方法、装置、设备和存储介质 |
CN115390945A (zh) * | 2022-09-06 | 2022-11-25 | 北京领雾科技有限公司 | 应用程序的运行方法、装置、电子设备及可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020621A (zh) * | 2021-11-03 | 2022-02-08 | 展讯通信(天津)有限公司 | 一种调试方法、电子设备及存储介质 |
-
2022
- 2022-12-19 CN CN202211639638.0A patent/CN115827103B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080022281A1 (en) * | 2006-07-19 | 2008-01-24 | Microsoft Corporation | Trusted communications with child processes |
US20210011740A1 (en) * | 2019-07-12 | 2021-01-14 | National University of Defense Technology, People's Liberation Army of China | Method and system for constructing lightweight container-based user environment (cue), and medium |
CN110472381A (zh) * | 2019-07-31 | 2019-11-19 | 广州微算互联信息技术有限公司 | 基于安卓系统的root权限隐藏方法、系统及存储介质 |
CN111782305A (zh) * | 2020-07-21 | 2020-10-16 | 江苏荣泽信息科技股份有限公司 | 一种高效安全智能合约运行环境的方法 |
CN112965760A (zh) * | 2021-03-04 | 2021-06-15 | 北京鲸鲮信息系统技术有限公司 | 修改根目录的方法、装置、电子设备和可读存储介质 |
CN114372256A (zh) * | 2022-01-07 | 2022-04-19 | 北京百度网讯科技有限公司 | 应用程序运行方法、装置、设备和存储介质 |
CN115390945A (zh) * | 2022-09-06 | 2022-11-25 | 北京领雾科技有限公司 | 应用程序的运行方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115827103B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111819544B (zh) | 用于虚拟计算资源的部署前安全分析器服务 | |
Provos | Improving Host Security with System Call Policies. | |
CN101436233B (zh) | 一种硬盘多用户分区切换控制方法、系统及计算机终端 | |
US20170286644A1 (en) | Protection Method and Device for Application Data | |
CN108763951A (zh) | 一种数据的保护方法及装置 | |
CN110059007B (zh) | 系统漏洞扫描方法、装置、计算机设备及存储介质 | |
US7203697B2 (en) | Fine-grained authorization using mbeans | |
JP2008539482A (ja) | クライアントをネットワークに接続する方法、システム、及びプログラム製品 | |
JP2023504600A (ja) | アクセス制御システム及び方法 | |
Abbadini et al. | Lightweight cloud application sandboxing | |
CN115827103B (zh) | 一种程序运行方法及系统 | |
CN113467895A (zh) | 一种Docker的操作方法、装置、服务器和存储介质 | |
Shan | Suspicious-taint-based access control for protecting OS from network attacks | |
US11893105B2 (en) | Generating and validating activation codes without data persistence | |
US9871887B2 (en) | Method for access to an operating system, removable memory medium and use of a removable memory medium | |
Dimou | Automatic security hardening of Docker containers using Mandatory Access Control, specialized in defending isolation | |
Jadidi et al. | Capexec: Towards transparently-sandboxed services (extended version) | |
Shan et al. | An OS Security Protection Model for Defeating Attacks from Network | |
Oosterhof | Cowrie documentation | |
RU2777302C1 (ru) | Система и способ контроля доставки сообщений, передаваемых между процессами из разных операционных систем | |
Snowberger et al. | Sub-Identities: Toward Operating System Support for Distributed System Security | |
Han et al. | Online security detection system design | |
Poserne | Comparing the webservers of the open source and the closed source operation systems | |
KR20060134334A (ko) | Dac 강화를 위한 프로세스 분류/실행 제어 장치 및 방법 | |
Lindskog et al. | Different Aspects of Security Problems in Network Operating Systems |
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 |