为用户活动相关的安全事件提供情境取证数据的系统和方法与流程

文档序号:29625455发布日期:2022-04-13 14:19阅读:70来源:国知局
为用户活动相关的安全事件提供情境取证数据的系统和方法1.相关申请的交叉引用2.本技术要求于2019年5月29日提交的美国专利申请no.16/425,098的权益。上述相关申请的内容将会通过引用结合于此。
技术领域
:3.本公开总体上涉及用于网络安全的取证数据,尤其涉及一种用于与用户活动相关的事件的取证数据。
背景技术
::4.网络安全解决方案试图通过从系统、网络、设备等收集数据来识别和缓解网络攻击。更多的数据可以更准确地识别网络攻击。因此,网络安全解决方案的设计者寻找新的数据来源。然而,由于存在更多系统、设备、网络之间的连接等,现代网络中产生了大量活动,因此检测网络攻击需要处理大量数据。5.用户活动可以包括大量可识别动作。然而,基于用户活动收集的原始数据无法提供现有检测网络攻击的解决方案所需的信息。6.因此,提供一种能够克服上述缺陷的解决方案将是有利的。技术实现要素:7.以下是对本公开的若干示例性实施例的概述。提供本概述是为了方便读者,以提供对此类实施例的基本理解并且不完全限定本公开的范围。本概述不是所有预期实施例的广泛概述,并且既不旨在识别所有实施例的关键或重要元素,也不旨在描绘任何或所有方面的范围。其唯一目的是以简化形式呈现一个或更多个实施例的一些概念,以作为稍后呈现的更详细描述的序言。为了方便起见,本文可以使用术语“一些实施例”或“某些实施例”来指代本公开的单个实施例或多个实施例。8.本文所公开的某些实施例包括一种基于用户活动提供情境取证数据的方法。该方法包括:识别用户活动数据中的用户动作,其中,用户动作是由用户发起的离散事件,其中,用户动作是针对系统的一部分执行的;以及将所识别的用户动作与至少一个系统变更相关联,其中,至少一个系统变更与系统的一部分相关,其中,至少一个系统变更发生在用户动作之后。9.本文所公开的某些实施例还包括一种基于用户活动提供情境取证数据的系统。该系统包括:处理电路;以及存储器,存储器指令,该指令在由处理电路执行时将系统配置为:识别用户活动数据中的用户动作,其中,用户动作是由用户发起的离散事件,其中,用户动作是针对系统的一部分执行的;以及将识别的用户动作与至少一个系统变更相关联,其中,至少一个系统变更与系统的一部分相关,其中,至少一个系统变更发生在用户动作之后。10.本文所公开的某些实施例包括一种基于用户活动的高级快照方法。该方法包括:在用户动作发生之前拍摄第一快照,其中,用户动作是由用户发起的离散事件,其中,第一快照是对系统的至少一部分拍摄的;以及在用户动作发生之后拍摄第二快照,其中,第二快照是对系统的至少一部分拍摄的。11.本文所公开的某些实施例还包括一种基于用户活动的高级快照的系统。该系统包括:处理电路;以及存储器,存储器指令,该指令在由处理电路执行时将系统配置为:在用户动作发生之前拍摄第一快照,其中,用户动作是由用户发起的离散事件,其中,第一快照是对系统的至少一部分拍摄的;以及在用户动作发生之后拍摄第二快照,其中,第二快照是对系统的至少一部分拍摄的。12.本文所公开的某些实施例包括一种基于用户活动提供情境取证数据的方法。该方法包括:基于检测到的漏洞识别系统变更,其中,检测到的漏洞为系统的一部分中的漏洞,其中,系统变更是对系统的漏洞部分的变更;以及基于多个用户动作和多个系统变更的相关性,确定多个用户动作中导致漏洞的用户动作,其中,每个用户动作是由用户发起的离散事件。13.本文所公开的某些实施例还包括一种基于用户活动提供情境取证数据的系统。该系统包括:处理电路;以及存储器,存储器指令,该指令在由处理电路执行时将系统配置为:基于检测到的漏洞识别系统变更,其中,检测到的漏洞为系统的一部分中的漏洞,其中,系统变更是对系统的漏洞部分的变更;以及基于多个用户动作和多个系统变更的相关性,确定多个用户动作中导致漏洞的用户动作,其中,每个用户动作是由用户发起的离散事件。附图说明14.在说明书结尾处的权利要求中特别指出并清楚地要求保护本文所公开的主题。从以下结合附图的详细描述中,所公开的实施例的前述和其他目的、特征和优点将显而易见。15.图1是用于描述各种公开的实施例的网络图;16.图2是示出了根据实施例的基于用户活动和系统变更提供取证数据的方法的流程图;17.图3是示出了根据实施例的基于用户活动拍摄快照的方法的流程图;18.图4是示出了根据实施例的基于用户活动和软件漏洞提供取证数据的方法的流程图;19.图5是示出了根据实施例的取证数据生成器的示意图。具体实施方式20.重要的是要注意,本文所公开的实施例只是本文创新教导的许多有利用途的示例。通常,本技术的说明书中作出的陈述不一定限制所要求保护的各种实施例中的任何一个。此外,一些陈述可能适用于某些发明特征,但不适用于其他特征。因此,除非另有说明,否则单数元素可以是复数,反之亦然,并不失一般性。在附图中,通过多个视图,相同的标号表示相同的部件。21.各种公开的实施例包括用于基于用户活动提供取证数据的技术。本文所公开的技术包括用于将用户动作与系统变更相关联的技术、用于针对用户活动的高级系统快照的技术、以及用于在软件漏洞(vulnerability)和用户活动之间相关联的技术。22.在实施例中,将离散的用户动作与系统变更相关联,变更例如与用户设备通信的服务器上的网络防火墙配置的变更。尤其是,将用户动作与由这些用户动作引起的系统变更相关联。已经确定的是一些系统变更可以归因于先前的用户动作。因此,将这些系统变更与其各自的用户动作相关联能够提供情境丰富的数据,该数据更有助于识别后续网络安全问题的根本原因。23.在另一实施例中,在某些用户动作之前和之后,系统会拍摄快照。为此,检测用户动作。基于检测到的用户动作,确定何时拍摄快照。拍摄快照可以使得检测到后续问题时执行详细的取证调查。更具体地,针对离散用户动作进行拍摄快照,使得可以基于系统从每个用户动作之前至每个用户动作之后之间如何变更来识别导致问题的用户动作。通过基于用户动作而不是例如以预设时间间隔来确定拍摄快照的时间,使得拍摄的快照量被最小化,同时使得取证调查的准确性被最大化。此外,例如在检测到漏洞或错误配置时,快照可以用于恢复到“良好”配置。24.在又一实施例中,将软件漏洞与用户活动相关联以识别导致软件漏洞的用户动作。这进而允许确定导致软件漏洞的用户、系统被错误配置的持续时间等。为此,在进一步的实施例中,已知的漏洞可以被扫描。在扫描期间检测到的漏洞与用户活动相关联。25.所公开的各种实施例可以被组合使用以提供协同益处。例如,当检测到软件漏洞时,所检测到的漏洞可以与基于如本文所述拍摄的快照的用户动作相关联。特别地,该漏洞可以与在最接近且在检测到该漏洞的时间之前所拍摄的快照相关联。因此,这种组合允许基于时间相关性识别导致软件漏洞的用户动作。作为另一个示例,基于系统变更和导致系统变更的用户动作之间的相关性,可以通过识别与软件漏洞之前的系统变更相关的用户动作,来确定导致后续漏洞问题的用户动作。26.根据所公开的实施例提供的取证数据可以被提供给网络安全系统,以提示适当的缓解动作。在至少一些实施例中,取证数据用于确定并执行缓解动作。为此,所公开的实施例基于原始用户活动数据、通过聚合并关联此类原始用户数据,来提供用于生成此类取证数据的技术。此外,根据至少一些所公开的实施例提供的快照更加精确(即保留较少量的所需数据),同时允许详细的取证调查。27.图1示出了用于描述所公开的各种实施例的示例网络图100。在示例网络图100中,用户设备120、网络安全检测工具130-1至130-n(仅为简单起见,以下单独称为网络安全检测工具130并统称为网络安全检测工具130)、服务器140和取证分析器150经由网络110通信。28.网络110可以是但不限定于无线网络、蜂窝或有线网络、局域网(lan)、广域网(wan)、城域网(man)、互联网、万维网(www)、类似网络及其任意组合。29.用户设备(ud)120可以是但不限定于个人计算机、膝上型计算机、平板计算机、智能电话、可穿戴计算机设备或能够接收用户输入并针对服务器140采取动作的任何其他设备,动作诸如为但不限于下载文件、上传文件、修改文件等。因此,用户设备120响应于此类用户输入来执行针对服务器140的用户动作。30.网络安全检测工具130收集与网络安全问题相关的数据。特别地,网络安全检测工具130被配置为检测软件漏洞或包括服务器140的系统的其他错误配置。31.服务器140为可能受用户活动影响的系统。这种影响可能包括但不限于向用户设备120发送文件、存储来自用户设备120的文件、具有由用户设备120修改的文件、及其组合等。32.取证分析器150被配置为基于如在本文针对一个或更多个实施例所描述的用户活动来提供情境取证数据。因此,取证分析器150被配置为收集或接收指示用户活动的数据、对服务器140的变更、以及两者等。基于收集到的数据,取证分析器150被配置为生成情境取证数据、使服务器140拍摄快照、或两者。33.应当注意的是,图1中所描述的服务器140仅用于示例目的,并且在不脱离本公开的范围的情况下可以同等地利用其它系统。可以根据本公开的实施例使用可能受(例如,经由直接有线或无线连接的)本地或(例如,经由一个或更多个网络的)远程用户活动影响的任何系统,以便为基于用户活动的系统提供取证数据。在一些实施方式中,这样的系统可以即通过接收用户输入而直接受用户动作的影响。34.还应当注意的是,仅出于简单的目的,取证分析器150被描述为与服务器140分离的系统,且在不脱离本公开的范围的情况下,取证分析器150可以包括服务器140或以其他方式集成在服务器140中。在示例性实施方式中,取证分析器150可以被实施为包括在服务器140中的软件,该软件还被配置为例如通过仅在快照被拍摄时允许系统变更来控制系统变更。35.图2是示出了根据实施例的基于用户活动和系统变更提供取证数据的方法的示例流程图200。在实施例中,该方法由取证分析器150执行。36.在s210中,收集用户活动数据和系统变更数据。在实施例中,可以从用户设备(例如,用户设备120)中收集用户活动数据,且可以从可能受用户活动影响的系统(例如,服务器150)中收集系统变更数据。或者,例如当用户设备是受用户活动影响的系统时,用户活动数据和系统变更数据可以从同一设备收集。37.在s220中,在用户活动数据中识别用户动作。所识别的用户动作是由用户(例如,用户设备120的用户)发起并由用户活动数据指示的离散事件。在一些实施方式中,可以基于用户活动数据和用户动作的预设列表、用户动作的类型或两者来识别用户动作。38.在实施例中,s220还包括追踪进程序列以便识别启动每个序列的用户动作。因此,可以建立系统活动之间的连接。这还可以包括追踪从其他进程衍生出来的子进程以建立连接。序列可以被置于情境中以供研究,以便将识别用户动作作为序列之一的开始,并且当新的用户活动发生时序列可以被更新,从而减少使用计算资源重新处理整个序列的需求。39.在s230中,将所识别的用户动作与系统变更数据中指示的一个或更多个系统变更相关联。被关联的系统变更包括在用户动作之后(例如,在阈值时间段内或在下一个用户动作之前)并且受用户动作影响的系统的一部分相关的系统变更。40.相关性可以被存储为用户活动的记录。被关联的系统变更可以包括低级构造(例如,系统配置的修改)、高级构造(例如,服务更新、查询存储库、修改配置等)或两者。41.作为图2的方法的非限制性的示例,当用户运行命令“apt-getupdate”时,该命令产生多个低级动作,诸如下载和修改文件。运行命令“apt-getupdate”的用户动作与文件下载相关联,并且用于更新docker的文件变更进一步与系统重启的高级构造相关。相关性导致以下用户活动的记录:42.用户x通过运行apt-getupdate来更新系统43.服务apache已从存储库ppa.x更新(40个文件变更,1个文件删除)44.服务docker已从存储库ppa.y更新(服务也已重新启动)45.作为图2的方法的另一非限制性的示例,当用户“x”运行命令“apt-getinstall-yapache”时,该命令产生多个低级动作,诸如下载文件和修改现有配置文件。运行命令“apt-getinstall-yapache”的用户动作与文件下载相关联。相关性导致以下用户活动的记录:46.用户x通过运行apt-getinstall-yapache安装了apache47.服务apache由用户x安装(添加了40个文件,5个二进制文件和35个配置文件)48.服务cron已更新(添加了新脚本)49.图3是示出了根据实施例的基于用户活动的拍摄快照的方法的示例流程图300。在实施例中,该方法由取证分析器150执行。50.在s310中,检测到尝试的用户动作。用户动作是可能导致系统(例如,服务器140)变更的离散用户活动。在实施例中,可以基于从用户设备(例如,用户设备120)收集的用户活动数据和已知用户动作的预设列表,来检测离散用户动作。该列表可以是例如已知导致系统变更的用户动作或用户动作类型的列表。或者,可以检测所有离散用户活动。51.在s320中,第一快照是在用户采取动作之前引起的。在实施例中,可以仅能在成功拍摄快照之后才允许进行尝试的用户动作。52.在实施例中,s320至少部分地通过将钩子(hook)安装到系统中实现,使得通过用户动作变更系统的尝试可以被延迟直至可以拍摄快照,钩子捕获所有适当的进程点。为此,被延迟的某些用户动作可以被预定义—如果钩子捕获到除了要延迟的动作中的一个之外的用户动作,则可以允许该用户动作不受阻碍地继续。要被延迟的用户动作可以是预定义的,或者是与系统的预定义“重要”部分(诸如但不限于系统配置)相关的用户动作。53.在实施例中,快照可能仅是系统的一部分。例如,系统的一部分可以是已知由于检测到的尝试的用户动作而被修改的系统的一部分。在一些实施方式中,已知用户动作的预设列表还可以包括已知用户动作和由这些用户动作导致的已知系统变更之间的关联。作为非限制性示例,当用户动作在在运行与系统防火墙的配置变更相关联的iptables(网络过滤器)命令时,快照可以是配置的当前状态而不是整个系统的快照。选择性地对系统的部分进行快照允许针对快照的进一步精度,从而进一步减少用于存储快照的数据量。54.在s330中,允许采取用户动作。在一些实施方式中,s330可以包括授予关于系统的一部分、一个或更多个动作、其组合等的许可或授权。55.在s340中,在用户动作完成之后,生成第二快照。当第一快照是系统的一部分时,第二快照可以是系统的同一部分。56.作为图3的方法的非限制性示例,检测到用户尝试通过运行iptables命令“‑iinput-s198.51.100.0-jdrop”来修改系统配置。获取当前iptables状态的第一快照。拍摄第一快照后,允许iptables命令继续进行。一旦iptables命令完成后,将拍摄命令后的iptables状态的第二快照。57.作为图3的方法的另一非限制性示例,基于将用写入权限打开“/etc/hosts”的用户动作,来检测到用户尝试修改目录“/etc/hosts”。拍摄“/etc/hosts”的第一快照。一旦拍摄了第一快照后,用户被允许打开“/etc/hosts”并进行修改。当“/etc/hosts”随后关闭时,拍摄“/etc/hosts”的第二快照。58.图4是示出了根据实施例的基于用户活动和软件漏洞提供取证数据的方法的示例流程图400。在实施例中,该方法由取证分析器150执行。59.在s410中,识别漏洞检测。漏洞可以是实际漏洞(例如,已知漏洞)或由例如错误配置引起的潜在漏洞。漏洞可以在可能受用户活动影响的系统(例如,可能具有由用户设备120存储、删除或修改的文件的服务器150)中被检测到。在实施例中,例如,当执行图4的方法的系统也是网络安全检测系统时,s410包括检测漏洞。在另一实施例中,s420包括从网络安全检测工具接收指示漏洞的事件。检测到的漏洞进一步表明系统的一部分是有漏洞的。60.在实施例中,s410可以包括扫描已知漏洞。在转让给共同受让人的美国专利申请no.15/434,757中进一步描述了用于扫描已知漏洞并且具体地检测软件容器中的漏洞的根证书的示例方法,其内容通过引用合并于此。61.在s420中,基于检测到的漏洞,识别系统变更。该系统变更是与系统的漏洞部分相关的变更,因此,在一些实施方式中,所识别的系统变更可能是在时间上最接近的漏洞的潜在原因,即在检测到漏洞之前所发生的对漏洞部分的最新系统变更。62.在s430中,基于所识别的系统变更确定导致漏洞的用户动作。63.在实施例中,s430包括分析用户动作和系统变更之间的相关性,以确定与所识别的系统变更相关联的用户动作。与所识别的系统变更相关联的用户动作被确定为漏洞的原因。相关性可以是确定和记录的相关性,例如,如上文关于图1所述的相关性。相关性可以是预设的,或者是在图4的方法的执行期间实时确定的。64.在可选的s440中,基于确定为漏洞原因的用户动作来确定补充信息。补充信息可以包括导致漏洞的用户(即,执行被确定为漏洞原因的用户动作的用户)、漏洞存在的时间段(即,在用户动作发生的时间和检测到漏洞的时间之间的大量时间),或两者。65.作为图4的方法的非限制性示例,当在apache中检测到漏洞时,对apache的最新变更被识别为安装了apache。确定在服务器上运行命令“apt-getinstall”的用户动作导致安装了apache,因此将用户动作确定为漏洞的原因。66.作为图4的方法的另一非限制性示例,当在apache中检测到弱设置形式的错误配置时,对apache的最新变更被识别为对apache配置的修改。确定在服务器上运行命令“apt-getupdate”的用户动作导致了apache的重新配置,因此将用户动作确定为漏洞的原因。67.图5是根据实施例的取证分析器150的示例性示意图。取证分析器150包括耦接到存储器520、存储装置530和网络接口540的处理电路510。在实施例中,取证分析器150的组件可以经由总线550通信连接。68.处理电路510可以被实现为一个或更多个硬件逻辑组件和电路,例如但不限于,可使用的硬件逻辑组件的示例类型可以包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、系统级芯片系统(soc)、通用微处理器、微控制器、数字信号处理器(dsp)等,或者可以执行计算或其他信息操作的任何其他硬件逻辑组件。69.存储器520可以是易失性的(例如,ram等)、非易失性的(例如,rom、闪存等)或其组合。70.在一种配置中,用于实现本文公开的一个或更多个实施例的软件可以存储在存储装置530中。在另一种配置中,存储器520被配置为存储上述软件。软件应广义地解释为任何类型的指令,无论是指软件、固件、中间件、微代码、硬件描述语言或其他。指令可以包括代码(例如,源代码格式、二进制代码格式、可执行代码格式或任何其他合适的代码格式)。指令在由处理电路510执行时,使处理电路510执行本文描述的各种过程。71.存储装置530可以是磁存储器、光存储器等,并且可以被实现为例如闪存或其他存储技术、cd-rom、数字多功能盘(dvd)或可用于存储所需信息的任何其他介质。72.为了收集系统变更数据,网络接口540允许取证分析器150与服务器140通信,为了收集用户活动数据,网络接口540允许取证分析器150与用户设备120通信或两者。为了收集网络安全数据,网络接口540可以进一步使取证分析器150与网络安全检测工具130通信。73.应当理解的是,本文所描述的实施例并不限于图5所示的具体架构,在不脱离所公开实施例的范围的情况下,可以同等地使用其他架构。74.本文公开的各种实施例可以被实现为硬件、固件、软件或其任何组合。此外,软件优选地被实现为有形地体现在程序存储单元或计算机可读介质上的应用程序,该程序存储单元或计算机可读介质由部件、或某些设备和/或设备的组合组成。应用程序可以上传到包括任何合适架构的机器并且可以由包括任何合适架构的机器执行。优选地,机器被实现在具有诸如一个或更多个中央处理单元(cpu)、存储器和输入/输出接口的硬件的计算机平台上。计算机平台还可以包括操作系统和微指令代码。本文所描述的各种过程和功能可以是微指令代码的一部分或应用程序的一部分、或者它们的任意组合,无论计算机或处理器是否被明确示出,本文所描述的各种过程和功能可以由cpu执行。此外,各种其他外围单元可以连接到计算机平台,诸如附加数据存储单元和打印单元。此外,非暂时性计算机可读介质是除了暂时性传播信号之外的任何计算机可读介质。75.本文中引用的所有示例和条件语言旨在用于教学目的,以帮助读者理解所公开的实施例的原理和发明人为推进本领域所贡献的概念,并且本文中引用的所有示例和条件语言应被解释为不限于这些具体列举的示例和条件。此外,本文中叙述所公开实施例的原理、观点和实施例及其特定示例的所有陈述旨在涵盖其结构和功能等效物。此外,此类等效物旨在包括当前已知的等效物以及未来开发的等效物,即无论结构如何,所开发的执行相同功能的任何元件。76.应当理解的是,本文中使用诸如“第一”、“第二”等名称的任何对元素的引用通常不限制那些元素的数量或顺序。相反,这些名称在本文中通常用作区分两个或更多个元素或元素的实例的便利方法。因此,对第一和第二元素的引用并不意味着在那里可以仅使用两个元素或者第一元素必须以某种方式在第二元素之前。此外,除非另有说明,否则一组元素包括一个或更多个元素。77.如本文所用,短语“至少一个”后跟项目列表意味着可以单独使用所列项目中的任何一个,或者可以使用所列项目中的两个或更多个的任何组合。例如,如果系统被描述为包括“a、b和c中的至少一个”,则该系统可以单独包括a;单独包括b;单独包括c;2a;2b;2c;3a;a和b的组合;b和c的组合;a和c的组合;a、b和c组合;2a和c的组合;a、3b和2c的组合等。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1