一、概述

本文章结合作者在资产探测、入侵检测、网络攻防、蜜罐研究相关工作中大量实践,在此对工控蜜罐识别与反识别的技术进行研究与应用实践与大家进行分享与探讨。

工控蜜罐通常指非真实工控设备,通常指应用服务、仿真程序等,比如服务蜜罐包括conpot、openplc、CryPLH2、仿真程序包括modbus tester、Mod Rssim、snap7、opendnp3、qtester104、DNP3_testhaness、EtherNetIP Virtual等。

二、蜜罐介绍

蜜罐是一种软件应用系统,用来称当入侵诱饵,诱导黑客前来攻击。攻击者入侵系统后,通过监测与预计分析,就可以知道他是如何入侵的,随时了解针对系统发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。

蜜罐系统以伪装技术为基础,在用户内部网络中部署与真实资产相似的“陷阱”(蜜罐节点),当攻击者通过外部安全防御系统的缺陷渗透进入到内部网络时,通常需要搜索网络内部的资产,以此找到对攻击者而言有价值的目标。 蜜罐节点自身的伪装性能够欺骗攻击者,当攻击者将蜜罐节点作为攻击目标时, 蜜罐节点能够第一时间感知并汇报安全事件,具体包括:蜜罐节点会记录攻击者的所有行为,系统也会产生告警,通知安全运营管理人员。蜜罐节点会诱骗攻击者将其他蜜罐节点作为后续的攻击目标, 所有蜜罐节点将组成“陷阱”网络,延缓了攻击时间,使得蜜罐系统能够记录更多的攻击信息,分析潜在威胁。

(1)蜜罐种类

蜜罐可以分为数据库蜜罐、web蜜罐、服务蜜罐、工控蜜罐及端点蜜罐,各种蜜罐对应的相关产品如下图所示:

(2)常见蜜罐及地址

T-pot蜜罐是一种融合了多种开源蜜罐服务的汇总,其中包括工控蜜罐conpot,所有蜜罐采用docker容器化方式部署与管理,关于T-pot的安装和使用可以参考freebuf相关文章,下图是T-pot蜜罐使用的系统架构图。

(3)现有工控蜜罐缺陷

目前互联网上部署了大量的工控蜜罐,大多都是基于conpot蜜罐和仿真服务程序。这些蜜罐基本属于中低交互形式,蜜罐指纹特征通用、部署在云服务器上或者企业直接通过端口映射方式接入到互联网。

三、蜜罐识别方法

首先在192.168.10.100(windows安装仿真器)及192.168.10.122(linux安装部署openplc、conpot、tpot蜜罐仿真服务),安装方法可以参考freebuf相关文章。

(1)IP地址识别

一般工控设备如plc、dcs、rtu等很少直接暴露到互联网,在业务需要情况下可能会将工控设备直接暴露在互联网,比如设备远程维护等。

通过查询IP地址对应的ISP,既服务提供运营商,来判断所述IP是否属于云服务器提供商的IP地址。当所述IP属于云服务器,并且开放了PLC的工控协议服务如modbus、s7、ethernetip等,则可判定IP为工控蜜罐。

针对IP地址对应的ISP和Organization的信息查询,能够通过如IPIP、纯真、Rtbasia、ipplus360、iplookup、GeoIp2、IP2Region的IP地址信息库,通过获取的信息来综合判定IP地址是否属于云服务器提供商。

(2)操作系统及MAC厂商指纹识别

一般工控设备均为嵌入式设备,如plc、dcs、rtu大多使用实时操作系统如vxworks、QNX,HMI设备一般使用wincc操作系统等;通过TCP/IP操作系统指纹识别,获取目标IP的TCP/IP协议栈指纹,当目标IP的操作系统被识别为Linux的非嵌入式操作系统。并且该设备未经过路由转发与映射,通常可认为是蜜罐系统。

操作系统识别可以使用Nmap和Xprobe2的扫描工具,Nmap是一种开源的工业级扫描工具,Xprobe2是一种操作系统扫描工具。

设备MAC地址会根据不同的设备厂商分配不同的段, 工控设备厂商大多也可以从MAC地址来区分。

下图MAC为西门子厂商 S7300 PLC真实设备

下图MAC为施耐德厂商 M580 PLC真实设备

下图MAC为GE厂商 GESRTP协议 PLC 真实设备

一般工控蜜罐,如服务蜜罐大多部署在linux vmware及docker容器里面,而仿真服务部署在windows系统上面。

下图为modbus协议PLC使用vmware,可判断为蜜罐服务

