osquery在网络安全入侵场景中的应用实战(二)
背景
上次写了osquery在网络安全入侵场景中的应用实战(一)结果还不错,这次篇目二再增加一些场景。osquery主要解决的时员工被入侵之后电脑该如何溯源取证的问题。通常EDR会有日志,但是不会上报全量的日志。发现机器有恶意文件需要上级取证的时候,往往是比较麻烦的,会有这样或者那样的问题:比如公司员工遍布海内外,第一时间拿不到主机;使用远程桌面,但有可能遭遇设备远程策略被破坏打不开;溯源很多过程和步骤平时使用低频,一旦发生对运营人员来说,不重不漏完成也是一个巨大挑战。
这里再次补充一些个人认为的osquery取证优势:
提供全面系统信息:osquery 将操作系统视为一个高性能的关系型数据库,把进程、文件系统、网络连接、用户等系统信息映射为 SQL 数据表。通过简单的 SQL 查询,就可以获取到丰富而详细的系统底层数据,例如可以查询当前系统中所有正在运行的进程信息、开放的网络端口、特定用户的登录情况等,帮助安全人员全面了解系统状态,以便发现潜在的入侵迹象。
可扩展性与自定义:允许用户根据特定的需求进行扩展,添加新的表格和查询。安全团队可以根据自身的业务特点、安全策略以及常见的攻击模式,自定义一些特定的检测规则和查询语句,以更好地发现针对自身系统的独特安全威胁,实现个性化的安全监控和防御。
集成与协作能力:可以与其他安全工具如安全信息和事件管理(SIEM)系统集成,将自身收集到的系统信息和检测到的事件发送给 SIEM 系统进行集中分析和处理,进一步增强整个安全体系的监控和分析能力,实现不同安全工具之间的协同工作,提高安全事件的检测和响应效率。
实战
话不多说,重点内容马上就来。以下是基于5.16.0版本文档,列出的典型场景及对应命令:
六、计划任务与定时任务
- Mac/Linux定时任务(crontab新增任务)
场景解释:Crontab任务用于定时执行命令,攻击者可能在入侵之后添加定时任务来下载或执行启动(如每分钟下载恶意文件)。
检测目标:捕获非root用户新增的定时任务,尤其是包含网络操作(如wget/curl)的命令。
SQL逻辑:筛选crontab表中用户名非root的条目,匹配标准cron时间格式(* * * * *)或开机启动(@reboot)。
SELECT path, command
FROM crontab
WHERE username != 'root' AND (content LIKE '* * * * * %' OR content LIKE '@reboot %');
- Windows计划任务(新增任务)
场景解释:Windows计划任务可实现持久化攻击,攻击者可能创建任务触发恶意程序(如每天凌晨执行rundll32.exe)。
检测目标:发现非微软官方的新增计划任务,尤其