扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
入侵检测初步
上一章我们谈到了Win2000 Server的安全配置,经过精心配置的Win2000服务器可以防御90%以上的入侵和渗透,但是,就象上一章结束时我所提到的:系统安全是一个连续的过程,随着新漏洞的出现和服务器应用的变化,系统的安全状况也在不断变化着;同时由于攻防是矛盾的统一体,道消魔长和魔消道长也在不断的转换中,因此,再高明的系统管理员也不能保证一台正在提供服务的服务器长时间绝对不被入侵。
所以,安全配置服务器并不是安全工作的结束,相反却是漫长乏味的安全工作的开始,本文我们将初步探讨Win2000服务器入侵检测的初步技巧,希望能帮助您长期维护服务器的安全。
本文中所说的入侵检测指的是利用Win2000 Server自身的功能及系统管理员自己编写的软件/脚本进行的检测,使用防火墙(Firewall)或入侵监测系统(IDS)的技巧并不在本文的讨论范围之内。
现在假定:我们有一台Win2000 Server的服务器,并且经过了初步的安全配置(关于安全配置的详情可以参阅Win2000 Server安全配置入门<一>),在这种情况下,大部分的入侵者将被拒之门外。(哈哈,我管理员可以回家睡大觉去了)慢着,我说的是大部分,不是全部,经过初步安全配置的服务器虽然可以防御绝大多数的Script kid(脚本族-只会用别人写的程序入侵服务器的人),遇到了真正的高手,还是不堪一击的。虽然说真正的高手不会随便进入别人的服务器,但是也难保有几个品行不端的邪派高手看上了你的服务器。(我真的这么衰么?)而且,在漏洞的发现与补丁的发布之间往往有一段时间的真空,任何知道漏洞资料的人都可以乘虚而入,这时,入侵检测技术就显得非常的重要。
入侵的检测主要还是根据应用来进行,提供了相应的服务就应该有相应的检测分析系统来进行保护,对于一般的主机来说,主要应该注意以下几个方面:
1、 基于80端口入侵的检测
WWW服务大概是最常见的服务之一了,而且由于这个服务面对广大用户,服务的流量和复杂度都很高,所以针对这个服务的漏洞和入侵技巧也最多。对于NT来说,IIS一直是系统管理员比较头疼的一部分(恨不得关了80端口),不过好在IIS自带的日志功能从某种程度上可以成为入侵检测的得力帮手。IIS自带的日志文件默认存放在System32/LogFiles目录下,一般是按24小时滚动的,在IIS管理器中可以对它进行详细的配置。(具体怎么配我不管你,不过你要是不详细记录,回头查不到入侵者的IP可不要哭)
现在我们再假设(怎么老是假设呀,烦不烦?)别急呀,我不能为了写这篇文章真的去黑掉一台主机,所以只好假设了,我们假设一台WEB服务器,开放了WWW服务,你是这台服务器的系统管理员,已经小心地配置了IIS,使用W3C扩展的日志格式,并至少记录了时间(Time)、客户端IP(Client IP)、方法(Method)、URI资源(URI Stem)、URI查询(URI Query),协议状态(Protocol Status),我们用最近比较流行的Unicode漏洞来进行分析:打开IE的窗口,在地址栏输入:127.0.0.1/scripts/..%c1% 1c../winnt/system32/cmd.exe?/c+dir 默认的情况下你可以看到目录列表(什么?你已经做过安全配置了,看不到?恢复默认安装,我们要做个实验),让我们来看看IIS的日志都记录了些什么,打开Ex010318.log(Ex代表W3C扩展格式,后面的一串数字代表日志的记录日期):07:42:58 127.0.0.1 GET /scripts/..\../winnt/system32\cmd.exe /c+dir 200上面这行日志表示在格林威治时间07:42:58(就是北京时间23:42:58),有一个家伙(入侵者)从127.0.0.1的IP在你的机器上利用Unicode漏洞(%c1%1c被解码为"\",实际的情况会因为Windows语言版本的不同而有略微的差别)运行了cmd.exe,参数是/c dir,运行结果成功(HTTP 200代表正确返回)。(哇,记录得可真够全的,以后不敢随便乱玩Unicode了)
大多数情况下, IIS的日志会忠实地记录它接收到的任何请求(也有特殊的不被IIS记录的攻击,这个我们以后再讨论),所以,一个优秀的系统管理员应该擅长利用这点来发现入侵的企图,从而保护自己的系统。但是,IIS的日志动辄数十兆、流量大的网站甚至数十G,人工检查几乎没有可能,唯一的选择就是使用日志分析软件,用任何语言编写一个日志分析软件(其实就是文本过滤器)都非常简单,不过考虑到一些实际情况(比如管理员不会写程序,或者服务器上一时找不到日志分析软件),我可以告诉大家一个简单的方法,比方说你想知道有没有人从80端口上试图取得你的Global.asa文件,可以使用以下的 CMD命令:find "Global.asa" ex010318.log /i这个命令使用的是NT自带的find.exe工具(所以不怕紧急情况找不着),可以轻松的从文本文件中找到你想过滤的字符串, "Global.asa"是需要查询的字符串,ex010318.log是待过滤的文本文件,/i代表忽略大小写。因为我无意把这篇文章写成微软的 Help文档,所以关于这个命令的其他参数以及它的增强版FindStr.exe的用法请去查看Win2000的帮助文件。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者