下图为该设备为modbus协议plc设备,但是通过tplink路由器进行报文路由,所以该 设备 mac地址变成tplink路由器mac地址。

(3)指纹特征识别

Openplc modbus蜜罐服务指纹特征识别:

Modbus plc真实工控设备一般会开放modbus 502端口, http 80/8080端口,snmp 161端口:

安装部署Openplc,并且阅读源码如下,分析蜜罐特征,可以看出openplc只实现了1-16功能码,而重要的设备信息功能码如报告从设备信息17功能码、获取设备信息43功能、施耐德获取cpu、工程等信息90私有功能码均未实现。

Plc Modbus协议指纹识别,所以我们可以构造17、43、90功能码去请求openplc,获取设备信息,均会返回非法功能码指纹,如下图所示:

openplc http协议指纹识别:

利用nmap 扫描工具对目标设备开放的端口和服务进行扫描识别,可以发现openplc默认开放了http 8080端口,浏览器访问http://ip:8080查看plc管理页面与真实工控plc设备不一样,并提取http指纹特征。

Conpot S7 协议 蜜罐服务指纹特征识别:

在shodan寻找工控蜜罐如下图所示,可通过nmap -p 102 --script s7-enumerate.nse 116.85.10.173 进行s7 plc资产探测验证,并获取以下数据报文。

通过阅读conpot s7comm源码,找到S7服务蜜罐通用特征如下所示

特征1:

如下图所示:

特征2:

通过阅读conpot s7蜜罐服务代码,发现S7返回的获取设备信息应用数据最后6个字节始终为 “\x00\x00\x00\x00\x00\x00”

但是特征1可以通过conpot 模板进行蜜罐特征快速简单修改,而特征2如果要修改,则需参照s7协议规约对源代码进行修改,我们采用指纹特征识别conpot s7蜜罐时候,则可以采用以上两种方式进行识别。

Conpot ENIP蜜罐服务指纹特征识别:

通过阅读conpot enip蜜罐服务代码,发现向设备发送63功能码获取设备信息,返回的数据device_status== \x60\x31 和device_state == \xff

其它工控蜜罐:

Conpot 中还包括其它工控服务程序,均可以结合工控协议规约及通过抓包分析,并与真实设备抓取的数据包进行比对分析,找出蜜罐特征。

其它蜜罐及仿真服务程序包括,conpot、openplc、CryPLH2、仿真程序包括modbus tester、Mod Rssim、snap7、opendnp3、qtester104、DNP3_testhaness、EtherNetIP Virtual等。

四、蜜罐反识别方法

通过对蜜罐部署方式及特征分析,如果我们部署蜜罐服务时候,可以考虑采用以下方法进行规避。

1.如果蜜罐服务要部署在外网,尽量避免使用云服务厂商提供的服务。

2.如果蜜罐服务部署在企业内网,尽量在蜜罐服务或者仿真程序前面部署一个vxworks系统的设备,并在上面开启端口转发服务,或者利用Qmenu模拟运行vxworks操作系统,使攻击者误以为扫描到的工控设备使用的是vxworks实时操作系统。

3.定期修改蜜罐内部特征,如conpot蜜罐模板信息,conpot源码中返回报文的协议特征。同一个ip蜜罐节点,尽量只开放如真实plc设备的端口和服务,如502、80、161等端口,避免开放过多及无效的应用端口,被攻击者快速识别蜜罐。

4.修改宿主机mac地址,尽可能修改成西门子、GE等工控设备的MAC地址,增加攻击者识别蜜罐的难度。

5.服务蜜罐尽可能实现协议规约必须的功能码,如施耐德plc的17、42、90信息获取功能码任何一个。

6.尽可能实现高交付服务蜜罐,也可以采用虚实结合部署方式进行部署,增加蜜罐识别难度。

五、蜜罐架构及系统业务

工控蜜罐系统架构如下图所示:

工控蜜罐系统业务如下图所示:

六、总结

蜜罐服务及系统使用场景较多,主要包括部署在互联网、企业内网、网络攻防竞赛平台中等。当部署在互联网上,可以收集资产探测系统的资产识别指纹,以及攻击者的针对漏洞的攻击行为,便于安全研究与分析;当部署在企业内网,可以做为威胁感知系统,捕获攻击者行为,触发告警系统,延缓真实设备被攻击的时间和风险;当部署在网络攻防竞赛系统里面,可以混淆真实设备,诱导攻击者入侵,增加比武竞赛难度。

