安全基础 基于SSH的恶意登录攻击分析

转载 2007年10月10日 16:26:00

  近几年,在一些网络日志中出现了大量的基于SSH的恶意登录的攻击记录。本文将利用蜜罐(honeypot)陷阱对这类攻击进行分析,最后,本文提供了一些关于如何防范这类攻击的建议。

  蜜罐的使用方法研究

  位于新西兰的Honeynet联盟的分支机构:新西兰Honeynet联盟,主要致力于通过蜜罐技术来研究黑客的行为,攻击方法以及他们所使用的工具,从而改善网络和计算机系统的安全。蜜罐本身也是计算机系统,但和其它的计算机系统不同的是蜜罐是专门用于引诱黑客进行攻击的计算机系统。蜜罐通过装扮成其它有价值的计算机系统来使黑客对其进行攻击,以使这些攻击记录保存下来。有了这些攻击记录,我们可以对其进行分析,也可利用蜜罐来保护真正的计算机系统不受到攻击,也就是说让黑客去攻击蜜罐计算机系统,而不是真正的计算机系统,这就相当于计算机系统“影子”。

  为了研究发生在新西兰大学的网络攻击行为,我们已经在惠灵顿的维多利亚大学安装了一个蜜罐系统。这个蜜罐系统具有高度可交互性,这个系统在网络上就象其它正常的机器一样,黑客完全不会察觉他们所攻击的是蜜罐还是真正的计算机系统。我们可以通过这个蜜罐系统来监视所有从这个系统流出和流入的数据。另外,所有的系统事件都会被这个系统的日志所记录。

  这个系统运行在一个标准的RedHat 9 Linux的SSH服务器上,而且这个服务器可以通过Internet访问到。SSH可以使用户以加密的方式登录到另外一台计算机上。在发现遭遇到SSH恶意登录攻击后,我们通过安装蜜罐系统来防止这一切。我们使用这个系统将所有登录的用户名和密码记录了下来。这个系统在2006-7-11上线,在2006-8-1日停止使用。在这22天中,蜜罐系统被攻击了多次。我们通过对黑客的攻击记录进行分析,并推荐了一些可以改善SSH安全性的解决方案。

    SSH恶意登录分析

  我们在这部分将分析在7月11日至8月1日被蜜罐捕捉到的数据。这些数据完全来源于蜜罐的日志系统。这个日志系统截获了很多向服务器的登录请求信息,这其中包括日期、时间、IP地址、请求的结果(成功或失败)以及用于登录请求的帐户名和密码。下面是一个简单的登录请求日志。

以下是引用片段:
Jul 13 09:37:59 basta sshd[22308]: PW-ATTEMPT: fritz
Jul 13 09:37:59 basta sshd[22308]: Failed password for root from 10.0.160.14
 port 39529 ssh2
 
Jul 13 09:38:02 basta sshd[22310]: Illegal user fatacunike from 10.0.160.14
Jul 13 09:38:02 basta sshd[22310]: PW-ATTEMPT: fatacunike
Jul 13 09:38:02 basta sshd[22310]: Failed password for illegal user fatacunike
 from 10.0.160.14 port 40444 ssh2
 
  首先,我们来分析用于登录的帐户名。上面的日志只是攻击记录的一小部分,其中在这期间共有2741次不同的攻击尝试。这其中他们使用了一般的用户名、系统用户名以及按字母顺序进行排序的用户名。但我们发现,有15个帐户使用非常频繁。这些帐启如表1所示。这个表显示的帐户在一般的系统上大部分都存在,如root、admin、guest等。在图1将显示本系统中存在和不存在的帐户比例。
 
帐户名
尝试登录的次数
root
1049
admin
97
test
87
guest
40
mysql
31
info
30
oracle
27
postgres
27
testing
27
webmaster
27
paul
25
web
24
user
23
tester
22
pgsql
21
 
表1 频率最高的15个帐户
 
安全基础基于SSH的恶意登录攻击分析(2)
 
图1 存在和不存在的帐户的比例
 
  接下来,让我们看看他们进行恶意登录所使用的密码。攻击者使用的大多数密码都和帐户名有关。在这些数据中攻击者使用了3649个不同的密码。并不是每个用户都使用了这些密码。这些密码有的是连续的数字或字母,有的是按键盘顺序的字符(如’asdfg’)。还有一些更复杂的密码,如r00t或c@t@lin。表2显示了使用频率最高的15个密码。
 
密码
使用的次数
123456
331
Password
106
Admin
47
Test
46
36
12345
34
administrator
28
Linux
23
Root
22
test123
22
1234
21
123
20
Mysql
19
Apache
18
Master
18
 
表2 使用频率最高的15个密码

  然后我们分析了是谁在攻击蜜罐系统,以及这些攻击有什么规律。在这次攻击中有23个不同的IP进行恶意登录。这些攻击者有的攻击的次数并不多,但有的却是弃而不舍。表3显示了这23个IP的攻击情况。在这些IP中有10个IP的攻击次数小于50,有5个IP的攻击次数在170左右,还有8个IP的攻击次数在1450以上。图2显示了这些IP攻击次数分布图。

 
