《表2 Modbus协议功能码对比》

《表2 Modbus协议功能码对比》   提示:宽带有限、当前游客访问压缩模式
本系列图表出处文件名:随高清版一同展现
《物联网蜜罐综述》


  1. 获取 高清版本忘记账户?点击这里登录
  1. 下载图表忘记账户?点击这里登录
*表示该功能码仅适用于串行链路。

Modbus协议[19]是Modicon公司(施耐德电气旗下的一个品牌)于1979年为可编程逻辑控制器(Programmable Logic Controller,PLC)发布的公开通信协议。由于Modbus是受业界普遍认可和采纳的工控协议,以Modbus协议仿真为主的工控蜜罐(简称“Modbus蜜罐”)已经成为研究典型。虽然Mobdus是公开的协议,但功能码分为公共和私有两种。私有部分的功能探索也是工控蜜罐研究的首要任务。2004年Cisco公司关键基础设施保障组(Critical Infrastructure Assurance Group,CIAG)的Matthew Franz等实现了第一个具有Modbus服务的工控蜜罐系统[20],以传统互联网蜜罐工具Honeyd[21]为基本框架,添加了工控协议Modbus-TCP的仿真模块,针对常用的写入和读取操作,实现了对读取线圈(0x01)、诊断(0x08)、写多个寄存器(0x16)等常见的Modbus功能码响应。2006年Digital Bond公司[22]结合蜜墙(Honeywall)工具[23](一种用于流量控制的网关软件)搭建了双主机的Modbus蜜罐,将Modbus服务仿真与数据捕获系统分离,提升了蜜罐的数据捕获与分析能力。协议栈通信是Modbus蜜罐研究的重要依赖,经开源社区的努力,逐渐形成了Modbus-tk[2 4]、Pymodbus[25]、libmodbus[26]等Modbus通信库,并被大多数Modbus蜜罐所采用。如表2所示,本文通过对库源码分析,对比了三种Modbus通信库的交互能力。结果表明,Pymodbus的实现已覆盖所有公共功能码,Modbus-tk和libmodbus库略有欠缺。