返回列表 发帖

解析计算机蜜罐技术


解析计算机蜜罐技术
        一、从影片特技到蜜罐技术
  《特洛伊》里庞大的希腊舰队、《终结者2》里随意改变形体的“液体金属”、《侏罗纪公园》里满地乱跑的恐龙们、《黑客帝国》里的“子弹时间”……随着计算机技术的不断发展,越来越多的电脑特技被应用在电影领域,不需要工资的虚拟演员不知辛劳地日夜工作,这些电脑技术使得导演可以构思现实中不可能存在的情节环境,也减少了影片开支。但是,在计算机的信息安全领域里,网络管理员要面对的是黑客真枪实干的入侵破坏,难道在电脑技术大量应用的今天,安全领域却得不到一点援助?答案是有的,它就是在安全领域里代替网络管理员上阵的“虚拟演员”——蜜罐技术。
  蜜罐,或称Honeypot,与应用于电影的特技相比,它并不神秘——所谓蜜罐,就是一台不作任何安全防范措施而且连接网络的计算机,但是与一般计算机不同,它内部运行着多种多样的数据记录程序和特殊用途的“自我暴露程序”——要诱惑贪嘴的黑熊上钩,蜂蜜自然是不可少的。在入侵者的角度来看,入侵到蜜罐会使他们的心情大起大落——从一开始偷着乐骂管理员傻帽到最后明白自己被傻帽当成猴子耍的过程。
  二、为什么要使用蜜罐
  《终结者2》里阿诺让约翰把自己放入熔炉,《特洛伊》里Achilles被王子射杀,战争片里的机枪扫射,甚至《黑衣人》里外星人发射的核弹毁灭了北极!如果这一切是真实的话,我们的明星已经成为墙上的照片了,拍一部片要死多少人?况且,我们只有一个地球,值得为了一部影片炸掉某个地区?所以人们必须采用电脑特技完成这些不能真实发生的剧情。同样,管理员也不会为了记录入侵情况而让入侵者肆意进入服务器搞破坏,所以蜜罐出现了。
  前面说过了,蜜罐是一台存在多种漏洞的计算机,而且管理员清楚它身上有多少个漏洞,这就像狙击手为了试探敌方狙击手的实力而用枪支撑起的钢盔,蜜罐被入侵而记录下入侵者的一举一动,是为了管理员能更好的分析广大入侵者都喜欢往哪个洞里钻,今后才能加强防御。
  另一方面是因为防火墙的局限性和脆弱性,因为防火墙必须建立在基于已知危险的规则体系上进行防御,如果入侵者发动新形式的攻击,防火墙没有相对应的规则去处理,这个防火墙就形同虚设了,防火墙保护的系统也会遭到破坏,因此技术员需要蜜罐来记录入侵者的行动和入侵数据,必要时给防火墙添加新规则或者手工防御。
  三、深入蜜罐
  既然使用蜜罐能有那么多好处,那么大家都在自己家里做个蜜罐,岂不是能最大程度防范黑客?有这个想法的读者请就此打住!蜜罐虽然在一定程度上能帮管理员解决分析问题,但它并不是防火墙,相反地,它是个危险的入侵记录系统。蜜罐被狡猾的入侵者反利用来攻击别人的例子也屡见不鲜,只要管理员在某个设置上出现错误,蜜罐就成了打狗的肉包子。而一般的家庭用户电脑水平不可能达到专业水平,让他们做蜜罐反而会引火烧身——蜜罐看似简单,实际却很复杂。虽然蜜罐要做好随时牺牲的准备,可是如果它到最后都没能记录到入侵数据,那么这台蜜罐根本就是纯粹等着挨宰的肉鸡了,蜜罐就复杂在此,它自身需要提供让入侵者乐意停留的漏洞,又要确保后台记录能正常而且隐蔽的运行,这些都需要专业技术,如果蜜罐能随便做出来,我们在家里也能拍摄《黑客帝国》了——故意开着漏洞却没有完善的记录处理环境的服务器不能称为蜜罐,它只能是肉鸡。
  所以,我们必须了解蜜罐,它到底是什么样的?
  1.蜜罐的定义
  首先我们要弄清楚一台蜜罐和一台没有任何防范措施的计算机的区别,虽然这两者都有可能被入侵破坏,但是本质却完全不同,蜜罐是网络管理员经过周密布置而设下的“黑匣子”,看似漏洞百出却尽在掌握之中,它收集的入侵数据十分有价值;而后者,根本就是送给入侵者的礼物,即使被入侵也不一定查得到痕迹……因此,蜜罐的定义是:“蜜罐是一个安全资源,它的价值在于被探测、攻击和损害。”
  设计蜜罐的初衷就是让黑客入侵,借此收集证据,同时隐藏真实的服务器地址,因此我们要求一台合格的蜜罐拥有这些功能:发现攻击、产生警告、强大的记录能力、欺骗、协助调查。另外一个功能由管理员去完成,那就是在必要时候根据蜜罐收集的证据来起诉入侵者。
  2.涉及的法律问题
  蜜罐是用来给黑客入侵的,它必须提供一定的漏洞,但是我们也知道,很多漏洞都属于“高危”级别,稍有不慎就会导致系统被渗透,一旦蜜罐被破坏,入侵者要做的事情是管理员无法预料的,例如,一个入侵者成功进入了一台蜜罐,并且用它做“跳板”(指入侵者远程控制一台或多台被入侵的计算机对别的计算机进行入侵行为)去攻击别人,那么这个损失由谁来负责?设置一台蜜罐必须面对三个问题:设陷技术、隐私、责任。
  设陷技术关系到设置这台蜜罐的管理员的技术,一台设置不周全或者隐蔽性不够的蜜罐会被入侵者轻易识破或者破坏,由此导致的后果将十分严重。
  由于蜜罐属于记录设备,所以它有可能会牵涉到隐私权问题,如果一个企业的管理员恶意设计一台蜜罐用于收集公司员工的活动数据,或者偷偷拦截记录公司网络通讯信息,这样的蜜罐就已经涉及法律问题了。
  对于管理员而言,最倒霉的事情就是蜜罐被入侵者成功破坏了。有人也许会认为,既然蜜罐是故意设计来“牺牲”的,那么它被破坏当然合情合理,用不着小题大做吧。对,蜜罐的确是用来“受虐”的,但是它同时也是一台连接网络的计算机,如果你做的一台蜜罐被入侵者攻破并“借”来对某大学服务器进行攻击,因此引发的损失恐怕只能由你来承担了。还有一些责任是谁也说不清的,例如,你做的一台蜜罐不幸引来了Slammer、Sasser、Blaster等大名鼎鼎的“爬虫类”病毒而成了传播源之一,那么这个责任谁来负担?
  3.蜜罐的类型

  世界上不会有非常全面的事物,蜜罐也一样。根据管理员的需要,蜜罐的系统和漏洞设置要求也不尽相同,蜜罐是有针对性的,而不是盲目设置来无聊的,因此,就产生了多种多样的蜜罐……
  3.1.实系统蜜罐
  实系统蜜罐是最真实的蜜罐,它运行着真实的系统,并且带着真实可入侵的漏洞,属于最危险的漏洞,但是它记录下的入侵信息往往是最真实的。这种蜜罐安装的系统一般都是最初的,没有任何SP补丁,或者打了低版本SP补丁,根据管理员需要,也可能补上了一些漏洞,只要值得研究的漏洞还存在即可。然后把蜜罐连接上网络,根据目前的网络扫描频繁度来看,这样的蜜罐很快就能吸引到目标并接受攻击,系统运行着的记录程序会记下入侵者的一举一动,但同时它也是最危险的,因为入侵者每一个入侵都会引起系统真实的反应,例如被溢出、渗透、夺取权限等。
  3.2.伪系统蜜罐
  什么叫伪系统呢?不要误解成“假的系统”,它也是建立在真实系统基础上的,但是它最大的特点就是“平台与漏洞非对称性”。
  大家应该都知道,世界上操作系统不是只有Windows一家而已,在这个领域,还有Linux、Unix、OS2、BeOS等,它们的核心不同,因此会产生的漏洞缺陷也就不尽相同,简单的说,就是很少有能同时攻击几种系统的漏洞代码,也许你用LSASS溢出漏洞能拿到Windows的权限,但是用同样的手法去溢出Linux只能徒劳。根据这种特性,就产生了“伪系统蜜罐”,它利用一些工具程序强大的模仿能力,伪造出不属于自己平台的“漏洞”,入侵这样的 “漏洞”,只能是在一个程序框架里打转,即使成功“渗透”,也仍然是程序制造的梦境——系统本来就没有让这种漏洞成立的条件,谈何“渗透”?实现一个“伪系统”并不困难,Windows平台下的一些虚拟机程序、Linux自身的脚本功能加上第三方工具就能轻松实现,甚至在Linux/Unix下还能实时由管理员产生一些根本不存在的“漏洞”,让入侵者自以为得逞的在里面瞎忙。实现跟踪记录也很容易,只要在后台开着相应的记录程序即可。
  这种蜜罐的好处在于,它可以最大程度防止被入侵者破坏,也能模拟不存在的漏洞,甚至可以让一些Windows蠕虫攻击Linux——只要你模拟出符合条件的Windows特征!但是它也存在坏处,因为一个聪明的入侵者只要经过几个回合就会识破伪装,另者,编写脚本不是很简便的事情,除非那个管理员很有耐心或者十分悠闲。
  4.使用你的蜜罐
  既然蜜罐不是随随便便做来玩的,管理员自然就不会做个蜜罐然后让它赋闲在家,那么蜜罐做来到底怎么用呢?
  4.1.迷惑入侵者,保护服务器
  一般的客户/服务器模式里,浏览者是直接与网站服务器连接的,换句话说,整个网站服务器都暴露在入侵者面前,如果服务器安全措施不够,那么整个网站数据都有可能被入侵者轻易毁灭。但是如果在客户/服务器模式里嵌入蜜罐,让蜜罐作为服务器角色,真正的网站服务器作为一个内部网络在蜜罐上做网络端口映射,这样可以把网站的安全系数提高,入侵者即使渗透了位于外部的“服务器”,他也得不到任何有价值的资料,因为他入侵的是蜜罐而已。虽然入侵者可以在蜜罐的基础上跳进内部网络,但那要比直接攻下一台外部服务器复杂得多,许多水平不足的入侵者只能望而却步。蜜罐也许会被破坏,可是不要忘记了,蜜罐本来就是被破坏的角色。
  在这种用途上,蜜罐不能再设计得漏洞百出了。蜜罐既然成了内部服务器的保护层,就必须要求它自身足够坚固,否则,整个网站都要拱手送人了。
  4.2.抵御入侵者,加固服务器
  入侵与防范一直都是热点问题,而在其间插入一个蜜罐环节将会使防范变得有趣,这台蜜罐被设置得与内部网络服务器一样,当一个入侵者费尽力气入侵了这台蜜罐的时候,管理员已经收集到足够的攻击数据来加固真实的服务器。
  采用这个策略去布置蜜罐,需要管理员配合监视,否则入侵者攻破了第一台,就有第二台接着承受攻击了……
  4.3.诱捕网络罪犯
  这是一个相当有趣的应用,当管理员发现一个普通的客户/服务器模式网站服务器已经牺牲成肉鸡的时候,如果技术能力允许,管理员会迅速修复服务器。那么下次呢?既然入侵者已经确信自己把该服务器做成了肉鸡,他下次必然还会来查看战果,难道就这样任由他放肆?一些企业的管理员不会罢休,他们会设置一个蜜罐模拟出已经被入侵的状态,做起了姜太公。同样,一些企业为了查找恶意入侵者,也会故意设置一些有不明显漏洞的蜜罐,让入侵者在不起疑心的情况下乖乖被记录下一切行动证据,有些人把此戏称为“监狱机”,通过与电信局的配合,可以轻易揪出IP源头的那双黑手。
  四、结语
  随着网络入侵类型的多样化发展,蜜罐也必须进行多样化的演绎,否则它有一天将无法面对入侵者的肆虐。这也对网络管理员的技术能力有了更高的要求,因为蜜罐 ——这个活跃在安全领域的虚拟演员,它的一举一动,都是通过你来设计的,我们无法让蜜罐像T-X那样变化无常,但是,至少要防止我们设计的阿诺再次被T- X踏断脖子注入反叛指令。

