异常进程 ID 或锁文件创建

编辑

识别在临时文件存储范式 (tmpfs) 目录 /var/run 中创建的进程 ID (PID)、锁或重启文件。在 Linux 中,PID 文件通常保存进程 ID 以跟踪先前运行的副本并管理其他任务。某些 Linux 恶意软件使用 /var/run 目录来保存数据、可执行文件和其他任务,将其自身或这些文件伪装成合法的 PID 文件。

规则类型: new_terms

规则索引:

  • logs-endpoint.events.*
  • endgame-*

严重性: 中等

风险评分: 47

每隔: 5m

搜索索引自: now-9m (日期数学格式,另请参见 附加回溯时间)

每次执行的最大告警数: 100

参考:

标签:

  • 领域:端点
  • 操作系统:Linux
  • 用例:威胁检测
  • 战术:执行
  • 威胁:BPFDoor
  • 资源:调查指南
  • 数据源:Elastic Defend
  • 数据源:Elastic Endgame

版本: 214

规则作者:

  • Elastic

规则许可证: Elastic License v2

调查指南

编辑

分类和分析

调查异常进程 ID 或锁文件创建

Linux 应用程序可能需要出于各种目的保存其进程标识号 (PID):从发出程序正在运行的信号到充当应用程序先前实例未成功退出的信号。PID 文件以整数值包含其创建者进程的 PID。

Linux 锁文件用于协调文件中的操作,以防止冲突和竞争条件。

此规则识别在 /var/run/ 目录中创建的 PID、锁或重启文件。攻击者可以将恶意软件、有效载荷、用于渗透的数据等伪装成合法的 PID 文件。

可能的调查步骤

  • 检索文件并确定它是否为恶意文件
  • 检查 PID 文件的内容。它们应该只包含整数字符串。
  • 检查锁和 PID 文件的文件类型以确定它们是否为可执行文件。这仅在恶意文件中观察到。
  • 检查主题文件的大小。合法的 PID 文件应小于 10 字节。
  • 检查锁或 PID 文件是否具有高熵。这通常表示加密的有效载荷。
  • 分析师可以使用 ent 等工具来测量熵。
  • 检查 PID 文件中 SHA-256 哈希的信誉。使用 VirusTotal 等数据库来识别用于调查的其他枢纽和工件。
  • 跟踪文件的创建以确保它来自合法或授权的进程。
  • 调查过去 48 小时内与用户/主机关联的其他告警。
  • 调查任何异常帐户行为,例如命令执行、文件创建或修改以及网络连接。
  • 调查主题进程的任何异常行为,例如网络连接、文件修改以及任何生成的子进程。

误报分析

  • 如果 PID 文件是合法的并且按预期保存进程 ID,则可能会出现误报。如果 PID 文件是可执行文件或文件大小大于 10 字节,则应将其视为可疑。
  • 如果此活动在您的环境中是预期的并且存在噪声,请考虑添加异常——最好结合文件名和进程可执行条件。

响应和补救

  • 根据分类结果启动事件响应流程。
  • 隔离相关主机以防止进一步的入侵后行为。
  • 调查受感染或攻击者使用的系统上的凭据泄露,以确保识别所有受感染的帐户。重置这些帐户和其他可能受感染的凭据(例如电子邮件、业务系统和 Web 服务)的密码。
  • 阻止已识别的入侵指标 (IoC)。
  • 采取措施终止攻击者使用的进程和连接。
  • 运行完整的反恶意软件扫描。这可能会揭示系统中留下的其他工件、持久性机制和恶意软件组件。
  • 确定攻击者滥用的初始载体,并采取措施防止通过同一载体再次感染。
  • 使用事件响应数据更新日志记录和审计策略,以提高平均检测时间 (MTTD) 和平均响应时间 (MTTR)。

设置

编辑

设置

此规则需要来自 Elastic Defend 的数据。

Elastic Defend 集成设置

Elastic Defend 通过 Fleet 集成到 Elastic Agent 中。配置后,集成允许 Elastic Agent 监控主机上的事件并将数据发送到 Elastic Security 应用程序。

先决条件

  • Elastic Defend 需要 Fleet。
  • 要配置 Fleet 服务器,请参阅 文档

以下步骤应按顺序执行,以便在 Linux 系统上添加 Elastic Defend 集成

  • 转到 Kibana 主页并点击“添加集成”。
  • 在查询栏中,搜索“Elastic Defend”并选择集成以查看有关它的更多详细信息。
  • 点击“添加 Elastic Defend”。
  • 配置集成名称,并可选择添加说明。
  • 选择您要保护的环境类型,“传统端点”或“云工作负载”。
  • 选择配置预设。每个预设都带有 Elastic Agent 的不同默认设置,您以后可以通过配置 Elastic Defend 集成策略进一步自定义这些设置。 辅助指南
  • 我们建议选择“完整 EDR(端点检测和响应)”作为配置设置,它提供“所有事件;所有预防”
  • 在“新的 Agent 策略名称”中输入 Agent 策略的名称。如果其他 Agent 策略已存在,您可以点击“现有主机”选项卡并选择现有策略。有关 Elastic Agent 配置设置的更多详细信息,请参阅 辅助指南
  • 点击“保存并继续”。
  • 要完成集成,请选择“将 Elastic Agent 添加到您的主机”并继续下一部分,以在您的主机上安装 Elastic Agent。有关 Elastic Defend 的更多详细信息,请参阅 辅助指南

规则查询

编辑
host.os.type:linux and event.category:file and event.action:(creation or file_create_event) and
file.extension:(pid or lock or reboot) and file.path:(/var/run/* or /run/*) and (
  (process.name : (
    bash or dash or sh or tcsh or csh or zsh or ksh or fish or ash or touch or nano or vim or vi or editor or mv or cp)
  ) or (
  process.executable : (
    ./* or /tmp/* or /var/tmp/* or /dev/shm/* or /var/run/* or /boot/* or /srv/* or /run/*
  ))
) and not (
  process.executable : (
  /tmp/newroot/* or /run/containerd/* or /run/k3s/containerd/* or /run/k0s/container* or /snap/* or /vz/* or
  /var/lib/docker/* or /etc/*/universal-hooks/pkgs/mysql-community-server/* or /var/lib/snapd/* or /etc/rubrik/* or
  /run/udev/data/*
  ) or
  process.name : (
    go or git or containerd* or snap-confine or cron or crond or sshd or unattended-upgrade or vzctl or ifup or
    rpcbind or runc or gitlab-runner-helper or elastic-agent or metricbeat or redis-server or
    s6-ipcserver-socketbinder or xinetd
  ) or
  file.name : (
    jem.*.pid or lynis.pid or redis.pid or yum.pid or MFS.pid or jenkins.pid or nvmupdate.pid or openlitespeed.pid or
    rhnsd.pid
  ) or
  file.path : (/run/containerd/* or /var/run/docker/containerd/* or /var/run/jem*.pid)
)

框架: MITRE ATT&CKTM