一种高交互SSH蜜罐实现方法与流程

文档序号:19383163发布日期:2019-12-11 00:37阅读:1581来源:国知局
本发明具体涉及一种高交互ssh蜜罐实现方法,属于网络信息安全中主动防御
技术领域
:。
背景技术
::ssh(secureshell)可用于远程登录会话和为其他网络服务提供安全性服务,现已成为企业生活中不可或缺的部分。随着该协议的广泛使用,针对该服务的恶意攻击行为也越来越多,给网络安全带来巨大的挑战。现如今,如何应对针对该服务的恶意攻击,采取合适的防护措施已成为ssh服务安全中重要研究课题。根据攻击者通过ssh服务对系统进行入侵的行为习惯,对攻击者攻击过程中的行为活动进行实时监控捕获,并对所提取的入侵行为了解攻击者所使用的攻击方法,掌握攻击动机,为安全管理人员提供科学有效地防御措施和方案。ssh服务安全防御是通过一些外在的工具或自身所具备的特性防止攻击者利用ssh服务对系统造成攻击破坏,使之沦为攻击者的工具。安全人员通常采用被动防御手段如防火墙、入侵检测系统等方法来阻止ssh服务攻击,同时还会使用一些安全工具软件如fail2ban、denyhosts来保护ssh服务。其中,fail2ban是利用相关正则表达式对系统日志进行匹配,若发现不寻常的日志信息时,如短时间内同一ip大量尝试ssh错误口令,fail2ban就会调用防火墙屏蔽该ip,并可以发送邮件通知系统管理员。denyhosts会分析sshd的日志文件,当发现重复的攻击时就会记录ip到/etc/hosts.deny文件中,从而达到自动屏蔽ip的功能。在这些被动防御中存在着功能欠缺、有局限性,只能防御已知攻击,无法对未知攻击进行防御,且不能对攻击者的攻击做详细了解分析。蜜罐技术的提出,有效解决了被动防御措施存在的缺陷和不足,安全研究人员依据该技术开发了一系列模拟ssh网络服务的中低交互蜜罐软件以适应层出不穷的ssh服务攻击威胁,如kojoney、kippo、cowrie等。这些ssh蜜罐达到了捕获攻击者入侵攻击的信息,实现了主要功能,但都是模拟ssh网络服务,交互度不高,容易被识破,无法全面对攻击者进行数据捕获,从而使得蜜罐作用价值不高。技术实现要素:本发明要解决的技术问题是,克服现有技术的缺陷,提供一种能够解决被动防御技术无法因谷底不断更新变化的ssh攻击,以及中低交互ssh蜜罐交互度不高、诱骗性不足,易被识破等缺陷,提高对ssh服务的安全防御能力的高交互ssh蜜罐实现方法。为解决上述技术问题,本发明采用的技术方案为:一种高交互ssh蜜罐实现方法,包括以下步骤:步骤a,对系统ssh端口进行连接,判断是否具有ssh服务,具有ssh服务进入到下一步骤;步骤b,利用logit函数和openssh中authctxt结构体在口令身份认证时对认证的用户名/密码进行捕获;步骤c,在口令认证成功后,利用ssh服务通过管道和用户处理交互会话模块对客户端数据处理的特性,对相关模块代码进行修改,从而完成对shell口令的记录;步骤d,对蜜罐系统流出流量进行控制,包括对外数据包限制和对外攻击包抑制两个过程;步骤e,针对蜜罐系统捕获的数据,利用javaweb技术进行分析处理展示。步骤b具体步骤包括:b1,将服务端的口令信息进行解密;b2,将口令存放到authctxt结构体中;b3,通过logit函数记录authctxt结构体中的用户名和密码;b4,将用户名和密码信息存储在记录文件中。步骤c具体步骤包括:c1,定义一个文件描述符变量;c2,初始化该文件描述符;c3,创建存放实时shell命令的记录文件,该文件应隐蔽安全;c4,记录攻击者屏幕输出数据并存放与记录文件中;c5,logout时关闭文件。步骤d中,对外数据包限制包括以下具体步骤:d1,清除iptables中原有规则;d2,设置外出数据包限制;d3,制定单位时间,即单位时间限制;d4,设置协议包的流出数据包阈值;d5,允许外部连接。步骤d中,对外攻击包抑制包括以下具体步骤:d6,从netfilter中获取外出数据包;d7,snort_inline在ip_queue模块指定位置注册函数;d8,数据包转发给这个函数分析处理;d9,进行特征库匹配;d10,处理数据包。步骤e具体步骤包括:e1:利用jdbc驱动包从数据库获取捕获数据;e2:对数据按照需求和分析进行分类;e3:分析处理攻击次数并展示,在展示中利用jquery框架进行图形显示;e4:各项数据统计,根据e3的结果获取各个时间区间ip,若ip不包含在字典中则累加至字典中,然后根据ip获取相应的数据,之后将数据存入文件中并提供下载查看链接;e5:根据e4结果对各项数据的数量进行比较,选取top数据通过json格式发送至前端,前端框架创建表格将数据展示在表格中;e6:在数据库中搜索ip,若存在,则将ip获取出来并通过百度地图api获取地理信息位置等数据,再根据步骤e4获取各项数据,其中包含了该ip所尝试的用户名、密码、shell命令,最后将一系列数据显示在前端页面中。步骤e1包括以下步骤:e11,加载jdbc驱动程序;e12,提供jdbc连接url;e13,创建数据库连接;e14,创建statement;e15,执行sql语句。步骤e3包括以下步骤:e31,制定时间区间;e32,获取数据时间并判断区间;e33,累计制定时间区间内数量与ip;e34,数据返回前端处理并显示。本发明的有益效果:本发明提供的一种高交互ssh蜜罐实现方法,利用蜜罐主动防御技术特点,解决传统被动防御存在无法防御未知攻击等不足;利用openssh自身相关特性,提高ssh蜜罐交互性,在真实性和诱骗性方面得到很好地提升,不容易被攻击者识破,提高了蜜罐价值;对openssh进行修改,实现对攻击者入侵信息的实时捕获,能够捕获到更多未知攻击,提升数据分析价值;利用web页面将数据分析结果展示出来,能够方便直观地观察数据,降低数据分析复杂度。附图说明图1是本发明捕获ssh攻击形成主动防御系统的实现流程示意图;图2是本发明系统设计模型框架示意图;图3是本发明监控捕获功能流程示意图;图4是本发明shell命令的捕获记录实现流程示意图;图5是本发明捕获用户名/密码信息示意图;图6是本发明shell命令实际操作示意图;图7是本发明shell命令捕获数据示意图;图8是本发明控制外出数据包示意图;图9是本发明数据分析展示效果图。具体实施方式下面结合附图对本发明作进一步描述,以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。如图1和图2所示,本发明提供的一种高交互ssh蜜罐实现方法:包括以下步骤:步骤一:对系统ssh端口进行尝试连接,判断是否具有ssh服务,具有ssh服务进入到步骤二。步骤二:利用logit函数和openssh中authctxt结构体在口令身份认证时对认证的用户名/密码进行捕获,具体操作步骤为:(1)服务端的口令信息解密;(2)口令存放到authctxt结构体中;(3)通过logit函数记录authctxt结构体中的用户名和密码;(4)将用户名和密码信息存储在记录文件中。捕获用户名/密码信息如图5所示。步骤三:ssh服务是通过管道等对客户端向服务器发送的信息进行处理,在口令认证成功后,利用ssh服务通过管道和用户处理交互会话模块对客户端数据处理的特性,对相关模块代码进行修改,从而完成对shell口令的记录。shell命令的捕获记录实现流程如图4所示,shell命令实际操作如图6所示,shell命令捕获数据如图7所示。其中channel作为基于连接层的一套逻辑实现,所有通信会话都由其完成,利用identifier保证信息准确送达具体应用。如图3所示,具体操作步骤为:(1)定义一个文件描述符变量;(2)初始化该文件描述符;(3)创建存放实时shell命令的记录文件,该文件应隐蔽安全;(4)记录攻击者屏幕输出数据并存放与记录文件中;(5)logout时关闭文件。步骤四:对蜜罐系统流出流量进行控制,可分为对外数据包限制和对外攻击包抑制两个步骤,控制外出数据包的流程如图8所示。步骤4.1:对于对外数据包限制,利用蜜网网关上的iptables对外出数据包的数量进行控制,具体操作步骤为:(1)清除iptables中原有规则;(2)设置外出数据包限制;(3)制定单位时间;即单位时间限制;(4)设置常见协议包的流出数据包阈值;都是常见协议包,如tcp、udp、icmp以及其他协议包;(5)允许外部连接。步骤4.2:对于外出攻击包抑制,利用蜜网网关上的snort_inline对外出有害数据包进行丢弃,具体操作步骤为:(1)从netfilter中获取外出数据包;(2)snort_inline在ip_queue模块指定位置注册函数;(3)数据包转发给这个函数分析处理;(4)进行特征库匹配;(5)处理数据包。步骤五:针对蜜罐系统捕获的数据,利用javaweb技术进行分析处理展示。操作处理有如下步骤。步骤5.1:利用jdbc驱动包从数据库获取捕获数据,具体操作步骤为:(1)加载jdbc驱动程序;(2)提供jdbc连接url;(3)创建数据库连接;(4)创建statement;(5)执行sql语句。步骤5.2:对数据按照需求和分析进行分类。步骤5.3:分析处理攻击次数并展示,在展示中利用jquery框架进行图形显示。具体操作步骤为:(1)制定时间区间;(2)获取数据时间并判断区间;(3)累计制定时间区间内数量与ip;(4)数据返回前端处理并显示。步骤5.4:各项数据统计,根据步骤5.3的结果获取各个时间区间ip,若ip不包含在字典中则累加至字典中,然后根据ip获取相应的数据,之后将数据存入文件中并提供下载查看链接。步骤5.5:根据步骤5.4结果对各项数据的数量进行比较,选取top数据通过json格式发送至前端,前端框架创建表格将数据展示在表格中。步骤5.6:在数据库中搜索ip,若存在,则将ip获取出来并通过百度地图api获取地理信息位置等数据,再根据步骤5.4获取各项数据,其中包含了该ip所尝试的用户名、密码、shell命令等。如图9所示,最后将一系列数据显示在前端页面中。本发明的功能测试实验是利用同一局域网中一台主机上的ssh客户端对系统进行ssh远程登录,然后查看各功能效果情况。为验证本发明的有效性,将采用以下操作进行功能测试:通过利用另一台主机ssh客户端对系统22端口连接并不断尝试口令认证,之后在输入正确口令后对系统任意键入shell命令。之后在系统中对外部网络发送数据包,其中包含各种常见协议包以及有害包,最后logout系统。在完成这些操作后,查看功能完成情况,实现效果如图所示。为验证本发明的优势,将本发明系统与下述几个ssh蜜罐进行比对:(1)kojoney蜜罐(使用python语言并基于twistedconch库编写,于2008年发布);(2)kippo蜜罐(可支持对一个文件系统目录的完全伪装,与2009年发布);(3)cowrie蜜罐(kippo改进版本,添加sftp功能和额外shell命令,于2014年发布)。蜜罐系统的检测性能可以用系统的正确响应率来衡量,正确响应率越高,表明性能优势越高,将本申请与现有技术进行比较,蜜罐响应性能检测结果如表1所示。表1由表1可见,本发明的ssh蜜罐系统诱骗性能优于其他三种蜜罐系统,这表明本发明系统实现方法是有效的。以上所述仅是本发明的优选实施方式,应当指出:对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1