CN105205412B - 进程间通信拦截方法及装置 - Google Patents
进程间通信拦截方法及装置 Download PDFInfo
- Publication number
- CN105205412B CN105205412B CN201510623092.3A CN201510623092A CN105205412B CN 105205412 B CN105205412 B CN 105205412B CN 201510623092 A CN201510623092 A CN 201510623092A CN 105205412 B CN105205412 B CN 105205412B
- Authority
- CN
- China
- Prior art keywords
- interprocess communication
- module
- system api
- communication function
- called
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
- G06F21/6281—Protecting 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 at program execution time, where the protection is within the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供进程间通信拦截方法及装置,该方法包括:在启动应用程序对应运行进程时,将进程间通信拦截模块注入该运行进程内;在进程间通信拦截模块被其加载后,进程间通信拦截模块HOOK住操作系统中具有进程间通信功能的系统API;在上述系统API被应用程序调用时,进程间通信拦截模块判断调用方是否为系统模块;若调用方不是系统模块,则进程间通信拦截模块拦截被调用的上述系统API,并对被调用的上述系统API进行重定向操作,使被调用的上述系统API无法与操作系统中已有进程通信。该方法能防止一个应用程序在启动时通过进程间通信方式通知已有的进程去打开一个文件,避免同一进程打开多个文件,从而使后续权限控制可对进程进行更加精确的控制。
Description
技术领域
本发明涉及计算机软件安全应用技术领域,尤其涉及一种进程间通信拦截方法及装置。
背景技术
随着电子文档加密的广泛应用,越来越多的公司注重数据的安全性,电子文档使用透明加密技术或主动加密技术来保护文件的安全。
目前这两种加密方式都有一个共同的问题,当用户双击打开一个文件时,应用程序就会首先查找当前系统是否已经存在一个相同的进程,如果存在就使用进程间通信技术通知已有进程去打开文件,这样就会出现同一进程打开多个文件的问题,后续对文件的权限控制将不能精确的控制。此问题导致不能精确控制用户使用windows剪切版,即用户可以将加密文件的内容复制到明文文件内,这就造成了数据泄漏。
鉴于此,如何防止一个应用程序在启动时通过进程间通信方式通知已有的进程去打开一个文件,避免同一进程打开多个文件成为目前需要解决的技术问题。
发明内容
为解决上述的技术问题,本发明提供一种进程间通信拦截方法及装置,能够防止一个应用程序在启动时通过进程间通信方式通知已有的进程去打开一个文件,避免同一进程打开多个文件,从而使后续权限控制可以对进程进行更加精确的控制。
第一方面,本发明提供一种进程间通信拦截方法,包括:
在启动应用程序对应的运行进程时,将进程间通信拦截模块注入所述运行进程内;
在所述进程间通信拦截模块被所述运行进程加载后,所述进程间通信拦截模块HOOK住操作系统中具有进程间通信功能的系统API;
在所述具有进程间通信功能的系统API被所述应用程序调用时,所述进程间通信拦截模块判断调用方是否为系统模块;
若调用方不是系统模块,则所述进程间通信拦截模块拦截被调用的具有进程间通信功能的系统API,并对所述被调用的具有进程间通信功能的系统API进行重定向操作,使所述被调用的具有进程间通信功能的系统API无法与操作系统中已有进程通信。
可选地,在所述进程间通信拦截模块判断调用方是否为系统模块之后,还包括:
若调用方是系统模块,则所述进程间通信拦截模块不拦截被调用的具有进程间通信功能的系统API。
可选地,所述具有进程间通信功能的系统API,包括:
创建或查找窗口的系统API、创建或读取共享内存的系统API、创建或读取命名管道的系统API、以及创建或打开命名内核对象的系统API。
可选地,所述内核对象包括:互斥体、事件和信号量。
可选地,所述对所述被调用的具有进程间通信功能的系统API进行重定向操作,包括:
对调用所述具有进程间通信功能的系统API的调用参数进行重定向操作再继续执行,并将所述具有进程间通信功能的系统API中的窗口类名、标题、共享内存名称、管道名称和内核对象名称均增加前缀和后缀。
第二方面,本发明提供一种进程间通信拦截装置,包括:
注入模块,用于在启动应用程序对应的运行进程时,将进程间通信拦截模块注入所述运行进程内;
挂钩模块,用于在所述进程间通信拦截模块被所述运行进程加载后,所述进程间通信拦截模块HOOK住操作系统中具有进程间通信功能的系统API;
判断模块,用于在所述具有进程间通信功能的系统API被所述应用程序调用时,所述进程间通信拦截模块判断调用方是否为系统模块;
拦截重定向模块,用于若调用方不是系统模块,则所述进程间通信拦截模块拦截被调用的具有进程间通信功能的系统API,并对所述被调用的具有进程间通信功能的系统API进行重定向操作,使所述被调用的具有进程间通信功能的系统API无法与操作系统中已有进程通信。
可选地,所述装置,还包括:
不拦截模块,用于若调用方是系统模块,则所述进程间通信拦截模块不拦截被调用的具有进程间通信功能的系统API。
可选地,所述具有进程间通信功能的系统API,包括:
创建或查找窗口的系统API、创建或读取共享内存的系统API、创建或读取命名管道的系统API、以及创建或打开命名内核对象的系统API。
可选地,所述内核对象包括:互斥体、事件和信号量。
可选地,所述拦截重定向模块,具体用于
若调用方不是系统模块,则所述进程间通信拦截模块拦截被调用的具有进程间通信功能的系统API,并对调用所述具有进程间通信功能的系统API的调用参数进行重定向操作再继续执行,并将所述具有进程间通信功能的系统API中的窗口类名、标题、共享内存名称、管道名称和内核对象名称均增加前缀和后缀,使所述被调用的具有进程间通信功能的系统API无法与操作系统中已有进程通信。
由上述技术方案可知,本发明的(windows)进程间通信拦截方法及装置,在每次启动应用程序时对其进行进程间通信拦截,阻止进程和已存在的进程通信,可以达到一个文件对应一个进程,一个进程对应一种权限,能够防止一个应用程序在启动时通过进程间通信方式通知已有的进程去打开一个文件,避免同一进程打开多个文件,从而使后续权限控制可以对进程进行更加精确的控制。
附图说明
图1为本发明一实施例提供的一种进程间通信拦截方法的流程示意图;
图2为本发明一实施例提供的一种进程间通信拦截装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。
图1示出了本发明一实施例提供的进程间通信拦截方法的流程示意图,如图1所示,本实施例的进程间通信拦截方法如下所述。
101、在启动应用程序对应的运行进程时,将进程间通信拦截模块(DLL)注入所述运行进程内。
应说明的是,在启动应用程序时,启动所述应用程序对应的运行进程。
102、在所述进程间通信拦截模块被所述运行进程加载后,所述进程间通信拦截模块挂钩HOOK住操作系统中具有进程间通信功能的系统应用程序编程接口(ApplicationProgramming Interface,简称API)。
在具体应用中,本实施例所述具有进程间通信功能的系统API,可包括:
创建或查找窗口的系统API、创建或读取共享内存的系统API、创建或读取命名管道的系统API、以及创建或打开命名内核对象的系统API等。
进一步地,所述内核对象可包括:互斥体、事件和信号量等。
103、在所述具有进程间通信功能的系统API被所述应用程序调用时,所述进程间通信拦截模块判断调用方是否为系统模块。
104、若调用方不是系统模块,则所述进程间通信拦截模块拦截被调用的具有进程间通信功能的系统API,并对所述被调用的具有进程间通信功能的系统API进行重定向操作,使所述被调用的具有进程间通信功能的系统API无法与操作系统中已有进程通信。
在具体应用中,本实施例所述步骤104中的“对所述被调用的具有进程间通信功能的系统API进行重定向操作”,可具体包括:
对调用所述具有进程间通信功能的系统API的调用参数进行重定向操作再继续执行,并将所述具有进程间通信功能的系统API中的窗口类名、标题、共享内存名称、管道名称和内核对象名称均增加前缀和后缀。
可理解的是,将所述具有进程间通信功能的系统API中的窗口类名、标题、共享内存名称、管道名称和内核对象名称均增加前缀和后缀,可以使其与原有名称区分开来,这样继续执行之后所使用的名称都是被特殊处理过的。无论已存在的进程创建的窗口、创建的共享内存、还是创建的内核对象都与本进程所使用的名称有区别,所以本进程是无法访问到已有的进程创建的各种资源,从而达到了进程间通信拦截的功能。
在具体应用中,在所述步骤103之后,还可包括图中未示出的步骤105:
105、若调用方是系统模块,则所述进程间通信拦截模块不拦截被调用的具有进程间通信功能的系统API。
本实施例的进程间通信拦截方法,在每次启动应用程序时对其进行进程间通信拦截,阻止进程和已存在的进程通信,可以达到一个文件对应一个进程,一个进程对应一种权限,能够防止一个应用程序在启动时通过进程间通信方式通知已有的进程去打开一个文件,避免同一进程打开多个文件,从而使后续权限控制可以对进程进行更加精确的控制。
图2示出了本发明一实施例提供的一种进程间通信拦截装置的结构示意图,如图2所示,本实施例的进程间通信拦截装置,包括:注入模块21、挂钩模块22、判断模块23和拦截重定向模块24;
注入模块21,用于在启动应用程序对应的运行进程时,将进程间通信拦截模块注入所述运行进程内;
挂钩模块22,用于在所述进程间通信拦截模块被所述运行进程加载后,所述进程间通信拦截模块HOOK住操作系统中具有进程间通信功能的系统API;
判断模块23,用于在所述具有进程间通信功能的系统API被所述应用程序调用时,所述进程间通信拦截模块判断调用方是否为系统模块;
拦截重定向模块24,用于若调用方不是系统模块,则所述进程间通信拦截模块拦截被调用的具有进程间通信功能的系统API,并对所述被调用的具有进程间通信功能的系统API进行重定向操作,使所述被调用的具有进程间通信功能的系统API无法与操作系统中已有进程通信。
其中,本实施例所述具有进程间通信功能的系统API,可包括:
创建或查找窗口的系统API、创建或读取共享内存的系统API、创建或读取命名管道的系统API、以及创建或打开命名内核对象的系统API等。
进一步地,所述内核对象可包括:互斥体、事件和信号量等。
在具体应用中,本实施例所述拦截重定向模块24,可具体用于
若调用方不是系统模块,则所述进程间通信拦截模块拦截被调用的具有进程间通信功能的系统API,并对调用所述具有进程间通信功能的系统API的调用参数进行重定向操作再继续执行,并将所述具有进程间通信功能的系统API中的窗口类名、标题、共享内存名称、管道名称和内核对象名称均增加前缀和后缀,使所述被调用的具有进程间通信功能的系统API无法与操作系统中已有进程通信。
可理解的是,所述拦截重定向模块24将所述具有进程间通信功能的系统API中的窗口类名、标题、共享内存名称、管道名称和内核对象名称均增加前缀和后缀,可以使其与原有名称区分开来,这样继续执行之后所使用的名称都是被特殊处理过的,无论已存在的进程创建的窗口、创建的共享内存、还是创建的内核对象都与本进程所使用的名称有区别,所以本进程是无法访问到已有的进程创建的各种资源,从而达到了进程间通信拦截的功能。
在具体应用中,本实施例所述装置,还可包括图中未示出的:
不拦截模块,用于若调用方是系统模块,则所述进程间通信拦截模块不拦截被调用的具有进程间通信功能的系统API。
本实施例的进程间通信拦截装置,在每次启动应用程序时对其进行进程间通信拦截,阻止进程和已存在的进程通信,可以达到一个文件对应一个进程,一个进程对应一种权限,能够防止一个应用程序在启动时通过进程间通信方式通知已有的进程去打开一个文件,避免同一进程打开多个文件,从而使后续权限控制可以对进程进行更加精确的控制。
本实施例的进程间通信拦截装置,可以用于执行前述图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种进程间通信拦截方法,其特征在于,包括:
在启动应用程序对应的运行进程时,将进程间通信拦截模块注入所述运行进程内;
在所述进程间通信拦截模块被所述运行进程加载后,所述进程间通信拦截模块HOOK住操作系统中具有进程间通信功能的系统API;
在所述具有进程间通信功能的系统API被所述应用程序调用时,所述进程间通信拦截模块判断调用方是否为系统模块;
若调用方不是系统模块,则所述进程间通信拦截模块拦截被调用的具有进程间通信功能的系统API,并对所述被调用的具有进程间通信功能的系统API的调用参数进行重定向操作再继续执行,并将所述具有进程间通信功能的系统API中的窗口类名、标题、共享内存名称、管道名称和内核对象名称均增加前缀和后缀,使所述被调用的具有进程间通信功能的系统API无法与操作系统中已有进程通信。
2.根据权利要求1所述的方法,其特征在于,在所述进程间通信拦截模块判断调用方是否为系统模块之后,还包括:
若调用方是系统模块,则所述进程间通信拦截模块不拦截被调用的具有进程间通信功能的系统API。
3.根据权利要求1所述的方法,其特征在于,所述具有进程间通信功能的系统API,包括:
创建或查找窗口的系统API、创建或读取共享内存的系统API、创建或读取命名管道的系统API、以及创建或打开命名内核对象的系统API。
4.根据权利要求3所述的方法,其特征在于,所述内核对象包括:互斥体、事件和信号量。
5.一种进程间通信拦截装置,其特征在于,包括:
注入模块,用于在启动应用程序对应的运行进程时,将进程间通信拦截模块注入所述运行进程内;
挂钩模块,用于在所述进程间通信拦截模块被所述运行进程加载后,所述进程间通信拦截模块HOOK住操作系统中具有进程间通信功能的系统API;
判断模块,用于在所述具有进程间通信功能的系统API被所述应用程序调用时,所述进程间通信拦截模块判断调用方是否为系统模块;
拦截重定向模块,用于若调用方不是系统模块,则所述进程间通信拦截模块拦截被调用的具有进程间通信功能的系统API,并对所述被调用的具有进程间通信功能的系统API的调用参数进行重定向操作再继续执行,并将所述具有进程间通信功能的系统API中的窗口类名、标题、共享内存名称、管道名称和内核对象名称均增加前缀和后缀,使所述被调用的具有进程间通信功能的系统API无法与操作系统中已有进程通信。
6.根据权利要求5所述的装置,其特征在于,还包括:
不拦截模块,用于若调用方是系统模块,则所述进程间通信拦截模块不拦截被调用的具有进程间通信功能的系统API。
7.根据权利要求5所述的装置,其特征在于,所述具有进程间通信功能的系统API,包括:
创建或查找窗口的系统API、创建或读取共享内存的系统API、创建或读取命名管道的系统API、以及创建或打开命名内核对象的系统API。
8.根据权利要求7所述的装置,其特征在于,所述内核对象包括:互斥体、事件和信号量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510623092.3A CN105205412B (zh) | 2015-09-25 | 2015-09-25 | 进程间通信拦截方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510623092.3A CN105205412B (zh) | 2015-09-25 | 2015-09-25 | 进程间通信拦截方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105205412A CN105205412A (zh) | 2015-12-30 |
CN105205412B true CN105205412B (zh) | 2018-09-11 |
Family
ID=54953086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510623092.3A Active CN105205412B (zh) | 2015-09-25 | 2015-09-25 | 进程间通信拦截方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105205412B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919665A (zh) * | 2017-02-16 | 2017-07-04 | 江苏神州信源系统工程有限公司 | 一种Windows操作系统中电子文件的管控方法及装置 |
CN110109718B (zh) * | 2019-03-26 | 2023-06-02 | 创新先进技术有限公司 | 一种应用程序接口调用方法及装置 |
CN111414603A (zh) * | 2020-03-17 | 2020-07-14 | 用友网络科技股份有限公司 | 一种基于命名管道间通讯机制的应用 |
CN111428234B (zh) * | 2020-03-27 | 2023-07-04 | 深圳融安网络科技有限公司 | 应用程序的进程拦截方法、终端及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116723A (zh) * | 2013-02-06 | 2013-05-22 | 北京奇虎科技有限公司 | 一种网址拦截处理的方法、装置和系统 |
CN103198255A (zh) * | 2013-04-03 | 2013-07-10 | 武汉大学 | 一种Android软件敏感行为监控与拦截方法及系统 |
CN103218564A (zh) * | 2013-04-01 | 2013-07-24 | 广东欧珀移动通信有限公司 | 一种移动终端保护方法及装置 |
CN103761241A (zh) * | 2013-12-13 | 2014-04-30 | 北京奇虎科技有限公司 | 一种图片数据的上传方法和浏览器 |
CN103927485A (zh) * | 2014-04-24 | 2014-07-16 | 东南大学 | 基于动态监控的Android应用程序风险评估方法 |
-
2015
- 2015-09-25 CN CN201510623092.3A patent/CN105205412B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116723A (zh) * | 2013-02-06 | 2013-05-22 | 北京奇虎科技有限公司 | 一种网址拦截处理的方法、装置和系统 |
CN103218564A (zh) * | 2013-04-01 | 2013-07-24 | 广东欧珀移动通信有限公司 | 一种移动终端保护方法及装置 |
CN103198255A (zh) * | 2013-04-03 | 2013-07-10 | 武汉大学 | 一种Android软件敏感行为监控与拦截方法及系统 |
CN103761241A (zh) * | 2013-12-13 | 2014-04-30 | 北京奇虎科技有限公司 | 一种图片数据的上传方法和浏览器 |
CN103927485A (zh) * | 2014-04-24 | 2014-07-16 | 东南大学 | 基于动态监控的Android应用程序风险评估方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105205412A (zh) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8224796B1 (en) | Systems and methods for preventing data loss on external devices | |
US10708051B2 (en) | Controlled access to data in a sandboxed environment | |
US9852289B1 (en) | Systems and methods for protecting files from malicious encryption attempts | |
US10685111B2 (en) | File-modifying malware detection | |
CN109117664B (zh) | 应用程序的访问控制方法和装置 | |
CN102043927B (zh) | 一种用于计算机系统的数据泄密防护方法 | |
US9246941B1 (en) | Systems and methods for predicting the impact of security-policy changes on users | |
CN105205412B (zh) | 进程间通信拦截方法及装置 | |
US9323930B1 (en) | Systems and methods for reporting security vulnerabilities | |
KR101705550B1 (ko) | 보안 저장 영역에 대한 응용 프로그램의 접근 제어 방법 및 장치 | |
EP2375341A1 (en) | Method and apparatus for controlling operation of document | |
US10783041B2 (en) | Backup and recovery of data files using hard links | |
US9418232B1 (en) | Providing data loss prevention for copying data to unauthorized media | |
CN108509802A (zh) | 一种应用程序数据防泄密方法和装置 | |
WO2019062420A1 (zh) | 监控进程的方法和装置 | |
CN110807205B (zh) | 一种文件安全防护方法及装置 | |
CN105095771A (zh) | 一种共享目标文件的保护方法及装置 | |
CN109033824A (zh) | 基于虚拟隔离机制的云盘安全访问方法 | |
WO2021126747A1 (en) | Method for detecting and defeating ransomware | |
CN110807191B (zh) | 一种应用程序的安全运行方法及装置 | |
US8108935B1 (en) | Methods and systems for protecting active copies of data | |
JP6256781B2 (ja) | システムを保護するためのファイルセキュリティ用の管理装置 | |
JP6164508B2 (ja) | データプロセシングシステムのセキュリティ装置とセキュリティ方法 | |
CN103051608B (zh) | 一种可移动设备接入监控的方法和装置 | |
Buda et al. | File System Minifilter Based Data Leakage Prevention System |
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 |