[实战]“日志太多了,要吐了”🤮 用AI从海量系统日志中精准提取“异常行为”!📉

大家好,热爱效率的安全分析师们!🕵️‍♂️

上次我们是不是在沙箱中执行了恶意代码,并用ProcMon收集了日志?

然而,当你真正打开收集到的日志文件时……10万行、20万行……你常常会被无尽的文本盛宴所淹没。😱

“这么多日志,什么时候才能看完?怎么才能从中找出黑客的所作所为?”

用人眼在这“沙滩”中寻找“针”几乎是不可能的。但对于我们的AI助手来说,这简直是小菜一碟!🥣

今天,我们将进行日志过滤和异常检测的实战,把海量系统日志(如Syslog、ProcMon、防火墙日志等)交给AI,并指示它“忽略正常的,只挑出异常的!”


1. 🚧 现实问题:“AI,把这些都读一遍”(上下文限制)

在开始之前,有一个重要的点。ChatGPT或Claude等AI模型在一次性读取的字符数(Token Limit)上是有限制的。如果你把一个1GB的日志文件完整地粘贴进去,它会吐出“太长了!”

所以,我们需要一个“明智的策略”。

  1. 预处理 (Preprocessing): 使用Python等工具初步过滤掉明显的正常行为(例如:Windows系统的基本操作),或者
  2. 分块输入 (Chunking): 将日志按100-200行切分后输入,或者
  3. 关键区间提取: 只提取可疑时间段(恶意代码执行后1分钟)的日志进行输入。

今天的实战将采用“请求AI分析‘关键区间日志(约50-100行)’”的方式进行。


2. 📝 [实战数据] 混乱的日志示例

假设你从ProcMon中抓取的日志如下所示,正常和恶意行为混杂在一起。

[日志样本(模拟)]

Plaintext

[INFO] 14:00:01 svchost.exe (PID: 892) - Network Connect 52.1.1.1:443 (Microsoft Update)
[INFO] 14:00:02 chrome.exe (PID: 4120) - WriteFile C:UsersUserAppDataLocalGoogleCache...
[WARN] 14:00:05 powershell.exe (PID: 5521) - Process Create -Command "powershell -W Hidden -Enc aW1wb3J0..."
[INFO] 14:00:06 explorer.exe (PID: 1204) - ReadFile C:WindowsSystem32shell32.dll
[CRIT] 14:00:08 malware.exe (PID: 5521) - RegSetValue HKCUSoftwareMicrosoftWindowsCurrentVersionRunEvil
[INFO] 14:00:10 kakaotalk.exe (PID: 3002) - Network Receive 203.21.1.1:8080
[WARN] 14:00:12 cmd.exe (PID: 6601) - Process Create "vssadmin.exe Delete Shadows /All /Quiet"

好了,我们把这堆文本交给AI吧。


3. 🧠 [提示词] “忽略正常,只找出异常”

如果只是简单地说“帮我分析一下”,AI可能会尝试解释每一行。我们需要强烈要求“过滤(Filtering)”。

📋 日志分析专用提示词

[角色]

>

您是安全运营中心(SOC)的高级威胁猎人。

>

[任务]

>

分析下面提供的系统日志(Log Data),并只提取“异常且具有威胁性的行为(Anomalies)”。

>

[过滤规则 – 重要!]

>

1. 白名单: 严格忽略(Ignore)并不要在结果中包含网页浏览器缓存写入、Windows更新、即时通讯等常见的用户/系统行为。

2. 检测目标:

– 混淆脚本执行 (Encoded Command)

– 注册表自动启动项注册 (Persistence)

– 尝试删除备份和禁用系统恢复

– 未知进程的可疑网络连接

>

[输出格式]

>

请将分析结果整理成以下格式的表格:

>

| 时间 | 进程 | 行为摘要 | 威胁级别(高/中/低) | 判断依据 |

>

[日志数据]

>

(将上述日志样本粘贴到此处)


4. 🕵️‍♂️ [结果] AI筛选出的“真正威胁”

AI按照我们的指示,将chrome.exe、explorer.exe、svchost.exe等噪音(Noise)全部清除,只留下核心内容。

🤖 AI分析结果(示例)

🚨 威胁检测报告

>

排除了常见的系统行为(Chrome缓存、Windows更新、KakaoTalk等),识别出3条疑似安全威胁的日志。

>

| 时间 | 进程 | 行为摘要 | 威胁级别 | 判断依据 |

| — | — | — | — | — |

| 14:00:05 | powershell.exe | 混淆命令执行 | 高 (Critical) | -W Hidden -Enc 选项主要用于在用户不知情的情况下执行恶意代码。 |

| 14:00:08 | malware.exe | 启动程序注册 | 高 (Critical) | 向HKCU…Run键写入值是恶意软件在重启后持续运行的典型持久化技术。 |

| 14:00:12 | cmd.exe | 卷影副本删除 | 高 (Critical) | vssadmin Delete Shadows是勒索软件为阻止文件恢复而执行的最具代表性的预操作之一。 |

>

💡 综合意见

>

该系统强烈怀疑已感染勒索软件或后门。特别是vssadmin的执行表明需要立即隔离。


5. 💡 技巧:构建大容量日志处理“管道”

如果日志有几十万行,该怎么办呢?

这时,需要一种将Python脚本与AI API结合的混合方式。

  1. Python(一级过滤): 使用findstr或grep等逻辑,首先移除“已知良好”的进程(例如:System、MsMpEng.exe)。这可以将数据量减少90%。
  2. AI(二级精细分析): 只将剩余10%的“模糊日志”发送给AI,询问“这是否是恶意的?”

💬 提示词技巧:

>

“我懂Python。请帮我编写一个Python预处理脚本,从ProcMon.csv文件中排除带有微软签名的进程,只保留其余可疑进程。”

这样请求,AI甚至会为你创建预处理工具!🛠️


🎉 总结:不要只看森林,要看腐烂的树!

今天我们学习了如何在“日志的洪流”中不至于手足无措,而是通过AI这个过滤器,只捞出“威胁”的方法。

  • Before: 人工查看10,000行日志,纠结“这正常吗?”😵
  • After: 只看AI总结的5行核心威胁,并进行响应。😎

这正是安全运营中心(SOC)自动化的精髓,也是智能分析师的工作方式。

好了,现在我们已经分析了恶意代码的代码(静态)、行为(动态)以及日志(痕迹)。所有的拼图碎片都已集齐。

下一次,我们将把所有这些碎片拼凑起来,以[最终实战]“自动生成专家级恶意代码分析报告”为本次系列画上圆满句号。敬请期待!👋



Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注