温故:

还是老套路,温故而知新,在上一篇文章中我和大家分享了“代理服务器”,主要带大家了解了到底什么是代理服务器,什么是正向代理和反向代理。而且我还提到了nginx反向代理服务器的作用,因此大家可以对nginx做一些了解,为了节省大家的时间我在文章最后的‘拓展’模块中给大家带来了一部分关于nginx的安装示例。关于“代理服务器”的内容链接如下:​​代理服务器​

知新:

一、什么是蜜罐

今天咱们要说的内容是:蜜罐。我不知道大家对这个概念有没有一些了解,起码在我写这篇文章之前我都不知道这个东西,由此可见这个知识真的是学无止境。说说为什么要给大家讲这个知识点,很偶然的机会,今早交接班的时候突然听到了这个名词,感觉很有意思,所以简单查了一下,就来和大家分享;

蜜罐技术本质上是一种对攻击方进行欺骗的​​技术​​​,通过布置一些作为诱饵的主机、​​网络服务​​​或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。蜜罐好比是情报收集系统。蜜罐好像是故意让人攻击的目标,引诱​​黑客​​​前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过​​窃听​​黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。

首先我们要弄清楚一台蜜罐和一台没有任何防范措施的计算机的区别,虽然这两者都有可能被入侵破坏,但是本质却完全不同,蜜罐是​​网络管理员​​经过周密布置而设下的“黑匣子”,看似漏洞百出却尽在掌握之中,它收集的入侵数据十分有价值;而后者,根本就是送给入侵者的礼物,即使被入侵也不一定查得到痕迹……因此,蜜罐的定义是:“蜜罐是一个安全资源,它的价值在于被探测、攻击和损害。”

设计蜜罐的初衷就是让黑客入侵,借此收集证据,同时隐藏真实的服务器地址,因此我们要求一台合格的蜜罐拥有这些功能:发现攻击、产生警告、强大的记录能力、欺骗、协助调查。另外一个功能由管理员去完成,那就是在必要时候根据蜜罐收集的证据来起诉入侵者。

通过上面这段话的讲解,我觉得大家基本上已经知道是怎么回事了。蜜罐是一台存在多种漏洞的计算机,而且管理员清楚它身上有多少个漏洞,这就像狙击手为了试探敌方狙击手的实力而用枪支撑起的钢盔,蜜罐被入侵而记录下入侵者的一举一动,是为了管理员能更好的分析广大入侵者都喜欢往哪个洞里钻,今后才能加强防御。

二、涉及的问题

蜜罐是用来给黑客入侵的,它必须提供一定的漏洞,但是我们也知道,很多漏洞都属于“高危”级别,稍有不慎就会导致系统被渗透,一旦蜜罐被破坏,入侵者要做的事情是管理员无法预料的。例如,一个入侵者成功进入了一台蜜罐,并且用它做“跳板”(指入侵者远程控制一台或多台被入侵的计算机对别的计算机进行入侵行为)去攻击别人,那么这个损失由谁来负责?设置一台蜜罐必须面对三个问题:设陷技术、隐私、责任。设陷技术关系到设置这台蜜罐的管理员的技术,一台设置不周全或者隐蔽性不够的蜜罐会被入侵者轻易识破或者破坏,由此导致的后果将十分严重。

由于蜜罐属于记录设备,所以它有可能会牵涉到隐私权问题,如果一个企业的管理员恶意设计一台蜜罐用于收集公司员工的活动数据,或者偷偷拦截记录公司网络通讯信息,这样的蜜罐就已经涉及法律问题了,所以要把这个东西用对了地方,不要乱用。还有一点是要注意的,不是说你觉得你懂这个东西了,你就可以去部署它,我希望你能考虑清楚两点:第一是你的技术能否支持?第二是如果失败,后果你能能否承担得起?对于管理员而言,最倒霉的事情就是蜜罐被入侵者成功破坏了。有人也许会认为,既然蜜罐是故意设计来“牺牲”的,那么它被破坏当然合情合理,用不着小题大做吧。对,蜜罐的确是用来“受虐”的,但是它同时也是一台连接网络的计算机,如果你做的一台蜜罐被入侵者攻破并“借”来对某大学服务器进行攻击,因此引发的损失恐怕只能由你来承担了。还有一些责任是谁也说不清的,例如,你做的一台蜜罐不幸引来了Slammer、​​Sasser​​、Blaster等大名鼎鼎的“爬虫类”病毒而成了传播源之一,那么这个责任谁来负担?

