通过 UDP 的潜在反向 Shell

编辑

此检测规则识别与 UDP 反向 Shell 活动相关的可疑网络流量模式。此活动包括由同一进程执行的 execve、socket 和 connect 系统调用的示例,其中 auditd.data.a0-1 指示 UDP 连接,最终以出口连接事件结束。攻击者可能会建立 Linux UDP 反向 Shell 来绕过传统的防火墙限制,并秘密地获得对目标系统的远程访问权限。

规则类型: eql

规则索引:

  • auditbeat-*
  • logs-auditd_manager.auditd-*

严重程度: 中

风险评分: 47

运行频率: 5 分钟

搜索索引起始时间: now-9m (日期数学格式,另请参阅 额外的回溯时间)

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

参考文献:

标签:

  • 数据源: Auditd Manager
  • 域: 终端
  • 操作系统: Linux
  • 用例: 威胁检测
  • 战术: 执行

版本: 7

规则作者:

  • Elastic

规则许可证: Elastic License v2

设置

编辑

设置

此规则需要来自以下集成之一的数据:- Auditbeat - Auditd Manager

Auditbeat 设置

Auditbeat 是一个轻量级的 shipper,您可以将其安装在服务器上以审计用户和进程在系统上的活动。例如,您可以使用 Auditbeat 从 Linux 审计框架收集和集中审计事件。您还可以使用 Auditbeat 来检测对关键文件(如二进制文件和配置文件)的更改,并识别潜在的安全策略违规行为。

应执行以下步骤,以便在 Linux 系统上添加 Auditbeat

  • Elastic 为基于 APT 和 YUM 的发行版提供了可用的存储库。请注意,我们提供二进制包,但不提供源代码包。
  • 要安装 APT 和 YUM 存储库,请按照此帮助指南中的设置说明进行操作。
  • 要在 Docker 上运行 Auditbeat,请按照帮助指南中的设置说明进行操作。
  • 要在 Kubernetes 上运行 Auditbeat,请按照帮助指南中的设置说明进行操作。
  • 有关完整的“设置和运行 Auditbeat”信息,请参阅帮助指南

Auditd Manager 集成设置

Auditd Manager 集成接收来自 Linux 审计框架的审计事件,该框架是 Linux 内核的一部分。Auditd Manager 为通过 auditd 守护程序配置和监视系统审计提供了用户友好的界面和自动化功能。借助 auditd_manager,管理员可以轻松定义审计规则、跟踪系统事件并生成全面的审计报告,从而提高系统的整体安全性和合规性。

应执行以下步骤,以便在 Linux 系统上添加 Elastic Agent 系统集成“auditd_manager”

  • 转到 Kibana 主页,然后单击“添加集成”。
  • 在查询栏中,搜索“Auditd Manager”,然后选择集成以查看有关它的更多详细信息。
  • 单击“添加 Auditd Manager”。
  • 配置集成名称,并可以选择添加描述。
  • 相应地查看可选和高级设置。
  • 将新安装的“auditd manager”添加到现有或新的代理策略,并在需要审计日志文件的 Linux 系统上部署该代理。
  • 单击“保存并继续”。
  • 有关集成的更多详细信息,请参阅帮助指南

特定于规则的设置说明

Auditd Manager 订阅内核,并在事件发生时接收事件,无需任何其他配置。但是,如果需要更高级的配置来检测特定行为,则可以通过指定要从中读取审计规则的文件,将审计规则添加到“审计规则”配置框或“auditd 规则文件”框中的集成。 - 对于此检测规则,无需向集成添加额外的审计规则。

规则查询

编辑
sample by host.id, process.pid, process.parent.pid
  [process where host.os.type == "linux" and event.type == "start" and event.action == "executed" and process.name : (
    "bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish", "perl", "python*", "nc", "ncat", "netcat", "php*",
    "ruby", "openssl", "awk", "telnet", "lua*", "socat"
    )]
  [process where host.os.type == "linux" and auditd.data.syscall == "socket" and process.name : (
    "bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish", "perl", "python*", "nc", "ncat", "netcat", "php*",
    "ruby", "openssl", "awk", "telnet", "lua*", "socat"
    ) and auditd.data.a1 == "2"]
  [network where host.os.type == "linux" and event.type == "start" and event.action == "connected-to" and
   process.name : (
    "bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish", "perl", "python*", "nc", "ncat", "netcat", "php*",
    "ruby", "openssl", "awk", "telnet", "lua*", "socat"
    ) and network.direction == "egress" and destination.ip != null and
   not cidrmatch(destination.ip, "127.0.0.0/8", "169.254.0.0/16", "224.0.0.0/4", "::1")]

框架: MITRE ATT&CKTM