解析计算机蜜罐技术

下面引用由爱在夕阳间2005/07/24 06:05pm 发表的内容:
楼主,可别让入侵者知道你使用蜜罐,他会愤怒的
哈,偶好怕怕啊~~

TOP

解析计算机蜜罐技术

楼主,可别让入侵者知道你使用蜜罐,他会愤怒的

TOP

解析计算机蜜罐技术

呵呵~      我喜欢用直钩钓鱼~

TOP

解析计算机蜜罐技术

借贴续发


搭建一个基于*nix系统的蜜罐网络相对说来需要比较多系统维护和网络安全知识的基础,但是做一个windows系统的蜜罐(下面简称winpot)的门槛就比较低,而且大部分朋友都会M$的select & click :),今天我们就一起尝试搭建一个windows下的蜜罐系统
由于win和*nix系统不一样,我们很难使用有效的工具来完整的追踪入侵者的行为,因为win下有各式各样的远程管理软件(VNC,remote-anything),而对于这些软件,大部分杀毒软件是不查杀他们的,而我们也没有象LIDS那样强大的工具来控制Administrator的权限,相对而言,winpot的风险稍微大了点,而且需要花更加多的时间和精力去看管他,没办法,门槛低了,风险当然就会相对高了。
OK,开始
先介绍一下我们需要的软件
vpc Virtual pc,他是一个虚拟操作系统的软件,当然你也可以选择vmware.
ActivePerl-5.8.0.805-MSWin32-x86.msi windows下的perl解析器
evtsys_exe.zip 一个把系统日志发送到log服务器的程序
comlog101.zip 一个用perl写的偷偷记录cmd.exe的程序,不会在进程列表中显示,因为入侵者运行的的确是cmd.exe :)
Kiwi_Syslog_Daemon_7 一个很专业的日志服务器软件
norton antivirus enterprise client 我最喜欢的杀毒软件,支持win2k server。当然,如果你觉得其他的更加适合你,你有权选择
ethereal-setup-0.9.8.exe Ethereal的windows版本,Ethereal是*nix下一个很出名的sniffer,当然,如果你已经在你的honeynet中布置好了
sniffer,这个大可不必了,但是本文主要还是针对Dvldr 蠕虫的,而且ethereal的decode功能很强,用他来获取irc MSG很不错的
WinPcap_3_0_beta.exe ethereal需要他的支持。
md5sum.exe windows下用来进行md5sum校验的工具
绿色警戒防火墙 对入侵者做限制
windows 2000 professional的ISO镜象 用vpc虚拟操作系统的时候需要用到他
除了windows 2000 professional的ISO镜象,本文涉及的所有程序都可以在郑州大学网络安全园下载的到
http://secu.zzu.edu.cn


