Capsule8和ClamAV的审计日志模式

对于经典数据平面中的Databricks计算资源,例如用于集群和pro或经典SQL仓库的虚拟机,一些特性支持几个额外的监视代理:增强安全监控遵从性安全配置文件.的遵从性控制需要遵从性安全配置文件pci dssHIPAA,FedRAMP温和

用于监控Capsule8和ClamAV输出的输出在Databricks中可用审计日志

偏离的沟通

Databricks支持一个多样化和包容性的环境。这篇文章引用了这个词黑名单.Databricks认为这是一个排除性的词。本文使用它是为了保持一致性,因为它是当前出现在软件中的单词。当软件更新到删除这个词时,这篇文章将更新到对齐。

要访问Capsule8和ClamAV的日志:

  1. 作为管理员,设置审计日志传递到您自己的Amazon S3存储桶。

  2. 定期检查日志中的新行:

Capsule8审计日志行模式

有关审计日志的总体模式,请参见审计日志模式

对Capsule8很重要的审计日志字段:

  • :这总是capsule8-alerts-dataplane

  • 时间戳: Capsule8代理创建此事件的时间。

  • workspaceId:与此事件关联的工作空间。

  • requestId:原始Capsule8事件的唯一UUID。

  • requestParams:这个请求参数JSON对象总是只有一个instanceIdField,也就是实例id(主机的ID)发出此审计日志条目。

  • 响应: JSON对象。

    • 这总是有一个statusCode属性设置为200。

    • 一个结果字段,该字段包含Capsule8事件的原始JSON值。JSON可以根据触发它的检测而变化。有关完整的模式参考,请参见Capsule8关于警报JSON模式的文章.JSON值被编码为单个字符串对象,而不是嵌套的JSON值,因此预计会出现以下转义引号:

      “响应”“statusCode”200“结果”"{\"actionName\": \"Wget程序黑名单\"}"
  • accountId:此工作区的Databricks帐户ID。

  • auditLevel:这总是WORKSPACE_LEVEL

  • actionName:动作名称。以下值之一:

    • 心跳:确认监视器打开的常规事件。目前每10分钟运行一次,但将来可能会改变。

    • 内存标志着可执行的内存通常被标记为可执行,以便在应用程序被利用时允许恶意代码执行。当程序将堆或堆栈内存权限设置为可执行时发出警报。这可能导致某些应用服务器出现误报。

    • 文件完整性监控:监控系统重要文件的完整性。对这些文件的任何未经授权的更改都会发出警报。Databricks在映像上定义了特定的系统路径集,这些路径集可能会随着时间的推移而改变。

    • Systemd单位文件修改:更改系统单元可能导致安全控制被放松或禁用,或安装恶意服务。每当systemd单元文件被其他程序修改systemctl

    • 重复程序崩溃:重复的程序崩溃可能表明攻击者正在试图利用内存损坏漏洞,或者受影响的应用程序存在稳定性问题。当超过5个实例的单个程序由于分段错误而崩溃时发出警报。

    • Userfaultfd使用:某些Linux功能几乎只在利用内核漏洞时使用,通常以特权升级为目标。方法时发出警报userfaultfd系统调用。

    • 文件执行容器:由于容器通常是静态工作负载,此警报可能表明攻击者已经破坏了容器,并试图安装和运行后门。当在30分钟内创建或修改的文件在容器中执行时发出警报。

    • 可疑的互动壳牌:交互式shell在现代生产基础设施中很少出现。当交互式shell启动时,使用反向shell常用的参数发出警报。

    • 用户命令日志记录逃避:逃避命令日志记录是攻击者的常见做法,但也可能表明合法用户正在执行未经授权的操作或试图逃避策略。当检测到对用户命令历史日志记录的更改时发出警报,表明用户正在试图逃避命令日志记录。

    • 带通滤波器程序执行:检测某些类型的内核后门。加载新的Berkeley Packet Filter (BPF)程序可能表明攻击者正在加载基于BPF的rootkit以获得持久性并避免被检测。如果进程已经是正在发生的事件的一部分,则在进程加载新的特权BPF程序时发出警报。

    • 内核模块加载:攻击者通常会加载恶意内核模块(rootkits)以逃避检测,并在受损节点上保持持久性。如果程序已经是正在发生的事件的一部分,则在加载内核模块时发出警报。

    • 可疑的程序的名字Executed-Space文件:攻击者可以创建或重命名恶意二进制文件,在名称的末尾包含空格,以冒充合法的系统程序或服务。当程序执行时,在程序名称后加空格发出警报。

    • 非法海拔高度特权:内核特权升级漏洞通常允许无特权用户获得根特权,而无需通过特权更改的标准门。当程序试图通过不寻常的方式提升特权时发出警报。这可能会在具有大量工作负载的节点上发出假阳性警报。

    • 内核利用:内部内核函数不能被常规程序访问,如果被调用,则强烈表明内核漏洞已经被执行,并且攻击者已经完全控制了该节点。当内核函数意外返回用户空间时发出警报。

    • 处理器保护禁用: SMEP和SMAP是处理器级保护,增加了内核攻击成功的难度,禁用这些限制是内核攻击的常见早期步骤。当程序篡改内核SMEP/SMAP配置时发出警报。

    • 容器逃避通过内核剥削:当程序使用容器转义漏洞中常用的内核函数时发出警报,表明攻击者正在将权限从容器访问升级为节点访问。

    • 享有特权的容器推出了:特权容器可以直接访问主机资源,一旦泄露,影响更大。如果容器不是已知的特权映像(如kube-proxy),则在启动特权容器时发出警报。这可能会对合法的特权容器发出不必要的警报。

    • 用户态容器逃避:许多容器转义迫使主机执行容器内二进制文件,导致攻击者获得受影响节点的完全控制。当容器创建的文件从容器外部执行时发出警报。

    • AppArmor对禁用内核:对某些AppArmor属性的修改只能发生在内核中,这表明AppArmor已被内核漏洞或rootkit禁用。当传感器启动时检测到的AppArmor配置与AppArmor状态发生变化时发出警报。

    • AppArmor对配置文件修改:攻击者可能会试图禁用AppArmor配置文件的强制执行,作为逃避检测的一部分。如果用户在SSH会话中没有执行修改AppArmor配置文件的命令,则在执行该命令时发出警报。

    • 引导文件修改:如果不是由可信源(如包管理器或配置管理工具)执行,则修改引导文件可能表明攻击者修改了内核或其选项,以获得对主机的持久访问权。中的文件发生更改时发出警报/ boot,表示安装了新的内核或引导配置。

    • 日志文件删除:未由日志管理工具执行的日志删除可能表明攻击者正在试图删除泄露指标。关于删除系统日志文件的警告。

    • 文件执行:来自系统更新程序以外的源新创建的文件可能是后门、内核漏洞或漏洞链的一部分。当在30分钟内创建或修改的文件被执行时发出警报,不包括系统更新程序创建的文件。

    • 证书商店修改:修改根证书存储可能表明安装了非法证书颁发机构,允许拦截网络流量或绕过代码签名验证。当系统CA证书存储发生更改时发出警报。

    • Setuid / Setgid文件:设置setuid/setgid位可用于为节点上的特权升级提供持久方法。警报时,setuidsetgid属性在文件上设置修改文件权限系统调用族。

    • 隐藏的文件创建:攻击者经常创建隐藏文件,作为一种手段,以模糊工具和有效负载上的受损主机。当与正在发生的事件关联的进程创建隐藏文件时发出警报。

    • 修改常见的系统公用事业公司:攻击者可以修改系统实用程序,以便在运行这些实用程序时执行恶意有效负载。在公共系统实用程序被未经授权的进程修改时发出警报。

    • 网络服务扫描仪执行:攻击者或流氓用户可能会使用或安装这些程序来调查已连接的网络,以寻找额外的节点。执行常用网络扫描程序工具时发出警报。

    • 网络服务创建:攻击者可能会在攻击后启动新的网络服务,以方便访问主机。如果程序已经是正在进行的事件的一部分,则在程序启动新的网络服务时发出警报。

    • 网络嗅探程序执行:攻击者或恶意用户可能会执行网络嗅探命令来捕获凭据、个人身份信息(PII)或其他敏感信息。当执行允许网络捕获的程序时发出警报。

    • 远程文件复制检测到:使用文件传输工具可能表明攻击者正在试图将工具集移动到其他主机或将数据泄露到远程系统。如果与远程文件复制相关的程序已经是正在发生的事件的一部分,则在执行该程序时发出警报。

    • 不寻常的出站连接检测到:命令和控制通道和加密货币矿工经常在不寻常的端口上创建新的出站网络连接。当程序在不常见端口上启动新连接时发出警报,如果该程序已经是正在进行的事件的一部分。

    • 数据存档通过程序:攻击者在获得系统访问权限后,可能会创建一个压缩档案文件,以减少用于泄露的数据大小。如果数据压缩程序已经是正在发生的事件的一部分,则在执行该程序时发出警报。

    • 过程注射:使用进程注入技术通常表明用户正在调试程序,但也可能表明攻击者正在从其他进程读取机密信息或将代码注入其他进程。当程序使用时发出警报ptrace(调试)与另一个进程交互的机制。

    • 账户枚举通过程序:攻击者通常会使用帐户枚举程序来确定他们的访问级别,并查看当前是否有其他用户登录到该节点。如果与帐户枚举关联的程序已经是正在进行的事件的一部分,则在执行该程序时发出警报。

    • 文件而且目录发现通过程序:攻击者利用文件系统后寻找感兴趣的凭据和数据的常见行为是探索文件系统。当执行与文件和目录枚举关联的程序时,如果该程序已经是正在发生的事件的一部分,则发出警报。

    • 网络配置枚举通过程序:攻击者可以询问本地网络和路由信息,在横向移动之前识别相邻的主机和网络。当执行与网络配置枚举关联的程序时,如果该程序已经是正在进行的事件的一部分,则发出警报。

    • 过程枚举通过程序:攻击者经常列出正在运行的程序,以确定节点的用途,以及是否有任何安全或监控工具。如果程序已经是正在发生的事件的一部分,则在执行与进程枚举关联的程序时发出警报。

    • 系统信息枚举通过程序:攻击者通常执行系统枚举命令来确定Linux内核和发行版的版本和特性,通常是为了确定节点是否受到特定漏洞的影响。如果与系统信息枚举关联的程序已经是正在进行的事件的一部分,则在执行该程序时发出警报。

    • 计划任务修改通过程序:修改计划任务是在受损节点上建立持久性的常用方法。警报时,定时任务,或批处理命令用于修改定时任务配置。

    • Systemctl使用检测到:更改系统单元可能导致安全控制被放松或禁用,或安装恶意服务。警报时,systemctl命令用于修改systemd单元。

    • 用户执行命令:显式升级到根用户会降低将特权活动关联到特定用户的能力。警报时,命令执行成功。

    • 用户执行sudo命令:当sudo命令执行成功。

    • 用户命令历史清除:删除历史文件是不常见的,通常由攻击者隐藏活动执行,或由合法用户企图逃避审计控制。删除命令行历史文件时发出警报。

    • 系统用户添加:攻击者可能会向主机添加新用户,以提供可靠的访问方法。如果向本地帐户管理文件添加了新用户实体,则发出警报/ etc / passwd,如果实体不是由系统更新程序添加的。

    • 密码数据库修改:攻击者可以直接修改与身份相关的文件,向系统中添加新用户。当与更新现有用户信息无关的程序修改了与用户密码相关的文件时发出警报。

    • SSH授权修改:添加新的SSH公钥是获得对受损主机的持久访问权的常用方法。试图写入用户的SSH时发出警报authorized_keys如果程序已经是正在进行的事件的一部分,则观察文件。

    • 用户账户创建通过CLI:对于攻击者来说,在受损节点上建立持久性时,添加新用户是一个常见步骤。当标识管理程序由包管理器以外的程序执行时发出警报。

    • 用户配置变化:用户配置文件和配置文件通常作为一种持久化方法进行修改,以便在用户登录时执行程序。当.bash_profile和bashrc(以及相关文件)被系统更新工具以外的程序修改时发出警报。