既然使用蜜罐能有那么多好处,那么大家都在自己家里做个蜜罐,岂不是能最大程度防范黑客?有这个想法的读者请就此打住!蜜罐虽然在一定程度上能帮管理员解决分析问题,但它并不是防火墙,相反地,它是个危险的入侵记录系统。蜜罐被狡猾的入侵者反利用来攻击别人的例子也屡见不鲜,只要管理员在某个设置上出现错误,蜜罐就成了打狗的肉包子。而一般的家庭用户电脑水平不可能达到专业水平,让他们做蜜罐反而会引火烧身

总之:这个东西就是一把双刃剑,玩得好了那么你成功的把黑客耍了;玩得砸了,那么你就是帮了黑客了,说是叛徒也不为过。所以呢我个人的建议就是技术不到家的话,果断放弃,别给自己添麻烦。就像我工作的机场这边,一般只有“网安”部门才去研究这些,没事别给自己玩废了。

三、类型

实系统蜜罐

实系统蜜罐是最真实的蜜罐,它运行着真实的系统,并且带着真实可入侵的漏洞,属于最危险的漏洞,但是它记录下的入侵信息往往是最真实的。这种蜜罐安装的系统一般都是最初的,没有任何SP补丁,或者打了低版本SP补丁,根据管理员需要,也可能补上了一些漏洞,只要值得研究的漏洞还存在即可。然后把蜜罐连接上网络,根据网络扫描频繁度来看,这样的蜜罐很快就能吸引到目标并接受攻击,系统运行着的记录程序会记下入侵者的一举一动,但同时它也是最危险的,因为入侵者每一个入侵都会引起系统真实的反应,例如被​​溢出​​​、​​渗透​​、夺取权限等。

这个真实版的蜜罐在我看来就有点像“玩火”,玩好了就像最近网上比较火的“打铁花”一样,美极了;玩砸了,说不准就把什么东西烧着了,总之慎行!

伪系统蜜罐

什么叫伪系统呢?不要误解成“假的系统”,它也是建立在真实系统基础上的,但是它最大的特点就是“平台与漏洞非对称性”。

大家应该都知道,世界上操作系统不是只有Windows一家而已,在这个领域,还有​​Linux​​​、​​Unix​​​、OS2、​​BeOS​​​等,它们的核心不同,因此会产生的漏洞缺陷也就不尽相同,简单的说,就是很少有能同时攻击几种系统的漏洞代码,也许你用LSASS溢出漏洞能拿到Windows的权限,但是用同样的手法去溢出Linux只能徒劳。根据这种特性,就产生了“伪系统蜜罐”,它利用一些工具程序强大的模仿能力,伪造出不属于自己平台的“漏洞”,入侵这样的“漏洞”,只能是在一个程序框架里打转,即使成功“渗透”,也仍然是程序制造的梦境——系统本来就没有让这种漏洞成立的条件,谈何“渗透”?实现一个“伪系统”并不困难,Windows平台下的一些​​虚拟机​​程序、Linux自身的脚本功能加上第三方工具就能轻松实现,甚至在Linux/Unix下还能实时由管理员产生一些根本不存在的“漏洞”,让入侵者自以为得逞的在里面瞎忙。实现跟踪记录也很容易,只要在后台开着相应的记录程序即可。

这种蜜罐的好处在于,它可以最大程度防止被入侵者破坏,也能模拟不存在的漏洞,甚至可以让一些Windows​​蠕虫​​攻击Linux——只要你模拟出符合条件的Windows特征!但是它也存在坏处,因为一个聪明的入侵者只要经过几个回合就会识破伪装,另者,编写脚本不是很简便的事情,除非那个管理员很有耐心或者十分悠闲。

四、应用实例

迷惑入侵者,保护服务器