攻击次数
IP
< 50
10
50 <= x <= 200
5
> 200
8
 
表3 不同的IP攻击的次数
 
安全基础基于SSH的恶意登录攻击分析(3)
 
图2 不同的IP攻击次数分布图
 
  让我们更进一步地分析一下这些黑客是如何进行攻击的。有的黑客使用一个单独的帐启和一个和帐户名差不多的密码进行登录,然后又换一个帐户(如test/test)。还有一些黑客采用了不同的方法。如IP为10.0.179.148的黑客每一个帐户试了5个密码。这些被使用的密码是一些帐户名和数字的组合(如admin/admin1、admin/admin123、admin/)。而IP为10.0.105.52的黑客主要使用root进行尝试登录。他使用的密码涵盖的范围非常广,如(root/!@#, root/123abc, root/default)。
 
  为了了解黑客所使用的工具和攻击方法,我们测试了每个IP在两次登录尝试的平均间隔时间和变化。我们可以通过这些数据很容易地检测出黑客所使用的工具。如果我们得到的数据没有什么规律,那就说明黑客并没使用工具,只是手工进行登录尝试。图3显示了这些IP在两次登录尝试之间的间隔时间(单位是秒)。
 
安全基础基于SSH的恶意登录攻击分析(3)
 
图3
 
  从上图可以看出,前5个IP的登录间隔在2到4秒之间,这说明他们可能使用了黑客工具,为了不过于频繁登录而引起系统的注意,因此,将工具的攻击间隔设为2到4秒。而我们也可注意到10.0.192.15每7秒进行一次登录,这说明他可能是通过人工方式进行攻击的。从图3可以看出,大多数的黑客都使用了工具进行攻击。

  “成功”的恶意登录攻击

 
  在上面的分析中,我们只是分析了未成功的登录攻击。这些分析使我们长了不少见识,知道了黑客是怎样进行攻击的。但还有很多问题没解决。这些问题之一就是这些攻击是否是通过工具进行的。在7月2日,一名黑客成功地通过猜到的用户名和密码进入了蜜罐系统。被截获的数据将回答这些未解决的问题。
 
  首先让我们来看看黑客在成功登录蜜罐后做了什么。一但黑客进入蜜罐后,他们就开始以蜜罐系统作为跳板通过SSH扫描工具来扫描其它的SSH服务器。但由于蜜罐系统的网络输出已经用防火墙封死了。因此,扫描并未找到任何SSH服务器。
 
  在扫描后,黑客在蜜罐系统上安装了一个IRC服务端。黑客可以通过这个IRC服务端来控制被攻击的服务器。使用IRC工具控制服务器可比使用SSH进行登录方便多了。黑客可以通过这个工具同时控制很多这样的服务器。
 
  通过监视IRC数据流,我们发现黑客正在使用这个工具来扫描我们的B类网络。在几个小时之内,黑客通过这个工具扫描了4个B类网络,在这4个B类网络中包含了数千台SSH服务器。在扫描其间共使用了160,324个帐户和密码。这些用户名和密码和在攻击蜜罐系统时使用的用户名和密码类似,但它们的范围更广。
 
  建议
 
  在前几部分我们通过分析了解了黑客的一些企图和攻击方法。在这一部分让我们看看如何来防范他们的攻击。
其实有很多简单的方法可以阻止这些攻击。最直接的方法用是关闭daemon服务,这个服务在许多系统中默认是启动状态。当然,如果你不想这么做,那么还有其它的方法。
 
  你还可以使用Unix或Linux系统中的/etc/hosts.allow和/etc/hosts.deny文件来限制对daemon服务的访问。还可以在SSH服务器上安装一个防火墙,用于隔离内部和外部的网络。

  使SSH服务器只可以被指这的用户访问

 
  将SSH服务器的监听端口从22改为其它的端口。当然,这么做并不能防止服务器被攻击,但它可以降低发现SSH daemon服务的可能性,因为,一般的SSH扫描工具的默认端口都是22。
 
  更改登录验证的方式,即不使用密码进行登录。如果你没有这个条件,那就将密码设成强密码。
 
  SSH为我们提供了一种更安全的加密方法,通过这种加密方法可以有效地缓解这种攻击方式。这种方法是基于密钥的,也就是所谓私钥和公钥。公钥被放在服务器上,供登录用户访问。这个公钥只有和相应的私钥相匹配后成功才能登录。一但你使用了密钥,那么就只有自己才可以通过私钥进行登录,而黑客由于没有私钥,而且这些种私钥又很难猜测,因此,黑客的任何登录都会以失败告终。虽然大多数服务器在默认情况下都提供了密钥登录,但有些管理员并没有将基于密码的登录关闭,这就给黑客留了一个后门。因此,在配置服务器时,切记只启动密钥登录,而不要启动密码登录,这样才能万无一失。
 
  如果必须采用密码验证方式,那就将帐户名起得复杂一点。我们通过蜜罐系统观察到,大概有96.3%的默认帐户被猜到,一旦帐户被黑客猜到,那么黑客就已经将一只脚踏进了你的门。因此,在设置帐户时不要使用简单的名子,如’Peter’, ‘Mike’等,而要使用姓名的组合,如’seifer_chr’。这样可以降低帐户被黑客猜到的可能性。
 
  另外,这个’root’帐户在大多数服务上都存在。我们推荐你将这个用户关闭,而使用其它的帐户来管理服务器。
 
  黑客一般使用大多数系统都存在的帐户进行攻击,如ftp或mysql。如果这些帐户和系统帐户有什么联系的话,那将是非常危险的。所以我们建议在不需要这些帐户时,将FTP或MySQL以及其它服务关闭。
 
  除了需要复杂的帐户名外,拥有强壮的密码也非常重要。我们发现有很多服务器的密码就是帐户名后加一些数字,更有甚者密码和帐户名完全一样。当然,这可以是一些系统管理员或用户的习惯。我想最好的办法是在服务器安装一些工具软件,如passwd+,以强制用户使用强密码。

现代操作系统:安全

安全目标 从安全性角度来讲,计算机系统有3个主要目标: 数据保密性 数据完整性 系统可用性:没有人可以扰乱系统使之瘫痪,避免拒绝服务 如果有一台计算机作为Internet服务器,那么不断地发...
  • jinzhao1993
  • jinzhao1993
  • 2016年09月21日 23:14
  • 1920

恶意爬虫这样窥探、爬取、威胁你的网站

整个互联网的流量中,真人占比有多少? 80% ? 60% ? 50% ? 根据 Aberdeen Group 在近期发布的以北美几百家公司数据为样本的爬虫调查报告显示,2015 年网站流量中的...
  • bigsec
  • bigsec
  • 2016年12月19日 14:50
  • 3258

ssh安全远程登录的身份认证原理

概述SSH是Secure Shell(安全外壳)的简称。用户通过一个不能保证安全的网络环境远程登录到设备时,SSH可以利用加密和强大的认证功能提供安全保障,保护设备不受诸如IP地址欺诈、明文密码截取等...
  • brandohero
  • brandohero
  • 2013年01月07日 02:07
  • 1765

网站安全配置Nginx防止网站被攻击

网站安全配置(Nginx)防止网站被攻击(包括使用了CDN加速之后的配置方法)分类:服务器配置 标签:nginx 360网站卫士 CDN 10,216 views人浏览 网站被攻击是一个永恒不变的话...
  • u011078940
  • u011078940
  • 2016年05月16日 16:45
  • 7190

Linux服务器登陆安全设置,并使用ssh keys登陆

在ssh中使用密码验证是一个坏习惯,ssh keys允许你不用给远程服务器发送密码就可以进行身份验证,大大提高安全性。接下来提供一个linxu服务器配置ssh key的简单步骤 检查你服务器上的用户...
  • loophome
  • loophome
  • 2016年04月15日 20:27
  • 700

ssh恶意攻击防范

ssh恶意攻击防范 修改ssh登录用户以及端口 封锁ip SSH禁止10分钟内登陆失败次数多的IP地址ssh恶意攻击防范今天遇到了一个问题,布好了cacti之后使用了syslog插件,然后发现自己的搜...
  • a948099144
  • a948099144
  • 2016年05月15日 10:50
  • 1170

WEB安全编程(防止黑客攻击第一道关卡)

整理一: 文章从实际的 JSP 例子出发,尽力解释安全问题产生的原因。这些例子代码是本人初学 JSP,也是许多人在开始学习 JSP 时容易编写的问题代码。代码看起来并没有什么问题,但是往往存在巨大的...
  • CPTcpt123
  • CPTcpt123
  • 2014年05月02日 14:45
  • 1345

2200多家银行APP被盯上,海云安建议及时开展检测预防

据近期外媒报道,捷克软件公司 Avast 近日发现,一款新型 Android 恶意软件 Catelites Bot 伪装成 2200 多家银行(应用软件,利用“屏幕覆盖攻击”窃取用户银行账户与密码等...
  • imtik
  • imtik
  • 2017年12月27日 14:35
  • 60

Struts2 拦截器Interceptor实现防止恶意登录(登录限制)

一般网站为了防止有人恶意登录(未登录就直接访问后台页面),都会用拦截器Interceptor来限制登录。下边是一个拦截器登录限制的一个小例子,帮助理解和应用拦截器。 在拦截器中拦截的依据就是查看ses...
  • wyg_blog
  • wyg_blog
  • 2017年01月04日 17:31
  • 1223

短信验证码接口被恶意攻击怎么办?

短信接口验证码通常用于电商、手机APP、网上银行、社交论坛等互联网行业,通过短信验证码进行身份二次验证,确保用户身份真实有效。但是,最近有很多用户莫名收到各类注册短信、验证短信等,技术人员排查,发现是...
  • archer119
  • archer119
  • 2016年11月29日 21:16
  • 2022
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安全基础 基于SSH的恶意登录攻击分析
举报原因:
原因补充:

(最多只允许输入30个字)