以下是Capsule8审计日志的示例:

“版本”“2.0”“时间戳”1625959170109“workspaceId”“2417130538620110”“名”“capsule8-alerts-dataplane”“actionName”“Wget程序黑名单”“requestId”“318 a87db - 4 cfe - 4532 - 9110 - 09 - edc262275e”“requestParams”“instanceId”“i-0a3c9d63bb295eb4f”},“响应”“statusCode”200“结果”“< original_alert_json >”},“accountId”“82 d65820 b5e4 - 4 - ab0 96 - e6 0 - cba825a5687”“auditLevel”“WORKSPACE_LEVEL”

ClamAV审计日志行模式

有关审计日志的总体模式,请参见审计日志模式

对ClamAV很重要的审计日志字段:

  • :这总是clamAVScanService-dataplane

  • actionName:这总是clamAVScanAction

  • 时间戳: ClamAV产生该日志行的时间。

  • workspaceId:与此日志关联的工作区ID。

  • requestId:原始clamAV扫描事件的唯一UUID。

  • requestParams:这个请求参数JSON对象总是只有一个instanceIdField,也就是实例id(主机的ID)发出此审计日志条目。

  • 响应JSON对象总是有一个statusCode200和a结果字段,包含一行clamAV cron作业的原始扫描结果。每个clamAV扫描结果通常由多个审计日志记录表示,每一行对应原始扫描输出。有关此文件中可能出现的内容的详细信息,请参见ClamAV文档

  • accountId:与此日志关联的Databricks帐户ID。

  • auditLevel:这总是WORKSPACE_LEVEL

下面是一个示例ClamAV审计日志条目,显示扫描的开始response.result字段:

“版本”“2.0”“时间戳”1625959170109“workspaceId”“2417130538620110”“名”“clamAVScanService-dataplane”“actionName”“clamAVScanAction”“requestId”“318 a87db - 4 cfe - 4532 - 9110 - 09 - edc262275e”“requestParams”“instanceId”“i-0a3c9d63bb295eb4f”},“响应”“statusCode”200“结果”"开始每日clamav扫描:10月25日星期一06:25:01 UTC 2021\\n"},“accountId”“82 d65820 b5e4 - 4 - ab0 96 - e6 0 - cba825a5687”“auditLevel”“WORKSPACE_LEVEL”

ClamAV日志文件示例:

----------- SCAN SUMMARY -----------已知病毒:8556227引擎版本:0.103.2扫描目录:6扫描文件:446感染文件:0扫描数据:74.50 MB读取数据:164.43 MB(比值0.45:1)时间:37.874秒(0 m 37 s)开始日期:2021:07:27 21:47:36结束日期:2021:07:27 21:48:14