一般的客户/服务器模式里,浏览者是直接与​​网站服务器​​​连接的,换句话说,整个网站服务器都暴露在入侵者面前,如果服务器安全措施不够,那么整个网站数据都有可能被入侵者轻易毁灭。但是如果在客户/服务器模式里嵌入蜜罐,让蜜罐作为服务器角色,真正的网站服务器作为一个内部网络在蜜罐上做网络​​端口映射​​,这样可以把网站的安全系数提高,入侵者即使渗透了位于外部的“服务器”,他也得不到任何有价值的资料,因为他入侵的是蜜罐而已。虽然入侵者可以在蜜罐的基础上跳进内部网络,但那要比直接攻下一台外部服务器复杂得多,许多水平不足的入侵者只能望而却步。蜜罐也许会被破坏,可是不要忘记了,蜜罐本来就是被破坏的角色。

在这种用途上,蜜罐不能再设计得漏洞百出了。蜜罐既然成了内部服务器的保护层,就必须要求它自身足够坚固,否则,整个网站都要拱手送人了 。

抵御入侵者,加固服务器

入侵与防范一直都是热点问题,而在其间插入一个蜜罐环节将会使防范变得有趣,这台蜜罐被设置得与内部​​网络服务器​​一样,当一个入侵者费尽力气入侵了这台蜜罐的时候,管理员已经收集到足够的攻击数据来加固真实的服务器。

采用这个策略去布置蜜罐,需要管理员配合监视,否则入侵者攻破了第一台,就有第二台接着承受攻击了……这种方式其实和第一种是类似的,都是将蜜罐打造成了一个坚固的防御系统。

诱捕网络罪犯

这是一个相当有趣的应用,当管理员发现一个普通的客户/服务器模式网站服务器已经牺牲成肉鸡的时候,如果技术能力允许,管理员会迅速修复服务器。那么下次呢?既然入侵者已经确信自己把该服务器做成了肉鸡,他下次必然还会来查看战果,难道就这样任由他放肆?一些企业的管理员不会罢休,他们会设置一个蜜罐模拟出已经被入侵的状态,做起了姜太公。同样,一些企业为了查找恶意入侵者,也会故意设置一些有不明显漏洞的蜜罐,让入侵者在不起疑心的情况下乖乖被记录下一切行动证据,有些人把此戏称为“监狱机”,通过与电信局的配合,可以轻易揪出IP源头的那双黑手。

 

计算机网络之“蜜罐”_蜜罐

五、数据收集及设置方法 

1、收集:​数据收集​​​是设置蜜罐的另一项技术挑战。蜜罐监控者只要记录下进出系统的每个数据包,就能够对黑客的所作所为一清二楚。蜜罐本身上面的日志文件也是很好的数据来源。但日志文件很容易被攻击者删除,所以通常的办法就是让蜜罐向在同一网络上但防御机制较完善的远程​​系统日志​​服务器发送日志备份。(务必同时监控日志服务器。如果攻击者用新手法闯入了服务器,那么蜜罐无疑会证明其价值。)

2、设置方法:设置蜜罐并不难,只要在外部因特网上有一台计算机运行没有打上补丁的微软Windows或者Red Hat Linux即行。因为黑客可能会设陷阱,以获取计算机的日志和审查功能,你就要在计算机和因特网连接之间安置一套​​网络监控系统​​,以便悄悄记录下进出计算机的所有流量。然后只要坐下来,等待攻击者自投罗网。

不过,设置蜜罐并不是说没有风险。这是因为,大部分安全遭到危及的系统会被黑客用来攻击其它系统。这就是下游责任(downstream liability),由此引出了蜜网(honeynet)这一话题。

                                               答疑(什么是蜜网)

蜜网是指另外采用了技术的蜜罐,从而以合理方式记录下黑客的行动,同时尽量减小或排除对因特网上其它系统造成的风险。建立在反向​​防火墙​​后面的蜜罐就是一个例子。防火墙的目的不是防止入站连接,而是防止蜜罐建立出站连接。不过,虽然这种方法使蜜罐不会破坏其它系统,但同时很容易被黑客发现。

