CN111783106B - 经由多层文件系统状态检测文件系统修改的系统和方法 - Google Patents

经由多层文件系统状态检测文件系统修改的系统和方法 Download PDF

Info

Publication number
CN111783106B
CN111783106B CN202010651101.0A CN202010651101A CN111783106B CN 111783106 B CN111783106 B CN 111783106B CN 202010651101 A CN202010651101 A CN 202010651101A CN 111783106 B CN111783106 B CN 111783106B
Authority
CN
China
Prior art keywords
file
tier
potential threat
determining
threat
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
Application number
CN202010651101.0A
Other languages
English (en)
Other versions
CN111783106A (zh
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN111783106A publication Critical patent/CN111783106A/zh
Application granted granted Critical
Publication of CN111783106B publication Critical patent/CN111783106B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

经由多层文件系统状态检测文件系统修改的系统和方法。该技术提供威胁检测系统。就这一点而言,该系统可以被配置成输出多层文件系统的文件状态。例如,系统可以基于文件的文件状态来确定多层文件系统中的可以找到与该文件相对应的一个或多个对象的一个或多个层。基于与文件对应的一个或多个对象,系统可以检测潜在威胁。然后,系统可以响应于潜在威胁而采取动作。

Description

经由多层文件系统状态检测文件系统修改的系统和方法
技术领域
本公开涉及经由多层文件系统状态检测文件系统修改的系统和方法。
背景技术
检测操作系统(“OS”)的文件系统中的威胁的典型方法可以包括比较OS中的文件的修改时间戳,以及将文件与OS中的预期文件的索引进行比较。但是,这些方法需要OS中的原始时间戳和/或原始索引使其可用于检测机制,这可能会使OS面临进一步的威胁并需要额外存储和处理。在OS文件系统中检测威胁的另一种方法是测量OS中的文件内容,这可能需要大量的处理资源,诸如加工和处理大量的输入/输出文件数据。OS文件系统中的威胁检测方法的又一示例是表征OS的磁盘块分配图,这可能非常复杂,并且可能不是恶意修改的良好指标。
此外,由于容器的短暂性质,检测容器化的环境中的威胁造成另外的挑战。就这一点而言,可以创建包括一个或多个可执行二进制文件集的OS文件系统的基础镜像,所述二进制文件是用于运行容器实例的一个集合的编译程序。当需要修改、移除、添加等可执行二进制文件时,使用经过修改或新的可执行二进制文件集创建OS文件系统的新基础镜像通常是可接受的惯例。然后,可以使用新基础镜像部署新容器实例。通常,在容器运行时修改容器中的可执行二进制文件集是不可接受的惯例,因为在容器实例期间对可执行二进制文件进行的任何修改都不会持续超出该容器实例的相对较短的寿命。这样,如果恶意行为者在容器的实例的运行时期间修改可执行二进制文件或添加新可执行文件,则一旦容器实例的寿命结束,恶意修改就可能无法检测到。
发明内容
本公开涉及检测多层文件系统中的潜在威胁。一个方面包括输出文件的文件状态的方法。可以基于该文件状态确定其中可以找到与该文件相对应的一个或多个对象的多层文件系统的一个或多个层。可以基于其中找到与该文件相对应的所述一个或多个对象的所述一个或多个层来确定对多层文件系统的潜在威胁,并且可以响应于该潜在威胁而采取动作。
在某些情况下,该方法可以包括:确定在多层文件系统的上层中的可修改镜像中找到的与该文件相对应的对象包含对在多层文件系统的下层中的基础镜像中找到的与该文件相对应的对象的修改;以及检测潜在威胁可以进一步基于确定在可修改镜像中找到的与该文件相对应的对象包含对在基础镜像中找到的与该文件相对应的对象的修改。
在某些情况下,该方法可以包括确定在多层文件系统的下层中的基础镜像中没有找到与该文件相对应的所述一个或多个对象,以及检测潜在威胁可以进一步基于确定在基础镜像中没有找到与该文件相对应的所述一个或多个对象。
在一些示例中,可以创建基础镜像,并且检测潜在威胁可以进一步基于确定文件状态指示该文件在基础镜像之后被创建。
在一些示例中,可以在多层文件系统的上层中构造一个或多个可修改镜像,使得该一个或多个可修改镜像包含在应用的运行时期间对基础镜像做出的修改。检测潜在威胁可以进一步基于确定文件状态指示该文件在该应用的运行时期间被创建。
在一些示例中,可以在多层文件系统的上层中构造一个或多个可修改镜像,使得该一个或多个可修改镜像包含在运行应用的容器的实例期间对基础镜像做出的修改。检测潜在威胁可以进一步基于确定文件状态指示该文件在该容器的实例期间被创建。
在某些情况下,该方法可以包括确定该文件是否是可执行二进制文件。检测潜在威胁可以进一步基于确定该文件是可执行二进制文件。
在某些情况下,该方法可以包括确定该文件是否是库文件。检测潜在威胁可以进一步基于确定该文件是库文件。
在某些情况下,该方法可以包括确定该文件是否是脚本。检测潜在威胁可以进一步基于确定该文件是脚本。
在某些情况下,该方法可以包括确定涉及该文件的进程是否使得处理资源的使用率满足阈值。检测潜在威胁可以进一步基于确定处理资源的使用率满足该阈值。
在某些情况下,该方法可以包括确定该文件是否存储在硬盘中。检测潜在威胁进一步基于该文件未被存储在硬盘中。
在一些情况下,响应于潜在威胁而采取动作可以包括基于潜在威胁生成通知,以及将该通知输出到用户界面。
在某些情况下,该方法可以包括基于以文件状态为基础而做出的对所述一个或多个层的确定将第一置信度分值指配给潜在威胁;基于指示威胁的一个或多个附加因素,将一个或多个附加置信度分值指配给潜在威胁;以及确定包括第一置信度分值和一个或多个附加置信度分值的总置信度分值满足阈值水平。生成通知可以进一步基于总置信度分值满足阈值水平。
在某些情况下,该方法可以包括确定潜在威胁的类型。该通知可以进一步包括潜在威胁的类型。
在某些情况下,该方法可以包括标识其中检测到潜在威胁的容器。该通知可以包括该容器的标识。
另一个方面针对一种分布式计算系统,包括一个或多个处理器。一个或多个处理器可以被配置成提供客户操作系统(OS)。客户OS可以被配置成:输出文件的文件状态作为事件;提供威胁检测服务。威胁检测服务可以被配置成:接收包括文件状态的事件;基于该文件的文件状态,确定多层文件系统中的能够找到与该文件相对应的一个或多个对象的一个或多个层;基于与该文件相对应的所述一个或多个对象,检测对多层文件系统的潜在威胁;并且生成关于潜在威胁的发现。
在某些情况下,威胁检测服务可以进一步被配置成:确定在多层文件系统的下层中的基础镜像中没有找到与该文件相对应的所述一个或多个对象。检测潜在威胁可以进一步基于确定在基础镜像中没有找到与该文件相对应的所述一个或多个对象。
在某些情况下,威胁检测服务还可以被配置成:确定在多层文件系统的上层的可修改镜像中找到的与该文件相对应的对象包含对在多层文件系统的下层中的基础映像中找到的与该文件相对应的对象的修改。检测潜在威胁可以进一步基于确定在可修改镜像中找到的与该文件相对应的对象包含对在基础镜像中找到的与该文件相对应的对象的修改。
在一些情况下,威胁检测服务可以包括多个检测器,所述多个检测器中的每一个检测器均被配置成分析涉及特定类型的文件的事件。
在一些情况下,该一个或多个处理器可以进一步被配置成:提供安全中心,该安全中心被配置成:从威胁检测服务接收关于潜在威胁的发现;并且基于该发现生成通知。
附图说明
图1是图示根据本公开的方面的示例分布式系统的框图。
图2是图示根据本公开的方面的示例容器化环境的框图。
图3是图示根据本公开的方面的示例多层文件系统的框图。
图4是图示根据本公开的方面的示例OS的框图。
图5是图示根据本公开的方面的在分布式系统中提供的示例威胁检测系统的框图。
图6是根据本公开的方面的流程图。
具体实施方式
概述
该技术通常涉及利用执行容器化环境的多层文件系统来检测操作系统(“OS”)中的威胁。为了解决上述已知威胁检测技术的问题,可以利用执行容器化环境的多层OS文件系统的各个方面。就这一点而言,多层OS文件系统可以允许在下层中利用对象的集合来创建OS文件系统的基础镜像,并且可以在上层中通过相应对象的集合的新分配的内存空间构造OS文件系统的一个或多个可修改的镜像。多层OS文件系统可以是写入时复制系统,使得无法将修改写入基础镜像中的对象,而是将对基础镜像的修改写入一个或者多个可修改镜像中的相应对象中的新分配的内存空间中。此外,可以从上至下执行在这样的多层OS文件系统中的文件访问。例如,首先读取与上层的一个或多个可修改镜像中的文件相对应的对象中的内容,紧接着读取与下层的基础镜像中的文件相对应的对象中的内容。因此,可修改镜像包含相对于基础镜像的修改。这些修改可以在容器的实例的运行时期间进行并且可以被检测到。对包括新的或修改的可执行二进制文件、库文件或脚本的修改和/或附加对象的检测可能指示潜在威胁。
威胁检测系统可以在分布式系统上实现。例如,分布式系统可以是托管各种虚拟化环境的云计算系统,诸如作为“客户”的虚拟机和虚拟OS,其中客户OS可以被配置成运行上述多层写入时复制文件系统。作为示例,OS可以是Linux OS、基于云的OS、容器优化的OS等。在此威胁检测系统中,客户OS可以被配置成输出OS多层文件系统的文件状态。例如,OS的内核可以被配置成输出多层OS文件系统的文件状态。例如,当执行涉及文件的过程时,内核的一个或多个安全模块可以被配置成输出与该文件有关的文件状态。例如,文件状态可以标识多层OS文件系统的其中可以找到与该文件相对应的对象的层。此外,可以在OS中提供特权用户模式进程以从内核接收文件状态,并输出包括文件状态的事件。
威胁检测系统可以包括附加组件,诸如由主机分布式系统提供的服务。威胁检测系统可以包括威胁检测服务,其从OS接收事件,诸如进程执行事件、内存执行事件或内存映射事件。该事件可以包括OS多层文件系统的文件状态。威胁检测系统可以针对潜在威胁解析文件状态。威胁检测服务的检测器管理器可以从OS中的特权用户模式进程的流传输代理中接收包括文件状态的事件、对执行事件的容器的引用、执行事件的进程、父进程等。基于文件状态,检测器管理器可以被配置成例如确定:当仅在上层而不在下层中找到与可执行二进制文件相对应的对象时,可执行二进制文件是在创建基础镜像之后创建的新可执行二进制文件,并且因此可能指示潜在威胁。作为另一示例,检测器管理器可以被配置成确定:当与在上层中找到的可执行二进制文件相对应的对象包含在基础镜像的可执行二进制文件中不存在的修改时,则创建基础镜像之后已经修改可执行二进制文件,并且因此可能指示潜在威胁。对于作为库文件、脚本等的文件也可以进行类似的确定。
检测器管理器可以包括被配置成确定某些事件是否指示潜在威胁的多个检测器。例如,每个检测器可以被配置成确定针对特定类型文件的事件是否指示潜在威胁。作为示例,用于第一类型的可执行二进制文件的第一检测器可以分析涉及第一类型的可执行二进制文件的事件,并确定这些可执行二进制文件中的任何一个是否具有仅在多层OS文件系统的上层中找到的对象。作为另一示例,用于第二类型的可执行二进制文件的第二检测器可以被配置成分析涉及第二类型的可执行二进制文件的事件,并确定是否将这些可执行二进制文件中的任何一个修改为反弹shell。反弹shell可以控制运行应用的虚拟机与另一台机器通信,诸如通过将用户数据从应用发送到另一台机器的侦听器端口。检测器管理器还可以在确定是否存在潜在威胁(诸如过多的CPU或GPU使用)时考虑其他因素。
可以响应于确定事件指示潜在威胁而采取动作。例如,在确定事件指示潜在威胁时,检测器管理器可以生成关于潜在威胁的发现。例如,发现可能包括威胁的类型,诸如可疑的二进制执行或反弹shell。作为另一个示例,发现可以包括威胁的位置,诸如发现新文件或经修改的文件的特定容器。作为又一示例,发现可以包括关于如何处理威胁的指令。
在某些情况下,响应于检测到潜在威胁而采取的动作可以包括生成通知。可以将通知提供给用户以警告用户潜在威胁。例如,威胁检测服务可以将关于检测到的潜在威胁的发现发送到安全中心。安全中心或威胁检测系统的其他部分可以确定是否以及何时生成或触发潜在威胁的通知的生成。在某些情况下,通知可能包括有关潜在威胁的发现,诸如威胁的类型、威胁的位置和/或如何处理威胁。通知可以是文本、电子邮件、日志、图形、音频、触觉反馈等。
该技术是有利的,因为其提供一种用于在容器化环境中检测对OS的威胁的可靠且快速的方法。通过在运行时期间比较OS文件系统镜像,能够早期检测威胁,并且即使恶意修改可能是短暂的,也可以检测到威胁。此外,因为文件系统的状态的比较不涉及加工和处理I/O数据或分析磁盘块分配图,所以该方法轻巧快速。
示例系统
图1是图示示例分布式系统100的功能图。如所示的,系统100可以包括多个计算设备,诸如耦合到网络180的服务器计算机110、120。例如,服务器计算机110、120可以是云计算系统的一部分。系统100还可以包括一个或多个客户端计算设备,诸如能够通过网络180与服务器计算机110、120通信的客户端计算设备130和140。
如所示的,服务器计算机110可以包含一个或多个处理器112、存储器114以及通用计算机中通常存在的其他组件。存储器114可以存储可由处理器112访问的信息,包括可以由处理器112执行的指令116。存储器还可以包括可以由处理器112检索、操纵或存储的数据118。存储器114可以是一种非暂时性计算机可读介质,其能够存储处理器112可访问的信息,例如硬盘驱动器、固态驱动器、磁带驱动器、光学存储器、存储卡、ROM、RAM、DVD、CD-ROM、具有写能力的存储器和只读存储器。处理器112可以是众所周知的处理器或其他鲜为人知的类型的处理器。可替选地,处理器112可以是专用控制器,诸如ASIC。
指令116可以是由处理器112直接执行的指令集,诸如计算设备代码,或由处理器112间接执行的指令集,诸如脚本。就这一点而言,术语“指令”、“步骤”和“程序”在本文中可以互换使用。指令116可以以目标代码格式存储,以供处理器112直接处理,或者以其他类型的计算机语言存储,其包括按需进行解释或预先编译的脚本或独立源代码模块的集合。指令的功能、方法和例程在前述示例和下面的示例方法中更详细地解释。指令116可以包括本文描述的任何示例特征。
数据118可以由处理器112根据指令116检索、存储或修改。例如,尽管系统和方法不受特定数据结构的限制,但是数据118可以在计算机寄存器中以关系数据库存储为具有多个不同字段和记录的表或XML文档。数据118还可以以计算机可读格式来格式化,诸如但不限于二进制值、ASCII或Unicode。此外,数据118可以包括足以标识相关信息的信息,诸如数字、描述性文本、专有代码、指针、对存储在其他存储器中的数据的引用,包括其他网络位置,或者由用于计算相关数据的功能所使用的信息。
尽管图1在功能上将处理器112和存储器114图示为在同一块内,但是处理器112和存储器114实际上可以包括可以或可以不存储在同一物理壳体内的多个处理器和存储器。例如,指令116和数据118中的一些可以存储在可移动CD-ROM上,而其他指令和数据可以存储在只读计算机芯片内。指令和数据中的一些或者全部可以存储在物理上远离处理器112但仍可被处理器112访问的位置。类似地,处理器112可以包括可以并行或可以不并行操作的处理器的集合。服务器计算机120可以与服务器计算机110一样被类似地配置有处理器122、存储器124、指令126、数据128等。服务器计算机110、120均可以包括一个或多个提供定时信息的内部时钟,其可以用于服务器计算机110、120运行的操作和程序的时间测量。
服务器计算机110、120可以被定位成彼此相距相当大的距离。例如,服务器计算机可以被定位在世界各地的各个国家。服务器计算机110、120可以实现多种架构和技术中的任何一种,包括但不限于直接附加存储(DAS)、网络附加存储(NAS)、存储区域网络(SAN)、光纤通道(FC)、以太网光纤通道(FCoE)、混合体系结构网络等。在一些示例中,服务器计算机110、120可以是虚拟化环境。
服务器计算机110、120和客户端计算设备130、140可以均位于网络180的一个节点处,并能够与网络180的其他节点直接和间接通信。例如,服务器计算机110、120可以包括网络服务器,该网络服务器可能能够经由网络180与客户端计算设备130通信,使得其使用网络180将信息传输到在客户端计算设备130上运行的应用。服务器计算机110、120也可以是负载平衡的服务器场中的计算机,其可以与网络180的不同节点交换信息,以用于接收、处理数据并将数据传输到客户端计算设备130、140的目的。尽管在图1中仅描述了几个服务器计算机110、120,但是应理解,典型系统可以包括大量连接的服务器计算机,每个服务器计算机位于网络180的不同节点处。
客户端计算设备130、140也可以与服务器计算机110、120类似地被配置有处理器132、142、存储器134、144、指令136、146以及数据138、148。客户端计算设备130、140可能具有通常与个人计算设备结合使用的所有组件,诸如中央处理单元(CPU)、存储数据和指令的内存(例如,RAM和内部硬盘驱动器)、输入和/或输出设备、传感器、时钟等等。客户端计算设备130、140可以包括全尺寸的个人计算设备,它们可以替选地包括能够通过诸如因特网的网络与服务器无线交换数据的移动计算设备。例如,客户端计算设备130、140可以是台式机或膝上型计算机,或者是移动电话或诸如启用无线的PDA、平板PC、或者能够经由互联网获得信息的上网本等的设备、或者可穿戴计算设备等。
客户端计算设备130、140可以包括应用接口模块131、141。应用接口模块131、141可以用于访问诸如服务器计算机110、120的一个或多个服务器计算机可用的服务。应用接口模块131、141可以包括子例程、数据结构、对象类别以及用于允许服务器和客户端彼此通信的其他类型的软件组件。在一方面,应用接口模块131、141可以是结合本领域中已知的几种类型的操作系统可操作的软件模块。存储器134、144可以存储由应用接口模块131、141访问的数据138、148。数据138、148也可以存储在诸如磁盘、磁带、SD卡或CD-ROM等的可移动介质上,该可移动介质可以连接到客户端计算设备130、140。
进一步如图1中所示,客户端计算设备130、140可以包括一个或多个用户输入133、143,诸如键盘、鼠标、机械致动器、软致动器、触摸屏、麦克风、传感器和/或其他组件。客户端计算设备130、140可以包括一个或多个输出设备135、145,诸如用户显示器、触摸屏、一个或多个扬声器、换能器或其他音频输出、触觉界面或向用户提供非可视和非可听信息的其他触觉反馈。尽管在图1中仅描绘了几个客户端计算设备130、140,但是应当理解,系统可以包括大量客户端计算设备,每个客户端计算设备位于网络180的不同节点处。
与存储器114一样,存储系统160可以是能够存储可由服务器计算机110、120和客户端计算设备130、140中的一个或多个访问的信息的任何类型的计算机化存储,诸如硬盘驱动器、存储卡、ROM、RAM、DVD、CD-ROM、具有写能力的存储器和只读存储器。另外,存储系统160可以包括分布式存储系统,其中数据存储在物理上可以位于相同或不同地理位置处的多个不同存储设备上。存储系统160可以经由图1中所示的网络180连接到计算设备,并且/或者可以直接连接到服务器计算机110、120和客户端计算设备130、140中的任何一个。
服务器计算机110、120和客户端计算设备130、140能够直接通信和诸如通过网络180间接通信。例如,使用互联网套接字,客户端计算设备130可以通过互联网协议套件连接到在远程服务器计算机110、120上运行的服务。服务器计算机110、120可以设置侦听套接字,所述侦听套接字可以接受用于发送和接收信息的发起连接。网络180和中间节点可以包括各种配置和协议,其包括因特网、万维网、内联网、虚拟专用网、广域网、局域网、使用对一个或多个公司专有的通信协议的专用网、以太网、WiFi(例如,802.81、802.81b、g、n或其他此类标准)和HTTP,以及前述的各种组合。通过能够向其他计算机传输数据并且传输来自于其它计算机的数据的诸如调制解调器(例如,拨号、电缆或光纤)和无线接口的设备可以促进此类通信。
为了在诸如分布式系统100的分布式系统中有效地使用处理和/或存储资源,可以使用容器化环境来实现应用。图2是图示示例容器化环境的功能图。容器化环境可以被配置成基于配置数据将应用的各种服务打包到容器中。然后可以将容器部署在分布式或云计算系统上,例如由服务器计算机110、120的处理器112、122(图1)执行,并且/或者将容器部署在客户端计算设备130、140上,例如由处理器132、142执行。容器化环境可以被配置成为容器分配资源,加载由容器提供的平衡服务,并且(诸如通过复制和删除)缩放容器。
如图2中所示,容器化环境可以被配置为集群200。如所示的,集群200可以包括主节点210和多个工作节点,诸如工作节点220和工作节点230。群集200中的各个“节点”可以在物理机或虚拟机上运行。主节点210可以控制工作节点220、230。可以在这些工作节点220、230上部署容器,例如,这些容器可以包括形成应用一部分的计算机代码和程序运行时。
容器可以以多种方式中的任何一种来部署。包括代码和/或程序运行时的一个集合的容器的单个实例可以部署在单个节点上。例如,容器221可以包括作为单个实例部署在节点220上的代码和/或程序运行时的一个集合。可替选地,相同或不同容器的多个实例可以部署在单个节点上。例如,容器221和223可以是相同容器的两个实例,包括部署在节点220上的相同的代码和/或程序运行时的集合。作为又一替代方案,相同容器的多个实例可以被部署在多个节点上。例如,容器221和231可以是相同容器的两个实例,包括分别部署在节点220和230上的相同的代码和/或程序运行时的集合。除了包含相同代码/程序运行时的容器的实例之外,其他容器的其它实例还可以被部署。例如,容器221和容器223可以是具有不同代码和/或程序运行时的两个不同容器的实例。容器可以进一步组织成一个或多个容器组。
主节点210可以被配置成管理工作节点220、230的资源。主节点210可以配置和/或更新主节点210中的对象。例如,对象可以包括关于容器、容器组、复制组件等的信息。主节点210可以被配置成被通知集群200中的各个项目的状态的改变,并且基于该改变来更新主节点210中的对象。这样,主节点210可以被配置成存储用于集群200的配置数据,该配置数据可以是集群200的整体状态的指示。配置数据还可以包括用于集群200的期望状态,其例如可以由用户来提供。作为示例,期望状态可以是由应用控制的机器人要到达的目的地的坐标。
主节点210可以被配置成运行控制循环以将集群200驱动到期望状态。就这一点而言,主节点210可以观看集群200的节点共享的状态,并进行改变以尝试将当前状态移向期望状态。就这一点而言,主节点210可以被配置成执行许多管理功能中的任何一个,包括管理节点(诸如初始化节点、获取有关节点的信息、检查无响应的节点等),管理容器和容器组的复制等。
主节点210可以被配置成跟踪每个工作节点上的资源使用,以确保不排程超过可用资源的工作量。为此,可以向主节点210提供资源要求、资源可用性以及其他用户提供的约束和策略指令,诸如服务质量、亲和力/反亲和力要求、数据位置等。这样,主节点210可以使资源供应与工作量需求匹配。
主节点210可以被配置成与工作节点220、230通信。例如,主节点210可以被配置成确保主节点210中的配置数据与工作节点220中的容器(诸如容器221、223、225、231、233、235)的配置数据匹配。工作者节点220、230可以被配置成基于来自主节点210的指令来启动、停止和/或维护容器。节点220、230可以被配置成诸如经由网络或其他通信信道来管理路由和流传输(诸如TCP、UDP、SCTP)。
尽管仅示出一个主节点210,但是集群200可以另外包括多个主节点。例如,主节点210可以被复制以生成多个主节点。即使一个或多个主节点可能发生故障,多个主节点也可以通过继续管理集群来改善集群的性能。在一些示例中,多个主节点可以被分布到不同的物理机和/或虚拟机上。
为了在诸如图2的容器化环境的容器化环境中运行应用,可能需要在OS文件系统上同时运行多个节点和容器。这样,在运行时期间,多个节点和容器可能会尝试做出对OS文件系统的潜在冲突修改。为了避免这种冲突修改,可以提供多层OS文件系统以实现容器化环境,使得多层OS文件系统允许节点和容器同时运行,但不允许节点和容器做出潜在冲突修改。多层OS文件系统可以允许在不可修改的下层中创建OS文件系统的不可修改的基础映像,并且可以在其中可以写入修改的可修改的上层中创建OS文件系统的一个或多个可修改的映像。
图3是图示示例多层OS文件系统300的功能图,其可以执行诸如图2中所示的容器化环境的容器化环境。例如,多层OS文件系统300可以设置在服务器计算机110、120的存储器114、124或客户端计算设备130、140的存储器134、144上。多层OS文件系统300可以内置在OS中,诸如在OS的内核中。可以允许特权用户模式进程配置OS的内核,以便使用多层OS文件系统。特权用户模式进程可以通过指示多层OS文件系统的每一层要存储的位置,诸如在一个或多个存储器中指定“安装路径”来配置内核。就这一点而言,多层OS系统300中的文件(诸如文件的内容和元数据)可以存储在包括硬盘的任何内存或者诸如tmpfs的任何临时文件系统中,而有关多层OS文件系统300的结构的信息(诸如安装路径)可以存储在与内核相关联的存储器中。
参考图3,多层OS文件系统300具有下层310。如在上面所提及的,下层310的安装路径可以由一个或多个用户模式进程配置,并存储在与提供多层OS文件系统300的OS的内核相关联的存储器中。例如,安装路径可以包括用于下层310的存储器地址。下层310可以包括基础镜像中的对象,诸如所示的对象312、314。对象可以对应于文件,诸如数据文件、可执行二进制文件、脚本等。例如,对象312可以对应于文件A,而对象314可以对应于文件B。作为示例场景,用户可以输入配置数据,其包括容器的一个实例运行应用所需的文件的集合。该文件的集合可以包括可执行二进制文件的集合、库文件的集合、脚本的集合等。基于配置数据,可以生成OS文件系统的基础镜像。基础镜像可以包括用户指定的文件的集合(而不是OS系统中可用的所有文件)。可替选地,用户可以诸如通过上传来提供基础镜像,该基础镜像包括文件的集合,以供运行应用的容器的一个实例集合使用。在运行时期间,运行应用的容器的实例可以共享此基础镜像,但可能不允许其修改此基础镜像。稍后,用户可以为要运行该应用的容器的另一实例集合输入新配置数据或提供新基础镜像。
如以上关于图2所描述的,容器可以以多种方式,例如,作为一个或多个实例部署在一个或多个节点上等等。这样,可以创建一个基础映像并将其链接到已部署的容器的每个实例,无论这些实例部署在同一节点还是不同节点上。基础镜像也可以链接到其他已部署的容器的实例。如果需要不同的文件,则可以使用新的或修改的文件的集合来创建新基础镜像,并且可以部署容器的新实例并将其链接到新基础镜像。
为了在运行时期间进行诸如写入或编辑的修改,多层OS文件系统300可以具有写入时复制文件系统结构。例如,如所示的,多层OS文件系统300具有可修改的上层320。与下层310类似,上层320的安装路径可以由一个或多个用户模式进程配置,并存储在与提供多层OS文件系统300的OS内核相关联的存储器中。例如,上层320的安装路径可以包括与下层310的安装路径不同的存储器地址。上层320可以包括一个或多个可修改镜像,每个镜像都可以通过与基础镜像中的对象相对应的对象被初始化。例如,图3示出通过对应于对象312的对象322和对应于对象314的对象324初始化的一个可修改镜像。上层320中的对象在首次初始化时可以为空。然而,在运行时期间,代替覆盖下层310中的对象中的内容,可以在上层320中的对应对象中的新分配的存储空间中写入修改。例如,在运行时期间,容器可以修改与下层310的对象314相对应的上层320中的对象324(对象324的修改被图示为圆圈)。
再次参考部署关于图2所描述的容器的实例的各种方式,可修改镜像可以链接到容器的这些实例。可以创建可修改镜像并将其链接到容器的每个实例,使得每个实例可以对其相应可修改镜像进行更改。例如,可修改镜像可以基于相同基础镜像而初始化,并且因此对象对应于相同的文件的集合。这些可修改镜像中的每个都可以链接到部署的容器的相应实例。因此,容器的每个实例可以具有不同的多层表示,诸如链接到相同基础镜像但是链接到不同可修改镜像。在运行时期间,部署的容器的实例可以对其相应可修改镜像进行修改。如上所述,如果需要新文件,则可以创建新基础镜像,然后可以基于其创建新可修改镜像。然后可以部署容器的新实例并将其链接到这些新可修改镜像。
这样的叠加层结构允许容器对OS文件系统进行诸如写操作的运行时修改,而无需操纵下基础镜像,相反,修改在上层的可修改镜像中结束。因此,多层OS文件系统允许多个容器在同一基础映像之上同时运行,同时不允许多个容器对该基础映像进行潜在冲突修改。此外,通过共享相同的基础镜像,可以降低总体磁盘利用率,并且可以更有效地分配内存。
多层OS文件系统300中的诸如读取的文件访问可以通过首先从上层320检索文件的修改部分,并且然后从下层310检索文件的未修改部分来进行。这在图3中通过叠加层330图示。例如,为了读取文件B,检索上层320中的对象324的修改部分(图示为圆圈),并检索下层310中的对象314的未修改部分(图示为方形)。对象314的未修改部分和对象324的未修改部分一起产生叠加层330的对象334中所示的内容。类似地,为了读取文件A,因为对象322为空,所以仅检索下层310中的对象312的未修改部分(图示为正方形),从而产生叠加层330的对象332中所示的内容。为了读取文件C,因为在下层310中不存在对应对象,所以仅检索上层320中的对象326的新部分(图示为圆圈),从而产生叠加层330的对象336。
如本文所提及地,由于容器的短暂性质,如果很少涉及添加或修改诸如可执行二进制文件、库文件和脚本的某些文件,在运行时期间对多层OS文件系统300的修改会很少发生。而是,当需要新的或修改的可执行二进制文件、库文件、库文件或脚本来运行容器实例时,通常会创建新基础镜像。因此,如果文件C是可执行二进制文件、库文件或脚本,则上层320中的对象326在下层310中不具有对应对象的事实指示可以新添加文件C,这可以指示可疑活动。作为另一个示例,如果文件B是可执行二进制文件、库文件或脚本,则在对象324中对文件B所做的修改可以指示可疑活动。
这样,可以将运行多层OS文件系统的OS配置成利用多层OS文件系统的这些方面来输出可以用于检测多层OS文件系统中的潜在威胁的文件状态。在运行时期间使用多层OS文件系统,能够尽早检测到威胁,并且尽管容器实例中的恶意修改可能是短暂的,或者以其它方式短暂的,也可以检测到威胁。
图4示出被配置成输出诸如图3中所示的多层OS文件系统300的多层OS文件系统的文件状态的示例OS 400。OS 400可以执行诸如在图2中示出的容器化环境的容器化环境,并且可以在图1中所示的服务器计算机110、120的处理器112、122或客户端计算设备130、140的处理器132、142上运行。
参考图4,示例OS 400可以具有多个保护环。例如,环0 410中的代码可能具有最多特权,并且与诸如CPU和内存的计算机的物理硬件进行最直接交互。环0 410包括OS的内核420和设备驱动器。相反,环3 450中的代码可以具有较少特权,并且可以不被配置成直接与物理硬件交互。就这一点而言,环3 450可以包括用户应用,该用户应用可以包括运行用户应用460的容器。尽管未示出,但是OS 400可以包括附加保护环。例如,环1和/或环2可以被定位在环0 410和环3 450之间,其中环1可以包括设备驱动器,而环2可以包括特权用户代码。
如所示的,在环0 410中,内核420可以包括一个或多个安全模块430。例如,为了访问存储器或相机,环3中的用户应用可对内核420进行系统调用。系统调用可以请求创建新进程、访问文件中的数据等。如所示的,在容器化环境中,可以由一个或多个容器运行的用户应用460可以对安全模块430进行系统调用。安全模块430可以被配置成确定是否允许系统调用所请求的访问。就这一点而言,安全模块430可以基于诸如访问控制列表(ACL)、自主访问控制(DAC)等的规则来进行确定。
内核420可以被配置和/或修改以输出多层OS文件系统的文件状态440。尽管并非通过如上所述的用户应用(包括运行用户应用的容器)修改多层OS文件系统的所有层,但是多层OS文件系统的所有层仍可以保持可访问内核420。例如,当接收到涉及图2的文件C的系统调用时,安全模块430可以标识其中可以找到与文件C相对应的对象的所有层。安全模块430可以输出文件状态,例如文件状态可以指示仅在上层320中找到对应于文件C的对象326,而在下层310中未找到对应的对象。作为另一示例,文件状态可以指示可以在下层310中找到与文件B相对应的对象314,并且可以在上层320中找到与文件B相对应的对象324。
内核420输出的文件状态还可以包括其他信息。例如,文件B的文件状态可以进一步指示对象324不为空,而是包括对对象314的修改。作为另一个示例,文件状态可以指示文件是存储在存储器中还是硬盘中。作为又一示例,文件状态可以指示与上层320中的文件相对应的对象被存储在存储器中,而与下层310中的文件相对应的对象被存储在硬盘中。
转到OS 400的环3 450,可以提供特权用户模式进程480。例如,可以在特权容器中提供特权用户模式进程。特权用户模式进程480可以接收安全模块430输出的文件状态。该用户模式进程被配置有特权以保护安全模块430和内核420。包括非特权容器中的代码的非特权代码,可能不被允许配置安全模块430和内核420或与其进行交互。可替选地,代替在环3中使用特权用户模式进程,内核420可被配置成包括特权用户模式进程的代码。
特权用户模式进程480还可以包括用于输出从内核420接收到的文件状态的流传输代理490。例如,文件状态可以作为与对内核进行的各种进程调用相对应的事件被输出。因为流传输代理490仅可以输出文件状态而不输出其他I/O数据,所以通过流传输代理490的业务可以是轻量型的。
为了使用多层OS文件系统的文件状态,可以在分布式系统上提供威胁检测系统以基于多层OS文件系统的文件状态来检测潜在威胁。例如,图5示出示例威胁检测系统500,其可以包括如上所述的OS 400以及接收由OS 400输出的文件状态并基于文件状态检测潜在威胁的附加组件。为了便于说明,从图5省略图4中的容器460和系统调用470。OS 400可以是客户,诸如托管在诸如图1的系统100的分布式或云计算系统上的虚拟机或管理程序。还可以在诸如图1的系统100的分布式或云计算系统中提供诸如图5中所示的威胁检测服务510和安全中心570的附加组件。
例如,威胁检测服务510可以包括检测器管理器520。检测器管理器520可被配置成从客户OS接收事件。例如,如所示的,检测器管理器520可以从客户OS 400的特权用户模式进程480的流传输代理490接收事件540。因为威胁检测可以基于文件状态来进行并且不涉及加工和处理I/O数据或分析磁盘块分配图,所以威胁检测服务510可能是轻量型的。
威胁检测服务510可以包括多个检测器522。就这一点而言,多个检测器522可以被配置成确定事件是否指示威胁。例如,每个检测器可以被配置成确定用于特定类型文件的事件是否指示威胁。就这一点而言,每个检测器可以包括关于针对特定类型文件的已知威胁的信息,并且可以将此信息与特定类型文件的事件进行比较。可以更一般地定义文件的类型,诸如所有可执行二进制文件、所有库文件、所有脚本等,或更具体地,诸如特定类型的可执行二进制文件、特定类型的库文件、特定类型的脚本等。作为示例,检测器A可以被配置用于分析涉及诸如图3的文件A的特定类型的文件的事件,检测器B可以被配置用于对诸如文件B的特定类型的文件的事件进行分析,并且检测器C可以被配置成分析涉及诸如文件C的特定类型的文件的事件等。
每个检测器522可以被配置成分析针对多个可疑活动的事件。例如,检测器C可以分析涉及文件C的事件,并且确定事件中的文件状态指示与文件C相对应的对象326存在于上层320中,但是在下层310中没有找到对应的对象。此外,检测器C可能已经知道文件C是可执行二进制文件,并且确定,因为不是与下层310中的基础镜像同时创建文件C,所以涉及文件C的事件指示潜在威胁。
作为另一示例,检测器B可以被配置成分析涉及文件B的事件,并确定事件中的文件状态指示与上层320中的文件B相对应的对象324包括对在下层310中找到的对应对象314的修改。此外,检测器B可能已经知道文件B是可执行二进制文件,并且确定,因为在下层310中创建基础镜像之后进行修改,所以涉及文件B的事件指示潜在威胁。
作为又一示例,检测器A可以被配置成分析涉及文件A的事件,并且确定事件中的文件状态指示与文件A相对应的对象322存在于上层320中,但是不包含修改。检测器A也可能知道文件A是库文件,并确定因为在上层320中未进行任何修改,所以涉及文件A的事件并不指示任何潜在威胁。
检测器管理器520和/或多个检测器522可以在确定是否存在潜在威胁时考虑其他因素。例如,附加因素可能是标识一个文件,该文件是导致CPU或GPU使用率过高的进程的原因或涉及有该进程。就这一点而言,如果涉及文件的进程导致CPU或GPU使用率满足阈值,则该文件可能被视为存在潜在威胁。作为另一个示例,仅在存储器中找到的指示该文件是容器的一部分,而没有在硬盘中备份的指示文件不是基础映像的一部分的文件可能是指示潜在威胁的另一个因素。
检测器管理器520和/或多个检测器522可以进一步将置信度分值指配给检测到的潜在威胁。例如,可以将第一置信度分值指配给涉及新文件(诸如新可执行二进制文件、库文件或脚本)的事件,其被添加到多层OS文件系统的上层。作为另一示例,第二置信度分值可以被指配给涉及在创建基础镜像之后修改文件的事件。作为又一个示例,可以将附加置信度分值指配给一个或多个附加因素,诸如过高的CPU/GPU使用率、和/或文件是否存储在存储器和硬盘中。
可以响应于确定事件指示潜在威胁而采取动作。例如,在确定事件指示潜在威胁时,检测器管理器520或威胁检测系统的其他组件可以生成关于检测到的潜在威胁的发现560。发现560可以包括关于检测到的潜在威胁的附加信息。例如,发现560可以包括一种威胁,诸如可疑二进制文件执行、可疑库文件、可疑脚本或反弹shell。在某些情况下,发现可能包括其他信息,例如与潜在威胁相关联的二进制文件的哈希、文件内容本身以及围绕进程或事件的上下文信息。
例如,检测器管理器520可以进一步分析涉及新可执行二进制文件C的事件,并确定文件C创建反弹shell,该反弹shell控制运行应用的客户OS 400以与另一机器通信,诸如通过将用户数据从应用发送到另一台机器的侦听器端口。作为另一个示例,发现560可以包括威胁的位置,诸如特定容器的标识,在该特定容器中找到或使用新的或修改的文件,诸如可执行二进制文件、库文件或脚本。例如,检测器管理器520可以进一步分析涉及修改的可执行二进制文件B的事件,并确定修改的文件B是由诸如图2的容器221的特定容器找到或使用。作为另一示例,发现560可以包括关于如何加工潜在威胁的指令。
威胁检测系统500可以另外包括安全中心570,该安全中心可以作为服务被提供在分布式或云计算系统100上。安全中心570可以被配置成生成用户界面,以输出有关由威胁检测系统500检测到的潜在威胁的通知。例如,安全中心570可以被配置成从威胁检测服务510的检测器管理器520接收发现560,并生成用户界面以显示这些发现560。可以为客户OS400生成用户界面,其显示为运行客户OS 400的应用的容器检测到的潜在威胁。通知可以包括诸如潜在威胁的类型、文件类型、诸如找到潜在威胁的容器实例的标识的潜在威胁的位置的信息。此信息可以从附加信息中确定,该附加信息包括与潜在威胁相关联的文件的内容、围绕进程或事件的上下文信息、与潜在威胁相关联的二进制文件的哈希值以及其他此类附加信息。通知可以采用多种格式中的任何一种,诸如文本、电子邮件、日志、图形、音频、触觉反馈等。
附加地或可替选地,安全中心570可以基于对潜在威胁的总置信度分值来确定是否采取动作,诸如生成发现和/或通知用户。例如,安全中心570可以包括一个或多个通知规则,其仅指定是否向用户通知潜在威胁的总置信度分值是否满足阈值水平。在某些情况下,安全中心570可以基于附加信息来确定是否采取行动。例如,当与潜在威胁相关联的二进制文件的哈希与已知病毒匹配时,可以生成立即通知并且/或者可以停止、暂停或以其他方式移除潜在威胁。
如图5中进一步所示的,威胁检测服务510可以包括配置管理器530。配置管理器可以被配置成生成策略550。策略550可以指定是否启用和禁用安全模块在客户OS中的各种检测能力。策略550可以是通用的,诸如“对可疑库启用检测”、“对可疑可执行二进制文件启用检测”、“对可疑脚本启用检测”或可以更加详细。可以包括附加或替代策略。在某些情况下,可以提供隐私控制以允许用户选择威胁检测服务收集哪些数据。例如,用户可以限制应收集哪些附加信息,诸如与潜在威胁相关联的二进制文件、文件内容本身以及围绕进程或事件的上下文信息。
通过提供威胁检测服务510和/或安全中心570作为分布式或云系统上的专用服务。威胁检测服务510和/或安全中心570可以使用新威胁信息或检测逻辑进行集中且更快地更新,而不是向可能立即更新或可能不立即更新的分布式系统的用户提供新威胁信息和/或检测逻辑。此外,通过将威胁信息和/或检测逻辑保持在专用服务中,可以保护威胁信息和/或检测逻辑免受恶意行为者的检查。
然而,尽管未示出,但是代替在分布式系统上作为服务提供,威胁检测系统500的组件可以在输出文件状态的OS(诸如图4的OS 400)上实现。OS 400可以被配置成通过确定与诸如可执行二进制文件、库文件或脚本的文件相对应的对象是否仅存在于上层320中而不存在于下层310中来检测潜在威胁。另外或者可替选地,OS 400可以被配置成通过确定是否对与诸如可执行二进制文件、库文件或脚本的文件相对应的上层320中的对象进行修改来检测潜在威胁。因为可以基于文件状态进行威胁检测,在OS 400无需加工和处理I/O数据或分析文件磁盘块分配图的情况下,该进程可能是轻量型的。此外,OS 400可以被配置成生成通知,其警示用户所检测到的潜在威胁。例如,OS 400可以生成与检测到的潜在威胁有关的以被显示在显示器上的文本或图形,或者生成警示用户的音频、声音或触觉等。
示例方法
除了上述示例系统之外,现在描述示例方法。可以使用上述系统、其修改或具有不同配置的多种系统中的任何一种来执行这样的方法。应理解,以下方法所涉及的操作不必以所描述的精确顺序来执行。而是,可以以不同的顺序或同时处理各种操作,并且可以添加或省略操作。
图6是图示在运行容器化环境的多层OS文件系统中检测威胁的示例方法600的流程图。例如,流程图中所示的操作可以由本文所述的示例系统执行,诸如由分布式系统100的一个或多个处理器执行。该系统可以使用诸如在图3中所示的多层OS文件系统运行诸如在图2中所示的容器化环境。该操作可以由在OS(诸如图4中所示的OS 400)上提供的威胁检测系统执行。可替选地,该操作可以由在分布式系统上提供的威胁检测系统(诸如图5中示出的威胁检测系统500)执行。尽管图6图示示例方法的操作,但是其他方法可以包括其他和/或替代操作,包括以上关于示例系统所述的操作。尽管以特定顺序图示和描述了操作,但是应理解,可以修改顺序,并且可以添加或省略操作。
参考图6,在块610中,输出文件的文件状态。例如,如图4中所示,文件状态可以由OS 400的内核420中的一个或多个安全模块430输出。如图4进一步所示,可以将文件状态发送到OS 400的特权用户模式进程480。如图5中所示,文件状态可以由流传输代理490作为事件540进一步发送到在分布式或云计算系统上提供的威胁检测服务510。
在块620中,基于文件的文件状态,确定可以找到与文件相对应的一个或多个对象的多层文件系统的一个或多个层。例如,如图3所图示的,在多层OS文件系统300的下层310中的基础镜像中未找到与文件C相对应的对象。作为另一个示例,并且如图3中所图示,在多层OS文件系统300的上层320中找到与文件B相对应的对象324,并且在多层OS文件系统300的下层310中找到与文件B相对应的对象314。该文件可以是可执行二进制文件、库文件、脚本等。
在块630中,基于与文件相对应的一个或多个对象来检测潜在威胁。例如,可以基于确定在基础镜像中没有找到与文件相对应的一个或多个对象来进行对潜在威胁的检测。可替选地或另外,可以基于确定与多层文件系统的上层中的可修改镜像中的文件相对应的对象包括对与在多层文件系统的下层中的基础镜像中的文件相对应的对象的修改来检测潜在威胁。可以由图4的OS 400进行检测,或由图5的威胁检测服务510进行检测。如图5中所示,可以为潜在威胁生成发现560,该发现560可以包括有关潜在威胁的附加信息,诸如威胁类型、威胁位置、文件类型等。如上所述,可以使用其他因素来检测潜在威胁。
在块640中,采取响应于潜在威胁的动作。这样的动作可以包括生成和输出警告用户潜在威胁的通知和/或生成关于潜在威胁的发现。可以例如由图4的OS 400采取动作,或者由如本文描述的图5的安全中心570来生成。可以进一步基于如本文描述的置信度分值来采取动作。通知可以采用多种格式中的任何一种,诸如文本、电子邮件、日志、图形,音频、触觉反馈等。
大多数上述替代示例不是相互排斥的,而是可以被按照各种组合实现以实现独特的优点。因为可在不脱离由权利要求所限定的主题的情况下利用上面讨论的特征的这些及其它变化和组合,所以应该通过图示而不是通过限制由权利要求所限定的主题来进行实施例的上述描述。作为示例,不必以上述精确次序执行前面的操作。相反,可以不同的次序(诸如相反的或同时地)来处理各个步骤。除非另外陈述,否则还可省略步骤。此外,本文描述的示例的提供以及用短语表示为“诸如”、“包括”等的条款不应该被解释为将权利要求的主题限于具体示例;相反,这些示例旨在图示许多可能的实施例中的仅一个。另外,不同的附图中的相同的附图标记可识别相同或类似的元素。

Claims (18)

1.一种用于检测文件系统修改的方法,包括:
由一个或多个处理器输出文件的文件状态;
由所述一个或多个处理器基于所述文件的所述文件状态确定多层文件系统中的一个或多个层存储与所述文件相对应的一个或多个对象;
由所述一个或多个处理器,通过将在所述多层文件系统的上层中的可修改镜像中找到的与所述文件相对应的对象与在所述多层文件系统的下层中的基础镜像中找到的与所述文件相对应的对象进行比较,确定在所述多层文件系统的上层中的可修改镜像中找到的与所述文件相对应的对象包含对在所述多层文件系统的下层中的基础镜像中找到的与所述文件相对应的对象的修改,
由所述一个或多个处理器,基于确定在所述上层中的所述可修改镜像中找到的与所述文件相对应的对象包含对在所述下层中的所述基础镜像中找到的与所述文件相对应的对象的修改,检测对所述多层文件系统的潜在威胁;以及
响应于所述潜在威胁而采取动作。
2.根据权利要求1所述的方法,进一步包括:
确定在所述多层文件系统的下层中的基础镜像中没有找到与所述文件相对应的所述一个或多个对象,
其中检测所述潜在威胁进一步基于确定在所述基础镜像中没有找到与所述文件相对应的所述一个或多个对象。
3.根据权利要求2所述的方法,进一步包括:
创建所述基础镜像,
其中检测所述潜在威胁进一步基于确定所述文件状态指示所述文件在所述基础镜像之后被创建。
4.根据权利要求2所述的方法,进一步包括:
在所述多层文件系统的上层中构造一个或多个可修改镜像,使得所述一个或多个可修改镜像包含在应用的运行时期间对所述基础镜像做出的修改,
其中检测所述潜在威胁进一步基于确定所述文件状态指示所述文件在所述应用的运行时期间被创建。
5.根据权利要求2所述的方法,进一步包括:
在所述多层文件系统的上层中构造一个或多个可修改镜像,使得所述一个或多个可修改镜像包含在运行应用的容器的实例期间对所述基础镜像做出的修改,
其中检测所述潜在威胁进一步基于确定所述文件状态指示所述文件在所述容器的所述实例期间被创建。
6.根据权利要求1所述的方法,进一步包括:
确定所述文件是否是可执行二进制文件,
其中检测所述潜在威胁进一步基于确定所述文件是可执行二进制文件。
7.根据权利要求1所述的方法,进一步包括:
确定所述文件是否是库文件,
其中检测所述潜在威胁进一步基于确定所述文件是库文件。
8.根据权利要求1所述的方法,进一步包括:
确定所述文件是否是脚本,
其中检测所述潜在威胁进一步基于确定所述文件是脚本。
9.根据权利要求1所述的方法,进一步包括:
确定涉及所述文件的进程是否使得处理资源的使用率满足阈值,
其中检测所述潜在威胁进一步基于确定所述处理资源的使用率满足所述阈值。
10.根据权利要求1所述的方法,进一步包括:
确定所述文件是否存储在硬盘中,
其中检测所述潜在威胁进一步基于所述文件未被存储在硬盘中。
11.根据权利要求1所述的方法,响应于所述潜在威胁而采取动作包括基于所述潜在威胁生成通知,以及
将所述通知输出到用户界面。
12.根据权利要求11所述的方法,进一步包括:
基于以所述文件状态为基础而做出的对所述一个或多个层的确定,将第一置信度分值指配给所述潜在威胁;
基于指示威胁的一个或多个附加因素,将一个或多个附加置信度分值指配给所述潜在威胁;以及
确定包括所述第一置信度分值和所述一个或多个附加置信度分值的总置信度分值满足阈值水平,
其中生成所述通知进一步基于所述总置信度分值满足所述阈值水平。
13.根据权利要求11所述的方法,进一步包括:
确定所述潜在威胁的类型,
其中所述通知进一步包括所述潜在威胁的类型。
14.根据权利要求11所述的方法,进一步包括:
标识其中检测到所述潜在威胁的容器,
其中所述通知进一步包括所述容器的标识。
15.一种分布式计算系统,包括:
一个或多个处理器,其被配置成:
提供客户操作系统OS,所述客户OS被配置成:
输出文件的文件状态作为事件;
提供威胁检测服务,所述威胁检测服务被配置成:
接收包括所述文件状态的事件;
基于所述文件的所述文件状态,确定多层文件系统中的一个或多个层存储与所述文件相对应的一个或多个对象;
通过将在所述多层文件系统的上层中的可修改镜像中找到的与所述文件相对应的对象与在所述多层文件系统的下层中的基础镜像中找到的与所述文件相对应的对象进行比较,确定在所述多层文件系统的上层中的可修改镜像中找到的与所述文件相对应的对象包含对在所述多层文件系统的下层中的基础镜像中找到的与所述文件相对应的对象的修改,
基于确定在所述上层中的所述可修改镜像中找到的与所述文件相对应的对象包含对在所述下层中的所述基础镜像中找到的与所述文件相对应的对象的修改,检测对所述多层文件系统的潜在威胁;并且
生成关于所述潜在威胁的发现。
16.根据权利要求15所述的系统,其中所述威胁检测服务进一步被配置成:
确定在所述多层文件系统的下层中的基础镜像中没有找到与所述文件相对应的所述一个或多个对象,
其中检测所述潜在威胁进一步基于确定在所述基础镜像中没有找到与所述文件相对应的所述一个或多个对象。
17.根据权利要求15所述的系统,其中所述威胁检测服务包括多个检测器,所述多个检测器中的每一个检测器均被配置成分析涉及特定类型的文件的事件。
18.根据权利要求15所述的系统,其中所述一个或多个处理器进一步被配置成:
提供安全中心,所述安全中心被配置成:
从所述威胁检测服务接收关于所述潜在威胁的所述发现;并且
基于所述发现生成通知。
CN202010651101.0A 2019-07-08 2020-07-08 经由多层文件系统状态检测文件系统修改的系统和方法 Active CN111783106B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/504,464 US11481487B2 (en) 2019-07-08 2019-07-08 System and method of detecting file system modifications via multi-layer file system state
US16/504,464 2019-07-08

Publications (2)

Publication Number Publication Date
CN111783106A CN111783106A (zh) 2020-10-16
CN111783106B true CN111783106B (zh) 2024-04-12

Family

ID=71527679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010651101.0A Active CN111783106B (zh) 2019-07-08 2020-07-08 经由多层文件系统状态检测文件系统修改的系统和方法

Country Status (3)

Country Link
US (2) US11481487B2 (zh)
EP (1) EP3764262A1 (zh)
CN (1) CN111783106B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11500847B2 (en) * 2019-09-25 2022-11-15 Open Text Holdings, Inc. System and method for real-time forensic instrumentation
US11611580B1 (en) * 2020-03-02 2023-03-21 Amazon Technologies, Inc. Malware infection detection service for IoT devices
US20220129541A1 (en) * 2020-10-23 2022-04-28 Red Hat, Inc. Containers system auditing through system call emulation
WO2022223108A1 (en) * 2021-04-21 2022-10-27 NEC Laboratories Europe GmbH Method and system for supporting memory deduplication for unikernel images
CN113221103B (zh) * 2021-05-08 2022-09-20 山东英信计算机技术有限公司 一种容器安全防护方法、系统及介质
CN113628022B (zh) * 2021-08-09 2023-12-22 迈普通信技术股份有限公司 一种多层配置的对账方法、装置及计算机可读存储介质
CN116709335A (zh) * 2022-02-28 2023-09-05 中兴通讯股份有限公司 安全检测方法、装置、电子设备和存储介质
CN115150129A (zh) * 2022-06-06 2022-10-04 阿里云计算有限公司 容器安全控制及容器处理方法、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826029A (zh) * 2009-03-03 2010-09-08 赛门铁克公司 用于合并虚拟化子层的方法与系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943590B2 (en) * 2010-03-25 2015-01-27 Webroot Inc. Concurrent and delayed processing of malware with reduced I/O interference
US8695096B1 (en) * 2011-05-24 2014-04-08 Palo Alto Networks, Inc. Automatic signature generation for malicious PDF files
US20150007330A1 (en) * 2013-06-26 2015-01-01 Sap Ag Scoring security risks of web browser extensions
US9171160B2 (en) * 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US9723014B2 (en) * 2014-03-31 2017-08-01 International Business Machines Corporation Detecting malware-related activity on a computer
US9355248B1 (en) * 2015-01-26 2016-05-31 Red Hat, Inc. Container and image scanning for a platform-as-a-service system
US10223534B2 (en) 2015-10-15 2019-03-05 Twistlock, Ltd. Static detection of vulnerabilities in base images of software containers
US10176319B2 (en) * 2015-11-24 2019-01-08 Red Hat, Inc. Maintaining secure clustered software with a container-based architecture
TWI656453B (zh) * 2016-11-22 2019-04-11 財團法人資訊工業策進會 檢測系統及檢測方法
US10558818B2 (en) * 2017-02-22 2020-02-11 Red Hat, Inc. Supporting security access controls in an overlay filesystem
US10678935B2 (en) 2017-04-11 2020-06-09 Nicira, Inc. Identifying container file events for providing container security
US10503895B2 (en) 2017-04-11 2019-12-10 Red Hat, Inc. Runtime non-intrusive container security introspection and remediation
US10528366B2 (en) * 2017-06-05 2020-01-07 International Business Machines Corporation Facilitating multi-inheritance within a single inheritance container-based environment
US11334665B2 (en) * 2019-01-17 2022-05-17 Jpmorgan Chase Bank, N.A. Systems and methods for automated detection and analysis of security threats
CN109918911B (zh) 2019-03-18 2020-11-03 北京升鑫网络科技有限公司 一种镜像安装包信息的扫描方法及设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826029A (zh) * 2009-03-03 2010-09-08 赛门铁克公司 用于合并虚拟化子层的方法与系统

Also Published As

Publication number Publication date
US20230028056A1 (en) 2023-01-26
CN111783106A (zh) 2020-10-16
US11829470B2 (en) 2023-11-28
EP3764262A1 (en) 2021-01-13
US11481487B2 (en) 2022-10-25
US20210012000A1 (en) 2021-01-14

Similar Documents

Publication Publication Date Title
CN111783106B (zh) 经由多层文件系统状态检测文件系统修改的系统和方法
US10013275B2 (en) Executing code referenced from a microservice registry
US11138030B2 (en) Executing code referenced from a microservice registry
CN106133698B (zh) 用于用户模式崩溃报告的框架
US8826269B2 (en) Annotating virtual application processes
US20210349699A1 (en) Automatic containerization of operating system distributions
US20170351861A1 (en) Malware detection in migrated virtual machines
US8046692B2 (en) User interface mapping modules to deployment targets
US20180196951A1 (en) Field-Programmable Gate Array Virtualization
US10423471B2 (en) Virtualizing integrated calls to provide access to resources in a virtual namespace
US11994988B2 (en) Multi-ring shared, traversable, and dynamic advanced database
US20130111018A1 (en) Passive monitoring of virtual systems using agent-less, offline indexing
US11271895B1 (en) Implementing advanced networking capabilities using helm charts
US10496590B2 (en) Enabling redirection policies to be applied based on the windows class of a USB device
US11734430B2 (en) Configuration of a memory controller for copy-on-write with a resource controller
US20150199210A1 (en) Methods, Devices and Computer Readable Storage Devices for Confluence of Multiple Operating Systems
US11308001B1 (en) Dynamically provisioning peripherals to containers
US10862757B2 (en) Isolating a redirected biometric device to a remote session
US20240143733A1 (en) Automatically grouping applications in a secure workspace environment
US20180210856A1 (en) Enabling session level restrictions for devices having disjoint stacks
US20240143485A1 (en) Presubmit Test Run Minimization Analysis Using Runtime Isolation Guarantees
US20240036901A1 (en) Container image management
KR102548704B1 (ko) 클라우드 환경에서의 도커 컨테이너의 보안 위협 분석 시각화 장치
US10394722B1 (en) Managing alt-mode interfaces of a USB Type-C device

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