CN113761524A - 激活窗口审计方法及系统 - Google Patents

激活窗口审计方法及系统 Download PDF

Info

Publication number
CN113761524A
CN113761524A CN202111033536.XA CN202111033536A CN113761524A CN 113761524 A CN113761524 A CN 113761524A CN 202111033536 A CN202111033536 A CN 202111033536A CN 113761524 A CN113761524 A CN 113761524A
Authority
CN
China
Prior art keywords
window
current
active window
attribute
root
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.)
Pending
Application number
CN202111033536.XA
Other languages
English (en)
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.)
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
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 Qax Technology Group Inc, Secworld Information Technology Beijing Co Ltd filed Critical Qax Technology Group Inc
Priority to CN202111033536.XA priority Critical patent/CN113761524A/zh
Publication of CN113761524A publication Critical patent/CN113761524A/zh
Pending legal-status Critical Current

Links

Images

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种激活窗口审计方法,该方法包括:获取当前桌面的根窗口;通过监听所述根窗口的属性变化判断当前激活窗口是否发生变化;当所述当前激活窗口发生变化时,通过预设业务逻辑判断所述当前激活窗口是否合法;当所述当前激活窗口不合法时,拦截所述当前激活窗口。本申请还公开了一种激活窗口审计系统、电子装置和计算机可读存储介质。由此,能够基于X11服务直接获取当前激活窗口以及相关信息,并对不合法的窗口进行拦截,减少了系统资源的消耗,提升了系统运行效率和性能。

Description

