[发明专利]一种基于SOAP服务模拟的物联网蜜网系统有效
申请号: | 201910680597.1 | 申请日: | 2019-07-25 |
公开(公告)号: | CN110391937B | 公开(公告)日: | 2022-03-04 |
发明(设计)人: | 张伟哲;何慧;方滨兴;王焕然;丁泽宇 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | H04L41/14 | 分类号: | H04L41/14;H04L41/0273;H04L9/40;H04L67/02;H04L67/06;H04L67/00 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 杨立超 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 soap 服务 模拟 联网 系统 | ||
1.一种基于SOAP服务模拟的物联网蜜网系统,其特征在于,所述系统包括三种类型蜜罐:基于CVE-2017-17215漏洞的模拟SOAP服务蜜罐、具有CVE-2017-17215漏洞的设备固件开发的真实SOAP服务蜜罐、多端口模拟SOAP服务蜜罐,
每种蜜罐采用Docker封装完成后,蜜网系统将蜜罐部署到多个物理节点上,每个物理节点上布设1至3个不同种类的蜜罐,每个物理节点支持单蜜罐部署,也支持多蜜罐部署,同时每个物理节点上还具有主控程序用来管理该物理节点上的各种蜜罐;
通过控制节点对各个物理节点进行管理和交互,使得蜜罐由一个个独立的个体组合为一个整体的蜜网系统;
由于模拟SOAP服务蜜罐的模拟细节有限,当该模拟SOAP服务蜜罐收到无法解析和处理的SOAP服务请求时,将请求转交至具有CVE-2017-17215漏洞的设备固件开发的真实SOAP服务蜜罐进行处理;
在控制节点使用脚本进行文件的分发和命令传输,获取蜜罐的回应消息并将其记录到输出日志中;控制脚本使用python多线程设计,利用paramiko库对ip列表的远程主机进行连接;脚本用于实现传输文件的功能,利用ssh密钥连接主机并执行给定的命令,实现蜜罐的开闭、主机系统监控任务;
所述基于CVE-2017-17215漏洞的模拟SOAP服务蜜罐中的CVE-2017-17215漏洞是指:HG532系列路由器提供不安全的SOAP服务用来进行设备升级,导致越权访问和远程代码注入;利用该漏洞向路由器UPnP服务监听的37215端口发送一个特殊构造的请求包,就可远程执行任意命令;
CVE-2017-17215漏洞信息如下:
该漏洞占用端口为:37215
该漏洞的请求路径为:/upnpdev.xml
/ctrlt/DeviceUpgrade_1
感染设备型号包括:B660、HG231f、HG531sV1、HG531V1、HG630、YAbox;
所述基于CVE-2017-17215漏洞的模拟SOAP服务蜜罐包括四个主要模块,分别为蜜罐核心模块、蜜罐守护进程类、蜜罐守护进程服务、蜜罐监视器;
蜜罐核心模块,即pot_core模块,是蜜罐的核心服务程序,用于提供模拟的带漏洞物联网服务,其又包含:soap服务模块soap_server、web服务模块webhook、日志模块log_server、恶意样本处理模块samples_deal,
其中soap服务模块soap_server为蜜罐守护进程类、蜜罐守护进程服务、蜜罐监视器提供外部接口start_honeypot函数,该函数打开日志服务器和SOAP服务器进行监听,同时设置定时器调用日志模块log_server的timer_handle_log_fun函数;soap服务模块soap_server调用web服务模块webhook中定义的handler和wsgiref.simple_server库中的make_server函数,在37215端口开启SOAP服务器模拟真实物联网设备的带漏洞SOAP服务,吸引黑客进行攻击;
日志模块log_server定义了一个UDPHandler用于监听soap服务模块soap_server打包为json格式发来的请求信息并对其分析,返回日志记录成功的消息;如果请求中发现了恶意样本下载,则调用恶意样本处理模块samples_deal中的wget_virus_in_url函数进行样本下载,日志模块log_server中的日志类型分为get,post和other,日志格式如下表所示:
web服务模块webhook中定义针对soap漏洞的handler函数,通过wsgi返回构造的虚假文件;对于cve-2017-17215漏洞而言,注入代码访问了web服务的37215端口,路径为/ctrlt/DeviceUpgrade_1,banner信息如cve-2017-17215漏洞banner格式表所示;在该部分web服务模块webhook中还定义了send_log函数用于向log_server发送打包为json格式的请求记录;该web服务模块webhook使用socket和日志服务器通信,等待其返回的消息,如果收到错误消息则重传,如果重传次数超过限制则会认为服务器已经宕机;
cve-2017-17215漏洞banner格式表如下:
恶意样本处理模块samples_deal负责恶意样本的下载和处理工作;其中wget_virus_in_url函数为外部提供了调用样本下载功能的接口;在函数中,通过正则表达式来提取下载的要素;当提取到下载资源信息后,调用download_virus_by_requests函数进行样本下载,该函数首先查找输出目录和样本名,如果样本名存在,则调用renaming_duplicate_virus函数对样本添加后缀进行样本的重命名;随后,函数调用requests库进行样本下载;如果样本下载成功,则进一步调用deeply_analyze函数进行深度分析,即对样本内容进行逐行分析判断是否有“小马下大马”的情况存在;该恶意样本处理模块samples_deal同时定义了clear_duplicate_sample函数通过调用md5sum函数计算样本的hash值来实现样本的去重;
以上部分的功能相互协作共同组成了蜜罐核心,完成了蜜罐的最基本功能,模拟了真实的物联网设备和服务;
蜜罐守护进程类,该类定义一个蜜罐守护进程基类Daemon,提供通过类的实例来控制蜜罐的接口;蜜罐守护进程类中函数daemonize用于Daemon实例的初始化,首先通过pidfile判重,之后刷新缓冲区,废弃标准流,最后通过atexit.register函数和signal.signal函数保证进程结束时移除pidfile;静态函数__sigterm_handler抛出SystemExit异常;start函数调用daemonize函数进行初始化,捕获运行时异常并输出错误信息;stop函数从pidfile获取进程号并将其kill;restart函数连续调用stop函数和start函数完成重启功能;
蜜罐守护进程服务,定义类MyDaemon和继承Daemon类,并在实例运行时调用core_service.start_honeypot函数开启蜜罐核心服务;在主函数中,创建了一个类MyDaemon的实例,并通过实例的start、stop、restart函数控制蜜罐守护进程和蜜罐核心的开启;在代码中还定义类PotCore,用于向外部提供守护进程的接口,通过调用subprocess.Popen函数调用主函数;即在外部并没有直接调用类MyDaemon的实例而是调用PotCore的实例,PotCore的实例通过自身方法调用MyDaemon的实例,实现间接调用;
蜜罐监视器,蜜罐监视器pot_monitor调用timer_handle_web_detect_fun函数来完成蜜罐功能的检查;该函数定时访问蜜罐模拟的服务,检测其运行状态,判断超时和连接错误等异常并在异常发生时调用PotCore类的对象进行重启。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910680597.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于时序性告警的聚类方法
- 下一篇:用于部署服务的方法和装置