安全基础 基于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+,以强制用户使用强密码。

基于SSH协议的网络攻击防御分析与研究

刘斌1马严1,2马跃2 (1.北京邮电大学信息网络中心,北京l00876:2.北京邮电大学计算机科学与技术学院,北京100876) 摘要:本文简单介绍了在不安全的网络上提供安全连接的ssH协议。从入侵...
  • a407603406
  • a407603406
  • 2014年03月10日 00:42
  • 1330

SSH基于密钥认证的原理

SSH的体系结构图如下:     传输层协议(The Transport Layer Protocol)提供服务器认证,数据机密性,信息完整性 等的支持;     用户认证协议(The Us...
  • qq_21794603
  • qq_21794603
  • 2017年05月08日 09:52
  • 761

安全的免密码ssh登录的简单介绍

经常使用scp命令实现跨服务器文件的传输,但是很头疼的是每次都要输入密码。通过ssh-keygen生成公钥拷贝到远程服务器上倒是不用输入密码了,但是有很大安全隐患。在网上查找,看到jianingy大牛...
  • cnmilan
  • cnmilan
  • 2014年06月25日 17:12
  • 1158

验证码短信接口受到恶意调用

验证码短信接口受到恶意调用
  • sir051223
  • sir051223
  • 2016年08月15日 20:49
  • 3130

实现安全的免密码ssh登录

实现安全的免密码ssh登录1、用ssh-keygen生成一对公私钥,命令如下ssh-keygen -t rsa回车会让你输入存放公私钥的路径和名称,默认存放在~/.ssh/目录下接下来输入一个口令,用...
  • netingcn
  • netingcn
  • 2007年07月19日 14:52
  • 5146

TheDAO周年祭--攻击事件回顾及区块链固有安全性分析

题记:若干年后,将来的新人类写《新史记》的时候,the DAO事件应该会是一个重要的篇章。由于区块链的不可篡改的特性和存证的特长,the DAO事件的细节被完整地保存了下来,包括攻防双方的在以太坊区块...
  • wxid2798226
  • wxid2798226
  • 2017年11月18日 20:22
  • 307

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

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

记一次服务器被恶意攻击的情况

今天上午,我正在维护一台Linux服务器,使用VNC Viewer远程桌面,突然看见桌面上一个控制台在自动换行,刚开始我还以为是眼花了,本来想继续干活,可是还没等鼠标点下去,又被打开一个控制台,继续输...
  • mycdsnstudy
  • mycdsnstudy
  • 2015年08月17日 00:12
  • 967

使用 wireshark 高效,准确地鉴别出入站的恶意流量

转载 http://shayi1983.blog.51cto.com/4681835/1598656 这篇博文实际上是 http://shayi1983.blog.51cto.c...
  • Rodney443220
  • Rodney443220
  • 2015年02月12日 14:08
  • 4438

日志审计-apache攻击日志分析

0x00前言 在我们部署Web应用中,往往会伴随着很多日志消息产生,例如iis、apache、nginx等Web容器往往会产生众多的日志消息。其中如果使用人工审阅这些消息,工作量实在太大了,另外还需要...
  • qq_29277155
  • qq_29277155
  • 2016年06月01日 16:21
  • 2547
收藏助手
不良信息举报
您举报文章:安全基础 基于SSH的恶意登录攻击分析
举报原因:
原因补充:

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