一种工控蜜罐识别与反识别技术研究与应用实践相关推荐

  1. 工控蜜罐Conpot部署和入门及高级演变

    0×01 引言 蜜罐通常伪装成看似有利用价值的信息系统,吸引黑客攻击.由于蜜罐事实上并未对网络提供任何有价值的服务,所以任何对蜜罐的尝试都是可疑的.蜜罐中还可能装有监控软件,用以监视黑客入侵后的举动. ...

  2. linux系统工控软件,8种工控平台及工控平台的应用设计方案

    工控指的是工业自动化控制,主要利用电子电气.机械.软件组合实现.即是工业控制,或者是工厂自动化控制.主要是指使用计算机技术,微电子技术,电气手段,使工厂的生产和制造过程更加自动化.效率化.精确化,并具 ...

  3. 【精】反爬虫技术研究

    一.背景 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站, ...

  4. [纵横网络靶场社区]工控蜜罐日志分析

    西门子私有通信协议是S7COMM,题目要求分析出日志中针对西门子私有通信协议扫描最多的IP,分析日志文件发现针对S7COMM的扫描日志记录都带有s7字样. 所以只需要统计下带有s7字样的每一行中每个记 ...

  5. 解析金融反欺诈技术的应用与实践

    统计学分为两大部分,描述性统计学和推断性统计学.而描述性统计学在建模的时候往往是很重要而又容易被人忽略的一步, 而它的作用往往如下: 1.发现数据中的异常 2.通过分布图发现离群值点 3.检查数据缺失 ...

  6. 通过Android反编译技术研究国内陌生人社交即时通讯的技术方案

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/100 即时通讯IM类App分析 这两周对国内陌生人社交领域 ...

  7. 工控流量分析题+wireshark学习

    写在前面 暑假报名了工控比赛 所以要找些工控的题目来刷刷 正好比赛方提供的靶场有很多类似的题目 开始痛苦的学习过程... Wireshark Capture filter <Protocol n ...

  8. 工控安全,纵横网络靶场部分WP(一)

    纵横网络靶场部分 wp 前言 最近有了misc.二进制.web的一些基础后,准备开始工控安全的一些题目学习.目前做了几道靶场题目,发现主要题型还是和modbus等工控协议相关的流量分析.misc相关等 ...

  9. 工控计算机安全评估,工控系统信息安全的威胁发现及评估技术研究

    摘要: 工业控制系统(Industrial Control Systems,ICS)遍及石油.化工和电力等行业,随着信息化和工业化逐渐融合,使得工控系统内部通信网络逐渐与互联网互联互通.不可避免的打破 ...

最新文章

  1. Axure 8 window 下载,破解
  2. centos python2.7升级到3.7_centos系统升级python 2.7.3
  3. 中国呼吸道防护劳保用品市场投资效益与销售前景调研报告2022年
  4. CryEngine3 引擎非商业用途将免费
  5. Apollo进阶课程㊴丨Apollo安装过程概述
  6. 热水器是长期开着好还是要等到用的时候才开?
  7. 中upload依赖包_upload-labs writeup
  8. UVa 642 - Word Amalgamation
  9. 两个字符串日期怎么比较大小_面对家中两个孩子的争抢哭闹,那家长应该怎么处理才比较好呢?...
  10. SmartSvn遗漏.a文件的解决办法
  11. java使用easypoi实现word模板导出
  12. catia刨面命令_CATIA建模技巧之分割、剖切、右键属性
  13. Google账号注册失败 无法向手机发验证码
  14. 绿色到黄色到红色的颜色渐变实现
  15. littleVGL开发(11):任务系统(task)
  16. 网易云音乐实时数仓2.0进阶之路
  17. 以太网交换机的功能与特点
  18. 论文浅尝 | 探索用于归纳型知识图谱补全的关系语义
  19. Word文件打开的时候需要输入密码?
  20. jop怎么读音英语怎么说_job的意思在线翻译,解释job中文英文含义,短语词组,音标读音,例句,词源,同义词【澳典网ODict.Net】...

热门文章

  1. Swift可选类型(Optional)之星耀
  2. 萌娃人脸生成器 实践踩坑笔记
  3. 几行CSS让你的页面立体起来
  4. 关于Android短信拦截(二)
  5. Java List转Map时发生Duplicate key
  6. 科技,美学,人性——交互设计的十字路口
  7. SQL Server的时态和历史表
  8. 删除子文件夹[字典树 + go变量 + strings.builder的copyCheck()]
  9. 小程序任务栏「最近使用」变两行,张小龙说得对,这里确实不是「入口」
  10. 线下销售增长51%,荣耀靠的可不是把体验店装修的像Apple store