激活窗口审计方法及系统
技术领域
本申请涉及终端安全技术领域,尤其涉及一种激活窗口审计方法、系统、电子装置及计算机可读存储介质。
背景技术
目前业内对于激活窗口变化的监控采用的是遍历当前所有窗口,再获取窗口的标题,或者通过钩子(Hook)的方式从应用程序的启动中获取信息,以上方式都比较消耗系统资源,影响系统运行效率和性能。
需要说明的是,上述内容并不用于限制申请保护范围。
发明内容
本申请的主要目的在于提出一种激活窗口审计方法、系统、电子装置及计算机可读存储介质,旨在解决如何有效对激活窗口变化进行审计,并降低对系统资源的消耗的问题。
为实现上述目的,本申请实施例提供了一种激活窗口审计方法,所述方法包括:
获取当前桌面的根窗口;
通过监听所述根窗口的属性变化判断当前激活窗口是否发生变化;
当所述当前激活窗口发生变化时,通过预设业务逻辑判断所述当前激活窗口是否合法;
当所述当前激活窗口不合法时,拦截所述当前激活窗口。
可选地,所述方法还包括:
记录对所述当前激活窗口的审计结果。
可选地,所述通过监听所述根窗口的属性变化判断当前激活窗口是否发生变化包括:
监听所述根窗口的属性变化;
当所述根窗口的属性发生变化时,判断发生变化的属性类型是否为指定类型;
当为指定类型时,确定所述当前激活窗口发生变化。
可选地,所述监听所述根窗口的属性变化包括:
接收监听新事件;
判断所述新事件是否为属性变化通知事件;
当所述新事件为属性变化通知事件时,确定所述根窗口的属性发生变化。
可选地,所述判断发生变化的属性类型是否为指定类型包括:
从所述属性变化通知事件中获取发生变化的属性类型;
比对所述属性类型是否为指定类型。
可选地,所述当所述当前激活窗口发生变化时,通过预设业务逻辑判断所述当前激活窗口是否合法包括:
从所述根窗口的发生变化的属性中读取所述当前激活窗口的信息;
读取预设的业务逻辑,并根据所述业务逻辑和所述当前激活窗口的信息判断所述当前激活窗口是否合法。
可选地,所述获取当前桌面的根窗口包括:通过X11服务的DefaultRootWindow函数获取当前桌面的根窗口。
可选地,所述监听所述根窗口的属性变化包括:基于X11服务监听所述根窗口的PropertyChangeMask和SubstructureNotifyMask属性变化。
可选地,所述属性变化通知事件为X11服务中的PropertyNotify事件,所述指定类型为_NET_ACTIVE_WINDOW属性。
可选地,所述拦截所述当前激活窗口包括:向所述当前激活窗口发送_NET_CLOSE_WINDOW消息,以关闭所述当前激活窗口。
此外,为实现上述目的,本申请实施例还提供一种激活窗口审计系统,所述系统包括:
获取模块,用于获取当前桌面的根窗口;
监听模块,用于通过监听所述根窗口的属性变化判断当前激活窗口是否发生变化;
判断模块,用于当所述当前激活窗口发生变化时,通过预设业务逻辑判断所述当前激活窗口是否合法;
拦截模块,用于当所述当前激活窗口不合法时,拦截所述当前激活窗口。
为实现上述目的,本申请实施例还提供一种电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的激活窗口审计程序,所述激活窗口审计程序被所述处理器执行时实现如上述的激活窗口审计方法。
为实现上述目的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有激活窗口审计程序,所述激活窗口审计程序被处理器执行时实现如上述的激活窗口审计方法。
本申请实施例提出的激活窗口审计方法、系统、电子装置及计算机可读存储介质,能够基于X11服务直接获取当前激活窗口以及相关信息,并对不合法的窗口进行拦截,减少了系统资源的消耗,提升了系统运行效率和性能。
附图说明
图1为实现本申请各个实施例的一种应用环境架构图;
图2为本申请第一实施例提出的一种激活窗口审计方法的流程示意图;
图3为图2中步骤S22的细化流程示意图;
图4为图3中步骤S220的细化流程示意图;
图5为图3中步骤S222的细化流程示意图;
图6为图2中步骤S24的细化流程示意图;
图7为本申请第二实施例提出的一种激活窗口审计方法的流程示意图;
图8为所述第二实施例的一种具体实例的流程示意图。
图9为本申请第三实施例提出的一种电子装置的硬件架构示意图;
图10为本申请第四实施例提出的一种激活窗口审计系统的模块示意图;
图11为本申请第五实施例提出的一种激活窗口审计系统的模块示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
请参阅图1,图1为实现本申请各个实施例的一种应用环境架构图。本申请可应用于包括,但不仅限于显示端2和服务端4的应用环境中。
其中,显示端2用于通过一个或多个窗口向用户显示文件、网页等数据内容。所述显示端2可以是终端设备的显示器等。
服务端4用于针对所述显示端2中的激活窗口变化进行监测和控制。在本申请各个实施例中,所述服务端4基于X11服务为所述显示端2的桌面显示进行服务。
X11服务是一种X协议服务,所有的客户端都使用约定的X协议和X服务器进行通信,将需要显示的图像信息告知X服务器,其中包括窗口大小、位置、内容和属性等一系列信息。X服务器再将所有客户端的信息整合,将图像展示在显示端2上。
本申请各个实施例应用于特殊部门和组织或者特殊应用场景,需要对特定的网页或文件等内容进行管控。例如,在一些涉密场景中,假设一个涉密文件被禁止另存,当用户打开该涉密文件后,如果点击应用程序中的“另存为”按钮,执行另存为操作,则会弹出一个“另存为”窗口。此时本申请实施例可以监控到该涉密文件不允许另存,便会将该“另存为”窗口拦截,并生成审计日志,记录该非法操作,以便后续人员进行溯源。
当然,该应用环境中还可能包括输入端(可以用于输入激活窗口的操作,例如点击“另存为”按钮)等软硬件设备,在此不做赘述。
实施例一
如图2所示,为本申请第一实施例提出的一种激活窗口审计方法的流程示意图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。下面以所述服务端4作为执行主体对该方法进行说明。
该方法包括以下步骤:
S20,获取当前桌面的根窗口。
具体地,在使用X11服务作为桌面显示服务器的系统中,可以使用X11服务的DefaultRootWindow函数获取当前桌面的根窗口(Root Window)。
S22,通过监听所述根窗口的属性变化判断当前激活窗口是否发生变化。
当获取所述根窗口后,可以通过对所述根窗口的监听,来感知当前激活窗口是否发生变化,从而对发生变化的激活窗口进行审计。
例如,当用户打开一个涉密文件后,如果点击应用程序中的“另存为”按钮,执行另存为操作,则会弹出一个“另存为”窗口。此时当前桌面的激活窗口变为所述“另存为”窗口,通过监听所述根窗口的属性变化,可以感知到所述激活窗口的变化。
具体而言,进一步参阅图3,为上述步骤S22的细化流程示意图。可以理解,该流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。在本实施例中,所述步骤S22具体包括:
S220,监听所述根窗口的属性变化。
具体地,当所述根窗口的某些属性发生变化时,可能表示当前桌面的激活窗口发生了变化。在本实施例中,可以基于X11服务监听所述根窗口的PropertyChangeMask和SubstructureNotifyMask属性变化。
具体而言,进一步参阅图4,为上述步骤S220的细化流程示意图。可以理解,该流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。在本实施例中,所述步骤S220具体包括:
S2200,接收监听新事件。
当监听所述根窗口的属性变化后,等待接收各种监听事件。
S2202,判断所述新事件是否为属性变化通知事件。
当接收到某个新事件后,首先判断所述新事件是否为属性变化通知事件。在本实施例中,所述属性变化通知事件为X11服务中的PropertyNotify事件。也就是说,首先判断所述新事件是否为PropertyNotify事件。
S2204,当所述新事件为属性变化通知事件时,确定所述根窗口的属性发生变化。
所述属性变化通知事件(PropertyNotify事件)用于通知此时所监听的属性(PropertyChangeMask和SubstructureNotifyMask属性)发生了变化。当判断所述新事件为PropertyNotify事件时,即可确定此时所述根窗口的属性发生变化。
S222,当所述根窗口的属性发生变化时,判断发生变化的属性类型是否为指定类型。
具体地,当所监听的属性发生变化时,会发出相应的通知事件,根据该通知事件,即可判断当前激活窗口是否发生变化。但是,由于所述属性变化可能包括多种类型,不一定是激活窗口变化导致所述属性变化,因此还需要进一步判断发生变化的属性类型是否为指定类型。
具体而言,进一步参阅图5,为上述步骤S222的细化流程示意图。可以理解,该流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。在本实施例中,所述步骤S222具体包括:
S2224,从所述属性变化通知事件中获取发生变化的属性类型。
由于属性变化的类型可能有很多种,不一定是激活窗口变化,因此还需要进行进一步的判断。所述属性变化通知事件(PropertyNotify事件)中一般都包含有发生变化的属性类型的信息(Property信息),从所述属性变化通知事件(PropertyNotify事件)直接可以获取到所述属性类型。
S2226,比对所述属性类型是否为指定类型。
根据所述属性类型与预先设置的指定类型进行比对,即可进一步确定是否为当前桌面的激活窗口发生变化。在本实施例中,所述指定类型为X11服务中的_NET_ACTIVE_WINDOW属性。也就是说,判断所述属性类型(PropertyNotify事件中的Property信息)是否为_NET_ACTIVE_WINDOW属性。
回到图3,S224,当为指定类型时,确定所述当前激活窗口发生变化。
具体地,在比对所述属性类型和所述指定类型后,若所述属性类型为所述指定类型,表示所述当前激活窗口发生变化。若所述属性类型不是所述指定类型,表示监听到的属性变化不是激活窗口变化,不需要理会。
回到图2,S24,当所述当前激活窗口发生变化时,通过预设业务逻辑判断所述当前激活窗口是否合法。
具体而言,进一步参阅图6,为上述步骤S24的细化流程示意图。可以理解,该流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。在本实施例中,所述步骤S24具体包括:
S240,从所述根窗口的所述发生变化的属性中读取所述当前激活窗口的信息。
为了判断所述当前激活窗口是否合法,首先要知道所述当前激活窗口是什么,也就是需要获取所述当前激活窗口的信息。在本实施例中,可以从所述根窗口的所述发生变化的属性(也就是所述指定类型的属性)中直接读取所述当前激活窗口的信息。例如,通过读取所述根窗口的_NET_ACTIVE_WINDOW属性,可以获取到当前激活窗口的窗口索引。
S242,读取预设的业务逻辑,并根据所述业务逻辑和所述当前激活窗口的信息判断所述当前激活窗口是否合法。
所述业务逻辑可以根据实际应用场景进行自定义配置。当监听后确定所述激活窗口发生变化,并获取到当前激活窗口的信息时,读取预先配置的所述业务逻辑,并根据所述业务逻辑对所述当前激活窗口进行相应逻辑运算,判断所述当前激活窗口是否合法。
例如,假设所述涉密文件被禁止另存,则当用户打开所述涉密文件并点击“另存为”按钮弹出一个“另存为”窗口后,此时本实施例可以监控到所述涉密文件不允许另存,因此可以判断出所述“另存为”窗口不合法。
回到图2,S26,当所述当前激活窗口不合法时,拦截所述当前激活窗口。
若根据所述业务逻辑判断出所述当前激活窗口不合法,则表示所述当前激活窗口不允许正常运行,应该进行拦截。在本实施例中,所述拦截是指向所述当前激活窗口发送_NET_CLOSE_WINDOW消息,以关闭所述当前激活窗口。
当然,若根据所述业务逻辑判断出所述当前激活窗口合法,则表示所述氮气激活窗口运行正常运行,不需要理会,不用采取额外操作。
本实施例提出的激活窗口审计方法,可以基于X11服务监听当前桌面根窗口的属性变化,根据发生变化的属性类型判断当前激活窗口是否发生变化,直接获取当前激活窗口以及相关信息,并在激活窗口变化时判断该激活窗口是否合法,以对不合法的激活窗口进行拦截,从而实现对所有激活窗口的审计,减少了系统资源的消耗,有效提升了系统运行的效率和性能。
实施例二
如图7所示,为本申请第二实施例提出的一种激活窗口审计方法的流程图。在第二实施例中,所述激活窗口审计方法在上述第一实施例的基础上,还包括步骤S38。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。
该方法包括以下步骤:
S30,获取当前桌面的根窗口。
具体地,在使用X11服务作为桌面显示服务器的系统中,可以使用X11服务的DefaultRootWindow函数获取当前桌面的根窗口(Root Window)。
S32,通过监听所述根窗口的属性变化判断当前激活窗口是否发生变化。
当获取所述根窗口后,可以通过对所述根窗口的监听,来感知当前激活窗口是否发生变化,从而对发生变化的激活窗口进行审计。
例如,当用户打开一个涉密文件后,如果点击应用程序中的“另存为”按钮,执行另存为操作,则会弹出一个“另存为”窗口。此时当前桌面的激活窗口变为所述“另存为”窗口,通过监听所述根窗口的属性变化,可以感知到所述激活窗口的变化。
具体地,当所述根窗口的某些属性发生变化时,可能表示当前桌面的激活窗口发生了变化。在本实施例中,可以基于X11服务监听所述根窗口的PropertyChangeMask和SubstructureNotifyMask属性变化。
当所监听的属性发生变化时,会发出相应的通知事件,在本实施例中,所述属性变化通知事件为X11服务中的PropertyNotify事件。但是,由于所述属性变化可能包括多种类型,不一定是激活窗口变化导致所述属性变化,因此还需要进一步判断发生变化的属性类型是否为指定类型。所述指定类型为X11服务中的_NET_ACTIVE_WINDOW属性。若所述属性类型为所述指定类型,表示所述激活窗口发生变化。若所述属性类型不是所述指定类型,表示监听到的属性变化不是激活窗口变化,不需要理会。
该步骤的具体过程参阅所述第一实施例的相关说明,在此不再赘述。
S34,当所述当前激活窗口发生变化时,通过预设业务逻辑判断所述当前激活窗口是否合法。
为了判断所述当前激活窗口是否合法,首先要知道所述当前激活窗口是什么,也就是需要获取所述当前激活窗口的信息。在本实施例中,可以从所述根窗口的所述发生变化的属性(也就是所述指定类型的属性)中直接读取所述当前激活窗口的信息。例如,通过读取所述根窗口的_NET_ACTIVE_WINDOW属性,可以获取到当前激活窗口的窗口索引。
所述业务逻辑可以根据实际应用场景进行自定义配置。当监听后确定所述激活窗口发生变化,并获取到当前激活窗口的信息时,读取预先配置的所述业务逻辑,并根据所述业务逻辑对所述当前激活窗口进行相应逻辑运算,判断所述当前激活窗口是否合法。
例如,假设所述涉密文件被禁止另存,则当用户打开所述涉密文件并点击“另存为”按钮弹出一个“另存为”窗口后,此时本实施例可以监控到所述涉密文件不允许另存,因此可以判断出所述“另存为”窗口不合法。
S36,当所述当前激活窗口不合法时,拦截所述当前激活窗口。
若根据所述业务逻辑判断出所述当前激活窗口不合法,则表示所述当前激活窗口不允许正常运行,应该进行拦截。在本实施例中,所述拦截是指向所述当前激活窗口发送_NET_CLOSE_WINDOW消息,以关闭所述当前激活窗口。
当然,若根据所述业务逻辑判断出所述当前激活窗口合法,则表示所述氮气激活窗口运行正常运行,不需要理会,不用采取额外操作。
S38,记录对所述当前激活窗口的审计结果。
在当前桌面的激活窗口发生变化后,本实施例通过上述过程对所述激活窗口进行了审计,审计结果可以是允许运行所述激活窗口或者拦截。将所述审计结果记录下来形成审计日志,可以方便后期溯源。
如图8所示,为本实施例的一种具体实例的流程示意图。
为了更详尽的对该方法的上述各步骤进行解释说明,以下以特定的具体实施例为例进行说明。本领域技术人员当知,下述具体实施例的内容并不用于限制本发明的发明思想,本领域技术人员可以轻易依据下述实施例具体描述内容进行适当的内容发散和扩展。
S400,通过DefaultRootWindow获取当前桌面的根窗口。
S402,监听根窗口的PropertyChangeMask和SubstructureNotifyMask属性变化。
S404,等待监听事件发生。
S406,判断新事件是否为PropertyNotify。当所述新事件为PropertyNotify时,执行步骤S408;当所述新事件不是PropertyNotify时,返回步骤S404继续等待下一个新事件。
S408,判断发生变化的属性(Property)是否为_NET_ACTIVE_WINDOW。若是,则执行步骤S410,否则返回步骤S404继续等待下一个新事件。
S410,读取根窗口的_NET_ACTIVE_WINDOW获取当前激活窗口信息。
S412,判断所述当前激活窗口是否合法。若不合法,则执行步骤S414-S416。若合法,则直接执行步骤S416。
S414,向所述当前激活窗口发送_NET_CLOSE_WINDOW,关闭该窗口。
S416,记录对所述当前激活窗口的审计结果。
本实施例提出的激活窗口审计方法,可以基于X11服务监听当前桌面根窗口的属性变化,根据发生变化的属性类型判断当前激活窗口是否发生变化,直接获取当前激活窗口以及相关信息,并在激活窗口变化时判断该激活窗口是否合法,以对不合法的激活窗口进行拦截,从而实现对所有激活窗口的审计,减少了系统资源的消耗,有效提升了系统运行的效率和性能。另外,及时记录对所述当前激活窗口的审计结果,形成审计日志,可以方便后期溯源。
实施例三
如图9所示,为本申请第三实施例提出一种电子装置20的硬件架构示意图。本实施例中,所述电子装置20可包括,但不仅限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23。需要指出的是,图9仅示出了具有组件21-23的电子装置20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。在本实施例中,所述电子装置20可以是所述服务端4。
所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置20的内部存储单元,例如该电子装置20的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置20的外部存储设备,例如该电子装置20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置20的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置20的操作系统和各类应用软件,例如激活窗口审计系统60的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是CPU、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置20的总体操作。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述激活窗口审计系统60等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置20与其他电子设备之间建立通信连接。
实施例四
如图10所示,为本申请第四实施例提出一种激活窗口审计系统60的模块示意图。所述激活窗口审计系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
在本实施例中,所述激活窗口审计系统60包括:
获取模块600,用于获取当前桌面的根窗口。
具体地,在使用X11服务作为桌面显示服务器的系统中,可以使用X11服务的DefaultRootWindow函数获取当前桌面的根窗口(Root Window)。
监听模块602,用于通过监听所述根窗口的属性变化判断当前激活窗口是否发生变化。
当获取所述根窗口后,可以通过对所述根窗口的监听,来感知当前激活窗口是否发生变化,从而对发生变化的激活窗口进行审计。
例如,当用户打开一个涉密文件后,如果点击应用程序中的“另存为”按钮,执行另存为操作,则会弹出一个“另存为”窗口。此时当前桌面的激活窗口变为所述“另存为”窗口,通过监听所述根窗口的属性变化,可以感知到所述激活窗口的变化。
具体地,当所述根窗口的某些属性发生变化时,可能表示当前桌面的激活窗口发生了变化。在本实施例中,可以基于X11服务监听所述根窗口的PropertyChangeMask和SubstructureNotifyMask属性变化。
当所监听的属性发生变化时,会发出相应的通知事件,在本实施例中,所述属性变化通知事件为X11服务中的PropertyNotify事件。但是,由于所述属性变化可能包括多种类型,不一定是激活窗口变化导致所述属性变化,因此还需要进一步判断发生变化的属性类型是否为指定类型。所述指定类型为X11服务中的_NET_ACTIVE_WINDOW属性。若所述属性类型为所述指定类型,表示所述激活窗口发生变化。若所述属性类型不是所述指定类型,表示监听到的属性变化不是激活窗口变化,不需要理会。
上述过程参阅所述第一实施例的具体说明,在此不再赘述。
判断模块604,用于当所述当前激活窗口发生变化时,通过预设业务逻辑判断所述当前激活窗口是否合法。
为了判断所述当前激活窗口是否合法,首先要知道所述当前激活窗口是什么,也就是需要获取所述当前激活窗口的信息。在本实施例中,可以从所述根窗口的所述发生变化的属性(也就是所述指定类型的属性)中直接读取所述当前激活窗口的信息。例如,通过读取所述根窗口的_NET_ACTIVE_WINDOW属性,可以获取到当前激活窗口的窗口索引。
所述业务逻辑可以根据实际应用场景进行自定义配置。当监听后确定所述激活窗口发生变化,并获取到当前激活窗口的信息时,读取预先配置的所述业务逻辑,并根据所述业务逻辑对所述当前激活窗口进行相应逻辑运算,判断所述当前激活窗口是否合法。
例如,假设所述涉密文件被禁止另存,则当用户打开所述涉密文件并点击“另存为”按钮弹出一个“另存为”窗口后,此时本实施例可以监控到所述涉密文件不允许另存,因此可以判断出所述“另存为”窗口不合法。
拦截模块606,用于当所述当前激活窗口不合法时,拦截所述当前激活窗口。
若根据所述业务逻辑判断出所述当前激活窗口不合法,则表示所述当前激活窗口不允许正常运行,应该进行拦截。在本实施例中,所述拦截是指向所述当前激活窗口发送_NET_CLOSE_WINDOW消息,以关闭所述当前激活窗口。
当然,若根据所述业务逻辑判断出所述当前激活窗口合法,则表示所述氮气激活窗口运行正常运行,不需要理会,不用采取额外操作。
本实施例提出的激活窗口审计系统,可以基于X11服务监听当前桌面根窗口的属性变化,根据发生变化的属性类型判断当前激活窗口是否发生变化,直接获取当前激活窗口以及相关信息,并在激活窗口变化时判断该激活窗口是否合法,以对不合法的激活窗口进行拦截,从而实现对所有激活窗口的审计,减少了系统资源的消耗,有效提升了系统运行的效率和性能。
实施例五
如图11所示,为本申请第五实施例提出一种激活窗口审计系统60的模块示意图。在本实施例中,所述激活窗口审计系统60除了包括第四实施例中的所述获取模块600、监听模块602、判断模块604、拦截模块606之外,还包括记录模块608。
所述记录模块608,用于记录对所述当前激活窗口的审计结果。
在当前桌面的激活窗口发生变化后,本实施例通过上述过程对所述激活窗口进行了审计,审计结果可以是允许运行所述激活窗口或者拦截。将所述审计结果记录下来形成审计日志,可以方便后期溯源。
实施例六
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有激活窗口审计程序,所述激活窗口审计程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的激活窗口审计方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请实施例的优选实施例,并非因此限制本申请实施例的专利范围,凡是利用本申请实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请实施例的专利保护范围内。

Claims (13)

1.一种激活窗口审计方法,其特征在于,所述方法包括:
获取当前桌面的根窗口;
通过监听所述根窗口的属性变化判断当前激活窗口是否发生变化;
当所述当前激活窗口发生变化时,通过预设业务逻辑判断所述当前激活窗口是否合法;
当所述当前激活窗口不合法时,拦截所述当前激活窗口。
2.根据权利要求1所述的激活窗口审计方法,其特征在于,所述方法还包括:
记录对所述当前激活窗口的审计结果。
3.根据权利要求1或2所述的激活窗口审计方法,其特征在于,所述通过监听所述根窗口的属性变化判断当前激活窗口是否发生变化包括:
监听所述根窗口的属性变化;
当所述根窗口的属性发生变化时,判断发生变化的属性类型是否为指定类型;
当为指定类型时,确定所述当前激活窗口发生变化。
4.根据权利要求3所述的激活窗口审计方法,其特征在于,所述监听所述根窗口的属性变化包括:
接收监听新事件;
判断所述新事件是否为属性变化通知事件;
当所述新事件为属性变化通知事件时,确定所述根窗口的属性发生变化。
5.根据权利要求4所述的激活窗口审计方法,其特征在于,所述判断发生变化的属性类型是否为指定类型包括:
从所述属性变化通知事件中获取发生变化的属性类型;
比对所述属性类型是否为指定类型。
6.根据权利要求1或2所述的激活窗口审计方法,其特征在于,所述当所述当前激活窗口发生变化时,通过预设业务逻辑判断所述当前激活窗口是否合法包括:
从所述根窗口的发生变化的属性中读取所述当前激活窗口的信息;
读取预设的业务逻辑,并根据所述业务逻辑和所述当前激活窗口的信息判断所述当前激活窗口是否合法。
7.根据权利要求1或2所述的激活窗口审计方法,其特征在于,所述获取当前桌面的根窗口包括:通过X11服务的DefaultRootWindow函数获取当前桌面的根窗口。
8.根据权利要求3所述的激活窗口审计方法,其特征在于,所述监听所述根窗口的属性变化包括:基于X11服务监听所述根窗口的PropertyChangeMask和SubstructureNotifyMask属性变化。
9.根据权利要求5所述的激活窗口审计方法,其特征在于,所述属性变化通知事件为X11服务中的PropertyNotify事件,所述指定类型为_NET_ACTIVE_WINDOW属性。
10.根据权利要求1或2所述的激活窗口审计方法,其特征在于,所述拦截所述当前激活窗口包括:向所述当前激活窗口发送_NET_CLOSE_WINDOW消息,以关闭所述当前激活窗口。
11.一种激活窗口审计系统,其特征在于,所述系统包括:
获取模块,用于获取当前桌面的根窗口;
监听模块,用于通过监听所述根窗口的属性变化判断当前激活窗口是否发生变化;
判断模块,用于当所述当前激活窗口发生变化时,通过预设业务逻辑判断所述当前激活窗口是否合法;
拦截模块,用于当所述当前激活窗口不合法时,拦截所述当前激活窗口。
12.一种电子装置,其特征在于,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的激活窗口审计程序,所述激活窗口审计程序被所述处理器执行时实现如权利要求1至10中任一项所述的激活窗口审计方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有激活窗口审计程序,所述激活窗口审计程序被处理器执行时实现如权利要求1至10中任一项所述的激活窗口审计方法。
CN202111033536.XA 2021-09-03 2021-09-03 激活窗口审计方法及系统 Pending CN113761524A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111033536.XA CN113761524A (zh) 2021-09-03 2021-09-03 激活窗口审计方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111033536.XA CN113761524A (zh) 2021-09-03 2021-09-03 激活窗口审计方法及系统

Publications (1)

Publication Number Publication Date
CN113761524A true CN113761524A (zh) 2021-12-07

Family

ID=78792943

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111033536.XA Pending CN113761524A (zh) 2021-09-03 2021-09-03 激活窗口审计方法及系统

Country Status (1)

Country Link
CN (1) CN113761524A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116522299A (zh) * 2023-06-26 2023-08-01 闪捷信息科技有限公司 基于Linux系统的应用程序窗口水印添加方法和装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2466184A1 (en) * 2003-05-16 2004-11-16 Microsoft Corporation User interface automation framework classes and interfaces
US20050066290A1 (en) * 2003-09-16 2005-03-24 Chebolu Anil Kumar Pop-up capture
US7043534B1 (en) * 2000-03-31 2006-05-09 Lenavo (Singapore) Pte. Ltd. Remote execution of commands in a multi-host network
CN101719210A (zh) * 2009-12-25 2010-06-02 武汉大学 基于linux平台数字版权管理的文件使用控制方法
CN102708335A (zh) * 2012-05-05 2012-10-03 南京赛孚科技有限公司 一种涉密文件的保护方法
CN104252477A (zh) * 2013-06-27 2014-12-31 贝壳网际(北京)安全技术有限公司 一种控制网页弹出窗口的方法及装置
CN104360794A (zh) * 2014-11-21 2015-02-18 北京奇虎科技有限公司 通过识别全屏模式控制窗口弹出的方法及装置
CN106973035A (zh) * 2017-02-09 2017-07-21 成都九安科技有限公司 一种文档外发控制系统
CN112269604A (zh) * 2020-11-11 2021-01-26 北京技德系统技术有限公司 在Linux上兼容运行Android应用的窗口交互方法及装置
CN112507361A (zh) * 2020-12-11 2021-03-16 北京北信源软件股份有限公司 针对国产操作系统的电子文档加密方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043534B1 (en) * 2000-03-31 2006-05-09 Lenavo (Singapore) Pte. Ltd. Remote execution of commands in a multi-host network
CA2466184A1 (en) * 2003-05-16 2004-11-16 Microsoft Corporation User interface automation framework classes and interfaces
CN101615122A (zh) * 2003-05-16 2009-12-30 微软公司 通过存取系统将用户接口信息提供给客户的系统和方法
US20050066290A1 (en) * 2003-09-16 2005-03-24 Chebolu Anil Kumar Pop-up capture
CN101719210A (zh) * 2009-12-25 2010-06-02 武汉大学 基于linux平台数字版权管理的文件使用控制方法
CN102708335A (zh) * 2012-05-05 2012-10-03 南京赛孚科技有限公司 一种涉密文件的保护方法
CN104252477A (zh) * 2013-06-27 2014-12-31 贝壳网际(北京)安全技术有限公司 一种控制网页弹出窗口的方法及装置
CN104360794A (zh) * 2014-11-21 2015-02-18 北京奇虎科技有限公司 通过识别全屏模式控制窗口弹出的方法及装置
CN106973035A (zh) * 2017-02-09 2017-07-21 成都九安科技有限公司 一种文档外发控制系统
CN112269604A (zh) * 2020-11-11 2021-01-26 北京技德系统技术有限公司 在Linux上兼容运行Android应用的窗口交互方法及装置
CN112507361A (zh) * 2020-12-11 2021-03-16 北京北信源软件股份有限公司 针对国产操作系统的电子文档加密方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
STACK OVERFLOW: "使用python获取active X窗口更改时的通知", pages 1 - 5, Retrieved from the Internet <URL:https://cloud.tencent.com/developer/ask/sof/108313930/answer/119143787> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116522299A (zh) * 2023-06-26 2023-08-01 闪捷信息科技有限公司 基于Linux系统的应用程序窗口水印添加方法和装置

