通过 KDE 自动启动脚本或桌面文件修改实现持久化
编辑通过 KDE 自动启动脚本或桌面文件修改实现持久化
编辑识别创建或修改 K 桌面环境 (KDE) 自动启动脚本或桌面文件的情况,这些文件将在每次用户登录时执行。攻击者可能会滥用此方法来实现持久化。
规则类型: eql
规则索引:
- auditbeat-*
- logs-endpoint.events.*
- endgame-*
严重性: 中等
风险评分: 47
每隔: 5 分钟
搜索索引自: now-9m (日期数学格式,另请参见 额外回溯时间
)
每次执行的最大告警数: 100
参考资料:
- https://userbase.kde.org/System_Settings/Autostart
- https://www.amnesty.org/en/latest/research/2020/09/german-made-finspy-spyware-found-in-egypt-and-mac-and-linux-versions-revealed/
- https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/
- https://elastic.ac.cn/security-labs/primer-on-persistence-mechanisms
标签:
- 领域:终端
- 操作系统:Linux
- 用例:威胁检测
- 策略:持久化
- 数据源:Elastic Endgame
- 数据源:Elastic Defend
版本: 114
规则作者:
- Elastic
规则许可证: Elastic License v2
调查指南
编辑分类和分析
调查通过 KDE 自动启动脚本或桌面文件修改实现持久化
K 桌面环境 (KDE) 是 Linux 系统上流行的图形桌面环境。它支持在用户登录时自动执行的自动启动脚本和桌面文件。
攻击者可能会利用此功能,通过创建或修改这些文件来在受感染的系统上保持持久化。
检测规则“通过 KDE 自动启动脚本或桌面文件修改实现持久化”旨在通过监控 Linux 系统上的文件事件来识别此类活动。它专门针对在各种自动启动目录中扩展名为“.sh”或“.desktop”的文件的创建或修改。通过检测这些事件,该规则可以帮助安全分析师识别恶意行为者可能滥用 KDE 自动启动功能的情况。
注意: 此调查指南使用了 Elastic Stack 8.5.0 版本中引入的 Osquery Markdown 插件。较旧的 Elastic Stack 版本将在此指南中显示未渲染的 Markdown。此调查指南使用 占位符字段 将告警数据动态传递到 Osquery 查询中。占位符字段是在 Elastic Stack 8.7.0 版本中引入的。如果您使用的是 Elastic Stack 8.6.0 或更早版本,则需要手动调整此调查指南的查询,以确保它们能够正确运行。
可能的调查步骤
- 调查已创建或修改的文件。
- !{osquery{"label":"Osquery - 获取文件列表信息","query":"SELECT * FROM file WHERE ( path LIKE */home/%/.config/autostart/%.sh* OR path LIKE */home/%/.config/autostart/%.desktop*
- !{osquery{"label":"Osquery - 获取其他文件列表信息","query":"SELECT f.path, u.username AS file_owner, g.groupname AS group_owner, datetime(f.atime, *unixepoch*) AS
- 调查未知进程的脚本执行链(父进程树)。检查其可执行文件的存在情况以及它们是否位于预期位置。
- !{osquery{"label":"Osquery - 按用户检索正在运行的进程","query":"SELECT pid, username, name FROM processes p JOIN users u ON u.uid = p.uid ORDER BY username"}}
- 调查过去 48 小时内与用户/主机相关的其他告警。
- 验证活动是否与计划的补丁、更新、网络管理员活动或合法软件安装无关。
- 调查修改后的脚本是否调用文件系统其他位置的其他恶意脚本。
- 如果已删除脚本或可执行文件,请检索这些文件并确定它们是否为恶意文件。
- 使用私有的沙盒恶意软件分析系统进行分析。
- 观察并收集有关以下活动的信息
- 尝试联系外部域和地址。
- 检查域是否为新注册或意外注册。
- 检查域或 IP 地址的信誉。
- 文件访问、修改和创建活动。
- Cron 作业、服务和其他持久化机制。
- !{osquery{"label":"Osquery - 获取 Crontab 信息","query":"SELECT * FROM crontab"}}
- 调查目标进程/用户异常行为,例如网络连接、文件修改以及任何其他生成的子进程。
- 调查侦听端口和打开的套接字,查找潜在的命令和控制流量或数据泄露。
- !{osquery{"label":"Osquery - 获取侦听端口","query":"SELECT pid, address, port, socket, protocol, path FROM listening_ports"}}
- !{osquery{"label":"Osquery - 获取打开的套接字","query":"SELECT pid, family, remote_address, remote_port, socket, state FROM process_open_sockets"}}
- 确定执行该操作的用户帐户,对其进行分析,并检查其是否应该执行此类操作。
- !{osquery{"label":"Osquery - 获取特定用户的详细信息","query":"SELECT * FROM users WHERE username = {{user.name}}"}}
- 调查用户当前是否已登录并处于活动状态。
- !{osquery{"label":"Osquery - 调查帐户身份验证状态","query":"SELECT * FROM logged_in_users WHERE user = {{user.name}}"}}
误报分析
- 如果此活动与新的良性软件安装活动相关,请考虑添加例外——最好结合用户和命令行条件。
- 如果此活动与使用 cron 作业执行管理任务的系统管理员相关,请考虑为此特定管理员用户帐户添加例外。
- 尝试通过考虑用户、机器或业务目的来理解执行的上下文。少量端点(例如具有独特软件的服务器)可能看起来不寻常,但满足特定的业务需求。
响应和补救
- 根据分类结果启动事件响应流程。
- 隔离相关主机以防止进一步的入侵后行为。
- 如果分类确定了恶意软件,请搜索环境中是否存在其他受感染的主机。
- 实施临时网络规则、程序和分段以遏制恶意软件。
- 停止可疑进程。
- 立即阻止已识别的受感染指标 (IOC)。
- 检查受影响的系统是否存在其他恶意软件后门,例如反向 shell、反向代理或攻击者可能用来重新感染系统的下载器。
- 调查受感染系统或攻击者使用的系统上的凭据泄露,以确保识别所有受感染的帐户。重置这些帐户的密码和其他可能受感染的凭据,例如电子邮件、业务系统和 Web 服务。
- 运行完整的反恶意软件扫描。这可能会发现系统中留下的其他工件、持久化机制和恶意软件组件。
- 确定攻击者滥用的初始媒介,并采取措施防止通过相同媒介重新感染。
- 利用事件响应数据和日志记录来改进平均检测时间 (MTTD) 和平均响应时间 (MTTR)。
设置
编辑设置
此规则需要来自以下集成之一的数据:- Elastic Defend - Auditbeat
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 的更多详细信息,请参阅帮助指南。
Auditbeat 设置
Auditbeat 是一款轻量级数据发送器,您可以将其安装在服务器上以审核系统上用户和进程的活动。例如,您可以使用 Auditbeat 收集和集中来自 Linux Audit Framework 的审计事件。您还可以使用 Auditbeat 检测对关键文件(如二进制文件和配置文件)的更改,并识别潜在的安全策略违规。
以下步骤应按顺序执行,以便在 Linux 系统上添加 Auditbeat
自定义 Ingest Pipeline
对于低于 8.2 的版本,您需要添加一个自定义 ingest pipeline,以便使用 @timestamp 为非 elastic-agent 索引(如 auditbeats/filebeat/winlogbeat 等)填充event.ingested
。有关添加自定义 ingest pipeline 的更多详细信息,请参阅指南。
规则查询
编辑file where host.os.type == "linux" and event.type != "deletion" and file.extension in ("sh", "desktop") and file.path : ( "/home/*/.config/autostart/*", "/root/.config/autostart/*", "/home/*/.kde/Autostart/*", "/root/.kde/Autostart/*", "/home/*/.kde4/Autostart/*", "/root/.kde4/Autostart/*", "/home/*/.kde/share/autostart/*", "/root/.kde/share/autostart/*", "/home/*/.kde4/share/autostart/*", "/root/.kde4/share/autostart/*", "/home/*/.local/share/autostart/*", "/root/.local/share/autostart/*", "/home/*/.config/autostart-scripts/*", "/root/.config/autostart-scripts/*", "/etc/xdg/autostart/*", "/usr/share/autostart/*" ) and not process.name in ( "yum", "dpkg", "install", "dnf", "teams", "yum-cron", "dnf-automatic", "docker", "dockerd", "rpm", "pacman", "podman", "nautilus", "remmina", "cinnamon-settings.py", "executor", "xfce4-clipman", "jetbrains-toolbox", "ansible-admin" )
框架:MITRE ATT&CKTM
-
策略
- 名称:持久性
- ID:TA0003
- 参考网址:https://attack.mitre.org/tactics/TA0003/
-
技术
- 名称:启动或登录自动启动执行
- ID:T1547
- 参考网址:https://attack.mitre.org/techniques/T1547/