umujalloh/Splunk-SIEM-Lab-v2

GitHub: umujalloh/Splunk-SIEM-Lab-v2

基于 Splunk BOTSv3 数据集的完整 SOC 调查报告,演示了针对 CoinMiner 路过式攻击的七阶段威胁狩猎方法论及多安全框架映射。

Stars: 0 | Forks: 0

# Splunk-SIEM-Lab-v2:针对 Frothly Brewing 的 CoinMiner Drive-By(路过式)攻击 **分析师:** Umu Jalloh **数据集:** Splunk Boss of the SOC v3 (BOTSv3) **攻击日期:** 2018年8月20日 **调查类型:** 威胁狩猎 / 事件响应 **使用工具:** Splunk Enterprise, BOTSv3 Dataset **框架:** MITRE ATT&CK, NIST CSF, NIST 800-53, CIS Controls v8 ## 执行摘要 这是一项针对 2018 年 8 月 20 日 Frothly Brewing Company 遭受加密货币挖矿攻击的调查。我分析了 107 个 sourcetypes 中的 1,944,092 个事件,揭露了一起通过受信任的第三方酿酒社区网站 `www.brewertalk.com` 发起的 Drive-By(路过式)攻击。恶意的 CoinHive JavaScript 被注入到该网站中,静默劫持了员工的浏览器资源来挖取 Monero 加密货币。 BSTOLL-L 是受影响的主要端点,在挖矿期间 CPU 持续保持 100% 使用率。第二个端点 BTUN-L 暴露于相同的攻击向量,但受到了 Symantec Endpoint Protection 的成功保护,后者拦截了 46 次 JSCoinminer 尝试。两台主机之间的对比揭示了 BSTOLL-L 上存在严重的检测覆盖盲区。 ### 调查范围 BOTSv3 包含 2018 年 8 月 20 日发生的多个不同攻击线程。本次调查侧重于影响 BSTOLL-L 的 CoinMiner Drive-By(路过式)攻击。在环境中观察到的其他可疑活动可能与本报告范围之外的额外攻击线程有关。未来的调查可能会单独处理这些线程。 ## 环境概述 | 组件 | 详情 | |---|---| | 组织 | Frothly Brewing Company | | 数据集 | BOTSv3 - 1,944,092 个事件, 107 个 sourcetypes | | 攻击日期 | 2018年8月20日 | | 挖矿窗口期 | 09:37:50 - 10:04:11 (主要挖矿会话) | | 主要受害主机 | BSTOLL-L (用户: bstoll, 浏览器: Chrome) | | 受保护主机 | BTUN-L (用户: BillyTun, 浏览器: Chrome 和 Edge) | | 攻击向量 | 通过 brewertalk.com 进行的 Drive-By(路过式)攻击 | | 恶意软件 | JSCoinminer (JavaScript Monero 挖矿程序) | | C2 基础设施 | coinhive.com | ## 调查方法 我通过假设驱动的方法进行了本次调查,每次查询都由特定的调查问题驱动,而每次查询的结果又为下一次查询提供了依据。 本次调查分为七个阶段: 1. **阶段 1 - 基线建立** - 存在哪些数据以及可疑活动何时发生? 2. **阶段 2 - 网络活动分析** - 在攻击窗口期间网络在做什么? 3. **阶段 3 - CPU 异常调查** - 哪个端点承受了异常的资源压力? 4. **阶段 4 - 载荷识别** - 恶意活动的来源是什么? 5. **阶段 5 - 检测验证** - 安全工具是否检测到了攻击? 6. **阶段 6 - 时间线重建** - 每个事件何时发生以及它们如何关联? 7. **阶段 7 - 框架映射** - 此次攻击如何映射到行业标准框架? ## 阶段 1 - 基线建立 ### 查询 01 - 数据清点 **调查问题:** 有哪些可用的数据源以及事件量是多少? ``` index=botsv3 | stats count by sourcetype | sort -count ``` **发现:** - 跨越 107 个 sourcetypes 共有 1,944,092 个事件 - 排名前列的 sourcetypes 为 syslog (283,976)、stream:ip (227,872)、osquery:results (219,997) 和 stream:dns (218,456) - 存在 Symantec Endpoint Protection 日志 - AWS sourcetypes 确认云基础设施在调查范围内 ![查询 01 - 数据清点结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/9ee1cdf75e150821.png) ### 查询 02 - 攻击时间线 **调查问题:** 是否存在活动异常激增的特定时间窗口? ``` index=botsv3 | bucket _time span=1h | stats count by _time | sort -count ``` **发现:** - 确认攻击日期为 2018 年 8 月 20 日 - 在攻击发生前,活动几乎处于静默状态(00:00 到 04:00 期间每小时不到 300 个事件) - 在 05:00 活动爆发,达到 371,193 个事件 - 在 05:00-07:00 和 09:00-11:00 出现了两个明显的活动高峰 - 在 08:00 的空隙期(37,844 个事件)可能发生了阶段转换 **注意:** 整个环境中的活动都出现了激增。CoinMiner 攻击发生在这些时间窗口内,但并不占所观察到的所有活动。 ![查询 02 - 攻击时间线](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/ba5767a8b4150823.png) ### 查询 03 - 攻击窗口期间的 Sourcetype 细分 **调查问题:** 是什么类型的活动导致了激增? ``` index=botsv3 earliest="08/20/2018:05:00:00" latest="08/20/2018:12:00:00" | bucket _time span=1h | stats count by _time, sourcetype | sort -count ``` **发现:** - 四个 sourcetypes 在 05:00 触发,表明存在协调的多层活动 - 观察到信标行为,stream:dns 在每个攻击小时都有出现 - PerfmonMk:Process 在 09:00 激增至 54,767 个事件,表明 Windows 端点上的 CPU 负载沉重 - 云活动升级,aws:cloudwatchlogs 在 11:00 达到高峰 (114,913) **确定了两个优先调查线索:** DNS 信标模式和 Windows CPU 压力。 ![查询 03 - Sourcetype 细分](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/c14fc325ee150824.png) ## 阶段 2 - 网络活动分析 ### 查询 04 - DNS 域名分析 **调查问题:** 在攻击窗口期间,该网络查询了哪些域名? ``` index=botsv3 sourcetype="stream:dns" earliest="08/20/2018:05:00:00" latest="08/20/2018:12:00:00" | stats count by query | sort -count ``` **发现:** - 跨越 3,984 个唯一域名共有 218,456 个 DNS 事件 - splunk.froth.ly 被查询了 5,684 次,远超任何其他域名 - 所有其他热门域名均为正常的企业流量 (Microsoft, Google, Office365) ![查询 04 - DNS 域名](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/8040b8a033150826.png) ### 查询 05 - 查询 splunk.froth.ly 的主机 **调查问题:** 哪些机器负责了这 5,684 次查询? **分析师注:** 初始查询使用了 `src` 字段,但未返回任何结果。在对原始事件进行检查发现此数据集中的 `stream:dns` 源 IP 存储在 host 字段中后,转向使用了 `host` 字段。 ``` index=botsv3 sourcetype="stream:dns" earliest="08/20/2018:05:00:00" latest="08/20/2018:12:00:00" query="splunk.froth.ly" | stats count by host | sort -count ``` **发现:** - 有 14 台不同的主机查询了 splunk.froth.ly - 这 14 台主机的查询计数非常相似,这是自动信标活动的标志 - 主机包括工作站和 EC2 云基础设施 ![查询 05 - 查询 splunk.froth.ly 的主机](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/f989e1aa37150827.png) ### splunk.froth.ly - 线索结果 虽然 splunk.froth.ly 最初因其极高的查询量而显得可疑,但我的后续调查并未将该域名与 CoinMiner 攻击联系起来。 我放弃了这条线索,转向了第二个优先线索——在 Q03 中出现的 PerfmonMk:Process 激增,这引导我发现了 BSTOLL-L 上的实际挖矿活动。 ## 阶段 3 - CPU 异常调查 ### 查询 06 - 拥有 PerfmonMk:Process 数据的主机 **调查问题:** 哪个 Windows 端点经历了异常的 CPU 活动? ``` index=botsv3 sourcetype="PerfmonMk:Process" earliest="08/20/2018:00:00:00" latest="08/20/2018:23:59:59" | stats count by host | sort -count ``` **发现:** - 仅 BSTOLL-L 存在 PerfmonMk:Process 数据(864 个事件),其他主机无任何事件 - 我将 BSTOLL-L 确定为主要关注主机 **可见性说明:** 这是环境中真实的可见性盲区。我无法确认其他主机是否也经历了 CPU 压力,因为它们上面没有进程级别的性能监控。 ![查询 06 - PerfmonMk 主机识别](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/165f859189150829.png) ### 查询 07 - BSTOLL-L 进程 CPU 分析 **调查问题:** BSTOLL-L 上的哪个进程消耗了最多的 CPU? ``` index=botsv3 sourcetype="PerfmonMk:Process" earliest="08/20/2018:00:00:00" latest="08/20/2018:23:59:59" host="BSTOLL-L" | stats max(%_Processor_Time) as max_cpu, avg(%_Processor_Time) as avg_cpu by instance | sort -max_cpu | head 20 ``` **发现:** - 全天总 CPU 平均值为 99.4% - Chrome 浏览器标签页消耗了异常高的 CPU,最大值为 100%,平均值为 22.9% - 浏览器级别的 CPU 占用达到此水平表明正在执行恶意的 JavaScript ![查询 07 - BSTOLL-L CPU 进程](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/522543267b150830.png) ## 阶段 4 - 载荷识别 ### 查询 08 - BSTOLL-L 浏览目标 **调查问题:** 在 CPU 飙升期间,Chrome 连接了哪些网站? ``` index=botsv3 sourcetype="stream:http" earliest="08/20/2018:00:00:00" latest="08/20/2018:23:59:59" host="BSTOLL-L" | stats count by site | sort -count | head 30 ``` **发现:** - www.brewertalk.com 访问量最高,达到 137 次请求 - 第二位是正常的证书验证网站 (ocsp.digicert.com),有 42 次请求 - 所有其他目标也是正常的企业或个人浏览 ![查询 08 - BSTOLL-L 浏览目标](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/5543a82c3b150832.png) ### 查询 09 - BSTOLL-L 加载的 Brewertalk 资源 **调查问题:** Chrome 从 brewertalk 加载了哪些特定资源? ``` index=botsv3 sourcetype="stream:http" earliest="08/20/2018:00:00:00" latest="08/20/2018:23:59:59" host="BSTOLL-L" site="www.brewertalk.com" | stats count by uri_path, http_method, status | sort -count ``` **发现:** - 加载了标准的论坛资源:/forumdisplay.php, /showthread.php, /index.php, 主题 CSS, jQuery, 论坛图片 - URI 路径中没有明显的恶意文件名 - 表明恶意 JavaScript 要么嵌入在了看起来合法的文件中,要么是从第三方域加载的 ![查询 09 - BSTOLL-L Brewertalk 资源](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/c0503dbd37150833.png) ### 查询 10 - BSTOLL-L 的完整 DNS 活动 (已过滤) **调查问题:** 在 CPU 飙升期间,BSTOLL-L 的浏览器还联系了哪些其他域名? ``` index=botsv3 sourcetype="stream:dns" earliest="08/20/2018:00:00:00" latest="08/20/2018:23:59:59" host="BSTOLL-L" NOT (query="*.microsoft.com" OR query="*.google.com" OR query="*.googleapis.com" OR query="*.googleusercontent.com" OR query="*.gstatic.com" OR query="*.msedge.net" OR query="*.live.com" OR query="*.office.com" OR query="*.office365.com" OR query="*.officeapps.live.com" OR query="*.amazonaws.com" OR query="*.aws.amazon.com" OR query="*.cloudfront.net" OR query="*.azureedge.net" OR query="*.skype.com" OR query="*.bing.com" OR query="*.msn.com" OR query="*.sharepoint.com" OR query="*.sharepointonline.com" OR query="*.facebook.com" OR query="*.facebook.net" OR query="*.doubleclick.net" OR query="*.symantec.com" OR query="*.symantecliveupdate.com" OR query="*.digicert.com" OR query="*.froth.ly" OR query="ipinfo.io") | stats count by query | sort -count ``` **发现:** - 在过滤掉已知合法企业域后,发现 Coinhive.com 有 4 次请求 - CoinHive 是一项臭名昭著的加密货币挖矿服务,被用于 Drive-By(路过式)攻击 - 这就是铁证。BSTOLL-L 出现 CPU 飙升是因为加密货币挖矿 ![查询 10 - BSTOLL-L DNS 过滤结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b06469ae62150834.png) ### 查询 11 - CoinHive 连接时间线 **调查问题:** BSTOLL-L 何时首次查询了 coinhive.com? ``` index=botsv3 sourcetype="stream:dns" earliest="08/20/2018:00:00:00" latest="08/20/2018:23:59:59" host="BSTOLL-L" query="coinhive.com" | table _time, host, query, src, dest | sort _time ``` **发现:** - 首次 coinhive.com DNS 查询发生在 2018-08-20 09:38:19 - 第二次查询发生在 09:39:20 - 捕获到的 4 次查询分布在仅相隔一分钟的两个不同时间戳,之后无进一步的 DNS 活动。这表明 WebSocket 建立了持久连接 ![查询 11 - CoinHive 连接时间线](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/5af676d714150836.png) ## 阶段 5 - 检测验证 ### 查询 12 - Symantec JSCoinminer 检测 **调查问题:** Symantec Endpoint Protection 是否检测到了任何恶意活动? ``` index=botsv3 sourcetype="symantec:ep:security:file" earliest="08/20/2018:00:00:00" latest="08/20/2018:23:59:59" | table _time, _raw | sort _time ``` **发现:** - Symantec 共有 46 次 “Web Attack: JSCoinminer Download 6/8” 检测 - 全部被拦截 - 所有 46 次检测仅出现在 BTUN-L 上,而未出现在 BSTOLL-L 上 - 受影响的应用程序:Chrome - 用户:BillyTun - 这证实了 brewertalk.com 是恶意内容的来源,而 JSCoinminer 是恶意软件 ![查询 12 - Symantec JSCoinminer 检测](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/ca3a7ba050150837.png) ### 查询 13 - Brewertalk 损害范围 **调查问题:** brewertalk.com 上的恶意内容传播范围有多广? ``` index=botsv3 sourcetype="symantec:ep:security:file" earliest="08/20/2018:00:00:00" latest="08/20/2018:23:59:59" JSCoinminer | rex field=_raw "Intrusion URL: (?[^,]+)" | stats count by intrusion_url | sort -count ``` **发现:** - 有 10 个唯一的 brewertalk URL 提供了恶意脚本 - 受影响的页面包括主页、多个论坛类别 (fid=5, 7, 8, 9, 11)、帖子页面和附件 - 这是对 brewertalk 整个网站的入侵,而不是孤立的页面注入 ![查询 13 - Brewertalk 害范围](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/e22b69b68d150839.png) ### 查询 14 - Symantec 在 BSTOLL-L 上的检测覆盖范围 **调查问题:** Symantec 在 BSTOLL-L 上检测到了什么吗? ``` index=botsv3 sourcetype="symantec:ep:security:file" earliest="08/20/2018:00:00:00" latest="08/20/2018:23:59:59" BSTOLL-L | table _time, _raw | sort _time ``` **发现:** - BSTOLL-L 的 Symantec 检测数为零,尽管它同样暴露于该攻击向量 - 要么是 Symantec 未运行,要么是特征库已过时,或者是它静默失败了 - 这解释了为什么 BSTOLL-L 是实际的挖矿受害者,而 BTUN-L 却受到了保护 ![查询 14 - BSTOLL-L 上无 Symantec 检测](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b753bca0d9150840.png) ### 查询 15 - CoinHive 查询范围验证 **调查问题:** 是否有其他主机查询了 coinhive.com? ``` index=botsv3 sourcetype="stream:dns" earliest="08/20/2018:00:00:00" latest="08/20/2018:23:59:59" query="coinhive.com" | stats count by host | sort -count ``` **发现:** - 只有 BSTOLL-L 查询了 coinhive.com,没有其他主机查询 - 确认 BSTOLL-L 是唯一成功的挖矿受害者 ![查询 15 - CoinHive 范围验证](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b5e588af83150841.png) ## 阶段 6 - 时间线重建 ### 查询 16 - BSTOLL-L 首次访问 Brewertalk **调查问题:** BSTOLL-L 何时首次访问了 brewertalk? ``` index=botsv3 sourcetype="stream:http" earliest="08/20/2018:00:00:00" latest="08/20/2018:23:59:59" host="BSTOLL-L" site="www.brewertalk.com" | table _time, host, site, uri_path | sort _time | head 5 ``` **发现:** 对 brewertalk 的首次 HTTP 请求是在 2018-08-20 09:07:23 ![查询 16 - 首次访问 Brewertalk](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/23a2e73254150843.png) ### 查询 17 - Symantec 首次检测时间线 **调查问题:** Symantec 何时首次检测到 JSCoinminer? ``` index=botsv3 sourcetype="symantec:ep:security:file" earliest="08/20/2018:00:00:00" latest="08/20/2018:23:59:59" JSCoinminer | table _time, _raw | sort _time | head 5 ``` **发现:** 在 BTUN-L 上的首次 JSCoinminer 拦截发生在 2018-08-20 09:37:40 ![查询 17 - Symantec 首次检测](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/6d548fda80150845.png) ### 查询 18 - BSTOLL-L 上的 Chrome CPU 时间线 (精确) **调查问题:** Chrome 的 CPU 占用何时攀升至 100%,挖矿持续了多长时间? ``` index=botsv3 sourcetype="PerfmonMk:Process" earliest="08/20/2018:09:00:00" latest="08/20/2018:11:30:00" host="BSTOLL-L" instance=*chrome* %_Processor_Time>=99 | table _time, instance, %_Processor_Time | sort _time ``` **发现:** - 共有 132 个 CPU 占用率为 99-100% 的事件(131 个在持续挖矿会话中,加上 1 个在 10:59:19 的独立事件) - 首次挖矿事件:2018-08-20 09:37:50 (chrome#5) - 持续挖矿会话:09:37:50 至 10:04:11(约 26 分钟) - 最后一个独立事件:10:59:19 - 在当天的剩余时间里没有进一步的挖矿活动 ![查询 18A - 挖矿会话于 09:37:50 开始](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/9ad3cb0407150846.png) ![查询 18B - 挖矿会话结束及 10:59:19 的最终事件](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/777d2c8c38150847.png) ## 完整攻击时间线 | 时间 | BSTOLL-L (Chrome) | BTUN-L (Chrome 和 Edge) | 重要性 | |---|---|---|---| | 09:07:23 | 首次访问 brewertalk.com | - | BSTOLL-L 上的入侵开始 | | **09:37:40** | - | **Symantec 首次拦截 JSCoinminer** | 受保护主机上的防御成功 | | **09:37:50** | **Chrome 达到 100% CPU - 挖矿开始** | - | 挖矿载荷开始执行 | | **09:38:19** | 首次 coinhive.com DNS 查询 | - | 挖矿脚本连接到矿池 | | 09:39:20 | 额外的 coinhive.com 查询 (共 4 次) | - | 挖矿握手完成 | | 09:37:50 - 10:04:11 | 持续 100% CPU 挖矿 (~26 分钟, 131 个事件) | Symantec 拦截了 46 次尝试 | 攻击高峰窗口期 | | 10:04:11 | 主要挖矿会话的最后一次 100% CPU 事件 | - | 挖矿会话结束 | | 10:04 - 10:59 | Chrome CPU 降至基线水平 | - | 挖矿处于非活动状态 | | **10:59:19** | **短暂的 CPU 飙升至 100%** | - | 单次独立的挖矿事件 | ## 数据证明的关键关联 **CPU 飙升与访问 brewertalk 相关。** 在发生 brewertalk 活动之前,Chrome 的 CPU 一直处于基线水平(低于 1%)。CPU 在浏览期间攀升,并在持续的 brewertalk 活动期间达到 100%。 **相同的攻击,不同的结果。** BTUN-L 上的 Symantec 在 09:37:40 拦截了 JSCoinminer 尝试。10 秒后,BSTOLL-L 上的 CPU 达到 100% 并开始挖矿。在 Symantec 拦截后的 39 秒,BSTOLL-L 的浏览器成功连接到了 CoinHive 基础设施。两台机器受到相同向量的攻击,但由于检测覆盖盲区导致了截然相反的结果。 **挖矿持续时间为 26 分钟。** 从 09:37:50 到 10:04:11,BSTOLL-L 上的 Chrome 在 131 个记录事件中保持了近乎连续的 100% CPU 使用率。 ## 阶段 7 - 框架映射 ### MITRE ATT&CK | 技术 | 战术 | 证据 | |---|---|---| | **T1189** Drive-by Compromise(路过式攻击) | Initial Access(初始访问) | Symantec 日志识别出多个 URL 作为入侵来源,表明发生了全站入侵 (Q12, Q13) | | **T1059.007** Command and Scripting Interpreter: JavaScript(命令和脚本解释器:JavaScript) | Execution(执行) | Symantec 特征库 "JSCoinminer Download" 确认了在 Chrome 浏览器中执行的基于 JavaScript 的载荷 (Q12) | | **T1071.001** Application Layer Protocol: Web Protocols(应用层协议:Web 协议) | Command and Control(命令与控制) | 对已知 C2 域名 coinhive.com 的 DNS 查询 (Q11) 以及持续的挖矿活动 (Q18) 表明,JSCoinminer 载荷建立了与挖矿池基础设施的 C2 通信。数据集的 HTTP 日志中未捕获到直接的 WebSocket 流量,但可以通过活动模式进行推断。 | | **T1496** Resource Hijacking(资源劫持) | Impact(影响) | PerfmonMk:Process 显示 BSTOLL-L 上的 Chrome 在攻击窗口期间保持了 100% 的 CPU (Q07, Q18) | ### NIST Cybersecurity Framework (NIST 网络安全框架) | 功能 (Function) | 子类别 (Subcategory) | 证据 | |---|---|---| | **Detect (DE.AE)** 异常与事件 | DE.AE-2 - 分析检测到的事件以了解攻击目标 | Q03 发现了 PerfmonMk 和 DNS 异常;Q04-Q05 追踪了 DNS 信标范围;Q07 识别出异常 CPU | | **Detect (DE.CM)** 安全持续监控 | DE.CM-4 - 检测到恶意代码 | Symantec EP 在 BTUN-L 上检测到了 46 次 JSCoinminer 尝试 (Q12) | | **Respond (RS.AN)** 分析 | RS.AN-1 - 调查来自检测系统的通知 | 本次调查利用跨越多个 sourcetypes 的日志数据追踪了完整的攻击链 | ### NIST 800-53 控制 | 控制 | 证据 | |---|---| | **SI-3** 恶意代码保护 | Symantec EP 成功在 BTUN-L 上拦截了恶意代码。BSTOLL-L 上的检测盲区使得挖矿得以进行 (Q12, Q14) | | **SI-4** 系统监控 | PerfmonMk:Process, stream:dns, stream:http 和 Symantec sourcetypes 提供了重建攻击所需的可见性 | ### CIS Controls v8 | 控制 | 证据 | |---|---| | **控制项 8** 审计日志管理 | 得益于妥善保留的 DNS, HTTP, 端点性能和安全工具日志,本次调查才得以顺利进行 | | **控制项 9** 电子邮件和 Web 浏览器保护 | Drive-By(路过式)攻击通过 Web 浏览器发生;恶意脚本在 BSTOLL-L 的 Chrome 内部运行而未被拦截 | | **控制项 10** 恶意软件防御 | Symantec EP 部分有效 - 保护在 BTUN-L 上生效,但在 BSTOLL-L 上失败 (Q12, Q14) | | **控制项 13** 网络监控与防御 | DNS 级别的监控捕获到了对 coinhive.com 的查询,从而确认了等效 C2 的通信 (Q11) | ## 关键发现 1. **Brewertalk.com 提供了恶意的 JSCoinminer JavaScript** - 由 Symantec 指认该 URL 为入侵来源所证实 2. **BSTOLL-L 是实际的挖矿受害者** - 持续 100% CPU 达 26 分钟,coinhive.com DNS 查询得到证实,无 Symantec 保护 3. **BTUN-L 得到了成功保护** - Symantec 拦截了针对同一攻击向量的 46 次尝试 4. **BSTOLL-L 上的检测覆盖盲区** 使挖矿攻击得以成功 ## 调查挑战与线索转向 本节记录了我在调查过程中所做的线索转向。 - **stream:dns 源字段问题** - `src` 字段为空,因此在检查原始事件后改用 `host` 字段。 - **PerfmonMk 可见性盲区** - 仅从 BSTOLL-L 收集了进程性能数据。无法评估其他端点是否存在类似的 CPU 异常。 - **多个调查线索** - 同时追踪了 DNS 信标和 CPU 压力。DNS 线索 (splunk.froth.ly) 与 CoinMiner 攻击无关。CPU 线索直接引导发现了挖矿活动和 BSTOLL-L。 ## 建议 1. **解决 BSTOLL-L 上的 Symantec 覆盖盲区** - 调查为何未检测到 JSCoinminer,并确保所有端点具有一致的保护 2. **部署统一的端点性能监控** - PerfmonMk 应从所有 Windows 端点收集数据,而不仅仅是 BSTOLL-L 3. **拦截已知的加密货币挖矿域名** - 对 coinhive.com 及类似的挖矿基础设施实施 DNS 层面的拦截 4. **用户安全意识培训** - 教育员工了解 Drive-By(路过式)攻击的风险,即使在受信任的行业网站上也是如此 5. **Web 过滤** - 考虑对具有较高风险的内容类别进行 URL 过滤 6. **事件响应手册** - 为加密货币挖矿的检测和响应创建文档化的流程 ## 仓库内容 - `README.md` - 包含嵌入式 SPL 查询和截图的本次调查叙述 - `IOCs.md` - 本次调查的危害指标 - `screenshots/` - 支持每次查询的视觉证据 - `setup/` - 环境设置文档 *调查由 Umu Jalloh 进行* *网络安全与计算机取证学生 | Stark State College* *网络安全实习生, Ohio Cyber Range Institute* *CompTIA Security+ | CompTIA Network+*
标签:Boss of the SOC, BOTSv3, CIS Controls v8, Cloudflare, CoinHive, CoinMiner, Frothly Brewing, JavaScript挖矿, MITRE ATT&CK, Monero, NIST 800-53, NIST CSF, Symantec, Umu Jalloh, 加密货币挖矿, 安全日志分析, 安全框架映射, 安全运营中心, 安全防御差距, 恶意挖矿, 恶意脚本, 恶意软件防护, 数字取证, 数据集分析, 杀毒软件绕过, 水坑攻击, 浏览器挖矿劫持, 端点安全, 第三方信任滥用, 网络信息收集, 网络安全实验, 网络映射, 自动化脚本, 补丁管理, 赛门特克, 路过式下载, 路过式攻击, 门罗币