3. 资产盘点方法论:自动化扫描工具、人工盘点流程、CMDB建设思路
资产盘点这事儿,说白了就是回答三个问题:我们有什么?在哪儿?谁负责?很多团队一上来就买扫描工具,结果扫出一堆IP,却不知道哪个是核心业务系统。我见过最夸张的案例,某公司资产清单上还有五年前就下线的测试服务器。
所以这一章,咱们把方法论拆开揉碎了讲。我个人习惯把资产盘点分成三个层面:自动化扫描(解决“有什么”)、人工盘点(解决“在哪儿和谁负责”)、CMDB建设(解决“持续管理”)。
3.1 自动化扫描工具:快速摸清家底
自动化扫描是第一步。它的价值在于快,能在几小时内覆盖上千台设备。但你要清楚——扫描工具只能发现“在线”的资产,而且依赖网络可达性。
3.1.1 常用扫描工具对比
| 工具 | 扫描类型 | 优势 | 局限 |
|---|---|---|---|
| Nmap | 端口/服务探测 | 轻量、灵活、脚本扩展强 | 无资产关联分析 |
| Masscan | 大规模端口扫描 | 每秒百万级包 | 精度不如Nmap |
| Nessus | 漏洞+资产识别 | 深度指纹识别 | 商业授权贵 |
| Zmap | 全互联网扫描 | 极速、单端口扫描 | 容易被封IP |
我个人习惯先用 Masscan 做快速存活探测,再用 Nmap 做精细服务识别。举个例子:
# 第一步:快速发现存活主机
masscan 10.0.0.0/16 -p80,443,22,3389 --rate=10000 -oL alive.txt
# 第二步:对存活主机做深度扫描
nmap -sV -sC -O -iL alive.txt -oA deep_scan
这里有个坑——扫描频率别太高。我曾经在客户现场用默认速率扫内网,结果把核心交换机的CPU打到了90%,差点造成生产中断。嗯,从那以后我都在扫描命令里加 --max-rate=5000 限速。
3.1.2 指纹识别与资产分类
光扫出IP和端口不够,你得知道跑的是什么。比如端口443上可能是Nginx、Apache、IIS,也可能是某个自研的Java应用。这时候就需要指纹识别。
我常用的指纹库:
- Wappalyzer:Web技术栈识别,适合前端框架、CMS
- WhatWeb:命令行工具,识别超过1800种Web应用
- Nmap NSE脚本:
http-server-header.nse、http-title.nse
3.2 人工盘点流程:补上工具的盲区
自动化工具再强,也有扫不到的东西。你想想看——内网隔离的设备、未上线的备机、云上临时创建的实例,这些工具根本发现不了。所以人工盘点必须跟上。
3.2.1 人工盘点的四个步骤
- 访谈业务负责人:问清楚“你们部门有哪些系统?跑在什么服务器上?谁在维护?”
- 现场核对:去机房或看云控制台,对照清单逐项确认。
- 补充遗漏资产:比如测试环境、开发环境、临时搭建的演示系统。
- 确认归属:每个资产必须有一个明确的负责人和联系方式。
我记得有一次做金融客户的人工盘点,发现一个没人认领的Oracle数据库,里面存着三年前的交易流水。问了一圈,原来是离职员工自己搭的测试库,交接文档里根本没写。这种幽灵资产最危险。
3.2.2 人工盘点模板示例
| 资产名称 | IP地址 | 操作系统 | 业务系统 | 负责人 | 联系方式 | 备注 |
|---|---|---|---|---|---|---|
| 核心交易DB | 10.1.1.10 | CentOS 7.9 | 交易系统 | 张三 | 138xxxx | 生产环境,禁止直连 |
| Web前端01 | 10.1.2.20 | Ubuntu 20.04 | 官网 | 李四 | 139xxxx | 有WAF防护 |
3.3 CMDB建设思路:从清单到活数据
有了自动化扫描和人工盘点的结果,下一步就是把这些数据结构化、持续化地管理起来。这就是CMDB(配置管理数据库)要做的事。
很多公司把CMDB做成了“死库”——上线时导入一次,之后就再也没人更新。为什么会这样?因为CMDB的建设思路错了。
3.3.1 CMDB的核心模型
我个人习惯用 CI(配置项) 作为最小管理单元。每个CI包含:
- 基础属性:IP、主机名、操作系统、CPU/内存/磁盘
- 关系属性:属于哪个业务系统?依赖哪些其他CI?
- 生命周期:创建时间、最后变更时间、计划退役时间
下面这张图展示了CMDB中CI之间的典型关系:
3.3.2 CMDB建设的三个关键原则
- 自动化发现优先:能通过API、Agent、扫描工具自动采集的数据,绝不手动录入。手动录入是CMDB腐烂的根源。
- 关系比属性重要:知道一台服务器的IP不如知道它属于“交易系统”且依赖“Oracle主库”。关系决定了影响面分析。
- 持续更新机制:每次变更(上线、下线、配置修改)都要同步到CMDB。我建议用变更工单触发CMDB更新,而不是等人想起来再去改。
3.3.3 常见CMDB工具选型
| 工具 | 类型 | 适用场景 | 成本 |
|---|---|---|---|
| iTop | 开源 | 中小型企业,可定制 | 免费 |
| ServiceNow | 商业SaaS | 大型企业,ITSM一体化 | 高 |
| Zabbix + 自建 | 开源组合 | 运维团队自运维 | 低(需人力) |
| 阿里云CMDB | 云原生 | 阿里云环境 | 按量计费 |
我个人在中小企业更推荐 iTop,它内置了CI关系模型,而且支持通过REST API做自动化同步。你只需要写个脚本,把Nmap扫描结果推进去就行。
3.4 三者的协同关系
自动化扫描、人工盘点、CMDB不是三个独立的工作,而是一个持续循环:
- 自动化扫描产出原始数据,推送到CMDB
- 人工盘点补充CMDB中缺失的关系和负责人信息
- CMDB反过来指导扫描策略(比如哪些网段需要重点扫描)
你想想看,如果这三者能跑通,资产盘点就不再是“一次性项目”,而是变成了安全运营的基础能力。下次做漏洞扫描时,你就能直接问CMDB:“交易系统有哪些服务器?”而不是翻Excel表格了。