【一个人的SOC】(04) 用一台 TP-Link 路由器做内网资产发现与上网行为审计
上一篇 (03) Wazuh 接入实战我们接进了第一台主机告警开始流进你的 SOC。但很快你发现一个新问题“我管的几台服务器全在 Wazuh 里了可办公室/家里的手机、电脑、IoT 设备——它们没装 agentSOC 一点都不知道它们的存在。”这是一个典型的盲区小到家里的智能音箱大到公司的小办公网络没有 agent 也不想装 agent。但它们都连了同一台路由器——这一篇解的就是这个问题。单台 TP-Link 路由器 一双看到全网的眼睛。你不需要在每台设备装什么连上路由器的那一刻它就在替你看所有流量了。老规矩先看路径这一篇假设你已经把 02 篇的部署 走完了——Loki 已经跑着、AI-miniSOC 已经能登录。剩下的就是让路由器把日志推过去。为什么是路由器这个问题的答案其实和为什么 Wazuh 是主机入侵检测的事实标准是同一个思路——你不需要在每个观测点都装软件找到那个天然的汇聚点就够了。家庭/小公司网络里所有设备上网都得经过路由器。路由器天然就知道两件事谁在上网你的手机、笔记本、智能音箱——每台设备分配了 IP、MAC、主机名上了什么网访问了哪些网站、用了什么应用、花了多久。厂商TP-Link/华为/小米/华硕/爱快……基本都在路由器管理界面提供了上网行为日志功能。这功能默认是关的——因为它量大、占存储、绝大多数人用不上。但对我们做 SOC 的人来说这正是最便宜、最全的内部数据源。本篇以TP-Link TL-R479GP-AC商用 VPN 路由器企业级、家庭都常见为例。其他品牌原理相同——大致路径都是「开日志 → 配远程推送 → 接收端解析」。成本零。你已经有的路由器 你已经有的 Loki 一点配置时间。第 1 步路由器端开启日志5 分钟不同品牌 UI 略不同但核心三件事相同开启上网行为日志——大部分 TP-Link 在「行为管理 → 上网行为管理」里默认是关闭状态。把它打开开启 syslog 远程推送——行为管理 → syslog 设置 → 启用 → 填 Loki 的 OTLP 接收端地址一般填 Loki 服务的 IP 3100 端口重启路由器让它生效。关于如何在路由器上配置和开启上网行为分析请参考《通过TPLink路由器进行用户行为审计实战》这一步做完所有联网设备的谁 干了什么就会实时推到 Loki 里——24 小时约 20 万条日志实测 78% 是访问网址、22% 是使用应用类型量不大但价值密度高。在路由器上配置上网行为日志外发到Loki关于如何配置Loki作为日志服务器请参考《LokiAlloyGrafana构建轻量级的日志分析系统》配置完成后就可以在AI-miniSOC看到路由器送过来的行为日志数据️坑 #1血的教训8 月我们栽过一次——tplink-collector 的__main__.py在--test分支里连开了3 个asyncio.run第二个会抛RuntimeError: Event loop is closed。修法三个测试分支各收敛为单次asyncio.run收尾在同一循环内做。所以——升级到最新代码再跑。️坑 #2路由器日志里同时含公网 IP如8.160.215.x被路由器作为访问源记下解析时必须区分内网/公网否则公网 IP 的行为会被误算成内网基线——评估模块里专门加了这一步。第 2 步让 AI-miniSOC 知道路由器5 分钟把 tplink-collector 加到采集器层上一篇讲过采集器是 Docker Compose 起的# src/collectors/.env 加 TPLink 凭据TP_LINK_URLhttp://router-ipTP_LINK_USERNAMEadminROUTER_PASSWORD路由器管理员密码MINISOC_API_KEYAI-miniSOC 控制台生成的 Key# 启动cdsrc/collectorsdockercompose up-dtplink-collectordockercompose logs-ftplink-collectorTP-Link 管理界面SLP的密码用XOR 混淆加密不是明文也不是 RSA是它自己的一套字符映射——这部分逻辑在 collector 框架里已经实现不用你操心。过关标准docker compose logs里看到registered to AI-miniSOC backend, device count: N且soc_assets表里冒出你办公室那堆手机/电脑——包括平时不装的 IoT 设备。路由器里的接入设备列表同步到AI-miniSOC的设备点开资产详情可以看到资产的数据来源是TP- LINK路由器或Wazuh不需要手工录入资产解决手工录入资产导致的资产数据不准不及时的问题。️坑 #3TP-Link SLP 登录接口要求X-Requested-With: XMLHttpRequest请求头——少这个头服务器会返回 HTML 登录页不是 JSON采集器会卡在解析 HTML 失败上。这个坑集成在框架里了但你如果写自己的脚本记得带上。第 3 步看每台设备在干什么立刻第二步一旦通过AI-miniSOC 的行为画像页就自动有内容了——不需要你做任何配置关于AI-miniSOC的“行为画像”请参考《从凌晨在干啥到看清一个人——我给 AI-miniSOC 做了套行为画像》整体的行为画像单个设备的行为画像AI-miniSOC 行为画像某台设备 24h 访问域名/应用类型/活跃时段访问习惯与每个阶段都在干什么都可以清晰的展现这一页能告诉你三件事最近 24 小时在访问什么域名——api.github.com、i.yximgs.com、… 一个普通员工的工作日长什么样活跃时段——00:00-06:00突然活跃的设备要么是定时任务要么值得看一眼应用类型分布——是 web 流量为主、还是大量 P2P/远程桌面后者该查查是不是被当跳板了。这是 Wazuh 看不到的信息——Wazuh 只在装了 agent 的主机上活动路由器则覆盖了所有联网设备。两个数据源互补。第 4 步异常检测——单台路由器能告诉你这些路由器日志单独看只是谁访问了什么但聚合起来它能告诉你哪些事6 类常见异常场景#异常场景路由器日志里的特征真实例子①未知域名爆增同一 IP 短时间内访问大量陌生域名自家设备上观察到的stun-heyuan-v6.easytier.cn隧道域名②异常时段活跃凌晨 3 点突然大量访问04 篇真实场景③隧道/穿透类域名frp.*ngrok.**.nat.*stun.*等内部主机被控后常见④大量访问公网 IP路由器 ip 标签中公网 IP 占比异常数据外泄/代理出网⑤高风险应用/端口P2P/远程桌面/未知协议占比上升内网被当跳板⑥影子设备接入资产台账里没有的 IP 出现在流量里访客/未授权设备⚠️重要提醒04 篇完成的是「检测能力 告警落地」误报在所难免——比如某员工日常就在凌晨跑备份脚本。第一周多花点时间调基线哪些 IP 的行为算正常、哪些阈值合理。基线稳了告警才是有价值的信号。第 5 步调基线持续1~2 周这一步是 6 类异常检测真正为你所用的关键每个 IP 维护自己的基线192.168.0.8 的工作日白天高活跃是正常、192.168.0.30 的凌晨 3 点突然活跃就值得看告警阈值在配置中心调——AI-miniSOC 留了配置接口不用改代码误报收集到一张表里“我这台开发机的 GitHub Actions 经常凌晨跑批”后续规则里加白名单。基线 ≠ 锁死网络变了公司新业务、新人入职、IoT 增减基线就要跟着调。告警治理是一个长期调参过程不是上线就完事。收尾常见问题Q我用的小米/华为/华硕路由器能用吗A原理相同都是 syslog/远程日志但具体 API 抓终端列表这一步需要适配——tplink-collector 是 TP-Link SLP 专用。其他品牌做适配或换 Wazuh agent 装到路由器上OpenWrt 系支持。本篇以 TP-Link 为例。Q性能影响大吗一台路由器扛得住吗A现代路由器日志吞吐是百万级/天级别对 100 台以下设备网络根本不是瓶颈。真正可能扛不住的是 Loki 的存储——所以 01 篇架构里我们设了 7 天保留期你也可以调长但要相应扩磁盘。Q能在公司用吗合法吗A员工上网行为监控确实有合规要求——网安法、企业内控条例都有规定。建议①公司内部有明确告知员工手册/入职签字②日志只用于安全审计、不做绩效依据③查阅权限分级普通 IT 不看、能看的人需要审计。这一篇只讲技术上怎么接合规的事请你和法务/HR 一起定。Q和 03 篇 Wazuh 是什么关系A互补不重叠。Wazuh 装了 agent 的主机上的所有动作文件、登录、进程……路由器 所有联网设备包括没装 agent 的手机/IoT/访客的网络行为。理想的小公司 SOC 应该是两者都有装 agent 的服务器/重要工位有 Wazuh全员所有设备的网络流量由路由器统一采。写在最后00 篇回答为什么做01 篇回答凭什么行02 篇回答怎么跑03 篇回答第一台主机的告警怎么看这一篇回答没装 agent 的那堆设备怎么也能管。回头看这条主线你的 SOC 现在能看见装了 Wazuh 的服务器、没装 agent 但连了路由器的所有设备——这个覆盖度对小公司/家庭网络已经足够全面。剩下的是怎么从数据里自动找出那些不对劲的事——下一篇 (05)《Nmap 攻击面扫描》。老李的路由器已经替他家三口人加四台 IoT 看着上网行为了。你的呢【系列导航】《一个人的SOC》总目录持续更新【上一篇】(03) Wazuh 接入实战——把第一台主机纳管进你的 SOC【系列开篇】(00) 中小企业为什么需要自己的安全运营中心【项目地址】AI-miniSOC - GitHub · MIT 开源欢迎 Star ⭐https://github.com/xiejava1018/AI-miniSOC【交流】路由器接入卡住了把docker compose logs tplink-collector的输出发到 Issue我会逐个回复。下一篇预告(05) Nmap 攻击面扫描——零 agent 接入主题的收官之作连载中敬请关注作者博客http://xiejava.ishareread.com/