宜人贷安全建设之端口监控服务篇
字数 1356 2025-08-18 11:37:19
宜人贷安全建设之端口监控服务技术详解
1. 端口监控服务概述
在企业安全建设中,端口扫描监控服务是一个必不可少的基础环节。其主要功能包括:
- 定期扫描梳理公司资产和端口开放情况
- 及时发现违规高危端口开放问题
- 快速响应处理安全风险
2. 技术架构演进
2.1 初始版本(V1):基于Nmap的解决方案
技术栈:
- 分布式扫描架构:Django + Celery + Redis
- 数据库:MySQL
- 扫描引擎:Nmap(通过libnmap模块调用)
工作流程:
- 触发扫描任务
- Celery调度扫描任务
- 调用Nmap扫描集群
- 扫描结果入库
- 邮件告警
- Web端展示并处理
局限性:
- Nmap在企业全网全端口扫描场景下速度较慢
- 难以同时保证扫描速度和服务识别的准确性
2.2 优化版本(V2):Masscan+Nmap组合方案
改进思路:
- 利用Masscan的高速扫描能力(号称"六分钟内扫遍互联网")
- 保留Nmap强大的服务识别能力
工作流程:
- 触发扫描任务
- 使用Masscan进行1-65535全端口扫描
- 扫描结果入库
- 针对Masscan探测到的存活端口调用Nmap进行服务指纹识别
优势:
- Nmap调用次数减少一个量级
- 整体扫描速度显著提高
3. 告警机制设计
3.1 邮件告警策略
基本规则:
- 对比历史扫描数据(通常是前一天的结果)
- 提取新增端口并邮件告警
- 重点关注80、443等常见业务端口
优化策略:
- 针对非高危端口新增"近3天内未探测到该端口开放"的判断逻辑
- 减少误报率但可能增加漏报风险
告警场景示例:
- 6月16日未扫描到80端口
- 6月17日扫描到80端口
- 可能是业务重新上线(应告警)
- 也可能是16日的漏报(不应告警)
- 当前策略下不会生成告警事件
3.2 Web端展示
通过安全服务台下的端口监控Web端提供:
- 告警事件详情查看
- 处理功能
- 扫描数据展示
4. 内网资产监控扩展
4.1 进程级监控
采集数据项:
- 进程名称
- PID
- 启动路径
- 启动事件
- 启动命令
4.2 告警规则配置
支持黑白名单配置,规则包含:
- IP地址
- 进程名称
- 端口号
- 协议类型
示例规则:
- 任意服务器启动"ossec-csyslogd"进程
- 该规则下新增any端口不进行告警
优化措施:
- 将正常业务进程添加到白名单
- 持续优化减少邮件告警事件量
5. 安全联动机制
5.1 漏洞扫描联动
针对内网新增端口:
- 自动触发POC扫描
- 进行漏洞检测
6. 技术讨论与优化方向
6.1 分布式架构优化
潜在改进方案:
- 抛弃Celery自行实现分布式调度
- 评估其他分布式框架
- 考虑直接使用DNmap进行分布式扫描
6.2 告警规则优化
思考方向:
- 新增端口的规则定义是否有更好的方法
- 如何平衡误报率和漏报率
- 自动化程度提升的可能性
6.3 持续迭代
- 保持技术更新
- 持续优化系统性能
- 提高告警准确性
7. 总结
宜人贷的端口监控服务建设展示了从基础方案到优化方案的完整演进路径,关键技术点包括:
- 合理选择扫描工具组合(Masscan+Nmap)
- 设计有效的告警策略
- 扩展内网进程级监控
- 实现安全能力联动
- 持续优化分布式架构
这套方案为企业安全建设中的资产发现和风险监控提供了实用参考,可根据实际需求和技术发展持续迭代优化。