Dvldr蠕虫简介
他是一个利用windows 2000/NT弱口令的蠕虫。该蠕虫用所带的字典暴力破解随机生成的ip的机器,如果成功,则感染机器,并植入VNC修改版
本,并向一个irc列表汇报已经感染主机的信息,同时继续向其他机器感染。可以访问郑州大学网络安全园或者关于他更详细的信息。
一:使用VPC安装一个win2k pro,具体的安装方法本文就省略了,打上所有的补丁,只留一个漏洞,就是dvldr蠕虫需要的administrator的空
密码。
二:安装norton antivirus enterprise client,升级到最新的病毒库,并启动实时监控
三:用cmdlog替换cmd.exe程序,把comlog101.zip解压缩后有五个文件cmd.exe,cmd101.pl,COMLOG.txt,MD5.txt,README.txt,其中cmdlog.txt和
readme.txt都是说明文件,md5.txt包含这五个文件的md5校验和的值,我们可以使用md5sum.exe工具来检测一下他们是否遭受修改
D:comlog101>md5sum.exe *
md5sum.exe: .: Permission denied
md5sum.exe: ..: Permission denied
f86ba5ffaa8800a2efa9093d2f11ae6f *cmd.exe
484c4708c17b5a120cb08e40498fea5f *com101.pl
001a6f9ca5f6cf01a23076bad9c6261a *comlog.txt
121bf60bc53999c90c6405440567064b *md5.txt
eb574b236133e60c989c6f472f07827b *md5sum.exe
42605ecfa6fe0f446c915a41396a7266 *README.TXT
把这些数字和md5.txt的数字对比,如果出现不一致,就证明程序遭受修改,请勿使用并通知我
在校验无误之后,我们开始覆盖系统的cmd.exe。先打开资源管理器-->工具-->文件夹选项-->查看,把"隐藏受保护的操作系统文件"的钩去掉,
并选择"显示所有文件和文件夹"-->确定
然后去到C:WINNTsystem32dllcache目录,并找到cmd.exe,并把他改名成cm_.exe,再把comlog101下的cmd.exe和com101.pl复制到这里,并把C
:WINNTsystem32下的cmd.exe也改成cm_.exe,同样把comlog101目录下的cmd.exe和com101.pl复制到这里。在这段时间,系统会提醒你系统
文件遭到修改,问你是否修复,选择取消就可以了。然后在C:WINNTHelp目录下建一个叫"Tutor"的目录,这里是用来放cmd.exe的命令记录的地方,当然你同样可以修改com101.pl来选择日志的存放位置。
现在我们运行cmd.exe,你会发现窗口一闪而过,这是因为我们还没装perl解析器。运行ActivePerl-5.8.0.805-MSWin32-x86.msi,一路next就OK了。
现在我们运行cmd.exe,这回我们可爱的cmd窗口就跳出来了,随便敲几个东西进去,然后去到C:WINNTHelpTutor目录下,你就可以看到记录了。为了避免记录自己在cmd.exe的操作,我们可以把原来的cmd.exe改成另外一个名字来执行。
四:安装日志服务器,我们选择Kiwi的Syslog Daemon 7是因为他够专业并且有很多统计信息和支持产品,一路next并启动服务即可。
netstat -an我们可以看到514端口
UDP  0.0.0.0:514      *:*
五:安装evtsys_exe,解压缩之后有两个程序evtsys.exe和evtsys.dll,同样需要检测文件是否被修改
D:evtsys_exe>md5sum.exe *
md5sum.exe: .: Permission denied
md5sum.exe: ..: Permission denied
f5ba9453e12dc030b5e19f75c079fec2 *evtsys.dll
dcc02e429fbb769ea5d94a2ff0a14067 *evtsys.exe
eb574b236133e60c989c6f472f07827b *md5sum.exe
如果一切正常的话,执行evtsys.exe /?
D:evtsys_exe>evtsys.exe /?
Usage: evtsys.exe -i|-u|-d [-h host] [-p port] [-q char]
-i      Install service (安装服务)
-u      Uninstall service (卸载服务)
-d      Debug: run as console program (以debug模式运行)
-h host   Name of log host (日志服务器IP地址)
-p port   Port number of syslogd (日志服务器端口,默认是514)
-q char   Quote messages with character
Default port: 514
我们运行D:evtsys_exe>evtsys.exe -h 日志服务器IP -i来安装服务
这样你系统的应用程序日志,系统日志,安全日志都会发到日志服务器去了,这样我们就可以更加真实的了解到系统的运行情况。
六:安装WinPcap_3_0_beta.exe和ethereal-setup-0.9.8.exe
下面针对本案例大概的说说ethereal的使用
先启动ethereal
capture->start
capture packets in promiscuous mode
不选这个,因为我们只需要得到本机的信息,不需要以混杂模式运行
filter
filter name:irc
string:ip host urip and tcp port 6667
只能有一条规则,但是可以使用逻辑符号
否定(`!'; or `not';)
交集(`&&'; or `and';)
并集(`||'; or `or';)
还有=,>=,+,&等等
更加详细的设置请查看ethereal的manual
先自己测试一下sniffer是否工作
连接上IRC,并发言,我们可以看到一些结果
然后选择一个记录,并且按”follow tcp stream”就可以查看IRC的聊天内容了
七:安装设置绿色警戒防火墙 关闭“进入请求通知”,开放共享,把所有的入侵检测对策的“拦截”都改成“警告”,警告级别都改成“记录”,我们主要是想了解一下大概的攻击情况
接着打扫战场,把你下载的软件,临时文件,历史记录,文档的记录全部删除,但是别忘记用regsnap做个镜象哦,最后再次开启ethereal
现在剩下的就是等蠕虫感染来了………………

TOP

返回列表 回复 发帖