CN111357256B - 管理计算设备中各进程之间的访问控制的系统和方法 - Google Patents
管理计算设备中各进程之间的访问控制的系统和方法 Download PDFInfo
- Publication number
- CN111357256B CN111357256B CN201980005771.0A CN201980005771A CN111357256B CN 111357256 B CN111357256 B CN 111357256B CN 201980005771 A CN201980005771 A CN 201980005771A CN 111357256 B CN111357256 B CN 111357256B
- Authority
- CN
- China
- Prior art keywords
- ipc
- attribute data
- processor
- metadata
- target process
- 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
Images
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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/606—Protecting data by securing the transmission between two devices or processes
-
- 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Telephonic Communication Services (AREA)
Abstract
提供了一种用于管理在计算设备上执行的各进程之间的进程间通信的访问控制的方法和系统。基于调用进程属性数据、目标进程属性数据、IPC属性数据、操作系统的上下文属性数据以及一个或多个访问策略来确定是允许还是拒绝进程间通信。
Description
相关申请案交叉申请
本专利申请要求2018年3月9日递交的发明名称为“管理计算设备中各进程之间的访问控制的系统和方法(SYSTEMS AND METHODS FOR MANAGING ACCESS CONTROL BETWEENPROCESSES IN A COMPUTING DEVICE)”的第15/916,866号美国专利申请案的在先申请优先权,该在先申请的全部内容以引入的方式并入本文本中。
技术领域
本申请涉及进程之间的访问控制,尤其涉及管理在计算设备上执行的各进程之间的通信的访问控制。
背景技术
计算设备日益普及。现代计算设备包括操作系统,可以并行执行多个应用和服务。在某些操作系统中,如AndroidTM操作系统,一个进程可与其它进程通信,以请求该其它进程执行某个动作,例如,访问资源或向其它进程发送消息或接收来自其它进程的消息。例如,消息应用程序(例如,WhatsAppTM)可以利用计算设备上的相机应用程序,也可以在接收到消息时在计算设备的显示器上显示警报通知,即使正在运行的是不同的应用程序。这种通信可以为一个进程提供更强大的功能性和多元性。
但是,在某些情况下或上下文中,允许各进程彼此通信可能给计算设备带来安全风险。例如,恶意应用程序可能试图与计算设备的电话应用程序进行通信,通过电话应用程序访问音频数据来监听电话。因此,需要改进对在计算设备上执行的各进程之间通信的访问控制。
发明内容
根据本发明的一个方面,提供了一种用于管理在计算设备上执行的各进程之间的进程间通信的访问控制的方法。所述方法包括:在所述计算设备上执行的操作系统的访问控制系统接收来自调用进程的进程间通信;所述访问控制系统接收用于所述进程间通信的所述调用进程的标识和用于所述进程间通信的目标进程;所述访问控制系统基于所述调用进程的所述标识和所述目标进程的所述标识获取进程间通信元数据;所述访问控制系统获取所述操作系统的上下文属性数据;所述访问控制系统根据所述进程间通信元数据和所述上下文属性数据确定是否允许所述进程间通信;以及所述访问控制系统发送一个指示是否允许所述进程间通信的消息。
在上述任一方面中,发送包括:在确定允许所述进程间通信之后发送一个指示允许处理所述IPC的允许消息。
在上述任一方面中,发送包括在确定不允许所述进程间通信之后发送一个指示不允许处理所述IPC的拒绝消息。
在上述任一方面中,所述操作系统的所述上下文属性数据是表示所述操作系统的至少一种上下文属性的数据,其中所述至少一种上下文属性根据所述操作系统的状态来确定。
在上述任一方面中,所述进程间通信元数据包括所述调用进程的调用进程属性数据、所述目标进程的目标进程属性数据和所述IPC的IPC属性数据。
在上述任一方面中,获取IPC元数据包括:获取用于预授权检查的IPC元数据和用于策略检查的IPC元数据,其中所述访问控制系统确定是否允许所述进程间通信包括:执行包括预授权检查和策略检查的访问控制检查。
在上述任一方面中,所述访问控制检查的所述策略检查通过以下步骤来执行:将用于所述策略检查的所述进程间通信元数据和所述上下文属性数据与一个或多个访问策略进行比较;确定所述进程间通信元数据和所述上下文属性数据是否与所述一个或多个访问策略中的一个匹配;以及在确定所述进程间通信元数据和所述上下文属性数据与所述一个或多个访问策略中的一个匹配后发送一个指示允许处理所述IPC的允许消息。
在上述任一方面中,所述预授权检查通过以下步骤来执行:基于用于预授权的所述IPC 元数据来确定所述调用进程和所述目标进程中的至少一个是否为预授权进程,并在确定所述调用进程和所述目标进程中的至少一个为预授权进程后发送一个指示允许处理所述IPC的允许消息。
在上述任一方面中,基于用于预授权的所述IPC元数据确定所述调用进程和所述目标进程中的至少一个是否为预授权进程包括:确定所述调用进程和所述目标进程中的至少一个是否包括指示所述调用进程和所述目标进程中的至少一个为预授权进程的标准。
在上述任一方面中,所述方法还包括:所述访问控制系统接收用于更新所述一个或多个访问策略中的一个或多个的指令;所述访问控制系统基于所述指令更新所述一个或多个访问策略中的所述一个或多个。
根据本发明的另一方面,提供了一种计算设备,包括:处理器;与所述处理器通信耦合的存储器,所述存储器上存储有处理器可执行指令,当所述处理器可执行指令由所述处理器执行时,使得所述处理器执行以下步骤:执行包括访问控制系统的操作系统,以:接收来自在所述计算设备上执行的调用进程的进程间通信;接收用于所述进程间通信的所述调用进程的标识和用于所述进程间通信的目标进程的标识;基于所述调用进程的所述标识、目标进程的标识和所述操作系统的上下文属性数据获取进程间通信元数据;基于所述进程间通信元数据、所述操作系统的上下文属性数据以及所述上下文属性数据确定是否允许所述进程间通信;以及发送一个指示是否允许所述进程间通信的消息。
在上述任一方面中,所述处理器可执行指令在由所述处理器执行时,使得所述处理器在确定允许所述进程间通信后发送一个指示允许处理所述IPC的允许消息。
在上述任一方面中,所述处理器可执行指令在由所述处理器执行时,使得所述处理器在确定不允许所述进程间通信后发送一个指示不允许处理所述IPC的拒绝消息。
在上述任一方面中,所述操作系统的所述上下文属性数据是表示所述操作系统的至少一种上下文属性的数据,其中所述至少一种上下文属性为根据所述操作系统的状态确定的信息。
在上述任一方面中,所述进程间通信元数据包括所述调用进程的调用进程属性数据、所述目标进程的目标进程属性数据和所述IPC的IPC属性数据。
在上述任一方面中,所述处理器可执行指令在由所述处理器执行时,使得所述处理器通过获取用于预授权检查的IPC元数据和用于策略检查的IPC元数据来获取IPC元数据,并通过执行包括预授权检查和策略检查的访问控制检查来确定是否允许所述进程间通信。
在上述任一方面中,所述处理器可执行指令在由所述处理器执行时,使得所述处理器:通过将用于所述策略检查的所述进程间通信元数据和所述上下文属性数据与一个或多个访问策略进行比较来执行所述访问控制检查的所述策略检查;确定所述进程间通信元数据和所述上下文属性数据是否与所述一个或多个访问策略中的一个匹配;以及在确定所述进程间通信元数据和所述上下文属性数据与所述一个或多个访问策略中的一个匹配后发送一个指示允许处理所述IPC的允许消息。
在上述任一方面中,所述处理器可执行指令在由所述处理器执行时,使得所述处理器:通过基于用于预授权的所述IPC元数据确定所述调用进程和所述目标进程中的至少一个是否为预授权进程来执行所述预授权检查;并在确定所述调用进程和所述目标进程中的至少一个为预授权进程后发送一个指示允许处理所述IPC的允许消息。
在上述任一方面中,所述处理器可执行指令在由所述处理器执行时,使得所述处理器:通过确定所述调用进程和所述目标进程中的至少一个是否包括指示所述调用进程和所述目标进程中的至少一个为预授权进程的标准,从而基于用于预授权的所述IPC元数据确定所述调用进程和所述目标进程中的至少一个是否为预授权进程。
在上述任一方面中,所述处理器可执行指令在由所述处理器执行时,使得所述处理器:接收用于更新一个或多个访问策略中的一个或多个的指令;以及根据所述指令更新所述一个或多个访问策略中的所述一个或多个。
附图说明
附图中描述了以下示例实施例:
图1为示出示例计算系统的方框图;
图2为示出示例计算设备各组件的方框图;
图3示出了计算设备中虚拟存储器分配的示例配置;
图4为示出示例访问控制系统各组件的方框图;
图5为控制进程间通信的示例方法的流程图;以及
图6示出了包含个人配置文件和托管配置文件的计算设备中虚拟存储器分配的示例配置。
为了进行说明,这些附图示出了示例实施例的各方面。
具体实施方式
本发明提供了一种用于管理在计算设备上执行的各进程之间的通信的访问控制的方法。
图1为示出根据本发明实施例的示例计算系统100的方框图。在所示的计算系统100中,计算设备102可以通过通信网络104直接或间接连接到一个或多个服务器103。一个或多个服务器103之一可以为计算设备102提供管理能力等。例如,一个服务器103可以将更新传输到计算设备102,而另一服务器103可以维护计算设备102能够访问的数据库。尽管图1 示出了两个计算设备102,但是在替代性实施例中,计算系统100可以包括可以通过通信网络104与服务器103通信的任何合适数量的计算设备102。
图2为示出根据本发明实施例的示例计算设备102各组件的方框图。计算设备102可以是任何合适的计算设备,例如智能电话、台式计算机、笔记本电脑、平板电脑等。计算设备 102包括处理器201,处理器201控制计算设备102的整体操作。处理器201通过存储器总线 205与存储器204交互。处理器201还通过总线209与存储设备206、I/O设备208、传感器210、端口212和网络接口214交互。总线209可以是任意类型的若干总线中的一个或多个,包括外围总线、视频总线等等。
处理器201可以是任何合适类型的处理器,例如,实现ARM或x86指令集等的中央处理器(central processing unit,CPU),还可以包括图形处理器(Graphics ProcessingUnit,GPU) 等专用处理器或其它这样的处理器。应当理解,尽管在图1中示出了单个处理器201,但是在替代性实施例中,计算设备102可以包括并行运行的多个处理器。
存储器204包括处理器201可读取的任何合适类型的系统存储器,例如静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamic randomaccess memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-onlymemory, ROM)或它们的组合。在一项实施例中,存储器204可以包括不止一种类型的存储器,例如开机时使用的ROM,以及在执行程序时使用的存储程序和数据的DRAM。存储设备206可以包括任何合适的非瞬时性存储设备,所述非瞬时性存储设备用于存储数据、程序和其它信息,并使数据、程序和其它信息可通过总线209访问。存储设备206可以包括,例如固态驱动器、硬盘驱动器、磁盘驱动器、光盘驱动器、安全数码(secure digital,SD)卡等中的一个或多个。
I/O设备208包括,例如用户界面设备,如包括能够将渲染图像显示为输出并且接收触摸形式的输入的触敏显示设备等显示设备。传感器210包括一个或多个扬声器、麦克风、照相机、加速计、全球定位系统(global positioning system,GPS)接收器、环境光传感器等。端口212可以包括通用串行总线(universal serial bus,USB)控制器,用于将计算设备102连接到键盘、袖珍键盘、鼠标、轨迹球等外围设备。
网络接口214用于将计算设备102连接到通信网络104。在一些实施例中,网络接口214 包括有线以太网等有线接口和Wi-Fi、蓝牙或蜂窝(例如GPRS、GSM、EDGE、CDMA、LTE 等)等无线接口中的一个或多个。网络接口214使计算设备102能够通过通信网络104与计算系统100的每个服务器103和其它他计算设备102通信。网络接口214还可以用于建立虚拟网络接口,例如虚拟专用网(Virtual Private Network,VPN)。在一些实施例中,通信网络 104包括临时网络和点对点通信协议。
每个服务器103可以包括一个或多个与计算设备102类似的组件,本发明中不作详细描述。
计算设备102在包括操作系统305(图3)的软件程序的控制下运行。操作系统305的计算机可读指令或处理器可执行指令(例如软件代码)存储在存储设备206中。在计算设备102 的操作期间,操作系统305的软件代码(例如处理器可执行指令)被加载到存储器204中,并由处理器201执行。操作系统305(图3)可以支持存储器管理能力,包括使用虚拟存储器。虚拟存储器是一种存储器管理能力,它使用硬件和/或软件来使计算设备102通过将数据从存储器204临时传送到存储设备206来扩展存储器204的容量。
图3示出了示例计算设备102中虚拟存储器300分配的简化配置。应当理解,虚拟存储器300可以包括存储器204和存储设备206中的一个或多个内存。在计算设备102上执行的软件程序可以包括,例如操作系统305和软件进程,如图3中所示的软件进程310a、310b和310c(以下称为进程310a、310b、310c)。在计算设备102的操作期间,包括进程310a、310b 和310c的进程被加载到存储器204中,并由处理器201执行。处理310a、310b和310c可以包括,例如包括计算机可读指令或处理器可执行指令的应用程序和/或服务,当这些应用程序和/或服务被加载到存储器204中时由处理器201执行。如图所示,进程310c是在操作系统 305的虚拟存储器300内运行的系统进程,而进程310a和310b在操作系统305的虚拟存储器300外运行。尽管图3示出了三个进程310a、310b、310c,但是本领域技术人员应当理解,可以在任何时间在计算设备102上并行执行任何数量的进程。
在一些实施例中,一个进程尝试与另一个进程进行通信。这种通信称为进程间通信 (interprocess communication,IPC)。可以使用IPC来请求执行某个动作、获取对同一进程或另一个不同进程的数据的访问权限、启动另一个进程,等等。例如,社交媒体应用程序可以使用IPC来请求计算设备102上的相机应用程序使用计算设备102的相机来捕获图像,以供随后在用户的社交媒体帐户上发布。在一些实施例中,IPC是AndroidTM操作系统中的“意图 (Intent)”。意图是一个消息传递对象,可用于隐式或显式请求另一个进程执行某个动作。可以使用意图来启动活动、启动服务、将广播消息传递给其它进程,等等。
在图3所示的示例实施例中,进程310b可以使用意图来将广播消息传递到其它进程310a 和310c。应当理解,可以使用除意图之外的IPC。在一些实施例中,广播消息应用到整个系统。
在一些实施例中,操作系统305可以默认允许传递这种广播消息。例如,操作系统305 可以在进程级别的基础上提供基本权限级别(例如,关于进程310a等进程是否具有与进程 310b等另一进程通信的权限的二进制规则)。但是,使用简单的二进制系统不能提供足够的安全性或灵活性。例如,不需要这种权限即可将系统通知传递给用户。
图4为示出根据本发明实施例的用于管理在计算设备102上执行的各进程之间的通信的访问控制的访问控制系统500的各组件的方框图。在图4中,所示的访问控制系统500在操作系统305内实现,操作系统305为AndroidTM操作系统。应当理解,访问控制系统500也可以在其它操作系统内实现,并且本文所述的本发明原理也适用于其它操作系统,因此并不旨在限于AndroidTM操作系统。如图4所示,操作系统305包括访问控制系统500、IPC处理框架515和AndroidTM包管理器545(以下称为包管理器545)。访问控制系统500包括策略服务520、上下文提供程序525、策略管理器530和策略库535。如图4所示,IPC处理框架 515、包管理器545和访问控制系统500是操作系统305的单独软件组件或软件模块,每个单独的软件组件或软件模块包括计算机可读指令或处理器可执行指令,当计算机可读指令或处理器可执行指令被加载到存储器204中并由处理器201执行时,使得计算设备102执行下述方法。在一些实施例中,策略服务520和策略管理器530可以实现为包括计算机可读指令或处理器可执行指令的访问控制系统500中的一个软件组件或软件模块。
IPC处理框架515提供有关进程310a和310b等进程的信息并与这些进程交互。在一些实施例中,IPC处理框架515可以包括AndroidTM活动管理器。在一些实施例中,IPC处理框架515可以包括将消息传递用于各进程之间IPC通信的通知管理器、服务管理器、内容管理器或任何其它合适的框架中的一个或多个。IPC处理框架515用于从进程310a等调用进程接收意图等IPC。IPC处理框架515还用于:确定与调用进程相关的标识(下文中称为调用进程标识);确定用于IPC的一个或多个目标进程,例如进程310b;确定与每个所确定的目标进程相关的标识(下文中称为目标进程标识);以及将调用进程标识和每个目标进程标识转发给访问控制系统500。
访问控制系统500用于与IPC处理框架515和包管理器545通信。访问控制系统500用于:从IPC处理框架515接收调用进程标识和每个目标进程标识,并确定是否允许IPC处理框架515处理IPC;以及将指示是否允许IPC处理框架515处理IPC的消息发送给IPC处理框架515,如下面进一步详细描述的。
在图4所示的实施例中,进程310a是发送IPC的调用进程,进程310b是进程310a发送的IPC的目标进程。
访问控制系统500用于通过管理或执行访问控制检查来确定是否允许IPC处理框架515 处理IPC。在一些实施例中,访问控制检查包括预授权检查和策略检查。访问控制检查可以由访问控制系统500的策略管理器530来管理或执行。访问控制检查包括对IPC元数据的分析和对上下文属性数据的分析。IPC元数据的分析和上下文属性数据的分析可以同时执行。 IPC元数据的分析和上下文属性数据的分析也可以独立执行。访问控制检查的管理包括:策略服务520基于调用进程标识和目标进程标识获取IPC元数据;策略服务520获取上下文属性数据;策略服务520将IPC元数据和上下文属性数据提供给策略管理器530。策略管理器530用于管理或执行访问控制检查,包括预授权检查和策略检查,以确定是否允许IPC 处理框架515处理IPC。
IPC元数据包括调用进程310a的调用进程属性数据、用于包括目标进程310b的每个目标进程的目标进程属性数据和用于IPC的IPC属性数据(以下称为IPC属性数据)。在一些实施例中,调用进程的调用进程属性数据、目标进程的目标进程属性数据和用于IPC的IPC 属性数据由策略服务520从包管理器545获取。包管理器545从存储器204检索调用进程属性数据、目标进程属性数据和IPC属性数据,并将调用进程属性数据、目标进程属性数据和 IPC属性数据转发给策略服务520。在一些实施例中,例如,调用进程属性数据、目标进程属性数据和IPC属性数据可以通过操作系统305的另一进程,如IPC处理框架515,从存储器204获取。
在一些实施例中,上下文属性数据由策略服务520从上下文提供程序525获取。上下文提供程序525用于从存储器204获取上下文属性数据。在一些实施例中,例如,上下文属性数据可以通过操作系统305的另一进程,如IPC处理框架515,从存储器204获取。
IPC属性数据可以是表示通常与IPC处理框架515相关的IPC的一个属性的数据。或者, IPC属性数据可以表示IPC的多个属性。IPC的属性在下文中称为IPC属性。IPC属性的示例包括IPC类型(例如,通知、活动、广播)和多个IPC目标。
调用进程属性数据可以是表示一个调用进程属性的数据,该数据可以由包管理器545或操作系统305的某个其它进程以持久或至少半持久的方式存储在存储器204中。或者,调用进程属性数据可以是表示多个调用进程属性的数据,该数据可以由包管理器545或操作系统 305的某个其它进程以持久或至少半持久的方式存储在存储器204中。调用进程属性是与进程310a等调用进程相关的信息。调用进程属性的示例包括:唯一标识调用进程310a的与调用进程310a相关的标签或标识(例如,调用进程标识);标识调用进程310a是系统进程的标签或标识;用于区分可信开发者和不可信开发者的标签或标识;用于标识用于安装调用进程 310a的服务的标签或标识(例如,相对于已由用户“侧向装机”并手动安装的应用程序, Google Play等本机安装服务);以及使用调用进程310a的用户环境的属性(例如,主要用户配置文件或托管用户配置文件)。
目标进程属性数据可以是表示一个目标进程属性的数据,该数据可以由包管理器545或操作系统305的某个其它进程以持久或至少半持久的方式存储在存储器204中。或者,目标进程属性数据可以是表示多个目标进程属性的数据,该数据可以由包管理器545或操作系统 305的某个其它进程以持久或至少半持久的方式存储在存储器204中。目标进程属性是与目标进程310b相关的信息。目标进程属性的示例包括:唯一标识目标进程310b的与目标进程 310b相关的标签或标识(例如,目标进程标识);标识目标进程310b是系统进程的标签或标识;标识用于安装目标进程310b的服务的标签或标识;以及使用目标进程310b的用户环境的属性(例如,主要用户配置文件或托管用户配置文件)。
上下文属性数据可以是表示操作系统305的一个上下文属性的数据,该数据通常由上下文提供程序525以持久或至少半持久的方式存储在存储器204中。或者,上下文属性数据可以是表示操作系统305的多个上下文属性的数据,该数据通常由上下文提供程序525以持久或至少半持久的方式存储在存储器204中。操作系统305的上下文属性是根据操作系统305 的状态计算或确定的信息。操作系统305的上下文属性的示例包括:从传感器210获取的信息中得出的值(例如,从计算设备102的GPS接收器中获取的信息得出的计算设备102的位置、从计算设备102的计时器获取的指示由IPC处理框架515接收IPC的日期和/或时间的时间戳、从网络接口214获取的信息得出的Wi-Fi接入点信号强度、从计算设备102的环境光传感器获取的信息得出的环境光强度);在OS操作期间创建的状态(例如,运行在具有顶层用户界面焦点的计算设备102上的应用程序的进程标识);以及从计算设备102的传感器210获取的信息中得出的状态(例如,从网络接口214获取的信息中得出的网络连接状态、从计算设备102的相机获取的信息中得出的相机状态、从计算设备102的麦克风获取的信息中得出的麦克风状态)。
如上所述,访问控制系统500的策略管理器530用于通过管理或执行包括策略检查的访问控制检查来确定是否允许IPC处理框架515处理IPC。策略检查包括基于访问策略确定是否允许对IPC进行处理。访问策略可以包括允许策略和拒绝策略。每个允许策略都是访问策略,指示允许或授权处理各进程(例如,调用进程310a和目标进程310b)之间的IPC。每个拒绝策略都是访问策略,指示拒绝或不授权处理各进程(例如,调用进程310a和目标进程310b)之间的IPC。在一些实施例中,策略由策略库535存储在存储设备206中,并且可以由移动设备管理(Mobile Device Management,MDM)客户端510更新。在一些实施例中,策略由策略库535存储在存储设备206的数据库中。该数据库可以是集中式数据库或分布式数据库。在一些实施例中,访问策略由策略库535存储在存储设备206的查找表中。
允许策略和拒绝策略的示例包括:拒绝策略,当从已经侧向装机到计算设备中的调用进程接收到IPC时,拒绝IPC处理框架515处理IPC;允许策略,如果调用进程通过系统安装程序(例如,Google Play)安装,则允许IPC处理框架515处理从调用进程收到的IPC;允许策略,允许IPC处理框架515处理从由优选开发者(例如,Google)开发的调用进程310a 接收到的IPC;拒绝策略,当从由除优选开发者之外的开发者开发的调用进程接收到IPC时,拒绝IPC处理框架515处理IPC;允许策略,对于来自具有“系统”标志的调用进程的所有 IPC,允许IPC处理框架515处理IPC;以及允许策略,允许IPC处理框架515处理IPC,以使广播IPC只能在工作时间内传送到托管配置文件中运行的目标进程。
应当理解,根据调用进程属性数据、目标进程属性数据、IPC属性数据和上下文属性数据的变化,许多不同的访问策略可以存储在策略库535中。此外,应当理解,相对于现有的 AndroidTM IPC权限检查,本发明的访问控制检查具有更大程度的可定制性和粒度。
访问控制检查的预授权检查的管理或执行可以基于用于预授权的IPC元数据与预授权进程的列表的比较,如下面进一步详细描述的。访问控制检查的策略检查的管理或执行可以基于用于策略检查的IPC元数据和上下文属性数据与策略库535从存储器204检索的一个或多个访问策略的比较,如下面进一步详细描述的。当策略管理器530确定用于策略检查的IPC 元数据和上下文属性数据与允许策略中的一个匹配时,策略管理器530通过策略服务520向 IPC处理框架515发送允许消息。允许消息向IPC处理框架515指示允许或授权IPC处理框架515处理IPC,以便将IPC传输到目标进程,例如进程310b。IPC处理框架515在接收到允许消息之后,处理IPC并将IPC传输到目标进程,例如进程310b。但是,当策略管理器530 确定用于策略检查的IPC元数据和上下文属性数据与策略库535中存储的允许策略中的一个不匹配,或者与策略库535中存储的拒绝策略中的一个匹配时,策略管理器530通过策略服务520向IPC处理框架515发送拒绝消息。拒绝消息向IPC处理框架515指示不允许或不授权IPC处理框架515处理IPC并将IPC传输到目标进程,例如进程310b。IPC处理框架515在接收到拒绝消息之后,阻止处理IPC,也不会将IPC传输到目标进程,例如进程310b。
在一些实施例中,在从调用进程接收到IPC之后,IPC处理框架515还可以用于执行IPC 路由并基于权限检查来确定是允许还是拒绝处理IPC。IPC处理框架515可以基于AndroidTM IPC权限检查来管理或执行权限检查。IPC处理框架515基于AndroidTM IPC权限检查来管理或执行权限检查对于本领域技术人员而言是已知的,因此在本发明中不再详细描述。
因此,在一些实施例中,访问控制系统500和IPC处理框架515各自基于不同的检查(例如,访问控制系统500基于访问控制检查,IPC处理框架515基于AndroidTM IPC权限检查)单独确定是否允许IPC处理框架515处理IPC。因此,可以预期,在一些实施例中,尽管可能根据Android IPC权限检查允许IPC处理框架515处理IPC,但由于IPC属性数据不与任何允许策略匹配或者与策略库535中的一个拒绝策略匹配,访问控制系统500将阻止或拒绝IPC 处理框架515处理IPC。
图5为示出根据本发明实施例的用于管理在计算设备102上执行的各进程之间的IPC的访问控制的方法600的流程图。方法600开始于602:例如进程310a的调用进程,发送IPC。为了便于描述图5,进程310a将称为调用进程310a。在一些实施例中,IPC是一种意图,并且该意图由调用进程发送并且由IPC处理框架515接收。
在604处,IPC处理框架515接收由调用进程310a发送的IPC,确定该IPC的目标进程(例如,进程310b),并确定目标进程310b的标识。IPC处理框架515还确定调用进程310a 的标识,并将调用进程的标识和目标进程的标识转发(例如,发送)给访问控制系统500的策略服务520。在一些实施例中,IPC处理框架515维护不同IPC的目标进程列表。在一些实施例中,IPC处理框架515可以用于使用IPC路由来确定IPC的目标进程。在一些实施例中, IPC处理框架515可以用于使用查找表来确定IPC的目标进程,以从不同IPC的目标进程列表中选择与所接收的IPC相关的目标进程。在策略服务520接收到调用进程310a的标识和目标进程310b的标识之后,方法600转到606。
在606处,策略服务520获取用于预授权的IPC元数据,并将用于预授权的IPC元数据发送给策略管理器530。策略服务520可以基于调用进程的标识和目标进程的标识中的至少一个获取用于预授权的IPC元数据。在一些实施例中,获得的用于预授权的IPC元数据包括调用进程310a的调用进程属性数据。在一些实施例中,获得的用于预授权的IPC元数据包括目标进程310b的目标进程属性数据。在一些实施例中,获得的用于预授权的IPC元数据包括调用进程310a的调用进程属性数据和目标进程310b的目标进程属性数据。在一些实施例中, IPC元数据包括IPC属性数据。在一些实施例中,用于预授权的IPC元数据由策略服务520 从包管理器545获得。
在策略服务520将用于预授权的IPC元数据发送给策略管理器530之后,方法600转到 608。在608处,策略管理器530执行或管理访问控制检查的预授权检查。预授权检查可以包括确定调用进程310a和目标进程310b中的至少一个是否为预授权进程。在一些实施例中,维护预授权进程列表(以下称为“白名单”),并基于该预授权进程列表(例如白名单)确定调用进程310a或目标进程310b中的至少一个是否为预授权进程。白名单可以在,例如策略库535中维护。“白名单”可以包括预授权进程的标识。“白名单”中的预授权进程可以是调用进程和/或目标进程。“白名单”可以包括用于一个或多个调用进程的调用进程属性数据,该数据将每个调用进程标识为预授权进程。“白名单”还可以包括用于一个或多个目标进程的目标进程属性数据,该数据将每个目标进程标识为预授权进程。在一些实施例中,调用进程310a是默认情况下被允许执行IPC的预授权进程,而无需考虑上下文属性数据或目标进程 310b的目标进程属性数据。在一些实施例中,目标进程310b是默认情况下被允许接收IPC 的预授权进程。例如,AndroidTM操作系统中的某些系统进程最好是被允许与其它进程进行通信的预授权进程,从而不会产生与访问控制检查的策略检查相关的额外处理开销。例如,如果无线连接丢失,则操作系统305中的无线网络管理服务可能会尝试广播通知。允许此等系统进程可能是有利的,因为不需要访问控制系统500执行额外检查。因此,此等系统进程可以包括在白名单中。
在一些实施例中,白名单中的一些预授权进程可以包括指示调用进程310a是系统进程的标准、标签、标识或名称。白名单中的一些预授权进程也可以包括指示目标进程310b是系统进程的标准、标签、标识或名称。在一些实施例中,白名单可以进行更新,以向白名单添加新的预授权进程或从白名单中删除预授权进程。可以响应于接收到用于更新预授权进程的指令来执行白名单的更新。例如,当计算设备102的用户或系统管理员使用如在计算设备102 的显示设备上呈现的图形用户界面或由服务器103管理的MDM客户端510更新(例如,添加或删除)“白名单”中的预授权进程时,可以生成指令。
如果确定调用进程310a或目标进程310b中的一个为预授权进程,则方法600转到622:策略管理器530通过策略服务520向IPC处理框架515发送“允许”消息。在624处,在接收到“允许”消息之后,IPC处理框架515继续处理IPC。在一些实施例中,IPC是一种意图,并且在624处,IPC处理框架515处理该意图。在一些实施例中,IPC处理框架515在从访问控制系统500接收到“允许”消息之后执行AndroidTM IPC权限检查。
在608处,如果确定调用进程310a和目标进程310b都不是预授权进程,则方法600转到610。在610处,策略服务520获取用于策略检查的IPC元数据,然后方法600转到612。在612处,获取上下文属性数据,然后方法600转到614。在一些实施例中,用于策略检查的IPC元数据由策略服务520从包管理器545获取,包管理器545从存储器204中检索用于策略检查的IPC元数据。在一些实施例中,上下文属性数据由策略服务520从上下文提供程序525获取,上下文提供程序525从存储器204中检索上下文属性数据。
在614处,在获得上下文属性数据之后,策略服务520将用于策略检查的IPC元数据和上下文属性数据提供给策略管理器530。策略管理器530从策略库535获取访问策略,然后方法600转到616。
在616处,策略管理器530管理或执行访问控制检查的策略检查,以根据从策略库535 基于用于策略检查的IPC元数据和访问策略的上下文属性数据获得的访问策略来确定是否允许处理IPC。
通过将用于策略检查的IPC元数据和上下文属性数据与一个或多个访问策略进行比较,来基于用于策略检查的IPC元数据和上下文属性数据确定是否允许处理IPC。在一些实施例中,访问策略可以由计算设备102的用户定制。在一些实施例中,策略由移动设备管理员(例如,MDM客户端510)控制。在一些实施例中,MDM管理员可以使用MDM客户端510来远程更新访问控制策略,该MDM客户端510可以向操作系统302的访问控制系统500发送用于更新访问策略的指令。
在616处,在确定用于策略检查的IPC元数据和上下文属性数据与允许策略中的任何一个不匹配,或者与拒绝策略中的一个匹配后,策略管理器530在步骤618处通过策略服务520 向IPC处理框架515发送“拒绝”消息。在620处,在接收到“拒绝”消息之后,IPC处理框架515放弃对IPC进行任何进一步确定,因为无论IPC处理框架515所管理或执行的Android授权检查确定是允许还是不允许处理IPC,都拒绝处理IPC。应当理解,在一些实施例中,要想进行IPC,必须由策略管理器530和IPC处理框架515(如上所述,IPC处理框架515管理或执行AndroidTM IPC授权检查)两者进行授权。
在616处,在确定用于策略检查的IPC元数据和上下文属性数据与策略库535中存储的允许策略中的一个匹配之后,策略管理器530在步骤622处通过策略服务520向IPC处理框架515发送“允许”消息。在624处,IPC处理框架515接收“允许”消息,并继续根据由 IPC处理框架515管理或执行的AndroidTM IPC权限检查来处理IPC,如上所述。如果由策略管理器530管理或执行的访问控制检查以及由IPC处理框架515管理或执行的AndroidTM IPC 权限检查都允许IPC,则IPC处理框架515允许或授权IPC并将IPC发送给目标进程310b。
如上所述,许多不同的访问策略可以存储在策略库535中。在示例实施例中,访问策略涉及接收IPC的日期时间以及计算设备102的地理位置。在示例实施例中,IPC处理框架515 在某工作日的上午10:30接收来自调用进程310a的IPC。策略服务520接收到的上下文属性数据可以指示计算设备102的用户当前位于自己的工作地点。策略库535可以包含如下策略:如果计算设备102的位置在与用户的工作地点相对应的位置坐标处,则允许处理调用进程 310a与目标进程310b之间在工作日的上午9:00至下午5:00内的IPC。因此,策略管理器530 通过策略服务520向IPC处理框架515发送“允许”消息,该消息指示IPC处理框架515处理IPC。
在一些实施例中,在计算设备102上执行的操作系统305支持多个用户配置文件。用户配置文件允许进程在与其它配置文件有一定程度隔离的环境中执行。例如,AndroidTM操作系统支持使用主要配置文件以及一个或多个托管配置文件。托管配置文件由MDM管理员控制,托管配置文件可用的功能可以与用户主要配置文件中可用的全部功能分开设置。使用多个用户配置文件可更好地控制计算设备102的操作的某些方面。
雇主可以向员工提供计算设备102(例如,iPhoneTM或AndroidTM设备),员工可以在该设备上执行各种工作(例如,接收和响应来自客户的电子邮件消息、进行电话呼叫等)。为了增强设备安全性,雇主可以在计算设备102上安装托管配置文件307。托管配置文件307是一种隔离环境,在这种环境下执行与工作(例如,电子邮件和电话处理)有关的进程(例如,应用程序和服务)等等。在一些实施例中,托管配置文件307的管理由移动设备管理(MobileDevice Management,MDM)管理员远程控制。MDM管理员可以是雇主的IT管理员(例如,如图4所示的MDM客户端510),IT管理员可以通过网络接口214从服务器103与计算设备 102进行通信。
图6示出了支持多用户配置文件的示例计算设备102中虚拟存储器300分配的简化配置。如图所示,计算设备102的虚拟存储器300被分为操作系统305、主要配置文件306和托管理配置文件307。在图6所示的示例实施例中,调用进程(例如,进程310a)是发送IPC的工作电子邮件应用程序,而由调用进程(例如,进程310a)发送的IPC的目标进程(例如,进程310b)是社交媒体应用程序。如图所示,工作电子邮件应用程序310a在托管配置文件 307中执行,社交媒体应用程序310b在主要配置文件306中执行。应当理解的是,调用进程 310a在主要配置文件306中执行并且目标进程310b在托管配置文件307中执行的实施例是可以预期的。
托管配置文件307可以由MDM客户端510远程管理。在一些实施例中,MDM客户端510是计算设备102上的应用程序。在一些实施例中,MDM客户端510由服务器103经由通信网络104通过MDM通信信道或其它反向信道来控制。MDM客户端510可以将策略的更新提供给策略服务520,策略更新可以由策略管理器530和策略库535来执行。MDM客户端 510可以对计算设备102的多个方面进行控制。例如,MDM客户端510可以安装和卸载进程,例如在托管配置文件307中来自计算设备102的应用程序。
在一个示例用例中,在接收到新电子邮件之后,工作电子邮件应用程序310a可以向用户广播通知(例如,出现在当前显示的应用程序的用户界面上层的警报)。在一些实施例中,这样的警报可以包括所接收的电子邮件的发送者姓名、主题栏以及电子邮件的一些文本样本中的一个或多个。在某些情况下,可能不宜显示此类警报,因为根据情况和上下文,此类通知可能包含机密且不适合显示的信息。例如,如果计算设备102的用户不在办公室并且位于公共场所中,则不宜以通知的形式显示与工作相关的机密信息。
在一些实施例中,策略库535包括拒绝策略,该策略阻止IPC处理框架515允许IPC在托管配置文件307中的调用进程310a与主要配置文件306中的目标进程310b之间发生。在常规的AndroidTM操作系统中,应用程序(例如,社交媒体应用程序310b)可以侦听或轮询来自通知系统框架的通知,并从接收到的通知中收集数据。例如,在主要配置文件306中的社交媒体应用程序310b可以检测到托管配置文件307中来自电子邮件应用程序310a的通知,这可以允许社交媒体应用程序310b从该通知中收集数据。传统的AndroidTM操作系统可能需要应用程序的授权才能侦听此类通知。但是,这样的授权适用于所有通知,无论其来源如何。除了整体批准以侦听或检测通知外,针对从在托管配置文件307中执行的调用进程310a到主要配置文件306中的目标进程310b的通知,不需要获取特定授权。这样,在AndroidTM操作系统中的常规Android IPC权限检查不会阻止主要配置文件中的目标进程310b检测并读取包含潜在敏感信息的通知,这会导致机密信息(例如,电子邮件接收方、主题栏、电子邮件文本的预览等)被披露给在主要配置文件306中执行的目标进程310b。
相反,在本发明实施例中,当托管配置文件307中的调用进程(例如,调用进程310a) 发送针对目标进程(例如,目标进程310b)的IPC时,IPC处理框架515接收该IPC,确定调用进程310a的标识和目标进程310b的标识,并将调用进程310a的标识和目标进程310b的标识转发给访问控制系统500的策略服务520。策略服务520从包管理器545获取调用进程310a的调用进程属性数据,该数据指示调用进程310a正在托管配置文件307中执行。策略服务520还从包管理器545获取目标进程310b的目标进程属性数据,该数据指示目标进程310b正在主要配置文件306中执行。策略服务520还可以从上下文提供程序525获取上下文属性数据。策略服务520还可从IPC处理框架515获取IPC属性数据。
策略服务520将调用进程属性数据310a、目标进程310b的目标进程属性数据、IPC属性数据和上下文属性数据提供给策略管理器530。策略管理器530将调用进程310a的调用进程属性数据、目标进程310b的目标进程属性数据、IPC属性数据和上下文属性数据与由策略库 535从存储器204获取的访问策略进行比较,从而确定是否允许处理IPC。在该实施例中,访问策略包括拒绝策略,指示不允许处理跨托管配置文件307和主要配置文件306的各进程之间的IPC。策略管理器530根据比较确定不允许处理调用进程310a与和目标进程310b之间的IPC,并通过策略服务520向IPC处理框架515发送“拒绝”消息。因此,在以上示例中,社交媒体应用程序310b将无法从电子邮件应用程序310a发送的通知中接收和收集数据。因此,根据一些实施例,降低了敏感数据被泄漏的可能性。
访问控制系统500可以与IPC处理框架515通信以防止IPC被进程读取的IPC的其它示例可以包括,例如,某个进程尝试访问传感器数据(例如,麦克风音频)以及某个进程尝试访问系统进程(例如,联系人数据库、蜂窝无线状态等)。
与传统的AndroidTM操作系统的权限检查相比,本文描述的实施例提供了以更高的粒度和灵活性对IPC执行访问控制检查的优点。传统的AndroidTM操作系统在进行IPC权限检查时不会考虑调用进程属性数据、目标进程属性数据、IPC属性数据或操作系统的上下文属性数据。本文所述的实施例通过在计算设备的操作系统中提供访问控制系统来增强计算设备的功能,该访问控制系统允许AndroidTM操作系统等操作系统的IPC处理框架基于IPC元数据和上下文属性数据处理IPC,以减少在计算设备上执行的各进程之间进行未经授权的通信的可能性。本文所述实施例还提供了定制和更新用于在计算设备上处理IPC的访问策略的能力,以减轻与在计算设备上运行的恶意应用程序相关的安全风险。
本发明的范围并不局限于说明书中所述的过程、机器、制造、物质组分、构件、方法和步骤的具体实施例。本领域普通技术人员可从本发明的公开中轻易地了解,可根据本发明使用现有的或即将开发出的,具有与本文所描述的相应实施例实质相同的功能,或能够取得与所述实施例实质相同的结果的过程、机器、制造、物质组分、构件、方法或步骤。相应地,所附权利要求范围包括这些流程、机器、产品、合成物质、方式、方法及步骤。
可以理解,上文描述和示出的具体实施例仅为示例性的。可以对这些示例实施例进行变形、选择其它配置、选择其它组件以及做出修改。本发明由权利要求书定义。
Claims (17)
1.一种用于管理在计算设备上执行的各进程之间的进程间通信的访问控制的方法,其特征在于,所述方法包括:
在所述计算设备上执行的操作系统的访问控制系统接收进程间通信IPC;
所述访问控制系统接收用于所述IPC的调用进程的标识和用于所述IPC的目标进程的标识;
所述访问控制系统根据所述调用进程的所述标识和所述目标进程的所述标识获取IPC元数据;所述IPC元数据包括所述调用进程的调用进程属性数据、所述目标进程的目标进程属性数据和所述IPC的IPC属性数据;
所述访问控制系统获取所述操作系统的上下文属性数据;
所述访问控制系统根据所述调用进程的调用进程属性数据、所述目标进程的目标进程属性数据和所述IPC的IPC属性数据在内的所述IPC元数据,以及所述操作系统的所述上下文属性数据确定是否允许所述IPC,其中,所述目标进程属性数据包括标识其中所述目标进程是系统进程的信息、标识用于安装所述目标进程的服务的信息、以及标识使用所述目标进程的用户环境是主要用户配置文件或托管用户配置文件的信息中的至少一种,其中,所述IPC属性数据包括所述IPC的IPC类型和多个IPC目标,并且其中,所述上下文属性数据包括Wi-Fi接入点信号强度、具有顶部用户界面焦点的应用程序的进程标识、环境光强度、网络连接状态、相机状态和麦克风状态中的至少一种;以及
所述访问控制系统发送一个指示是否允许所述IPC的消息。
2.根据权利要求1所述的方法,其特征在于,发送包括:在确定允许所述IPC后发送指示允许处理所述IPC的允许消息。
3.根据权利要求1或2所述的方法,其特征在于,发送包括:在确定不允许所述IPC后发送指示不允许处理所述IPC的拒绝消息。
4.根据权利要求1所述的方法,其特征在于,获取IPC元数据包括:获取用于预授权检查的IPC元数据和用于策略检查的IPC元数据,其中所述访问控制系统确定是否允许所述IPC包括:执行包括预授权检查和策略检查的访问控制检查。
5.根据权利要求4所述的方法,其特征在于,还包括:通过以下步骤来执行所述访问控制检查的所述策略检查:将用于所述策略检查的所述IPC元数据和所述上下文属性数据与一个或多个访问策略进行比较;确定所述IPC元数据和所述上下文属性数据是否与所述一个或多个访问策略中的一个匹配;以及在确定所述IPC元数据和所述上下文属性数据与所述一个或多个访问策略中的一个匹配后发送一个指示允许处理所述IPC的允许消息。
6.根据权利要求4所述的方法,其特征在于,还包括:通过以下步骤来执行所述预授权检查:基于用于预授权的所述IPC元数据来确定所述调用进程和所述目标进程中的至少一个是否为预授权进程,并在确定所述调用进程和所述目标进程中的至少一个为预授权进程后发送一个指示允许处理所述IPC的允许消息。
7.根据权利要求6所述的方法,其特征在于,基于用于预授权的所述IPC元数据确定所述调用进程和所述目标进程中的至少一个是否为预授权进程包括:确定所述调用进程和所述目标进程中的至少一个是否包括指示所述调用进程和所述目标进程中的至少一个为预授权进程的标准。
8.根据权利要求5所述的方法,其特征在于,还包括:
所述访问控制系统接收用于更新所述一个或多个访问策略中的一个或多个的指令;以及
所述访问控制系统根据所述指令更新所述一个或多个访问策略中的一个或多个。
9.一种计算设备,其特征在于,包括:
处理器;
与所述处理器通信耦合的存储器,所述存储器上存储有处理器可执行指令,当所述处理器可执行指令由所述处理器执行时,使得所述处理器执行以下操作:
接收来自在所述计算设备上执行的调用进程的IPC;
接收用于所述IPC的所述调用进程的标识和用于所述IPC的目标进程的标识;
基于所述调用进程的所述标识和目标进程的标识和操作系统的上下文属性数据获取IPC元数据;所述进程间通信IPC元数据包括所述调用进程的调用进程属性数据、所述目标进程的目标进程属性数据和所述IPC的IPC属性数据;
基于所述调用进程的调用进程属性数据、所述目标进程的目标进程属性数据和所述IPC的IPC属性数据在内的所述IPC元数据、所述操作系统的上下文属性数据确定是否允许所述IPC,其中,所述目标进程属性数据包括标识其中所述目标进程是系统进程的信息、标识用于安装所述目标进程的服务的信息、以及标识使用所述目标进程的用户环境是主要用户配置文件或托管用户配置文件的信息中的至少一种,其中,所述IPC属性数据包括所述IPC的IPC类型和多个IPC目标,并且其中,所述上下文属性数据包括Wi-Fi接入点信号强度、具有顶部用户界面焦点的应用程序的进程标识、环境光强度、网络连接状态、相机状态和麦克风状态中的至少一种;以及
发送一条指示是否允许所述IPC的消息。
10.根据权利要求9所述的计算设备,其特征在于,所述处理器可执行指令在由所述处理器执行时,使得所述处理器在确定允许所述IPC后发送一个指示允许处理所述IPC的允许消息。
11.根据权利要求9或10所述的计算设备,其特征在于,所述处理器可执行指令在由所述处理器执行时,使得所述处理器在确定不允许所述IPC后发送一个指示不允许处理所述IPC的拒绝消息。
12.根据权利要求9所述的计算设备,其特征在于,所述处理器可执行指令在由所述处理器执行时,使得所述处理器:通过获取用于预授权检查的IPC元数据和用于策略检查的IPC元数据来获取IPC元数据,并通过执行包括预授权检查和策略检查的访问控制检查来确定是否允许所述IPC。
13.根据权利要求12所述的计算设备,其特征在于,所述处理器可执行指令在由所述处理器执行时,使得所述处理器:通过将用于所述策略检查的所述IPC元数据和所述上下文属性数据与一个或多个访问策略进行比较来执行所述访问控制检查的所述策略检查;确定所述IPC元数据和所述上下文属性数据是否与所述一个或多个访问策略中的一个匹配;以及在确定所述IPC元数据和所述上下文属性数据与所述一个或多个访问策略中的一个匹配后发送一个指示允许处理所述IPC的允许消息。
14.根据权利要求12所述的计算设备,其特征在于,所述处理器可执行指令在由所述处理器执行时,使得所述处理器:通过基于用于预授权的所述IPC元数据确定所述调用进程和所述目标进程中的至少一个是否为预授权进程来执行所述预授权检查;并在确定所述调用进程和所述目标进程中的至少一个为预授权进程后发送一个指示允许处理所述IPC的允许消息。
15.根据权利要求12所述的计算设备,其特征在于,所述处理器可执行指令在由所述处理器执行时,使得所述处理器:通过确定所述调用进程和所述目标进程中的至少一个是否包括指示所述调用进程和所述目标进程中的至少一个为预授权进程的标准,从而基于用于预授权的所述IPC元数据确定所述调用进程和所述目标进程中的至少一个是否为预授权进程。
16.根据权利要求13所述的计算设备,其特征在于,所述处理器可执行指令在由所述处理器执行时,使得所述处理器:
接收用于更新所述一个或多个访问策略中的一个或多个的指令;以及
根据所述指令更新所述一个或多个访问策略中的一个或多个。
17.一种存储指令的计算机可读存储介质,其特征在于,所述指令在由计算设备的处理器执行时,使得所述计算设备执行权利要求1至8中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/916,866 US11062030B2 (en) | 2018-03-09 | 2018-03-09 | Systems and methods for managing access control between processes in a computing device |
US15/916,866 | 2018-03-09 | ||
PCT/CN2019/076144 WO2019170014A1 (en) | 2018-03-09 | 2019-02-26 | Systems and methods for managing access control between processes in a computing device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111357256A CN111357256A (zh) | 2020-06-30 |
CN111357256B true CN111357256B (zh) | 2022-03-01 |
Family
ID=67844570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005771.0A Active CN111357256B (zh) | 2018-03-09 | 2019-02-26 | 管理计算设备中各进程之间的访问控制的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11062030B2 (zh) |
EP (1) | EP3688962A4 (zh) |
CN (1) | CN111357256B (zh) |
WO (1) | WO2019170014A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11503468B2 (en) * | 2018-10-08 | 2022-11-15 | Sygnali Llc | System and method for continuously validating and authenticating a host and sensor pair |
US11080416B2 (en) * | 2018-10-08 | 2021-08-03 | Microsoft Technology Licensing, Llc | Protecting selected disks on a computer system |
CN110647077B (zh) * | 2019-09-26 | 2020-12-25 | 珠海格力电器股份有限公司 | 一种工控装置的控制方法、系统、存储介质及工控装置 |
US11645400B2 (en) * | 2019-10-04 | 2023-05-09 | Vmware, Inc. | Secured interprocess communication |
CN111142939B (zh) * | 2019-12-11 | 2023-04-07 | 北京小米移动软件有限公司 | 应用程序处理方法及装置 |
US20210336973A1 (en) * | 2020-04-27 | 2021-10-28 | Check Point Software Technologies Ltd. | Method and system for detecting malicious or suspicious activity by baselining host behavior |
US20220094715A1 (en) * | 2020-09-18 | 2022-03-24 | Prama, Inc. | Method and a system for providing security and access control in a network model |
US11916908B2 (en) | 2020-10-26 | 2024-02-27 | Dell Products L.P. | Method and system for performing an authentication and authorization operation on video data using a data processing unit |
US11252327B1 (en) | 2020-10-26 | 2022-02-15 | Dell Products L.P. | Method and system for performing a contextual stitching operation on video data using a data processing unit |
US11158352B1 (en) * | 2020-10-26 | 2021-10-26 | Dell Products L.P. | Method and system for indexing video data using a data processing unit |
US11514949B2 (en) | 2020-10-26 | 2022-11-29 | Dell Products L.P. | Method and system for long term stitching of video data using a data processing unit |
US11409793B2 (en) | 2020-10-26 | 2022-08-09 | Dell Products L.P. | Method and system for performing a storage tier operation on video data using a data processing unit |
US11599574B2 (en) | 2020-10-26 | 2023-03-07 | Dell Products L.P. | Method and system for performing a compliance operation on video data using a data processing unit |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050182966A1 (en) * | 2004-02-17 | 2005-08-18 | Duc Pham | Secure interprocess communications binding system and methods |
CN103379089A (zh) * | 2012-04-12 | 2013-10-30 | 中国航空工业集团公司第六三一研究所 | 基于安全域隔离的访问控制方法及其系统 |
US20140201807A1 (en) * | 2013-01-07 | 2014-07-17 | Optio Labs, Inc. | Systems and methods for enforcing security in mobile computing |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04251338A (ja) | 1990-10-10 | 1992-09-07 | Fuji Xerox Co Ltd | プロセス間通信の制御方式 |
US8726294B2 (en) * | 2010-10-01 | 2014-05-13 | Z124 | Cross-environment communication using application space API |
US8136155B2 (en) * | 2003-04-01 | 2012-03-13 | Check Point Software Technologies, Inc. | Security system with methodology for interprocess communication control |
US7882317B2 (en) * | 2004-12-06 | 2011-02-01 | Microsoft Corporation | Process isolation using protection domains |
US7865934B2 (en) * | 2006-05-18 | 2011-01-04 | Microsoft Corporation | Access-control permissions with inter-process message-based communications |
US8108519B2 (en) * | 2008-11-07 | 2012-01-31 | Samsung Electronics Co., Ltd. | Secure inter-process communication for safer computing environments and systems |
US9317702B2 (en) * | 2011-11-29 | 2016-04-19 | Sony Corporation | System and method for providing secure inter-process communications |
US9787681B2 (en) * | 2012-01-06 | 2017-10-10 | Optio Labs, Inc. | Systems and methods for enforcing access control policies on privileged accesses for mobile devices |
CN102647429A (zh) * | 2012-04-28 | 2012-08-22 | 杭州格畅科技有限公司 | 应用间通信的访问控制方法、应用进程管理器、在线应用平台 |
US9319897B2 (en) * | 2012-08-15 | 2016-04-19 | Qualcomm Incorporated | Secure behavior analysis over trusted execution environment |
WO2015138931A1 (en) | 2014-03-13 | 2015-09-17 | Optio Labs, Inc. | Systems and methods for enforcing security in mobile computing |
US9684547B2 (en) * | 2014-05-29 | 2017-06-20 | Apple Inc. | Method and apparatus for handling security of an application and its extension |
US10430577B2 (en) * | 2014-05-30 | 2019-10-01 | Apple Inc. | Method and apparatus for inter process privilige transfer |
US9560028B1 (en) * | 2014-08-04 | 2017-01-31 | Symantec Corporation | Systems and methods for filtering interprocess communications |
US10505872B2 (en) * | 2016-06-12 | 2019-12-10 | Apple Inc. | Messaging application interacting with one or more extension applications |
US10885211B2 (en) * | 2017-09-12 | 2021-01-05 | Sophos Limited | Securing interprocess communications |
-
2018
- 2018-03-09 US US15/916,866 patent/US11062030B2/en active Active
-
2019
- 2019-02-26 CN CN201980005771.0A patent/CN111357256B/zh active Active
- 2019-02-26 WO PCT/CN2019/076144 patent/WO2019170014A1/en unknown
- 2019-02-26 EP EP19764646.6A patent/EP3688962A4/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050182966A1 (en) * | 2004-02-17 | 2005-08-18 | Duc Pham | Secure interprocess communications binding system and methods |
CN103379089A (zh) * | 2012-04-12 | 2013-10-30 | 中国航空工业集团公司第六三一研究所 | 基于安全域隔离的访问控制方法及其系统 |
US20140201807A1 (en) * | 2013-01-07 | 2014-07-17 | Optio Labs, Inc. | Systems and methods for enforcing security in mobile computing |
Also Published As
Publication number | Publication date |
---|---|
WO2019170014A1 (en) | 2019-09-12 |
US20190278910A1 (en) | 2019-09-12 |
US11062030B2 (en) | 2021-07-13 |
CN111357256A (zh) | 2020-06-30 |
EP3688962A4 (en) | 2020-12-16 |
EP3688962A1 (en) | 2020-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111357256B (zh) | 管理计算设备中各进程之间的访问控制的系统和方法 | |
US20210240848A1 (en) | Detecting an attempted access of personal information on client computing devices | |
US10075532B2 (en) | Method and system for controlling remote session on computer systems | |
US8844036B2 (en) | Method and system for application-based policy monitoring and enforcement on a mobile device | |
US10187425B2 (en) | Issuing security commands to a client device | |
US10728234B2 (en) | Method, system and device for security configurations | |
US9674171B2 (en) | System, method and computer program product for providing notifications from a virtual device to a disconnected physical device | |
US10757079B2 (en) | Method and system for controlling remote session on computer systems using a virtual channel | |
US10311247B2 (en) | Method and system for isolating secure communication events from a non-secure application | |
US9223941B2 (en) | Using a URI whitelist | |
US10999326B1 (en) | Fine grained network security | |
CN114080594A (zh) | 用于工作空间或应用的通知标记 | |
US10298586B2 (en) | Using a file whitelist | |
US20230075237A1 (en) | Self-Management of Devices Using Personal Mobile Device Management | |
US10581917B2 (en) | Systems and methods for enforcing device policies | |
CN113765986B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |