CN117278277A - 文件访问行为的审计方法和装置、电子设备及存储介质 - Google Patents
文件访问行为的审计方法和装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117278277A CN117278277A CN202311218970.4A CN202311218970A CN117278277A CN 117278277 A CN117278277 A CN 117278277A CN 202311218970 A CN202311218970 A CN 202311218970A CN 117278277 A CN117278277 A CN 117278277A
- Authority
- CN
- China
- Prior art keywords
- data
- program
- file
- file access
- system 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012550 audit Methods 0.000 title claims abstract description 44
- 230000006399 behavior Effects 0.000 claims abstract description 121
- 230000015654 memory Effects 0.000 claims description 120
- 239000000872 buffer Substances 0.000 claims description 102
- 238000001514 detection method Methods 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000007726 management method Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 16
- 238000007405 data analysis Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000002147 killing effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- 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
-
- 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/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- 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
- G06F9/544—Buffers; Shared memory; Pipes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/108—Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- 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/033—Test or assess software
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种文件访问行为的审计方法和装置、电子设备及存储介质。该方法包括:从内核空间中获得第一数据,第一数据为用户态的第一程序对第一文件的文件访问行为在内核空间中的内核事件数据;根据第一数据,对文件访问行为进行安全性审计。通过本申请,能够提高对文件访问行为的审计准确性。
Description
技术领域
本申请涉及网络安全技术,尤其涉及一种文件访问行为的审计方法和装置、电子设备及存储介质。
背景技术
网络的迅速发展使得人们的生活越来越遍历。然而,恶意软件(或称为恶意程序)的种类和数量也在不断增长,这必然对人们的信息和财产安全造成威胁。为了避开诸如查毒软件之类的查杀工具的检测,恶意软件的网络隐藏技术也在不断演进,这将导致对于恶意软件的检测变得愈发困难。
目前,对于恶意软件的检测通常依赖于恶意软件调用的应用接口(applicationinterface,API)、恶意软件的指纹特征(静态特征)等。这样的方式具有高效、快速、准确、易于实现等特点。在一些情况下,恶意软件通过静态特征和API调用特征,可以绕过安全检测,从而绕过安全访问控制,获取敏感文件信息,可见,文件访问的安全性仍存在一定风险。
发明内容
本申请提供一种文件访问行为的审计方法和装置、电子设备及存储介质,以实现更加准确地对文件访问行为进行安全性审计。
本申请的技术方案是这样实现的:
第一方面,本申请提供一种文件访问行为的审计方法,该方法包括:创建用户空间和内核空间共享的内存缓冲区;通过内存缓冲区获取第一数据,第一数据为第一程序对第一文件的文件访问行为在内核空间中的内核事件数据,第一程序运行于用户空间;根据第一数据,对文件访问行为进行安全性审计。
在一实施例中,通过内存缓冲区获取第一数据,包括:监听内核空间,以获得第一数据;将第一数据由内核空间写入内存缓冲区;从内存缓冲区将第一数据读取至用户空间。
在一实施例中,在通过内存缓冲区获取第一数据之前,上述方法还包括:接收来自第一程序的请求指令,请求指令用于指示对第一文件的文件访问行为;响应请求指令,生成系统调用请求,系统调用请求用于请求在内核空间中通过系统调用访问第一文件;基于系统调用请求,在内核空间中生成第一数据。
在一实施例中,在根据第一数据,对文件访问行为进行安全性审计之后,上述方法还包括:若对审计结果表示文件访问行为是安全行为,则响应系统调用请求,执行系统调用请求对应的系统调用;或,若对审计结果表示文件访问行为不是安全行为,则拒绝响应系统调用请求。
在一实施例中,根据第一数据,对文件访问行为进行安全性审计,包括:根据预设规则,对第一数据进行检测;根据检测结果,确定文件访问行为的安全性。
在一实施例中,预设规则包括以下至少之一:程序黑名单、访问时间黑名单、文件访问路径黑名单。
在一实施例中,创建用户空间和内核空间共享的内存缓冲区,包括:获得用户配置的缓冲区参数,缓冲区参数与第一文件的文件大小关联;按照缓冲区参数,创建内存缓冲区。
第二方面,本申请提供一种文件访问行为的审计装置,该装置包括:内存管理模块,用于创建用户空间和内核空间共享的内存缓冲区;获取模块,用于通过内存缓冲区读获取第一数据,第一数据为第一程序的文件访问行为在内核空间中的内核事件数据,第一程序运行于用户空间;审计模块,用于根据第一数据,对文件访问行为进行安全性审计。
在一实施例中,上述装置还包括:监听模块,用于在读取模块从内存缓冲区读取第一数据之前,监听内核空间,以获得第一数据;写入模块,用于将第一数据由内核空间写入内存缓冲区;读取模块,用于从内存缓冲区将第一数据读取至用户空间。
在一实施例中,上述装置还包括:用户接口模块,用于在读取模块从内存缓冲区读取第一数据之前,接收来自第一程序的请求指令,请求指令用于指示对第一文件的文件访问行为;响应请求指令,生成系统调用请求,系统调用请求用于请求在内核空间中通过系统调用访问第一文件;系统调用模块,用于基于系统调用请求,在内核空间中生成第一数据。
在一实施例中,系统调用模块,还用于在审计模块对第一数据进行检测之后,若对审计结果表示文件访问行为是安全行为,则响应系统调用请求,以执行系统调用请求对应的系统调用;或,若对审计结果表示文件访问行为不是安全行为,则拒绝响应系统调用请求。
在一实施例中,审计模块,用于根据预设规则,对第一数据进行检测;根据检测结果,确定文件访问行为的安全性。
在一实施例中,预设规则包括以下至少之一:程序黑名单、访问时间黑名单、文件访问权限黑名单。
在一实施例中,内存管理模块,用于获得用户配置的缓冲区参数,缓冲区参数与第一文件的文件大小关联;按照缓冲区参数,创建内存缓冲区。
第三方面,本申请提供一种电子设备。该电子设备包括存储器和处理器。存储器用于存储可执行指令。处理器用于执行存储器中存储的可执行指令以实现如第一方面及其任一实施方式所述的方法。
第四方面,本申请提供一种存储介质。该存储介质上存储有可执行指令。可执行指令在被处理器执行时实现如第一方面及其任一实施方式所述的方法。
本申请具有以下有益效果:
在本申请中,运行在用户空间的第一程序的文件访问行为在内核空间中产生相关内核事件的内核事件数据,即第一数据,根据该第一数据,对第一程序的文件访问行为进行安全性审计,从而确定该文件访问行为是否安全。如此,能够防止恶意程序绕过用户态审计方式,从而实现更加准确地对文件访问行为进行审计。
此外,第一数据先由内核空间写入内核空间和用户空间共享的内存缓冲区,再从内存缓冲区读取至用户空间,如此,加快内核空间与用户空间之间的数据交换,不需要进行进程间的数据拷贝,从而减少对中央处理单元(cental process unit,CPU)上下文的切换,降低资源的消耗。
再者,由缓冲区参数与第一程序请求访问的第一文件的文件大小关联,那么,基于缓冲区参数创建共享内存缓冲区,能够防止因第一程序读写速度过快导致内核空间异常。
附图说明
图1是本申请实施例中的文件访问行为的审计方法的一种实现架构的示意图。
图2是本申请实施例中的电子设备的一种结构示意图。
图3是本申请实施例中的文件访问行为的审计方法的一种流程示意图。
图4是本申请实施例中的文件访问行为的审计装置的一种结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。所描述的实施例不应视为对本申请的限制。本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一实施例”、“一些实施例”等,其描述了所有可能实施例的子集。但是可以理解,“一实施例”、“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一/第二/第三”仅仅是是区别类似的对象,不代表针对对象的特定排序。可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使本文描述的本申请实施例能够以除了在本文的图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
本申请实施例提供一种文件访问行为的审计方法和装置、电子设备及存储介质,以提高对文件访问行为的审计准确性。
本申请实施例提供的电子设备可以实施为笔记本电脑、平板电脑、台式计算机、机顶盒、移动设备(例如,移动电话、便携式音乐播放器、个人数字助理、专用消息设备、便携式游戏设备)等各种类型的终端,也可以实施为服务器。
图1是本申请实施例中的文件访问行为的审计方法的一种实现架构的示意图。如图1所示,操作系统100可以划分为用户空间110和内核空间120。在一实施例中,用户空间110可以是用户的应用程序运行的区域。具体地,用户空间110可以包括应用程序代码、数据和堆栈等。在一实施例中,内核空间120可以是操作系统内核运行的区域。具体地,内核空间120可以包括操作系统内核代码、数据结构和设备驱动程序等。用户空间110和内核空间120彼此分离。用户空间110中的用户程序可以通过系统调用接口来进行内核调用,以实现内核数据的修改、硬件资源的访问等功能。
在一实施例中,用户空间110可以包括第一程序111和第二程序112。第一程序111可以是安全性审计所针对的程序(或软件)。第二程序112可以是用于执行安全性审计的程序(或软件)。换言之,第二程序112可以用于实现针对第一程序111的文件访问行为的安全性审计。
在本申请实施例中,术语“程序”、“进程”、“线程”等可以进行相互替换。
在一实施例中,内核空间120可以包括系统调用模块121、第三程序122以及内存缓冲区123。第一程序111可以通过系统调用模块121进行内核调用,继而执行对应的文件访问行为,例如,文件读写、文件修改、文件创建、文件删除等。第二程序112可以通过系统调用模块121创建用户空间110与内核空间120共享的内存缓冲区123。该内存缓冲区123可以用于用户空间110与内核空间120交换第一程序111的文件访问行为相关的内核事件数据,即第一数据。
在一实施例中,内存缓冲区123附加至进程的地址空间中,在第二程序112和第三程序122完成对第一数据的读写操作后,将内存缓冲区123从进程的地址空间中分离,并释放内存缓冲区123,避免导致内存泄漏和内存消耗。在一实施例中,为了保证系统稳定,需要定期检查并清理从进程的地址空间中分离的内存缓冲区123。
图2是本申请实施例中的电子设备的一种结构示意图。如图2所示,电子设备200包括:至少一个处理器210、至少一个网络接口220、用户接口230、以及存储器240。电子设备200中的各个组件通过总线系统250耦合在一起。可以理解的是,总线系统250用于实现至少一个处理器210、至少一个网络接口220、用户接口230、以及存储器240之间的连接通信。总线系统250除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线中的至少一个。但是为了清楚说明起见,在图2中将各种总线都标为总线系统250。
处理器210可以是一种具有信号的处理能力的集成电路芯片。例如,处理器210可以是通用处理器、数字信号处理器(digital signal processor,DSP)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。例如,通用处理器可以是微处理器或者任何常规的处理器。
网络接口220可以包括蓝牙、无线保真(Wi-Fi)、和通用串行总线(universalserial bus,USB)等。
用户接口230可以包括使得能够呈现媒体内容的一个或多个输出装置231。输出装置231可以包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口230还可以包括一个或多个输入装置232。输入装置232可以包括有助于用户输入的用户接口部件。例如,用户接口部件可以包括键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器240可以是可移除的,不可移除的或其组合。示例性地,硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。存储器240可选地包括在物理位置上远离处理器210的一个或多个存储设备。存储器240可以包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(read only memory,ROM)。易失性存储器可以是随机存取存储器(random access memory,RAM)。本申请实施例描述的存储器240旨在包括任意适合类型的存储器。
在一实施例中,存储器240能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。操作系统241包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。网络通信模块242用于经由一个或多个(有线或无线)网络接口220到达其他计算设备。呈现模块243用于经由一个或多个与用户接口230相关联的输出装置231(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口)。输入处理模块244用于对一个或多个来自一个或多个输入装置232之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一实施例中,本申请实施例提供的装置可以采用软件方式实现。图2示出了存储在存储器240中的文件访问行为的审计装置400。文件访问行为的审计装置400可以是程序和插件等形式的软件。
在一实施例中,本申请实施例提供的文件访问行为的审计装置400可以采用硬件方式实现。作为示例,本申请实施例提供的文件访问行为的审计装置400可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的文件访问行为安全性检测方法。例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(application specific integrated circuit,ASIC)、DSP、可编程逻辑器件(programmable logic device,PLD)、复杂可编程逻辑器件(complex programmable logicdevice,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)或其他电子元件。
在下文中,将在本申请实施例提供的实现架构的基础上,说明本申请实施例提供的文件访问行为的审计方法。可以理解的是,文件访问行为的审计方法可以由上述电子设备实施。
图3是本申请实施例中的文件访问行为的审计方法的一种流程示意图。如图3所示,该文件访问行为的审计方法可以包括步骤S310至步骤S330。
在步骤S310中,创建用户空间和内核空间共享的内存缓冲区。
在此,第一程序运行在用户空间内。第一程序通过系统调用模块进行内核调用,从而进行文件访问。这里,文件访问包括读取访问、写入访问。
在一实施例中,第一程序是文件访问行为的安全性审计所针对的程序。在一实施例中,第一程序可以是安全程序。在一实施例中,第一程序可以是恶意程序(包括恶意代码)。在实际应用中,第一程序可以是在用户空间内运行的任何程序。在一实施例中,第一程序可以是独立的程序,也可以是插件或小程序。
在一实施例中,内存缓冲区可以是建立在用户空间和内核空间之间的内存区域。在一实施例中,内存缓冲区可以是第二程序和第三程序共享的内存区域,第二程序和第三程序均可以访问该内存缓冲区域。示例性的,可以采用mmap函数来创建内存缓冲区。
在一些实施例中,内存缓冲区是由第二程序创建的。在一实施例中,第二程序可以通过系统调用创建内存缓冲区。
在一实施例中,第二程序可以运行在用户空间内。第二程序是用于执行文件访问行为的安全性审计的程序。在一实施例中,第二程序可以是独立的程序,也可以是插件或小程序。
在一实施例中,第三程序可以运行在内核空间内。第三程序可以用于通过内存缓冲区与第二程序进行数据交换。在一实施例中,第三程序可以是编译到内核中的程序。例如,第三程序可以是通过对系统内核进行重编译添加到内核中的。在一实施例中,第三程序可以是注入到内核中的程序。例如,第三程序可以是通过动态链接库(dynamic linklibrary,DLL)注入的方式添加到内核中的。
在一实施例中,内存缓冲区可以是单向的。在此情况下,内存缓冲区内的数据可以从内核空间交换至内核空间,而并不能够从用户空间交换至内核空间。例如,第一数据可以由第三程序由内核空间写入内存缓冲区,并由第二程序从内存缓冲区读取至用户空间。
在一实施例中,用户还可以对内存缓冲区的参数,即缓冲区参数进行配置。缓冲区参数包括内存缓冲区的大小。在另一实施例中,缓冲区参数还可以为内存缓冲区的地址空间。当然,只要缓冲区参数能够指示内存缓冲区的大小即可,本申请实施例对此不作具体限定。
那么,在步骤S310中,可以根据缓冲区参数,创建内存缓冲区。
在一实施例中,为了防止用户态程序处理过于频繁导致内核出现问题,比如内存不足或者内存泄漏等,缓冲区参数可以与第一文件的文件大小关联,即内存缓冲区的大小与第一文件的文件大小关联。那么,按照该缓冲区参数所创建的内存缓冲区的大小将更加适配第一文件的大小。如此,还可以避免对内存的占用,节省系统资源,提高资源利用率。
在一实施例中,缓冲区参数还可以包括内存缓冲区的数量。根据内存缓冲区的大小和数量,可以创建多个内存缓冲区。那么,对于较大的第一数据,第三程序可以写入多个内存缓冲区中,以与第二程序进行数据交换。
在一实施例中,在第二程序和第三程序完成对第一数据的交换后,可以释放内存缓冲区,从而避免内存泄漏和内存消耗。
在一实施例中,为保证系统稳定,还可以定期检查并清理未使用的内存缓冲区,从而实现避免内存泄露问题的出现。
在步骤S320中,通过内存缓冲区获得第一数据。
在此,第一数据为第一程序的文件访问行为在内核空间中的内核事件数据,用于表示该文件访问行为。
在一实施例中,第一程序通过系统调用请求访问第一文件,此时,在内核空间中产生该文件访问行为相应的内核事件。第三程序将该内核事件的相关数据,即第一数据,写入内存缓冲区。第二程序从内存缓冲区读取第一数据。
在一实施例中,第一文件可以为内核空间中存储的文件。
在一实施例中,第三程序可以在内核空间中监听针对第一程序的文件访问行为产生的内核事件(或消息),进而获得这些内核事件对应的系统调用数据。
在一实施例中,第三程序可以在内核空间中设置跟踪点,以捕获文件访问行为产生的内核事件日志。在内核事件日志中包括上述系统调用数据。示例性地,第三程序可以通过内核跟踪(tracepoint)机制实现在内核中设置跟踪点。
在一实施例中,第三程序在获得内核事件日志之后,可以根据预设的审计配置从内核事件日志中选择部分或者全部系统调用数据作为第一数据。在一实施例中,第三程序可以选择性地将访问程序名称、访问时间、文件访问权限、文件访问路径等用于安全性审计的信息通过数据结构进行配置,以便在内核事件发生时能够快速地进行访问控制和内核事件捕获。
在一实施例中,上述用于安全性审计的信息可以是由用户通过数据结构配置的,也可以是由电子设备缺省配置的。相应的,第一数据可以包括第一程序的程序名称、访问时间、文件访问权限、文件访问路径等。在一实施例中,第一数据还可以包括:第一文件的创建、修改和删除、文件系统的挂载和卸载、磁盘空间使用情况。
在本申请实施例中,由于第三程序在内核空间中运行,如此,可以确保由内核空间到用户空间的数据交换是异步的,不会阻塞用户空间中其他程序的系统调用。
在一实施例中,在步骤S320之前,上述方法可以包括:监听内核空间,以获得第一数据,然后,将第一数据由内核空间写入内存缓冲区,再由内存缓冲区将第一数据读取至用户空间。
在此,在电子设备启动后,第三程序持续在内核空间中运行,以对内核空间进行监听。当第一程序通过系统调用请求访问第一文件时,第三程序可以监听到针对第一文件的文件访问行为相应的内核事件,并获得该内核事件的系统调用数据,进而得到第一数据。接下来,第三程序将第一数据接入内存缓冲区。之后,第二程序从内存缓冲区将第一数据读取至用户空间。
在一实施例中,第三程序将第一数据由内核空间写入内存缓冲区后,还可以对第一数据进行编码,以便于第二程序读取并检测。在一实施例中,对第一数据的编码可以为使用二进制编码,以增加数据的完整性和安全性。
在一实施例中,第三程序的运行可以由第二程序的启动触发,也可以与第二程序分别在电子设备上运行,即第三程序在第二程序结束运行时仍可以保持运行。
在一实施例中,在第一程序通过系统调用请问访问第一文件时,在步骤S320之前,上述方法还可以包括:接收来自第一程序的请求指令,请求指令用于指示针对第一文件的文件访问行为;响应请求指令,生成系统调用请求,系统调用请求用于请求在内核空间中通过系统调用访问第一文件;基于系统调用请求,在内核空间中生成第一数据。
在此,第一程序在需要访问第一文件时,向第二程序发送请求指令,以请求访问第一文件。第二程序响应请求指令,获得第一程序针对第一文件的文件访问行为,并根据该文件访问行为,生成相应的系统调用请求,并将系统调用请求发送给系统调用模块,以请求通过系统调用访问第一文件,系统调用模块接收到系统调用请求后,生成上述文件访问行为相应的内核事件以及内核事件关联的内核事件数据,即第一数据。
在一实施例中,在第二程序与第三程序进行数据交换的过程中,即在步骤S320的执行过程中,第二程序还可以确定内核态和用户态访问模式下的上下文状态,从而在系统发生任务切换或中断处理等情况时,能够正确地保存和恢复进程的执行状态,以确保进程的连续性和正确性。进一步地,第二程序根据当前状态处理访问事件,并根据访问历史记录来更新状态,从而记录和维护内核在处理操作系统内部任务和外部请求时的当前状态。
在一实施例中,第二程序还可以从文件访问分析日志输出中过滤不必要的信息,如冗余信息、未使用的信息等,如此,只保留用户关心的关键的信息,以确保系统的安全性和高效性,减少对内核的负担和资源消耗。
在步骤S330中,根据第一数据,对文件访问行为进行安全性审计。
在此,第二程序从内存缓冲区中读取第一数据之后,可以根据预设规则,对第一数据进行检测,并根据检测结果,确定针对第一文件的文件访问行为的安全性。
在一实施例中,第二程序检测第一数据是否满足预设规则。若第一数据满足预设规则,则表示针对第一文件的文件访问行为是安全的(即安全行为)。若第一数据不满足预设规则,则表示针对第一文件的文件访问行为不是安全的。
在一实施例中,预设规则可以用于第一数据的安全性审计。预设规则可以是黑名单、白名单或其他规则,本申请实施例对此不做具体限定。
在一实施例中,预设规则包括以下至少之一:程序黑名单、访问时间黑名单、文件访问权限黑名单。
在一示例中,预设规则可以是程序黑名单。程序黑名单可以包括已经被判定为与恶意程序相关的程序ID。例如,程序黑名单可以表示为:blacklist=["processID=A"],其中,blacklist表示黑名单,processID=A为该黑名单中的一个程序ID。此时,步骤S330可以被实现为:将第一数据中的第一程序的程序名称与文件访问的黑名单中的程序名称进行比较;若该第一程序的程序名称包含在程序黑名单中,则确定第一程序的文件访问行为不是安全行为;若该第一程序的程序名称不包含在程序黑名单中,则确定第一程序的文件访问行为是安全行为。
在一示例中,预设规则可以是访问时间黑名单。访问时间黑名单可以包括已经被判定为与恶意程序相关的访问时间。例如,访问时间黑名单可以表示为:blacklist=["time={3,5}","time={13,14}"],其中,blacklist表示黑名单,time={3,5}为该黑名单中的两个时间段,即3a.m.至5a.m.以及1p.m.至2p.m.。此时,步骤S330可以被实现为:将第一数据中的访问时间与访问时间黑名单中时间段进行比较;若该访问时间黑名单包含在访问时间黑名单中,则确定第一程序的文件访问行为不是安全行为;若该访问时间黑名单不包含在访问时间黑名单中,则确定第一程序的文件访问行为是安全行为。
在一示例中,预设规则可以是文件访问权限黑名单。文件访问权限黑名单包括已经被判定为与恶意软件相关的访问路径。例如,文件访问权限黑名单可以标识为blacklist=["process ID=B,read","process ID=C,write"],其中,blacklist表示黑名单,process ID=B,read表示程序B的访问权限为读取访问权限,process ID=C,write表示程序C的访问权限为写入访问权限。此时,步骤S330可以被实现为:将第一数据中的第一程序的文件访问权限与文件访问权限黑名单中的程序ID以及对应的访问权项进行比较,若第一数据中的第一程序的程序ID以及第一程序的文件访问权限均包含在文件访问权限黑名单中,则确定第一程序的文件访问行为不是安全行为;若第一数据中的第一程序的程序ID以及第一程序的文件访问权限均不包含在文件访问权限黑名单中,则确定第一程序的文件访问行为是安全行为。
在一实施例中,在步骤S330中,第二程序还可以对第一程序的系统调用数据进行审计。具体地,第二程序可以对系统调用数据按照一定的顺序进行排列,以得到系统调用序列;之后,可以基于系统调用序列对第一程序的文件访问行为进行审计。在一示例中,系统调用数据可以按照时间顺序进行排列。当然,系统调用数据也可以按照其他顺序进行排列。在一示例中,系统调用序列是针对一个程序形成的。那么,第一程序的系统调用数据经过排列则可以形成对应的系统调用序列。在一示例中,第一程序针对系统调用数据的审计可以是针对一定时间长度内的系统调用数据或一定数据量的系统调用数据进行的。
在一实施例中,在步骤S330中,第二程序还可以对审计结果进行记录。具体地,第二程序可以将检测结果以及相关信息记录在审计日志、数据库或其他文件中。检测结果用于指示第一程序的文件访问行为是否安全。相关信息可以包括第一数据中包含的内容的至少一部分。例如,相关信息可以包括文件访问行为的文件路径、文件名称等。
在一实施例中,在步骤S330之后,上述方法还可以包括:若对审计结果表示文件访问行为是安全行为,则执行系统调用请求对应的系统调用;或,若对审计结果表示文件访问行为不是安全行为,则拒绝执行系统调用请求对应的系统调用。
在一实施例中,拒绝执行系统调用请求对应的系统调用可以包括拒绝访问第一文件、拒绝写入第一文件、拒绝读取第一文件等。
在一实施例中,第二程序还可以对文件访问行为进行数据分析。在一示例中,数据分析可以包括基于系统调用数据对第一程序的全部文件访问行为的分析。此时,数据分析的结果可以用于表征第一程序是否为恶意程序。在一示例中,数据分析还可以包括对电子设备上的全部程序(包括第一程序)的全部文件访问行为的分析。此时,数据分析的结果可以用于表征电子设备的全部程序是否为恶意程序。
在一示例中,第二程序还可以输出审计结果和/或数据分析结果。具体地,审计结果和/或数据分析结果可以以报告的形式输出给相关工作人员,以用于进一步的分析和处理。例如,审计结果和/或数据分析结果可以通过加密传输协议被发送至安全管理员服务器。
在一示例中,如果用户A尝试读取文件/etc/passwd而没有访问权限,则访问文件失败,并第二程序记录一个安全审计事件。如果用户B尝试读取同一文件,因为用户B具有文件的权限,可以正常访问。
在一示例中,用户A使用系统调用请求在12:00前对文件/etc/passwd进行写入访问。第三程序收到系统调用请求后,会将请求参数传递给第二程序。第二程序根据预设规则,检查请求的文件权限、进程ID、用户ID、访问时间、校验密钥和文件对象的文件权限的标识信息。
在一示例中,如果检测到用户A对文件/etc/passwd在12:00前有写入访问权限,第二程序记录访问行为,并正常执行系统调用,将系统调用的返回的数据返回给用户A。
在一示例中,如果检测到用户A对文件/etc/passwd在12:00前没有写入访问权限,第二程序记录访问行为,并拒绝进行系统调用,将返回空值给用户A。
在本申请实施例中,运行在用户空间的第一程序的文件访问行为在内核空间中产生内核事件数据,根据该内核事件数据,对第一程序的文件访问行为进行安全性审计,从而确定该文件访问行为是否安全。如此,能够防止恶意程序绕过用户态审计方式,从而实现更加准确地对文件访问行为进行审计。
此外,第一数据先由内核空间写入内核空间和用户空间共享的内存缓冲区,再从内存缓冲区读取至用户空间,如此,加快内核空间与用户空间之间的数据交换,不需要进行进程间的数据拷贝,从而减少对中央处理单元(cental process unit,CPU)上下文的切换,降低资源的消耗。
再者,由缓冲区参数与第一程序请求访问的第一文件的文件大小关联,那么,基于缓冲区参数创建共享内存缓冲区,能够防止因第一程序读写速度过快导致内核空间异常。
基于相同的发明构思,本申请实施例提供了一种文件访问行为安全性检测装置。图4是本申请实施例中的文件访问行为审计装置的一种结构示意图。如图4所示,上述装置400包括该装置包括:内存管理模块410,用于创建用户空间和内核空间共享的内存缓冲区;获取模块420,用于从内存缓冲区读取第一数据,第一数据为第一程序的文件访问行为在内核空间中的内核事件数据,第一程序运行于用户空间;审计模块430,用于根据第一数据,对文件访问行为进行安全性审计。
在一实施例中,上述装置400还包括:监听模块,用于在读取模块从内存缓冲区读取第一数据之前,监听内核空间,以获得第一数据;写入模块,用于将第一数据由内核空间写入内存缓冲区;读取模块,用于从内核空间将第一数据读取至用户空间。
在一实施例中,上述装置400还包括:用户接口模块,用于在读取模块从内存缓冲区读取第一数据之前,接收来自第一程序的请求指令,请求指令用于指示针对第一文件的文件访问行为;响应请求指令,生成系统调用请求,系统调用请求用于请求在内核空间中通过系统调用访问第一文件;系统调用模块,用于基于系统调用请求,在内核空间中生成第一数据。
在一实施例中,系统调用模块,还用于在审计模块对第一数据进行检测之后,若对审计结果表示文件访问行为是安全行为,则响应系统调用请求,以执行系统调用请求对应的系统调用;或,若对审计结果表示文件访问行为不是安全行为,则拒绝响应系统调用请求。
在一实施例中,审计模块430,用于根据预设规则,对第一数据进行检测;根据检测结果,确定文件访问行为的安全性。
在一实施例中,预设规则包括以下至少之一:程序黑名单、访问时间黑名单、文件访问权限黑名单。
在一实施例中,内存管理模块410,用于获得用户配置的缓冲区参数,缓冲区参数与第一文件的文件大小关联;按照缓冲区参数,创建内存缓冲区。
需要说明的是,本申请实施例中的文件访问行为的审计装置的技术细节可以参见上述的文件访问行为的审计方法的具体说明,本申请实施例在此不再赘述。
基于相同的发明构思,本申请提供一种电子设备。该电子设备包括存储器和处理器。存储器用于存储可执行指令。处理器用于执行存储器中存储的可执行指令以实现本申请实施例的文件访问行为安全性检测方法。
基于相同的发明构思,本申请实施例提供一种计算机程序产品或计算机程序。该计算机程序产品或计算机程序包括计算机指令。该计算机指令存储在计算机存储介质中。计算机设备的处理器从计算机存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例的文件访问行为安全性检测方法。
基于相同的发明构思,本申请实施例提供一种存储有可执行指令的计算机存储介质。计算机存储介质中存储有可执行指令。可执行指令被处理器执行时,将引起处理器执行本申请实施例的文件访问行为安全性检测方法。
在一实施例中,计算机存储介质可以是非易失性计算机存储介质,例如,FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (10)
1.一种文件访问行为的审计方法,其特征在于,所述方法包括:
创建用户空间和内核空间共享的内存缓冲区;
通过所述内存缓冲区获取第一数据,所述第一数据为第一程序对第一文件的文件访问行为在内核空间中的内核事件数据,所述第一程序运行于用户空间;
根据所述第一数据,对所述文件访问行为进行安全性审计。
2.根据权利要求1所述的方法,其特征在于,所述通过所述内存缓冲区获取第一数据,包括:
监听内核空间,以获得所述第一数据;
将所述第一数据由内核空间写入所述内存缓冲区;
从所述内存缓冲区将所述第一数据读取至用户空间。
3.根据权利要求1所述的方法,其特征在于,在所述通过所述内存缓冲区获取第一数据之前,所述方法还包括:
接收来自所述第一程序的请求指令,所述请求指令用于指示对所述第一文件的文件访问行为;
响应所述请求指令,生成系统调用请求,所述系统调用请求用于请求在内核空间中通过系统调用访问所述第一文件;
基于所述系统调用请求,在内核空间中生成所述第一数据。
4.根据权利要求3所述的方法,其特征在于,在所述根据所述第一数据,对所述文件访问行为进行安全性审计之后,所述方法还包括:
若审计结果表示所述文件访问行为是安全行为,则响应所述系统调用请求,以执行所述系统调用请求对应的系统调用;或,
若审计结果表示所述文件访问行为不是安全行为,则拒绝响应所述系统调用请求。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一数据,对所述文件访问行为进行安全性审计,包括:
根据预设规则,对所述第一数据进行检测;
根据检测结果,确定所述文件访问行为的安全性。
6.根据权利要求5所述的方法,其特征在于,所述预设规则包括以下至少之一:程序黑名单、访问时间黑名单、文件访问权限黑名单。
7.根据权利要求1所述的方法,其特征在于,所述创建用户空间和内核空间共享的内存缓冲区,包括:
获得用户配置的缓冲区参数,所述缓冲区参数与所述第一文件的文件大小关联;
按照所述缓冲区参数,创建所述内存缓冲区。
8.一种文件访问行为的审计装置,其特征在于,所述装置包括:
内存管理模块,用于创建用户空间和内核空间共享的内存缓冲区;
读取模块,用于通过所述内存缓冲区获取第一数据,所述第一数据为第一程序的文件访问行为在内核空间中的内核事件数据,所述第一程序运行于用户空间;
审计模块,用于根据所述第一数据,对所述文件访问行为进行安全性审计。
9.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现如权利要求1至7中任一项所述的方法。
10.一种存储介质,其上存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311218970.4A CN117278277A (zh) | 2023-09-20 | 2023-09-20 | 文件访问行为的审计方法和装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311218970.4A CN117278277A (zh) | 2023-09-20 | 2023-09-20 | 文件访问行为的审计方法和装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117278277A true CN117278277A (zh) | 2023-12-22 |
Family
ID=89203823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311218970.4A Pending CN117278277A (zh) | 2023-09-20 | 2023-09-20 | 文件访问行为的审计方法和装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117278277A (zh) |
-
2023
- 2023-09-20 CN CN202311218970.4A patent/CN117278277A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104160404B (zh) | 基于沙箱使用来检测、执行和控制访问权限 | |
US9230106B2 (en) | System and method for detecting malicious software using malware trigger scenarios in a modified computer environment | |
CN102799817B (zh) | 用于使用虚拟化技术进行恶意软件保护的系统和方法 | |
US20150007325A1 (en) | System and Method for Detecting Malicious Software Using Malware Trigger Scenarios | |
CN104321780B (zh) | 用于使用持久信任日志来监测并断言信任等级的设备、系统、和方法 | |
JP6777732B2 (ja) | コンピューティングデバイスにおけるプロセスに対するソフトウェア攻撃の検出 | |
CN104866770B (zh) | 敏感数据扫描方法和系统 | |
US20120159566A1 (en) | Access control framework | |
US20070083792A1 (en) | System and method for error detection and reporting | |
JP6984710B2 (ja) | コンピュータ装置およびメモリ管理方法 | |
US20150143342A1 (en) | Functional validation of software | |
US10275595B2 (en) | System and method for characterizing malware | |
CN111428240B (zh) | 一种用于检测软件的内存违规访问的方法及装置 | |
US20160092313A1 (en) | Application Copy Counting Using Snapshot Backups For Licensing | |
CN106127558B (zh) | 一种账单生成方法及移动终端 | |
JP2005234661A (ja) | アクセスポリシ生成システム、アクセスポリシ生成方法およびアクセスポリシ生成用プログラム | |
CN108009039B (zh) | 终端信息的记录方法、装置、存储介质及电子设备 | |
CN117278277A (zh) | 文件访问行为的审计方法和装置、电子设备及存储介质 | |
CN112631949B (zh) | 一种调试方法、装置、计算机设备及存储介质 | |
KR102212664B1 (ko) | 로그 데이터의 무결성을 보장하는 장치 및 방법 | |
CN111045891B (zh) | 基于java多线程的监控方法、装置、设备以及存储介质 | |
EP2819055B1 (en) | System and method for detecting malicious software using malware trigger scenarios | |
CN112905422A (zh) | 基于搜索服务器的告警规则管理方法和设备 | |
CN112231232A (zh) | 确定测试数据模型及生成测试数据的方法、装置及设备 | |
CN111625784B (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 |