Similar Documents

Publication Publication Date Title
US7676699B2 (en) Event trace conditional logging
CA2725274C (en) Monitoring and tracking application usage
CN100468343C (zh) 应用程序的控制方法及装置
JP4808042B2 (ja) 公式ベースのドキュメント保存のための方法およびコンピュータ可読メディア
US20080126439A1 (en) Change verification in a configuration management database
US9485202B2 (en) Alerting recipients to errors occurring when accessing external services
US20070005320A1 (en) Model-based configuration management
CN110515795A (zh) 一种大数据组件的监控方法、装置、电子设备
CN111222153B (zh) 应用程序权限管理方法、装置和存储介质
US20210042109A1 (en) Firmware management
CN109359092B (zh) 文件管理方法、桌面显示方法、装置、终端及介质
CN113791735A (zh) 视频数据存储方法、装置、计算机设备及存储介质
CN114706690B (zh) 一种Kubernetes容器共享GPU方法及系统
CN113761524A (zh) 激活窗口审计方法及系统
KR100747466B1 (ko) 추가 속성을 가지는 노드를 이용하는 장치 관리 방법 및장치 관리 클라이언트
CN110673935A (zh) 一种基于Kubernetes系统的作业调度方法、设备以及存储介质
CN113656795B (zh) 窗口操作行为审计方法及系统
CN112101716A (zh) 基于分层解耦的终端资产管理方法
US7127446B1 (en) File system based task queue management
CN113282541B (zh) 文件调用方法、装置和电子设备
CN109766235A (zh) 基于软件监控的配置文件检测方法、系统、设备及介质
CN115248737A (zh) 一种面向切面编程的接口调用耗时计算方法及装置
CN112800130A (zh) 数据上链方法、系统、装置、设备和存储介质
CN112115020B (zh) 一种数据库连接池异常监测方法、装置及计算机设备
CN118101342B (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
CB02 Change of applicant information

Country or region after: China

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: QAX Technology Group Inc.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: QAX Technology Group Inc.

Country or region before: China

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.

CB02 Change of applicant information