蜜罐领域最让人兴奋的发展成果之一就是出现了虚拟蜜网。​​虚拟计算机​​​网络运行在使用VMware或User-Mode Linux等虚拟计算机系统的单一机器之上。​​虚拟系统​​​使你可以在单一​​主机系统​​上运行几台虚拟计算机(通常是4到10台)。虚拟蜜网大大降低了成本、机器占用空间以及管理蜜罐的难度。此外,虚拟系统通常支持“挂起”和“恢复”功能,这样你就可以冻结安全受危及的计算机,分析攻击方法,然后打开TCP/IP连接及系统上面的其它服务。

 

 

 

                                                 拓展

Nginx 安装

系统平台:CentOS release 6.6 (Final) 64位。

一、安装编译工具及库文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

二、首先要安装 PCRE

PCRE 作用是让 Nginx 支持 Rewrite 功能。

1、下载 PCRE 安装包,下载地址: ​​http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz​

[root@bogon src]# cd /usr/local/src/
[root@bogon src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

计算机网络之“蜜罐”_网络安全_02

2、解压安装包:

[root@bogon src]# tar zxvf pcre-8.35.tar.gz

3、进入安装包目录

[root@bogon src]# cd pcre-8.35

4、编译安装 

[root@bogon pcre-8.35]# ./configure
[root@bogon pcre-8.35]# make && make install

5、查看pcre版本

[root@bogon pcre-8.35]# pcre-config --version

计算机网络之“蜜罐”_网络_03

安装 Nginx

1、下载 Nginx,下载地址:​​https://nginx.org/en/download.html​

[root@bogon src]# cd /usr/local/src/
[root@bogon src]# wget http://nginx.org/download/nginx-1.6.2.tar.gz

计算机网络之“蜜罐”_网络安全_04 2、解压安装包

[root@bogon src]# tar zxvf nginx-1.6.2.tar.gz

3、进入安装包目录

[root@bogon src]# cd nginx-1.6.2

4、编译安装

[root@bogon nginx-1.6.2]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
[root@bogon nginx-1.6.2]# make
[root@bogon nginx-1.6.2]# make install

5、查看nginx版本

[root@bogon nginx-1.6.2]# /usr/local/webserver/nginx/sbin/nginx -v

计算机网络之“蜜罐”_蜜罐_05

到此,nginx安装完成。


Nginx 配置

创建 Nginx 运行使用的用户 www:

[root@bogon conf]# /usr/sbin/groupadd www 
[root@bogon conf]# /usr/sbin/useradd -g www www

配置nginx.conf ,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容

 

[root@bogon conf]#  cat /usr/local/webserver/nginx/conf/nginx.conf

user www www;
worker_processes 2; #设置值和CPU核心数一致
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}
http
{
  include mime.types;
  default_type application/octet-stream;
  log_format main  '$remote_addr - $remote_user [$time_local] "$request" '
               '$status $body_bytes_sent "$http_referer" '
               '"$http_user_agent" $http_x_forwarded_for';
  
#charset gb2312;
     
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
     
  sendfile on;
  tcp_nopush on;
  keepalive_timeout 60;
  tcp_nodelay on;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  gzip on; 
  gzip_min_length 1k;
  gzip_buffers 4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types text/plain application/x-javascript text/css application/xml;
  gzip_vary on;
 
  #limit_zone crawler $binary_remote_addr 10m;
 #下面是server虚拟主机的配置
 server
  {
    listen 80;#监听端口
    server_name localhost;#域名
    index index.html index.htm index.php;
    root /usr/local/webserver/nginx/html;#站点目录
      location ~ .*\.(php|php5)?$
    {
      #fastcgi_pass unix:/tmp/php-cgi.sock;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
    {
      expires 30d;
  # access_log off;
    }
    location ~ .*\.(js|css)?$
    {
      expires 15d;
   # access_log off;
    }
    access_log off;
  }

}

检查配置文件nginx.conf的正确性命令:

[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx -t

计算机网络之“蜜罐”_服务器_06


启动 Nginx

Nginx 启动命令如下:

[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx

计算机网络之“蜜罐”_网络安全_07


访问站点

从浏览器访问我们配置的站点ip:

计算机网络之“蜜罐”_蜜罐_08