CN100583116C - 用于控制应用程序对资源的访问的信息处理设备和方法 - Google Patents
用于控制应用程序对资源的访问的信息处理设备和方法 Download PDFInfo
- Publication number
- CN100583116C CN100583116C CN200710192736A CN200710192736A CN100583116C CN 100583116 C CN100583116 C CN 100583116C CN 200710192736 A CN200710192736 A CN 200710192736A CN 200710192736 A CN200710192736 A CN 200710192736A CN 100583116 C CN100583116 C CN 100583116C
- Authority
- CN
- China
- Prior art keywords
- resource access
- equipment
- access condition
- messaging device
- function call
- 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.)
- Expired - Fee Related
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/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
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Abstract
本发明提供用于基于信息处理设备的运行环境或运行状态拒绝或允许应用程序对资源的访问的技术。该信息处理设备包括:检测单元,用于检测连接到信息处理设备的设备的连接状态或运行状态的变化;选择单元,用于作为对检测连接状态的变化的响应,基于检测到的连接状态选择要应用于信息处理设备的资源访问条件;以及条件存储单元,用于存储所选择的资源访问条件。该信息处理设备进一步包括:捕获单元,用于捕获由应用程序向操作系统发出的针对资源访问的多个函数调用;确定单元,用于确定是否允许所捕获的函数调用;以及控制单元,用于拒绝该函数调用。当捕获到函数调用时,基于从条件存储单元读取的资源访问条件确定是否允许所捕获的函数调用,并且作为对确定不允许该函数调用的响应而拒绝该函数调用。
Description
技术领域
本发明涉及控制应用程序通过操作系统对资源的访问,并且更特别地,涉及一种用于作为对信息处理设备的运行环境或运行状态的响应而控制运行在该信息处理设备上的应用程序对资源的访问的技术。
背景技术
已经提出了一种已知技术(例如参考专利文献1),其中为了完全拒绝没有访问权限的用户所进行的信息导出,在信息处理设备中,作为对用户访问权限的响应,限制诸如文件的打印、移动和复制,在软盘中用另一个名字保存文件,以及捕获屏幕之类的功能。
在专利文献1(日本未审专利申请公开No.2003-44297)中的技术中,首先由资源管理程序捕获对操纵由操作系统管理的诸如文件、网络、存储单元、显示器屏幕和外部附件之类的计算机资源的请求。捕获到该操纵请求的资源管理程序确定用户是否有访问在该操纵请求中指定的计算机资源的权限。然后,作为确定的结果,当用户有访问权限时,资源管理程序将操纵请求不加改变地传递给操作系统。另一方面,当用户没有访问权限时,资源管理系统拒绝操纵请求。
发明内容
但是,在前述技术中,结合用户和计算机资源的组合而定义了对计算机资源的访问许可。访问许可由例如管理员静态地定义。这样,在前述技术中,不能作为对信息处理设备的运行环境或运行状态的响应而改变访问许可。不能作为对信息处理设备的运行环境的响应而指定访问许可,该运行环境例如是如下环境,在该环境中,在诸如公司设备之类的安全场所使用信息处理设备。而且,不能作为对信息处理设备的运行状态的响应而指定访问许可,该运行状态例如是如下状态,在该状态下,USB连接到信息处理设备。
本发明的一个目的是提供一种用于控制应用程序通过操作系统对数据的访问的设备、方法和程序,以便为前述问题提供解决方案。
解决问题的方法
用于达到前述目的的本发明由在信息处理设备中执行的用于控制运行在该信息处理设备上的应用程序对资源的访问的以下方法来实现。在这种方法中,首先检测连接到信息处理设备上的设备的连接状态或运行状态的变化。作为对连接状态或运行状态的变化的检测的响应,选择要应用于信息处理设备的资源访问条件,参考表,在该表中设备的连接状态或运行状态中的每个都与应当应用的资源访问条件相关联。将所选择的资源访问条件存储到条件存储单元。然后,作为对捕获由应用程序向操作系统发出的针对资源访问的函数调用的响应,从条件存储单元读取资源访问条件,并且基于该资源访问条件确定是否允许所捕获的函数调用。如果确定不允许所捕获的函数调用,则拒绝该函数调用。
这里的资源表示由操作系统管理的计算机资源,诸如文件、主存储器、外部存储单元以及进程。而且,这里的针对资源访问的函数调用可以是用以浏览、创建、删除、复制和移动资源,将资源读入共享存储器,打印资源,以及激活进程的所有类型的针对数据访问的函数调用中的任意一种。
优选地,该设备可以是网络设备、外部显示器和外部介质中的任意一个。这里的外部介质包括所有被信息处理设备识别为外部驱动器的介质,例如,诸如USB存储器、CD-ROM、DVD-ROM、压缩闪卡及SD卡之类的存储介质和诸如外部硬盘驱动器和数码相机之类的外围设备。
优选地,检测步骤包括检测网络设备的运行状态的变化的步骤。如果无线网络设备准备就绪可以使用,则选择步骤包括选择比在有线网络设备准备就绪可以使用的情况下的资源访问条件更严格的资源访问条件的步骤。
优选地,检测步骤包括在检测到网络设备准备就绪可以使用时获取信息处理设备所连接到的网络的类型的步骤,该类型表明了该网络的安全级别。如果网络设备准备就绪可以使用并且所连接网络的类型并不代表安全的网络,则选择步骤包括选择比在网络设备准备就绪可以使用并且网络的类型代表安全网络的情况下的资源访问条件更严格的资源访问条件的步骤。
优选地,检测步骤包括检测外部显示器的连接状态的变化的步骤。如果外部显示器已连接,则选择步骤包括选择用于拒绝用以浏览预定数据的函数调用的资源访问条件的步骤。
优选地,检测步骤包括检测外部介质的连接状态或运行状态的变化的步骤。如果外部介质已连接或者准备就绪可以使用,则选择步骤包括选择用于使得从外部介质调用的进程和另一个进程在不同的条件下访问资源的资源访问条件的步骤。
优选地,检测步骤包括在检测到外部介质已连接或准备就绪可以使用时获取外部介质的硬件标识信息的步骤。如果外部介质已连接或准备就绪可以使用,则选择步骤包括基于外部介质的硬件标识信息选择要应用于信息处理设备的资源访问条件。使用厂商、模型号、序列号等等作为硬件标识信息。
优选地,该用于控制资源访问的方法进一步包括作为对检测多个设备的连接状态或运行状态的变化的响应,将检测到的多个设备的连接状态或运行状态存储到状态存储单元的步骤。在该表中,该多个设备的连接状态或运行状态的每个组合都与应当应用的资源访问条件相关联。选择步骤包括从状态存储单元读取各个设备的当前连接状态或运行状态、参考表、以及选择要应用于信息处理设备的资源访问条件的步骤,在该表中多个设备的连接状态或运行状态的每个组合都与应当应用的资源访问条件相关联。
虽然将本发明已经被描述为一种在信息处理设备中用于控制通过操作系统对资源的访问的方法,但是本发明可以被考虑为一种用于使信息处理设备执行这种方法的程序。而且,本发明可以被考虑为一种用于控制通过操作系统对数据的访问的信息处理设备。
优势
根据本发明,可以基于信息处理设备的运行环境或运行状态灵活地拒绝或允许通过操作系统的资源访问。
附图说明
现在将基于附图详细描述用于执行本发明的最佳模式。以下实施例并不会对权利要求书中所要求保护的本发明构成限制。此外,实施例中所描述的特征的所有组合并不一定只能用于本发明的用于解决上述问题的方法。贯穿对实施例的描述,相同的标号被分配给相同的组件。
图1示出了根据本发明的一个实施例的信息处理设备100的硬件配置示例。
图2是信息处理设备100的功能框图,该信息处理设备100执行根据本发明的一个实施例的用于控制通过操作系统的数据访问的程序220。
图3的(a)部分示出了表明各个设备当前连接状态或运行状态的信息的示例。(b)部分示出了分配给网络设备的两个比特的含义。(c)部分示出了分配给不同于网络设备的设备的一个比特的含义。
图4示出了选择表245的一个示例。
图5示出了图4所示的七十二个访问条件的细节的示例。
图6是示出驻留程序222的处理流程的示例的流程图。
图7是示出程序224的处理流程的示例的流程图。
具体实施方式
图1示出了可以在本发明的一个实施例中使用的信息处理设备的硬件配置示例。信息处理设备100包括CPU外围部分、输入输出部分和既有输入输出部分,其中CPU外围部分包括通过主机控制器110相互连接的CPU 105、RAM 115和图形控制器120,显示器125,以及外部显示器180,输入输出部分包括通过输入输出控制器130连接到主机控制器110的通信接口145、硬盘驱动器135和CD-ROM驱动器140,既有输入输出部分包括连接到输入输出控制器130的超级I/O控制器150、闪速ROM 160和键盘鼠标控制器165以及连接到超级I/O控制器150的软盘驱动器155。
主机控制器110将CPU 105和图形控制器120连接到RAM 115,CPU 105和图形控制器120以高传送速率访问RAM 115。CPU 105根据存储在闪速ROM 160和RAM 115中的程序运行并控制各个组件。图形控制器120获取在由CPU 105等在RAM 115中提供的帧缓冲器中产生的图像数据并在显示器125和/或外部显示器180上显示该图像数据。作为对这种配置的替代,图形控制器120可以包括存储由CPU 105等产生的图像数据的帧缓冲器。
输入输出控制器130将作为相对高速的输入输出单元的通信接口145、硬盘驱动器135和CD-ROM驱动器140连接到主机控制器110。通信接口145通过网络与外部设备通信。通信接口145是连接到Ethernet(以太网,注册商标)的以太网适配器或通过空中接口而不是电缆连接到网络的无线LAN(局域网)适配器。新近的信息处理设备100既包括以太网适配器又包括无线LAN适配器作为通信接口145。当信息处理设备100是笔记本电脑时,输入输出控制器130进一步将CardBus控制器190连接到主机控制器110。CardBus控制器190控制插入到PC卡槽的PC卡,PC卡作为例如闪存卡、硬盘、SCSI卡、LAN卡或无线LAN卡使用。
硬盘驱动器135存储信息处理设备100使用的程序和数据。CD-ROM驱动器140从CD-ROM读取程序或数据并将这些程序或数据提供给RAM115或硬盘驱动器135。而且,在输入输出控制器130中提供USB端口。USB端口连接到在例如信息处理设备100的壁面上提供的USB连接器170上。诸如USB存储器或USB外部HDD之类的可移动设备可以连接到USB连接器170。
而且,闪速ROM 160以及作为相对低速输入输出单元的超级I/O控制器150、键盘鼠标控制器165等连接到输入输出控制器130。闪速ROM 160存储在信息处理设备100被激活时由CPU 105执行的引导程序、依赖于信息处理设备100的硬件的程序等等。软盘驱动器155从软盘读取程序或数据并通过RAM 115将这些程序或数据提供给超级I/O控制器150。超级I/O控制器150通过并口、串口、键盘端口、鼠标端口等等来实现对例如打印机、软盘、键盘和鼠标之类的输入输出单元的连接。
下面描述的根据本发明的用于控制通过操作系统的资源访问的程序220存储在诸如软盘、CD-ROM或IC卡之类的存储介质中并由用户提供。通过输入输出控制器130和/或超级I/O控制器150从存储介质上读取该程序并在信息处理设备100中安装和执行该程序。
程序220可以存储在外部存储介质中。除了软盘和CD-ROM,诸如DVD或PD之类的光记录介质,诸如MD、磁带介质之类的磁-光记录介质,诸如IC卡之类的半导体存储器等可以作为存储介质使用。而且,可以使用在连接到专用通信网络、因特网等的服务器系统中所提供的诸如硬盘或RAM之类的存储单元作为存储介质,通过网络将程序提供给信息处理设备100。
图2是信息处理设备100的功能框图,该信息处理设备100执行根据本发明的一个实施例的用于控制通过操作系统的资源访问的程序220。图2中示出的硬件200是图1中示出的信息处理设备100的硬件。信息处理设备100使得操作系统(以下称为OS)205在硬件200上运行。OS 205是执行各种类型的应用210的通用OS,诸如微软公司的Windows(商标)OS,IBM公司的OS/2(商标),或Linux(注册商标)OS。
一般而言,在通用OS上运行的应用程序210在该应用程序210访问资源时使用由OS 205提供的应用程序接口(以下称为API)。例如,当应用程序210制作文件副本时,应用程序210向OS 205发出API函数调用以制作文件副本。类似地,当应用程序210将文件从某个介质移动到另一个介质时,应用程序210向OS 205发出API函数调用以移动该文件。当OS 205是Windows(商标)OS时,API函数被提供为动态链接库(以下称为DLL)215。说明书中描述的应用程序210表示所有的运行在OS 205上的程序。
这样,控制各种类型的应用对资源的访问通过如下操作来实现,即监控对由OS 205提供的多个API函数中的被预设为对象的API函数的调用以及正在受到监控的对象中的进程,并基于适当的资源访问条件来确定是否允许检测到的API函数调用。根据本发明的信息处理设备100的一个目的是针对信息处理设备100的运行环境或运行状态动态地确定用于确定是否允许检测到的API函数调用的资源访问条件。根据连接到信息处理系统100的设备的连接状态或运行状态来估计信息处理设备100的运行环境或运行状态。
用于控制通过操作系统对资源的访问的程序220包括驻留程序222和程序224,驻留程序222包括注册模块、检测模块和选择模块,程序224包括确定模块、控制模块和捕获模块。这些模块使得信息处理设备100用作注册单元225、检测单元230、选择单元240、确定单元260、控制单元265和捕获单元270。
注册单元225执行用于从OS 205接收关于信息处理设备100的设备硬件配置的变化的通知的注册。一般而言,OS 205提供用于向指定应用发送关于硬件配置变化的通知的服务。在这个实施例中,为网络设备、外部显示器和外部介质注册设备通知。
例如,在Windows(商标)OS中,RegisterDeviceNotification函数可以用于注册设备通知。在RegisterDeviceNotification函数中,指定接收设备事件的服务或窗口的句柄和指向指定了接收通知的设备或设备类型的数据块的指针。而且,可以使用Windows管理工具(WMI)的ExecNotificationQuery函数注册更详细的设备事件通知,WMI是管理设备驱动器的通用方法。
检测单元230检测连接到信息处理设备100的设备的连接状态或运行状态的变化。当使用RegisterDeviceNotification函数注册设备通知时,检测单元230通过从Windows(商标)OS接收WM_DEVICECHANGE消息来检测设备的连接状态或运行状态的变化。WM_DEVICECHANGE消息包括表明发生了什么事件的参数和指向包括关于发生事件的设备的信息的关于事件的详细信息的指针。
例如,当设备或介质被插入并准备就绪可以使用时,发送WM_DEVICECHANGE消息,其中DBT_DEVICEARRIVAL作为参数被设置。而且,当网络已经准备就绪可以使用时,发送WM_DEVICECHANGE 消息,其中设置了DBT_DEVNODES_CHANGED。有必要通过单独接收关于WMI事件的通知来检测电缆的连接状态的变化。
而且,当检测单元230检测到网络设备的运行状态的变化时,检测单元230获取信息处理设备100所连接的网络的类型,该类型表明了网络的安全级别。表明了安全级别的网络类型包括可以用于确定信息处理设备100是否在安全环境下使用的所有网络类型,例如,建立了防火墙的内部网络或没有采取措施防止外部入侵的外部网络。例如,可以通过使用ipconfig命令检查分配给信息处理设备100的IP地址的网络端口值来获取网络类型。而且,当一直存在于网络中的特定设备的IP地址已知时,可以通过向该特定设备发出ping命令来获取所连接的网络的类型。例如,在特定设备是内部服务器的情况下,当获取对ping命令的响应时,所连接的网络是内部网络。
而且,当检测单元230检测到外部介质已连接或准备就绪可以使用时,检测单元230获取外部介质的硬件标识信息,诸如厂商、模型号和序列号。可以通过例如向设备驱动器发送I/O控制码(DeviceIoControl)并获取设备描述符(DeviceDescriptor)来获取这种硬件标识信息。
而且,检测单元230包括状态存储单元235,其存储关于每个设备的当前连接状态或运行状态的信息并用检测到的每个设备的连接状态或运行状态更新存储在状态存储单元235中的信息。图3示出了存储在状态存储单元235中的信息的示例。在这个实施例中,使用一个字节存储六类设备的连接状态或运行状态,这六类设备包括有线网络设备、无线网络设备、外部显示器、外部介质#1到#3,如图3的(a)部分所示。两个比特分配给每个网络设备,一个比特分配给每个其他设备。
图3的(b)部分示出了分配给每个网络设备的两个字节的含义。值00表明对应的网络设备未被使用。值01和10都表明对应的网络设备正在被使用。值01表明对应的网络设备连接到内部网络,值10表明对应的网络设备连接到外部网络。图3的(c)部分示出了分配给每个其他设备的一个比特的含义。值0表明对应的设备未连接到信息处理设备100,值1表明对应的设备连接到信息处理设备100。
作为对检测单元230对连接状态或运行状态的变化的检测的响应,选择单元240基于检测到的连接状态或运行状态选择要应用于信息处理设备100的资源访问条件。更特别地,选择单元240包括选择表245,该表中多个设备的连接状态或运行状态的每个组合都与应当应用于每个组合的资源访问条件相关联,并且选择单元240参考选择表245来选择与从状态存储单元235读取的设备的当前连接状态或运行状态的组合相关联的资源访问条件作为要应用于信息处理设备100的资源访问条件。选择单元240进一步包括条件存储单元250并将所选择的资源访问条件存储到条件存储单元250。
图4示出了选择表245的示例,包括了五类设备:有线网络设备、无线网络设备、外部显示器及外部介质#1和#2。每个网络设备处于以下三种状态中的一种:连接到内部网络、连接到外部网络、未被使用,如参考图2所述。每个其他设备处于以下两种状态中的一种:连接的和未连接的。这样,通过计算三(有线网络设备可能的状态数量)、三(无线网络设备可能的状态数量)、二(外部显示器可能的状态数量)、二(外部介质#1可能的状态数量)和二(外部介质#2可能的状态数量)的乘积,可以发现存在多个设备的连接状态或运行状态的七十二种组合,并且每个组合与应当应用于每个组合的访问条件相关联。这七十二个访问条件并非一定要相互不同,部分访问条件可以相互重合。
一般而言,多种类型的外部介质可以连接到信息处理设备100,并且相同的资源访问条件可以应用于所有的外部介质。但是,在这个实施例中,将连接到信息处理设备100的外部介质分类,如图4所示,并且为特定的外部介质选择资源访问条件,该资源访问条件不同于其他外部介质的资源访问条件。这实现了访问控制,其中例如在有特定模型号并由公司发给员工用于商业用途的诸如有指纹认证功能的USB存储器之类的可靠介质和很多非特定的不可靠介质之间进行区分。
图5示出了图4所示出的七十二个资源访问条件的细节的示例。用户或管理信息处理设备100的系统管理员可以适当地确定并设置资源访问条件。将资源访问条件1应用于信息处理设备100通过有线网络设备连接到内部网络的情况。由于信息处理设备100用电缆连接到外部网络,可以假定信息处理设备100是在基本上只有同一部门的员工可以进入的安全场所使用的,该场所诸如公司中员工的个人工作区。这样,在访问条件1中,允许所有类型的针对数据访问的函数调用,诸如用以浏览、创建、删除、复制和移动数据,将数据读入共享存储器,打印数据,以及激活进程的函数调用。
另一方面,将资源访问条件6应用于信息处理设备100通过无线网络设备连接到内部网络的情况。由于信息处理设备100通过空中接口连接到内部网络,所以可以假定信息处理系统100是在例如另一个部门中的员工以及参观公司的客户和商家可以进入的诸如公司的会议室或自助餐厅之类的场所使用的。这样,尽管信息处理设备100在公司内使用,还是需要在一定程度上考虑包括信息泄漏的风险。因此,在资源访问条件6中,对于诸如机密信息之类的预定数据,禁止用以复制、删除和移动数据,将数据读入共享存储器,打印数据,以及激活进程的函数调用。以这种方式,在这个实施例中,资源访问条件6要比资源访问条件1严格。当无线网络设备准备就绪可以使用时,将比在有线网络设备准备就绪可以使用的情况下更严格的资源访问条件应用于信息处理设备100。
将资源访问条件9应用于信息处理设备100通过无线网络设备连接到外部网络的情况。由于信息处理设备100通过空中接口连接到外部网络,所以可以假定信息处理设备100是在有很多非特定的人存在的诸如机场或旅馆大厅之类的场所使用的。这样,在资源访问条件9中,对于诸如机密信息之类的预定数据,禁止所有类型的针对数据访问的函数调用,诸如用以浏览、复制、删除和移动数据,将数据读入共享存储器,打印数据,以及激活进程的函数调用。以这种方式,在这个实施例中,资源访问条件9要比资源访问条件6严格。当信息处理设备100连接到不安全的网络时,将比在信息处理设备100连接到安全网络的情况下更严格的资源访问条件应用于信息处理设备100。
将资源访问条件12应用于外部显示器连接到信息处理设备100的情况。在很多情况下,外部显示器用于进行显示,并且参与者可以通过外部显示器查看出现在信息处理设备100的屏幕上的信息。这样,存在由于操作信息处理设备100的用户的误操作而造成机密信息意外地出现在屏幕上的风险,并且内容可能泄漏。这样,在资源访问条件12中,对于诸如机密信息之类的预定数据,禁止用以浏览数据的函数调用。作为对禁止用以浏览数据的函数调用的替代,也可以禁止用以在屏幕上显示数据的函数调用。
将资源访问条件19应用于信息处理设备100通过有线网络设备连接到内部网络并且外部介质#1连接到信息处理设备100的情况。由于外部介质#1连接到信息处理设备100,所以用户可以很容易地将内部网络中的信息存储到外部介质#1中并且输出该信息。这样,在资源访问条件19中,禁止用以使用外部介质#1作为存储场所来复制、创建和移动数据以及将数据读入共享存储器的函数调用。
在资源访问条件19中,由于外部介质#1所连接的信息处理设备100连接到内部网络,当感染病毒的文件存储在外部介质#1中时,病毒感染可能扩散到内部网络。这样,作为对资源访问条件19的替代或补充,对于在外部介质#1中的数据,禁止用以复制和移动数据及将数据读入共享存储器的函数调用。
将资源访问条件21应用于外部介质#1连接到信息处理设备100的情况。由于外部介质#1存储不需要作为机密内容来处理的文件、程序等,所以在资源访问条件21中,允许所有类型的针对数据访问的函数调用,理由用以浏览、创建、删除、复制和移动数据,将数据读入共享存储器,打印数据,以及激活进程的函数调用。从资源访问条件1、19和21的对比可以明显看出,在这个实施例中,为多个设备的连接状态或运行状态的每个组合提供了适用的资源访问条件。
将资源访问条件39应用于外部介质#2连接到信息处理设备100的情况。外部介质#2是一种用于处理机密商业信息的特殊设备,该设备包括例如指纹认证功能和内部VPN访问程序,并且该外部介质#2包括机密数据。这样,在资源访问条件39中,对于在外部介质#2中由预定硬件标识信息标识的文件,禁止用以浏览、删除、复制和移动文件的函数调用,并且作为例外,只允许外部介质#2中的特定程序浏览介质#2中的文件。这样,在这个实施例中,将不同于外部介质#1的资源访问条件应用于外部介质#2。
这样,根据连接到信息处理设备100的设备的连接状态或运行状态估计信息处理设备100的运行环境或运行状态,并且确定应当应用于所估计的运行环境或运行状态的资源访问条件。所确定的资源访问条件不仅存储在从驻留程序222和程序224都可以访问的例如主存储器之类的共享区域,还可以存储在例如硬盘或磁光盘之类的记录介质的共享区域。
捕获单元270捕获由应用程序210向OS 205发出的针对资源访问的多个函数调用。更特别地,作为对应用程序210开始运行的响应,捕获单元270通过将针对资源访问的多个函数调用的调用地址改变成控制模块的地址来捕获由应用程序210向OS 205发出的针对资源访问的多个函数调用,控制模块实现控制单元265。这里针对资源访问的多个函数调用包括所有类型的针对资源访问的函数调用,例如用以浏览、复制、创建、删除和移动数据,将数据读入共享存储器,打印数据,以及激活进程的函数调用。在这个实施例中,这些功能由操作系统205作为DLL#1到#3215提供。
确定单元260基于从条件存储单元250读取的资源访问条件确定是否允许所捕获的函数调用。在资源访问条件中,指定函数调用的类型、数据、进程等,允许或不允许由函数调用进行的数据处理,如参考图5所述。这样,确定单元260通过将在所捕获的函数调用中调用的函数与资源访问条件中指定的函数进行比较来确定是否允许所捕获的函数调用。
当在资源访问条件中禁止对预定数据的函数调用时,确定单元260通过检查所捕获的函数调用的自变量所指定的数据类型来进一步确定是否允许所捕获的函数调用。例如,当禁止进行函数调用的预定数据的类型是机密数据时,确定单元260检查在所捕获的函数调用的自变量所指定的数据、数据名称、存储数据的文件夹的名称等等中是否包括诸如“机密”或“保密”之类的特定字符串。
当在资源访问条件中禁止指定预定数据存储场所的函数调用时,确定单元260通过检查所捕获的函数调用的自变量所指定的数据存储场所来进一步确定是否允许所捕获的函数调用。例如,当禁止进行函数调用的预定数据存储场所是外部介质时,确定单元260获取由所捕获的函数的自变量所指定的存储设备的属性并确定该设备类型是否是可移动设备。
当指定特定的外部介质作为预定数据存储场所时,确定单元260进一步获取存储设备的硬件标识消息并确定该硬件标识消息是否匹配于在对应的资源访问条件中指定的硬件标识符,其中该特定的外部介质由例如表明厂家的商家ID或产品ID之类的预定硬件标识信息标识。在资源访问条件中,当只允许对函数进行调用并且被从预定场所调用的进程执行函数调用时,确定单元260进一步获取其中存在调用进程程序模块的设备的类型、硬件标识信息等等,并确定这些信息是否匹配于资源访问条件。
当应用程序210已经调用了控制单元265时,控制单元265调用确定单元260并使得确定单元260确定是否允许所捕获的函数调用。当确定单元260确定不允许对应的数据处理时,控制单元265拒绝该函数调用。更特别地,当确定单元260确定不允许对应的数据处理时,控制单元265向应用程序210返回错误代码,而不调用DLL#1到#3215中的函数。作为替代,控制单元265可以仅向应用程序210返回空数据。当确定单元260确定允许对应的数据处理时,控制单元265指定由应用程序210指定的自变量,而不用改变和调用DLL#1到#3215中的函数。作为替代,控制单元265可以改变自变量并调用DLL#1到#3215中的函数,或者可以在该函数调用之前和/或之后添加不同类型的函数调用。
如上所述,在根据本发明的信息处理设备100中,可以基于与信息处理设备100的运行环境或运行状态对应的资源访问条件拒绝或允许通过OS的资源访问。
现在将参考图6和图7中的流程图描述根据本发明的信息处理设备100的各个组件的操作。图6示出了由驻留程序222使其用作注册单元225、检测单元230和选择单元240的信息处理设备100中的处理的流程示例。在执行图6所示出的处理之前,驻留程序222在信息处理设备100上至少执行一次并且使得信息处理设备100用作注册单元225。特别地,信息处理设备100作为预处理而针对从OS 205接收到关于设备硬件配置变化的通知来执行注册。然后,在步骤S600中,驻留程序222和OS 205一起被激活,使得该处理开始。
当已经激活驻留程序222时,检测单元230通过从OS 205接收状态变化通知来检测连接到信息处理设备100的设备的连接状态或运行状态的变化(步骤S610)。然后,检测单元230确定检测到的连接状态或运行状态的变化是否是网络设备或外部介质的变化(步骤S620)。当检测到的连接状态或运行状态的变化是外部介质的变化时,检测单元230获取外部介质的硬件标识信息(步骤S630)。当检测到的连接状态或运行状态的变化是网络设备的变化时,检测单元230获取信息处理设备所连接的网络的类型(步骤S635)。
在步骤S630或S635之后,或在步骤S620的“否”的情况下,处理继续到步骤S640,其中检测单元230用检测到的设备的连接状态或运行状态更新关于存储在状态存储单元235中的设备当前连接状态或运行状态的信息。该处理停留在步骤S610直到检测单元230执行了检测。
然后,作为对检测单元230对状态变化的检测的响应,选择单元240基于检测到的设备的连接状态或运行状态选择要应用于信息处理设备100的资源访问条件(步骤S650)。特别地,选择单元240参考选择表245,在该表中多个设备的连接状态或运行状态的每个组合都与应当应用于每个组合的资源访问条件相关联,并且选择单元240选择与从状态存储单元235读取的各个设备当前连接状态或运行状态的组合对应的访问条件。然后,选择单元240将所选择的资源访问条件存储在条件存储单元250中(步骤S660)。
在步骤S660之后,处理回到步骤S610,并且重复前述的一系列步骤。这样,反映信息处理设备100的当前运行环境或运行状态的适当访问条件一直存储在条件存储单元250中。
图7示出了由程序224使其用作捕获单元270、确定单元260和控制单元265的信息处理设备100中的处理的流程示例。程序224至少需要在可以发出针对数据访问的函数调用的应用程序210被激活时运行,并且并非一定要与OS 205一起被激活,这与驻留程序222不同。在这个实施例中,程序224和可以发出针对数据访问的函数调用的应用程序210一起被激活。
为了同时激活程序224和应用程序210,将包括捕获模块、确定模块和控制模块的程序24的对象文件(例如DLL)注册为操作系统的标准DLL。例如,在Windows(商标)中,当这些程序在注册表中被作为USER32扩展DLL注册时,这些程序可以在启动链接到USER32.DLL的所有进程时被激活。
在步骤S700中,在激活程序224时,处理开始。作为对应用程序210开始运行的响应,捕获单元270通过将调用地址改变成控制模块的地址来捕获由应用程序210向OS 205发出的针对数据访问的多个函数调用,控制模块实现控制单元265(步骤S710)。
更特别地,捕获单元270在另一个区域备份DLL#1到#3215中一些部分的首指令代码(leading instruction code),这些部分是从应用程序210调用的。然后,捕获单元270用去往控制模块的跳转指令取代这些指令代码,控制模块实现控制单元265。捕获单元270进一步使控制单元265调用备份的首指令代码,而不是从控制单元265调用DLL#1到#3215。
当从应用程序210接收到调用时(步骤S720),控制单元265调用确定单元260并使得确定单元260确定是否允许所捕获的函数调用。作为对来自控制单元265的调用的响应,确定单元260从条件存储单元250读取资源访问条件(步骤S730)。然后,确定单元260首先确定在资源访问条件中不允许的任意函数是否匹配于在所捕获的函数调用中调用的函数(步骤S740)。
当在资源访问条件中不允许在所捕获的函数调用中调用的函数时(步骤S740:是),确定单元260确定在资源访问条件中是否禁止针对预定数据进行的函数调用(步骤S750)。当在资源访问条件中禁止针对预定数据进行的函数调用时,确定单元260确定所捕获的函数调用的自变量指定的数据类型是否与资源访问条件中指定的预定数据对应(步骤S760)。
当所捕获的函数调用是针对资源访问条件中指定的预定数据进行的时(步骤S760:是)或在步骤S750中“否”的情况下,确定单元260进一步确定在资源访问条件中是否禁止指定预定存储场所的函数调用(步骤S770)。当在资源访问条件中禁止指定预定存储场所的函数调用时,确定单元260确定由所捕获的函数调用的自变量指定的数据存储场所是否为资源访问条件中指定的预定存储场所(步骤S775)。
当所捕获的函数调用指定在资源访问条件中指定的预定存储场所时(步骤S775:是)或在步骤S770中“否”的情况下,确定单元260进一步确定在资源访问条件中是否只允许对函数进行调用并且被从特定场所调用的进程执行函数调用(步骤S780)。当在访问条件中只允许对函数进行调用并且被从特定场所调用的进程执行函数调用时,确定单元260获取设备的类型、硬件标识信息等,并确定该设备是否为访问条件中指定的用于激活进程的特定场所,其中在该设备中进程的一个程序模块调用该函数(步骤S785)。
当调用该函数的进程进行调用的场所不是在访问条件中指定的特定场所时(步骤S785:否)或在步骤S780中“否”的情况下,确定单元260返回不允许所捕获的函数调用的确定结果到控制单元265。作为对确定单元260所得到的不允许所捕获的函数调用的确定结果的响应,控制单元265拒绝所捕获的函数调用(步骤S790)。另一方面,在步骤S740、S760或S775中“否”的情况下或在步骤S785中“是”的情况下,确定单元260返回允许所捕获的函数调用的确定结果到控制单元265。作为对确定单元260所得到的允许所捕获的函数调用的确定结果的响应,控制单元265继续进行所捕获的函数调用(步骤S795)。
尽管已经通过实施例对本发明进行了描述,但本发明的技术范围不限于在前述实施例中所描述的范围。本领域的普通技术人员很容易想到可以在前述实施例中进行各种改变和改进。因此,显然,经改变或改进的实施例同样被本发明的技术范围所覆盖。
Claims (9)
1.一种在信息处理设备中用于控制运行在所述信息处理设备上的应用程序对资源的访问的方法,所述方法包括:
检测连接到所述信息处理设备上的设备的连接状态或运行状态的变化的步骤;
作为检测所述连接状态或所述运行状态的变化的响应,参考表并选择要应用于所述信息处理设备的资源访问条件的步骤,在所述表中所述设备的所述连接状态或所述运行状态中的每个都与应当应用的资源访问条件相关联;
将所述资源访问条件存储到条件存储单元的步骤;
捕获由所述应用程序向操作系统发出的针对资源访问的函数调用的步骤;
基于从所述条件存储单元读取的所述资源访问条件确定是否允许所述捕获的函数调用的步骤;以及
作为对确定不允许所述函数调用的响应而拒绝所述函数调用的步骤。
2.根据权利要求1所述的方法,其中所述设备是网络设备、外部显示器和外部介质中的任意一个。
3.根据权利要求1所述的方法,其中所述检测步骤包括检测网络设备的运行状态的变化的步骤,
其中如果无线网络设备准备就绪可以使用,则所述选择步骤包括选择比在有线网络设备准备就绪可以使用的情况下的资源访问条件更严格的资源访问条件的步骤。
4.根据权利要求1所述的方法,其中所述检测步骤包括在检测到网络设备准备就绪可以使用时获取所述信息处理设备所连接到的网络的类型的步骤,所述类型表明了所述网络的安全级别,
其中如果所述网络设备准备就绪可以使用并且所述网络的所述类型并不代表安全的网络,则所述选择步骤包括选择比在所述网络设备准备就绪可以使用并且所述网络的所述类型代表安全网络的情况下的资源访问条件更严格的资源访问条件的步骤。
5.根据权利要求1所述的方法,其中所述检测步骤包括检测外部显示器的连接状态的变化的步骤,
其中如果所述外部显示器已连接,则所述选择步骤包括选择用于拒绝用以浏览预定数据的函数调用的资源访问条件的步骤。
6.根据权利要求1所述的方法,其中所述检测步骤包括检测外部介质的连接状态或运行状态的变化的步骤,
其中如果所述外部介质已连接或者准备就绪可以使用,则所述选择步骤包括选择用于使得从所述外部介质调用的进程和从另一个外部介质调用的进程在不同的条件下访问资源的资源访问条件的步骤。
7.根据权利要求1所述的方法,其中所述检测步骤包括在检测到外部介质已连接或准备就绪可以使用时获取所述外部介质的硬件标识信息的步骤,
其中如果所述外部介质已连接或准备就绪可以使用,则所述选择步骤包括基于所述外部介质的所述硬件标识信息选择要应用于所述信息处理设备的资源访问条件的步骤。
8.根据权利要求1所述的方法,进一步包括作为对检测多个设备的所述连接状态或所述运行状态的所述变化的响应,将所述检测到的所述多个设备的连接状态或运行状态存储到状态存储单元的步骤,
其中在所述表中,所述多个设备的连接状态或运行状态的每个组合都与应当应用的资源访问条件相关联,
其中所述选择步骤包括从所述状态存储单元读取各个设备的所述当前连接状态或运行状态、参考所述表、以及选择要应用于所述信息处理设备的资源访问条件的步骤。
9.一种用于控制应用程序对资源的访问的信息处理设备,所述信息处理设备包括:
检测单元,用于检测连接到所述信息处理设备上的设备的连接状态或运行状态的变化;
选择单元,用于作为检测所述连接状态或所述运行状态的变化的响应,参考表并选择要应用于所述信息处理设备的资源访问条件,在所述表中所述设备的所述连接状态或所述运行状态中的每个都与应当应用的资源访问条件相关联;
条件存储单元,用于存储所述资源访问条件;
捕获单元,用于捕获由所述应用程序向操作系统发出的针对资源访问的函数调用;
确定单元,用于基于从所述条件存储单元读取的所述资源访问条件确定是否允许所述捕获的函数调用;以及
控制单元,用于作为对确定不允许所述函数调用的响应而拒绝所述函数调用。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006351606A JP4473256B2 (ja) | 2006-12-27 | 2006-12-27 | アプリケーションプログラムによるリソースアクセスを制御するための情報処理装置、方法、及びプログラム |
JP2006351606 | 2006-12-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101211393A CN101211393A (zh) | 2008-07-02 |
CN100583116C true CN100583116C (zh) | 2010-01-20 |
Family
ID=39585942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710192736A Expired - Fee Related CN100583116C (zh) | 2006-12-27 | 2007-11-16 | 用于控制应用程序对资源的访问的信息处理设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7996854B2 (zh) |
JP (1) | JP4473256B2 (zh) |
CN (1) | CN100583116C (zh) |
TW (1) | TW200834317A (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009102006A1 (ja) * | 2008-02-14 | 2009-08-20 | Nec Corporation | アクセス制御装置、その方法及び情報記録媒体 |
JP5260619B2 (ja) * | 2010-12-02 | 2013-08-14 | キヤノンマーケティングジャパン株式会社 | 情報処理装置、情報処理方法及びプログラム |
US9003543B2 (en) * | 2010-12-21 | 2015-04-07 | Microsoft Technology Licensing, Llc | Providing a security boundary |
US8646050B2 (en) * | 2011-01-18 | 2014-02-04 | Apple Inc. | System and method for supporting JIT in a secure system with randomly allocated memory ranges |
US8650640B2 (en) * | 2011-02-24 | 2014-02-11 | International Business Machines Corporation | Using a declaration of security requirements to determine whether to permit application operations |
CN102663289B (zh) * | 2012-03-22 | 2015-07-15 | 北京奇虎科技有限公司 | 一种对修改网页元素的恶意程序进行拦截的方法及装置 |
JP6217092B2 (ja) * | 2013-03-05 | 2017-10-25 | 富士通株式会社 | 情報処理装置、システム、情報処理方法及びプログラム |
US9170828B2 (en) * | 2013-05-16 | 2015-10-27 | Microsoft Technology Licensing, Llc. | Extraction of operating system-specific characteristics via a communication interface |
CN103366115B (zh) * | 2013-07-03 | 2016-03-23 | 中国联合网络通信集团有限公司 | 安全性检测方法和装置 |
CN103810031B (zh) * | 2014-02-26 | 2017-05-10 | 珠海市君天电子科技有限公司 | 一种管理无线网共享软件的方法和装置 |
CN105282117A (zh) * | 2014-07-21 | 2016-01-27 | 中兴通讯股份有限公司 | 访问控制方法及装置 |
CN104883680B (zh) * | 2015-05-15 | 2019-08-30 | 深圳市立鳌科技有限公司 | 一种数据保护方法以及用户端 |
CN106612263B (zh) * | 2015-10-27 | 2020-04-17 | 阿里巴巴集团控股有限公司 | 一种用于处理应用访问请求的方法与设备 |
CN105930190B (zh) * | 2016-04-27 | 2019-04-16 | 百度在线网络技术(北京)有限公司 | 一种基于操作系统的程序自启动方法和装置 |
CN111181831B (zh) * | 2019-06-10 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 通信数据处理方法和装置、存储介质及电子装置 |
CN111538576B (zh) * | 2020-04-20 | 2023-05-02 | 支付宝(杭州)信息技术有限公司 | 数据资源处理方法、装置、设备和存储介质 |
US20220206645A1 (en) * | 2020-12-30 | 2022-06-30 | Google Llc | Management of screen content capture |
WO2022270385A1 (ja) * | 2021-06-22 | 2022-12-29 | デジタル・インフォメーション・テクノロジー株式会社 | プログラム、情報処理装置、方法 |
JP2023058383A (ja) | 2021-10-13 | 2023-04-25 | 株式会社Pfu | 画像読取装置、制御方法及び制御プログラム |
CN117171578B (zh) * | 2023-11-03 | 2024-02-06 | 成都方顷科技有限公司 | 一种基于大数据分析的机场智慧台站管理方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7568226B2 (en) * | 2000-02-22 | 2009-07-28 | International Business Machines Corporation | Data processing system and method |
JP2003044297A (ja) | 2000-11-20 | 2003-02-14 | Humming Heads Inc | コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム |
US7117504B2 (en) * | 2001-07-10 | 2006-10-03 | Microsoft Corporation | Application program interface that enables communication for a network software platform |
EP1494121B1 (en) | 2002-04-11 | 2012-07-11 | Lenovo (Singapore) Pte. Ltd. | Computer, computer security setting method, and program |
JP2003316650A (ja) | 2002-04-18 | 2003-11-07 | Internatl Business Mach Corp <Ibm> | コンピュータ装置、携帯情報機器、セキュリティ切り替え方法、およびプログラム |
JP4250100B2 (ja) | 2004-02-23 | 2009-04-08 | 大日本印刷株式会社 | コンピュータシステム |
JP2006340320A (ja) | 2005-06-06 | 2006-12-14 | Canon Inc | データ処理装置及びデータ処理方法 |
JP2006092560A (ja) | 2005-09-29 | 2006-04-06 | Fujitsu Ltd | 情報機器システム |
JP4778970B2 (ja) * | 2005-10-13 | 2011-09-21 | 株式会社エヌ・ティ・ティ・ドコモ | 携帯端末、アクセス制御管理装置及びアクセス制御管理方法 |
-
2006
- 2006-12-27 JP JP2006351606A patent/JP4473256B2/ja not_active Expired - Fee Related
-
2007
- 2007-11-16 CN CN200710192736A patent/CN100583116C/zh not_active Expired - Fee Related
- 2007-12-03 TW TW096145888A patent/TW200834317A/zh unknown
- 2007-12-11 US US11/954,144 patent/US7996854B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
TW200834317A (en) | 2008-08-16 |
CN101211393A (zh) | 2008-07-02 |
JP4473256B2 (ja) | 2010-06-02 |
US7996854B2 (en) | 2011-08-09 |
US20080163242A1 (en) | 2008-07-03 |
JP2008165325A (ja) | 2008-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100583116C (zh) | 用于控制应用程序对资源的访问的信息处理设备和方法 | |
US8832796B2 (en) | Wireless communication terminal, method for protecting data in wireless communication terminal, program for having wireless communication terminal protect data, and recording medium storing the program | |
CN101375626B (zh) | 基于发射机指纹来确定用户设备的网络位置 | |
US8918530B2 (en) | Plug and play device redirection for remote systems | |
US8578504B2 (en) | System and method for data leakage prevention | |
US7600231B2 (en) | Control method for controlling an application program | |
US20030041179A1 (en) | Method and system for providing state change notifications in device drivers | |
US8661502B2 (en) | Determining a sensitivity label of document information in real time | |
CA2197219A1 (en) | Apparatus and method for restricting access to a local computer network | |
JP2010026662A (ja) | 情報漏洩防止システム | |
WO2019022573A1 (en) | METHODS AND APPARATUS FOR MONITORING AUTHORIZED MASKED SENSITIVE APPLICATION BEHAVIOR DURING EXECUTION | |
US20190018751A1 (en) | Digital Asset Tracking System And Method | |
JP2009075940A (ja) | ログ分析装置およびプログラム | |
US20150188846A1 (en) | Techniques for providing dynamic account and device management | |
JP4093811B2 (ja) | ユーザアクセス権制御装置及び方法 | |
WO2005103909A1 (ja) | セキュリティ保全方法およびデータ蓄積装置、セキュリティ保全サーバ、及びそのプログラムを記録した記録媒体 | |
KR20140068440A (ko) | 어플리케이션 삭제에 연동한 se 애플릿 관리 방법 및 이를 적용한 모바일 기기와 서비스 관리 서버 | |
CN114707144A (zh) | 虚拟机逃逸行为检测方法及装置 | |
JP6701368B2 (ja) | 印刷操作を介した印刷インタフェース技術診断によるデータ損失防止 | |
CN101777102B (zh) | 一种对内核的安全审计方法和系统 | |
US8477747B1 (en) | Automatic capture of wireless endpoints for connection enforcement | |
KR100985073B1 (ko) | 네트워크 공유폴더 접근 제어 장치 및 방법 | |
JP4788636B2 (ja) | 情報管理装置および方法 | |
KR102559482B1 (ko) | It 장비 반출입 관리 시스템 | |
KR101278317B1 (ko) | 내용 기반 검색을 통한 파일 관리 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100120 Termination date: 20181116 |
|
CF01 | Termination of patent right due to non-payment of annual fee |