威胁检测之SSH暴力破解

bt0sea 系统安全 2019年10月30日发布
Favorite收藏

导语:暴力破解攻击是公有云最常见的攻击方式,根据某公有云统计数据发现,暴力破解占主机威胁数据的56%以上。

0x00、前言

暴力破解攻击是公有云最常见的攻击方式,根据某公有云统计数据发现,暴力破解占主机威胁数据的56%以上。平均到每个月大约有250万次之多,与此同时,再对比统计暴力破解成功的事件量,平均每月2500次,暴力破解成功率在0.1%。如果以主机为维度统计,暴力破解成功率就明显的提高了,大约在11%。暴力破解分布2

暴力破解分布2.png

通过上述数据分析,在公有云环境中,威胁检测产品需要对暴力破解攻击有足够的技术识别与防范。

然后,我们再从攻击者的角度分析:分别从国家和城市两个维度分析,我们发现黑客暴力破解基础设施大部分分布在中国(44%)、美国(20%)和荷兰(7%)。

ssh暴力破解攻击IP国家地域分析.pngssh暴力破解攻击IP国家地域分析

城市分布:绍兴(10.1%)、纽约(8.8%)、阿姆斯特丹(5.6%)、北京(5.6%)等。ssh暴力破解攻击IP城市地域分析

ssh暴力破解攻击IP城市地域分析.png

所以,我们在防护的时候,可以重点考虑地理分布。

0x01、如何检测

最原始的解决方案:在云主机上部署Denyhosts,DenyHosts是一个python写的脚本,常用来限制SSH登陆,通过监控系统日志,将超过错误次数的IP放入TCP Wrappers中禁止登陆。

优点:快速解决问题。缺点:无法做集中管理,无数据积累,无法做深度分析。

其次使用公有云提供的主机安全解决方案:目前公有云上比较流行的传统的检测方法是:通过主机安全Agent统计连接频率(可自定义频率,例如:1分钟内连接10次),冻结连接IP一段时间缓解(可自定义冻结时间,例如:10分钟)。

优点:有集中管理,有数据积累。缺点:为啥还有暴力破解成功的案例存在?

再高级点的使用机器学习的方法识别SSH暴力破解,那么为什么还需要使用机器学习统计方法来识别呢?我们发现,很多暴力破解成功的云主机都没有触发规则式的暴力破解检测,而是通过爆破程序检测出其设置的频率规则,慢速暴力破解攻击成功,这种破解大约累积到5000次以上,被破解成功率就能达到10%。

优点:有效的解决了规则带来的漏洞,缺点:目前检出率不是很高,大约在90%左右,还需要配合规则检测。

那么如何通过机器学习的方式来识别低频慢速暴力破解呢?

解决方案:多元高斯异常检测模。使用多元高斯模型可以使我们的算法自动捕获不同特征变量之间的相关性(正相关或者负相关),在组合不正常时将其标识为异常。

@1、数据源选择

可以通过外部网络连接(五元组),也可以选择收集登陆日志,但是为了更好的获得多维数据,建议还是从五元组开始建立每个用户外部连接状态(针对SSH端口的连接计数)

@2、建立登陆行为模型

2.1、高斯分布(正态分布)

异常检测的训练样本都是非异常样本,我们假设这些样本的特征服从高斯分布,在此基础上估计出一个概率模型,从而用该模型估计待测样本属于非异常样本的可能性。

高斯分布包含两个模型参数:均值,方差

2.2、多元高斯分布

训练集用来训练模型 p(x) ,验证集用来选择合适的错误临界点 ε (我们判断 p(x) < ε 时为异常数据),并通过计算查准率、召回率。

gaosi.png

0x02、如何防范

1、修改SSH服务默认端口

2、基线检测,通过分析整理CIS level 3有关OpenSSH服务安全检测项,做主机加固。

E76100CC-9ABC-493a-A7AD-0DB0A612213C.png

本文为 bt0sea 原创稿件,授权嘶吼独家发布,如若转载,请注明原文地址: https://www.4hou.com/system/21188.html
点赞 0
SSH
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论