本发明涉及一种蜜网蜜罐管理技术领域,尤其涉及一种基于web技术扁平化管理蜜罐、蜜网的实现装置,属于web技术领域和网络安全技术领域的结合。
背景技术:
蜜罐技术是当今互联网的防范技术之一,其特征是对攻击方进行欺骗的一种技术,而密网是由多个蜜罐组成的一个或多个防范网络区域。
蜜罐技术可作用于诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,延缓攻击者入侵速度等等。
密网当中的蜜罐环境错综复杂,其中蜜罐的用途更是五花八门,如有:高交互、低交互类型的蜜罐,利用vmware或者docker搭建的蜜罐,有不同操作系统的蜜罐,也有作用于诱饵或作用于监控告警的蜜罐等等。
web技术主要用于做网站开发,通过b/s模式实现的网络计算模式,由浏览器(显示层)、web服务器(逻辑层)、数据库(资源层)三层架构实现数据呈现和交互。
扁平化项目管理的优势:缩短距离、增宽幅度、简化流程,促进资源和信息共享,提高效能和效率,提高项目管理效率。
而现有技术中存在以下缺点:1.部署蜜罐的技术门槛较高,需要一定的技术人员手工搭建和部署,包括且不仅限于系统开发,网络,系统安全,漏洞开发等技术领域,2.开发成本高和耗费时间长,制作蜜罐及诱饵需要一定的人力物力,3.维护成本高且难以监管,局部蜜罐出现问题后难以定位,4.无法灵活变动,蜜罐中若有需求改动,需要技术人员手工去操作更新蜜罐。
技术实现要素:
鉴于以上所述,本发明要解决的问题是,即使是非技术人员,也能够部署蜜罐,界面化的操作省去了繁琐的命令行配置,并可以对蜜罐进行统一的管理和监控,对蜜罐的信息、资源、场景用途,及所在的局域网或外网的位置一目了然,除此之外还可在web界面当中实现对蜜罐的备份还原。
为了解决上述技术问题,本发明采用如下技术方案:基于web技术扁平化管理蜜罐、蜜网的实现装置,包括web蜜罐管理前端界面、php后端、guacamole后端、python后端、mysql数据库和系统组件;
所述web蜜罐管理前端界面和php后端的交互;所述php后端与guacamole后端和python后端均数据交互连接,将python后端与系统组件进行交互,系统组件包括多个蜜网,蜜网包括多个蜜罐;所述mysql数据库与php后端实现交互;所述php后端包括php数据处理层;guacamole后端包括远程服务实现层,python后端包括python蜜罐实现层;
所述php数据处理层用于接收记录web蜜罐管理前端界面发起的蜜罐请求并进行处理;
所述mysql数据库用于将php数据处理层处理后的蜜罐请求信息进行存储更新,
所述python蜜罐实现模块用于定时轮训需执行任务的蜜罐,判断是否存在待执行的任务;并调用系统组件接口实现任务,并向php数据处理层定时推送任务执行进度,php数据处理层若收到任务已完成的更新请求,则修改mysql数据库任务进度及状态,并返回完成的状态码;
所述远程服务实现层用于收到连接请求后将web蜜罐管理前端界面推送的蜜罐信息传送至php数据处理层,php数据处理层查询mysql数据库获取的数据后向远程服务实现层返回蜜罐连接信息及状态码,远程服务实现层实现对蜜罐的web远程访问功能;
所述web蜜罐管理前端界面包括蜜罐详情模块、蜜罐服务管理模块和蜜罐远程访问模块;所述蜜罐详情模块与蜜罐服务管理模块和蜜罐远程访问模块均连接;
所述蜜罐详情模块用于新建、开启、关闭、重置蜜罐、修改蜜罐服务端口任务;
所述蜜罐服务管理模块用于通过php后端、guacamole后端、python后端和数据库实现蜜罐服务管理;
所述蜜罐远程访问模块用于通过php后端、guacamole后端、python后端和数据库实现对蜜罐的web远程访问功能和对蜜罐的快照创建和恢复操作。
优选地,所述蜜罐详情模块用于用于新建、开启、关闭、重置蜜罐、修改蜜罐服务端口任务的方法为,通过web蜜罐管理前端界面进入到蜜罐详情模块,点击新建蜜罐后弹出操作层,选择蜜罐镜像,自定义蜜罐名称后点击确定,web蜜罐管理前端界面发送蜜罐请求给php数据处理层,php数据处理层收到蜜罐请求后在蜜罐信息表中记录蜜罐数据,并将任务状态字段设为:待部署;python蜜罐实现模块获取到待部署的蜜罐后,调用系统组件程序开始部署蜜罐,并定时回调php数据处理层更新蜜罐进度,php数据处理层收到请求后会判断数据是部署中、还是部署完成,若是部署中则更新mysql数据库中蜜罐信息表的任务进度,若是部署完成则更新mysql数据库中蜜罐信息表的蜜罐状态,若蜜罐状态为:运行中,当前任务为空。
优选地,所述蜜罐远程访问模块实现对蜜罐的web远程访问功能的具体方法为:通过web蜜罐管理前端界面进入到蜜罐详情模块,点击远程访问按钮进入到蜜罐远程访问模块,web蜜罐管理前端界面会自动发起websocket远程连接请求,远程服务实现层收到连接请求后将web蜜罐管理前端界面推送的蜜罐信息传送至php数据处理层,php数据处理层查询mysql数据库获取的数据后向远程服务实现层返回蜜罐连接信息及状态码,远程服务实现层实现对蜜罐的web远程访问功能,并和web蜜罐管理前端界面成功建立websocker连接向其发送交互数据,此时web蜜罐管理前端界面已展示当前蜜罐虚拟机的界面。
优选地,所述蜜罐远程访问模块实现对蜜罐的快照创建和恢复操作的具体方法为:通过web蜜罐管理前端界面进入到蜜罐详情模块,点击远程访问按钮进入到蜜罐远程访问模块,点击创建或恢复快照,web前端向php数据处理层发起任务请求,php数据处理层收到请求后修改mysql数据库将蜜罐任务修改为:待创建/恢复快照。
优选地,所述蜜罐服务管理模块的实现服务管理方法具体为:通过web蜜罐管理前端界面进入到蜜罐详情模块,点击配置,进入蜜罐服务器管理模块,根据蜜罐服务数据列表,点击开启或关闭对蜜罐服务进行管理。
优选地,所述mysql数据库的建立包括以下步骤:
s01:建立mysql数据库:建立蜜罐信息表、蜜罐服务类型表、蜜罐镜像模板表和蜜罐服务类型模板表;
具体的:建立蜜罐信息表,包括字段:id,蜜罐名,蜜罐ip,蜜罐类型,系统类型,任务状态,任务类型。
建立蜜罐蜜罐服务类型表,包括字段,id,关联蜜罐id,服务名,服务类型,服务端口,协议。
建立蜜罐模板表,包括字段:id,模板名称,模板服务,蜜罐类型,系统类型。
建立蜜罐服务类型模板表,包含字段:id,关联蜜模板id,服务名,服务类型,服务端口,协议。
s02:建立蜜罐镜像模板,录入蜜罐镜像模板数据;
(1)准备不同操作系统的虚拟机,如linux版本包含不仅限于centos,ubuntu,debian,windows版本不仅限于windows7,8.1,10,windowsserver2008,2012,2016等等。
(2)建立centos7mysql蜜罐,进入虚拟机安装mysql服务设置自启,开放3306服务端口,安装蜜罐监控程序,打包虚拟机镜像,完毕。
(3)建立windows10rdp蜜罐,进入虚拟机安装rdp服务,开放3389服务端口,安装蜜罐监控程序,打包虚拟机镜像,完毕。
(4)录入初始蜜罐模板数据
如蜜罐模板表:
row1:1,linuxmysql蜜罐,mysql服务,高交互蜜罐,linux系统
row2:2,windowsrdp蜜罐,rdp服务,高交互蜜罐,windows系统
蜜罐服务模板表:
row1:1,mysql服务,mysql,3306,tcp协议
row2:2,rdp服务,rdp,3389,tcp协议
准备不同操作系统的虚拟机,建立蜜罐,进入虚拟机安装服务设置自启,开放服务端口,安装蜜罐监控程序,打包虚拟机镜像,然后录入初始蜜罐模板数据。
本发明还包括交互接口,具体为实现web蜜罐管理前端界面与php后端、guacamole后端、python后端逻辑处理的交互接口,接口如下:
1.获取蜜罐信息接口,获取mysql数据库中蜜罐表的数据整合并返回前端展示
2.获取蜜罐服务类型接口,获取mysql数据库中蜜罐服务表的数据整合并返回前端展示
3.设置蜜罐任务接口,mysql数据库中记录蜜罐任务状态及任务类型;
其中,任务状态包括:无,待执行,执行中,失败
任务类型包括:新建蜜罐,删除蜜罐,新增蜜罐服务,删除蜜罐服务,建立蜜罐快照,恢复蜜罐快照。
优选地,所述蜜罐的任务包括任务状态和任务类型;任务状态包括:无,待执行,执行中,失败;任务类型包括:新建蜜罐,删除蜜罐,新增蜜罐服务,删除蜜罐服务,建立蜜罐快照和恢复蜜罐快照。
优选地,所述python蜜罐实现模块自动轮训数据库中蜜罐的任务状态,判断是否存在待执行的任务,若存在新建蜜罐任务类型,则复制虚拟机镜像,导入、生成虚拟机,等待虚拟机构建完成后,设置ip地址池设置虚拟机ip,及虚拟机标识码,完成后更新mysql数据库的蜜罐表,写入蜜罐ip,任务类型改为无,任务状态改为无。
优选地,所述python蜜罐实现模块自动轮训数据库中蜜罐的任务状态,判断是否存在待执行的任务,若存在删除蜜罐任务类型,则根据虚拟机标识,删除虚拟机,删除该虚拟机占用的ip地址,等待虚拟机删除完成后,删除mysql数据库的蜜罐表和蜜罐服务表的记录。
优选地,所述python蜜罐实现模块自动轮训数据库中蜜罐的任务状态,判断是否存在待执行的任务,若存在新建蜜罐服务任务类型,则根据虚拟机标识,在中间层虚拟机新建与该蜜罐服务的映射关系,完成后,更新mysql数据库的蜜罐服务表中的数据。
与现有技术相对比,本发明的有益效果如下:
(1)易于管理,数据信息化
本发明提供的将蜜罐相关数据统一在界面上展示,所以,管理人员在页面清楚的看到蜜罐的信息,如:类型、服务、ip地址、系统等等,无需再另行记录。在建立庞大的蜜网结构时,信息化数据的展示作用越能体现。
(2)操作简便,降低技术成本
本发明提供的装置提供界面化的操作,提供如部署蜜罐,删除蜜罐,蜜罐服务管理,蜜罐快照管理,web远程访问功能,在界面上就能对蜜罐执行操作,减少部署和维护蜜罐时所需要的技术成本。
(3)本发明提供的装置使得非技术人员,也能够部署蜜罐,界面化的操作省去了繁琐的命令行配置,并可以对蜜罐进行统一的管理和监控,对蜜罐的信息、资源、场景用途,及所在的局域网或外网的位置一目了然,除此之外还可在web界面当中实现对蜜罐的备份还原。
(4)本发明提供的装置包括web蜜罐管理前端界面、php后端、guacamole后端、python后端、mysql数据库,其上述几个模块的数据交互,使得本发明可以实现蜜罐服务管理和实现对蜜罐的web远程访问功能和对蜜罐的快照创建和恢复操作;同时前端界面也可以完成新建、开启、关闭、重置蜜罐、修改蜜罐服务端口任务,方法简单,操作方便,同时也减少了部署和维护蜜罐的成本。
附图说明
图1为本发明提供的整体技术架构示意图;
图2为蜜罐详情模块的功能交互流程图;
图3为蜜罐详情模块的数据交互流程图;
图4为前端界面主要功能单元划分示意图;
图5为蜜罐远程访问实现流程图。
具体实施方式
下面结合附图,对本发明的具体实施方式作详细的说明。
如图1-5所示,本发明采用如下技术方案:基于web技术扁平化管理蜜罐、蜜网的实现装置,包括web蜜罐管理前端界面、php后端、guacamole后端、python后端、mysql数据库和系统组件;
所述web蜜罐管理前端界面和php后端的交互;所述php后端与guacamole后端和python后端均数据交互连接,将python后端与系统组件进行交互,系统组件包括多个蜜网,蜜网包括多个蜜罐;所述mysql数据库与php后端实现交互;所述php后端包括php数据处理层;guacamole后端包括远程服务实现层,python后端包括python蜜罐实现层;
所述php数据处理层用于接收记录web蜜罐管理前端界面发起的蜜罐请求并进行处理;
所述mysql数据库用于将php数据处理层处理后的蜜罐请求信息进行存储更新,
所述python蜜罐实现模块用于定时轮训需执行任务的蜜罐,判断是否存在待执行的任务;并调用系统组件接口实现任务,并向php数据处理层定时推送任务执行进度,php数据处理层若收到任务已完成的更新请求,则修改mysql数据库任务进度及状态,并返回完成的状态码;
所述远程服务实现层用于收到连接请求后将web蜜罐管理前端界面推送的蜜罐信息传送至php数据处理层,php数据处理层查询mysql数据库获取的数据后向远程服务实现层返回蜜罐连接信息及状态码,远程服务实现层实现对蜜罐的web远程访问功能;
所述web蜜罐管理前端界面包括蜜罐详情模块、蜜罐服务管理模块和蜜罐远程访问模块;所述蜜罐详情模块与蜜罐服务管理模块和蜜罐远程访问模块均连接;
所述蜜罐详情模块用于新建、开启、关闭、重置蜜罐、修改蜜罐服务端口任务;
所述蜜罐服务管理模块用于通过php后端、guacamole后端、python后端和数据库实现蜜罐服务管理;
所述蜜罐远程访问模块用于通过php后端、guacamole后端、python后端和数据库实现对蜜罐的web远程访问功能和对蜜罐的快照创建和恢复操作。
作为优选实施方式,本发明提供的蜜罐详情模块用于用于新建、开启、关闭、重置蜜罐、修改蜜罐服务端口任务的方法为,通过web蜜罐管理前端界面进入到蜜罐详情模块,点击新建蜜罐后弹出操作层,选择蜜罐镜像,自定义蜜罐名称后点击确定,web蜜罐管理前端界面发送蜜罐请求给php数据处理层,php数据处理层收到蜜罐请求后在蜜罐信息表中记录蜜罐数据,并将任务状态字段设为:待部署;python蜜罐实现模块获取到待部署的蜜罐后,调用系统组件程序开始部署蜜罐,并定时回调php数据处理层更新蜜罐进度,php数据处理层收到请求后会判断数据是部署中、还是部署完成,若是部署中则更新mysql数据库中蜜罐信息表的任务进度,若是部署完成则更新mysql数据库中蜜罐信息表的蜜罐状态,若蜜罐状态为:运行中,当前任务为空。
作为优选实施方式,本发明提供的所述蜜罐远程访问模块实现对蜜罐的web远程访问功能的具体方法为:通过web蜜罐管理前端界面进入到蜜罐详情模块,点击远程访问按钮进入到蜜罐远程访问模块,web蜜罐管理前端界面会自动发起websocket远程连接请求,远程服务实现层收到连接请求后将web蜜罐管理前端界面推送的蜜罐信息传送至php数据处理层,php数据处理层查询mysql数据库获取的数据后向远程服务实现层返回蜜罐连接信息及状态码,远程服务实现层实现对蜜罐的web远程访问功能,并和web蜜罐管理前端界面成功建立websocker连接向其发送交互数据,此时web蜜罐管理前端界面已展示当前蜜罐虚拟机的界面。
作为优选实施方式,本发明提供的所述蜜罐远程访问模块实现对蜜罐的快照创建和恢复操作的具体方法为:通过web蜜罐管理前端界面进入到蜜罐详情模块,点击远程访问按钮进入到蜜罐远程访问模块,点击创建或恢复快照,web前端向php数据处理层发起任务请求,php数据处理层收到请求后修改mysql数据库将蜜罐任务修改为:待创建/恢复快照。
作为优选实施方式,本发明提供的蜜罐服务管理模块的实现服务管理方法具体为:通过web蜜罐管理前端界面进入到蜜罐详情模块,点击配置,进入蜜罐服务器管理模块,根据蜜罐服务数据列表,点击开启或关闭对蜜罐服务进行管理。
作为优选实施方式,本发明提供的所述mysql数据库的建立包括以下步骤:
s01:建立mysql数据库:建立蜜罐信息表、蜜罐服务类型表、蜜罐镜像模板表和蜜罐服务类型模板表;
具体的:建立蜜罐信息表,包括字段:id,蜜罐名,蜜罐ip,蜜罐类型,系统类型,任务状态,任务类型。
建立蜜罐蜜罐服务类型表,包括字段,id,关联蜜罐id,服务名,服务类型,服务端口,协议。
建立蜜罐模板表,包括字段:id,模板名称,模板服务,蜜罐类型,系统类型。
建立蜜罐服务类型模板表,包含字段:id,关联蜜模板id,服务名,服务类型,服务端口,协议。
s02:建立蜜罐镜像模板,录入蜜罐镜像模板数据;
(1)准备不同操作系统的虚拟机,如linux版本包含不仅限于centos,ubuntu,debian,windows版本不仅限于windows7,8.1,10,windowsserver2008,2012,2016等等。
(2)建立centos7mysql蜜罐,进入虚拟机安装mysql服务设置自启,开放3306服务端口,安装蜜罐监控程序,打包虚拟机镜像,完毕。
(3)建立windows10rdp蜜罐,进入虚拟机安装rdp服务,开放3389服务端口,安装蜜罐监控程序,打包虚拟机镜像,完毕。
(4)录入初始蜜罐模板数据
如蜜罐模板表:
row1:1,linuxmysql蜜罐,mysql服务,高交互蜜罐,linux系统
row2:2,windowsrdp蜜罐,rdp服务,高交互蜜罐,windows系统
蜜罐服务模板表:
row1:1,mysql服务,mysql,3306,tcp协议
row2:2,rdp服务,rdp,3389,tcp协议
准备不同操作系统的虚拟机,建立蜜罐,进入虚拟机安装服务设置自启,开放服务端口,安装蜜罐监控程序,打包虚拟机镜像,然后录入初始蜜罐模板数据。
本发明还包括交互接口,具体为实现web蜜罐管理前端界面与php后端、guacamole后端、python后端逻辑处理的交互接口,接口如下:
获取蜜罐信息接口,获取mysql数据库中蜜罐表的数据整合并返回前端展示
获取蜜罐服务类型接口,获取mysql数据库中蜜罐服务表的数据整合并返回前端展示
设置蜜罐任务接口,mysql数据库中记录蜜罐任务状态及任务类型;
其中,任务状态包括:无,待执行,执行中,失败
任务类型包括:新建蜜罐,删除蜜罐,新增蜜罐服务,删除蜜罐服务,建立蜜罐快照,恢复蜜罐快照。
作为优选实施方式,本发明提供的所述蜜罐的任务包括任务状态和任务类型;任务状态包括:无,待执行,执行中,失败;任务类型包括:新建蜜罐,删除蜜罐,新增蜜罐服务,删除蜜罐服务,建立蜜罐快照和恢复蜜罐快照。
作为优选实施方式,本发明提供的所述python蜜罐实现模块自动轮训数据库中蜜罐的任务状态,判断是否存在待执行的任务,若存在新建蜜罐任务类型,则复制虚拟机镜像,导入、生成虚拟机,等待虚拟机构建完成后,设置ip地址池设置虚拟机ip,及虚拟机标识码,完成后更新mysql数据库的蜜罐表,写入蜜罐ip,任务类型改为无,任务状态改为无。
作为优选实施方式,本发明提供的python蜜罐实现模块自动轮训数据库中蜜罐的任务状态,判断是否存在待执行的任务,若存在删除蜜罐任务类型,则根据虚拟机标识,删除虚拟机,删除该虚拟机占用的ip地址,等待虚拟机删除完成后,删除mysql数据库的蜜罐表和蜜罐服务表的记录。
作为优选实施方式,本发明提供的python蜜罐实现模块自动轮训数据库中蜜罐的任务状态,判断是否存在待执行的任务,若存在新建蜜罐服务任务类型,则根据虚拟机标识,在中间层虚拟机新建与该蜜罐服务的映射关系,完成后,更新mysql数据库的蜜罐服务表中的数据。
实施例1
本发明提供的php后端、guacamole后端、python后端作为蜜罐管理系统,蜜罐管理系统部署方法的整体架构如图1所示;
s1:部署数据处理层环境,创建linux系统,安装apachephp软件及依赖,部署web蜜罐系统项目。
s2:部署蜜罐实现层环境,安装python环境及依赖,放置蜜罐镜像。
s3:部署数据存储层环境,创建linux系统,安装mysql软件及依赖,建立数据库,导入已有数据库结构。
s4:部署蜜罐远程服务层环境,创建linux系统,安装apache-guacamole库。
s5:四层环境配置在可互联的一处局域网下。
本发明提供的蜜罐详情模块的实现流程;前端界面进入到蜜罐详情模块,该模块中会有定时请求数据的javascript页面脚本,向数据处理层发送请求,数据处理层收到请求后会查询数据库,然后将数据处理成一定的格式返回给页面,其中该请求会带有蜜罐ip、蜜罐名称、蜜罐描述、蜜罐资源占用,蜜罐状态等信息,页面收到数据后,重新渲染页面列表(完)。
本发明提供的蜜罐实现模块实现方法为:蜜罐实现层定时获取任务状态为:待部署的蜜罐后,调用系统组件程序开始部署蜜罐,并定时回调数据处理层更新蜜罐进度,数据处理层收到请求后会判断数据是部署中、还是部署完成,若是部署中则更新数据库的蜜罐信息表的任务进度,若是部署完成则更新数据库的蜜罐信息表的蜜罐状态为:运行中,当前任务为空(完)。
本发明提供的蜜罐服务管理模块:个别蜜罐模板会自带一些服务,当我不需要使用时可以对服务进行操作,前端界面点击配置,进入蜜罐服务器管理模块,这里会蜜罐服务数据列表,如图5,点击开启或关闭即可对蜜罐服务进行管理。
本发明提供的蜜罐远程访问模块:远程访问实现层使用guacamole库搭建,实现web中ssh、rdp服务代理,远程访问实现层需和各蜜网下的蜜罐保持同一网段。
前端界面进入到蜜罐详情模块,点击远程访问按钮进入到蜜罐远程访问模块,web前端会自动发起websocket远程连接请求,远程访问实现层收到后推送由前端带来的蜜罐信息获取到数据处理层,以蜜罐的连接信息,数据处理层查询数据库得到蜜罐的连接信息返回给远程访问实现层,由远程访问实现层实现对蜜罐的web远程访问功能,并和前端成功建立websocker连接向其发送交互数据,此时前端已展示当前蜜罐虚拟机的界面。
蜜罐的备份还原,蜜罐远程访问模块中可实现对蜜罐的快照创建和恢复操作,交互流程为前端界面进入到蜜罐详情模块,点击远程访问按钮进入到蜜罐远程访问模块,点击创建或恢复快照,web前端向数据处理层发起任务请求,数据处理层收到请求后修改数据库将蜜罐任务修改为:待创建/恢复快照。
蜜罐实现层定时轮训需执行任务的蜜罐,并调用系统组件接口实现任务,并向数据处理层定时推送任务执行进度,数据处理层若收到任务已完成的更新请求,则修改数据库任务进度及状态,并返回完成的状态码。
本发明提供的装置包括web蜜罐管理前端界面、php后端、guacamole后端、python后端、mysql数据库,其上述几个模块的数据交互,使得本发明可以实现蜜罐服务管理和实现对蜜罐的web远程访问功能和对蜜罐的快照创建和恢复操作;同时前端界面也可以完成新建、开启、关闭、重置蜜罐、修改蜜罐服务端口任务,方法简单,操作方便,同时也减少了部署和维护蜜罐的成本。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。