03 / 05 · 2022.08 — 2023.07
浙江木链科技有限公司
在工控安防方向做 Python 后端:参与旁路流量审计系统的流量处理链路、白名单检测引擎与 Django REST 接口,集成 Suricata 做黑名单检测,支持 27 种工控协议的深度解析。
- 职位
- Python 开发工程师
- 行业
- 工控安防
- 地点
- 浙江
- 团队
- 13 人
- 在职
- 1 年
关键成果
27 种
深度解析的工控协议:Modbus、S7COMM、IEC104、IEC61850、DNP3、OPC UA、PROFINET、BACnet 等
996 条
接入 Suricata 的工控漏洞特征规则,用于黑名单检测
10 秒
用 Redis 过期事件实现的流聚合窗口,把逐包写库变成按流写库
在这里做的项目
PROJECTS · 12022.08 – 2023.07 · Python 后端开发 · 团队 13人
工控安全审计平台
面向电力、制造等工控场景的旁路流量审计系统:探针抓取交换机镜像流量,经 Kafka 进入 Cython 协议解析引擎,按资产、白名单、黑名单三层策略检测并告警。支持 27 种工控协议深度解析(Modbus、S7COMM、IEC104、IEC61850 MMS/GOOSE/SV、DNP3、OPC UA/DA/AE、PROFINET、ENIP/CIP、BACnet 等),已在电力科研院所等项目中落地。
- 参与流量处理链路开发:抓包探针 → Kafka → 协议解析引擎 → PostgreSQL;利用 Redis 过期事件实现 10 秒窗口的流聚合与批量入库,显著降低数据库写入压力;利用 Redis TTL 实现设备离线检测
- 实现基于五元组、MAC 和协议功能码的白名单检测引擎,用位图区分“行为异常”与“内容异常”;支持 IEC104 ASDU、OPC 接口 / 功能码的深度规则匹配,并支持按时间段自动学习生成白名单
- 负责资产管理、白名单 / 黑名单策略、告警、报表等 Django REST 接口开发;用 Celery Beat 实现报表导出、策略备份、过期数据清理、探针健康巡检等定时任务
- 集成 Suricata,解析 unified2 告警,接入近千条(996 条)工控漏洞特征规则实现黑名单检测
- 基于 Kafka Connect(Debezium CDC)把数据同步到 Pilosa 位图索引,支撑流量统计与多维查询
- (定制版)解析 IEC 61850 SCD 文件,自动生成变电站 IED 通信基线与拓扑
- Python
- Django / DRF
- Celery
- Kafka
- Redis
- PostgreSQL
- Pilosa
- Suricata
- Cython
- Vue 2
系统架构
系统数据流
抽象示意 · 不含内部细节交换机镜像口
旁路只读,不影响生产网
抓包探针 → Kafka
Scapy · raw_packets 保留 300GB
协议解析引擎
Cython · 27 种工控协议
策略检测
资产 · 白名单(位图)· Suricata 黑名单
▲ 我负责的部分
PostgreSQL → Pilosa
流量明细 · CDC 位图索引
Django + Vue
告警 · 策略 · 报表
▲ 我负责的部分
团队与日常
照片均已征得同事同意,或对他人面部做了模糊处理
在这里学到了什么
在工控安防行业,了解了常见的攻击手段与权限提升,也第一次接触 Modbus、S7COMM、IEC104、OPC 等工控协议和旁路流量审计;在编写业务代码的同时,更加熟练地使用 Django / DRF 与 Celery。
协议解析是 CPU 密集的字节级操作,解析库用 Cython 把热点路径编译成 C 扩展,对上层仍保持 Python 接口;这期间也参与过 C++ 向 Rust 迁移的项目。用 Redis 过期事件做聚合窗口、用位图区分异常类型,都是用简单的原语来化解高频工控流量带来的写入与检测压力。
TECH STACK
- Python
- Django / DRF
- Celery
- Kafka
- Redis
- PostgreSQL
- Pilosa
- Suricata
- Cython
- Vue 2
- Docker