网络进侵检测初步探测方法
核心提示:经过精心配置的Win2000服务器可以防御90%以上的进侵和渗透,但随着新漏洞的出现和服务器利用的变化,系统的安全状态也在不断变化着,Win2000服务器进侵检测的初步技能,希看能帮助您长时间保护服务器的安全。
经过精心配置的Win2000服务器可以防御90%以上的进侵和渗透,但是,系统安全是1个连续的进程,随着新漏洞的出现和服务器利用的变化,系统的安全状态也在不断变化着;同时由于攻防是矛盾的同1体,道消魔长和魔消道长也在不断的转换中,因此,再高明的系统治理员也不能保证1台正在提供服务的服务器长时间尽对不被进侵。
所以,安全配置服务器其实不是安全工作的结束,相反却是漫长乏味的安全工作的开始,本文我们将初步探讨Win2000服务器进侵检测的初步技能,希看能帮助您长时间保护服务器的安全。
进侵的检测主要还是根据利用来进行,提供了相应的服务就应当有相应的检测分析系统来进行保护,对1般的主机来讲,主要应当留意以下几个方面:
1.基于80端口进侵的检测
WWW服务大概是最多见的服务之1了,而且由于这个服务面对广大用户,服务的流量和复杂度都很高,所以针对这个服务的漏洞和进侵技能也最多。对NT来讲,IIS1直是系统治理员比较头疼的1部份,不过好在IIS自带的日志功能从某种程度上可以成为进侵检测的得力帮手。IIS自带的日志文件默许寄存在System32/LogFiles目录下,1般是按24小时转动的,在IIS治理器中可以对它进行具体的配置。
我们假定1台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扩大格式,后面的1串数字代表日志的记录日期):07:42:58 127.0.0.1 GET /scripts/..\../winnt/system32\cmd.exe /c+dir 200上面这行日志表示在格林威治时间07:42:58(就是北京时间23:42:58),有1个家伙(进侵者)从127.0.0.1的IP在你的机器上利用Unicode漏洞(%c1%1c被解码为“\”,实际的情况会由于Windows版本的不同而有稍微的差别)运行了cmd.exe,参数是/c dir,运行结果成功(HTTP 200代表正确返回)。
大多数情况下,IIS的日志会忠实地记录它接收到的任何要求(也有特殊的不被IIS记录的攻击,这个我们以后再讨论)。但是,IIS的日志动辄数10兆、流量大的网站乃至数10G,人工检查几近没有可能,唯1的选择就是使用日志分析软件,用任何语言编写1个日志分析软件(实在就是文本过滤器)都非常简单。
告知大家1个简单的方法,比方说你想知道有无人从80端口上试图取得你的Global.asa文件,可使用以下的命令:find “Global.asa” ex010318.log /i。这个命令使用的是NT自带的find.exe工具,可以轻松的从文本文件中找到你想过滤的字符串,“Global.asa”是需要查询的字符串,ex010318.log是待过滤的文本文件,/i代表忽视大小写。由于我无意把这篇文章写成微软的Help文档,所以关于这个命令的其他参数和它的增强版FindStr.exe的用法请往查看Win2000的帮助文件。
不论是基于日志分析软件或是Find命令,你都可以建立1张敏感字符串列表,包括已有的IIS漏洞(比如“+.htr”)和未来将要出现的漏洞可能会调用的资源(比如Global.asa或cmd.exe),通过过滤这张不断更新的字符串表,1定可以尽早了解进侵者的行动。
需要提示的是,使用任何日志分析软件都会占用1定的系统资源,因此,对IIS日志分析这样低优先级的任务,放在夜里空闲时自动履行会比较合适,假设再写1段脚本把过滤后的可疑文本发送给系统治理员,那就更加完善了。同时,假设敏感字符串表较大,过滤策略复杂,我建议还是用C写1个专用程序会比较合算。
2.基于安全日志的检测
通过基于IIS日志的进侵监测,我们能提早知道窥伺者的行迹(假设你处理失当,窥伺者随时会变成进侵者),但是IIS日志不是万能的,它在某种情况下乃至不能记录来自80端口的进侵,根据我对IIS日志系统的分析,IIS只有在1个要求完成后才会写进日志,换言之,假设1个要求中途失败,日志文件中是不会有它的踪影的(这里的中途失败其实不是指产生HTTP400毛病这样的情况,而是从TCP层上没有完成HTTP要求,例如在POST大量数据时异常中断),对进侵者来讲,就有可能绕过日志系统完成大量的活动。
而且,对非80 Only的主机,进侵者也能够从其它的服务进进服务器,因此,建立1套完全的安全监测系统是非常必要的。
Win2000自带了相当强大的安全日志系统,从用户登录到特权的使用都有非常具体的记录,惋惜的是,默许安装下安全审核是封闭的,以致于1些主机被黑后根本没法追踪进侵者。所以,我们要做的第1步是在治理工具-本地安全策略-本地策略-审核策略中打开必要的审核,1般来讲,登录事件与账户治理是我们最关心的事件,同时打开成功和失败审核非常必要,其他的审核也要打开失败审核,这样可使得进侵者步步维艰,1不谨慎就会露出破绽。仅仅打开安全审核并没有完全解决题目,假设没有很好的配置安全日志的大小及覆盖方式,1个老练的进侵者便可以够通过洪水般的捏造进侵要求覆盖掉他真实的行迹。通常情况下,将安全日志的大小指定为50MB并且只答应覆盖7天前的日志可以免上述情况的出现。
除安全日志,系统日志和利用程序日志也是非常好的辅助监测工具,1般来讲,进侵者除在安全日志中留下痕迹(假设他拿到了Admin权限,那末他1定会往清除痕迹的),在系统和利用程序日志中也会留下蛛丝马迹,作为系统治理员,要有不放过任何异常的态度,这样进侵者就很难隐躲他们的行迹。
3.文件访问日志与关键文件保护
除系统默许的安全审核外,对关键的文件,我们还要加设文件访问日志,记录对它们的访问。
文件访问有很多的选项:访问、修改、履行、新建、属性更改……1般来讲,关注访问和修改便可以起到很大的监视作用。
例如,假设我们监视了系统目录的修改、创建,乃至部份重要文件的访问(例如cmd.exe,net.exe,system32目录),那末,进侵者就很难在不引发我们留意的情况下安置后门。要留意的是,监视的关键文件和项目不能太多,否则不但增加系统负担,还会扰乱平常的日志监测工作。关键文件不单单指的是系统文件,还包括有可能对系统治理员和其他用户构成危害的任何文件,例如系统治理员的配置、桌面文件等等,这些都是有可能被用来盗取系统治理员资料和密码的。
4.进程监控
进程监控技术是追踪木马后门的另1个有力武器,90%以上的木马和后门是以进程的情势存在的。作为系统治理员,了解服务器上运行的每个进程是职责之1(否则不要说安全,连系统优化都没有办法做)。做1份每台服务器运行进程的列表非常必要,能帮助治理员1眼就发现进侵进程,异常的用户进程或异常的资源占用都有多是非法进程。除进程外,dll也是危险的东西,例如把本来是exe类型的木马改写为dll后,使用rundll32运行就比较具有迷惑性。
5.注册表校验
1般来讲,木马或后门都会利用注册表来再次运行自己,所以,校验注册表来发现进侵也是常常使用的手法之1。1般来讲,假设1个进侵者只知道使用流行的木马,那末由于普通木马只能写进特定的几个键值(比如Run、Runonce等等),查找起来是相对轻易的,但是对可以自己编写或改写木马的人来讲,注册表的任何地方都可以躲身,靠手工查找就没有可能了。应对的方法是监控注册表的任何改动,这样改写注册表的木马就没有办法遁形了。监控注册表的软件非常多,很多清查木马的软件都带有这样的功能,1个监控软件加上定期对注册表进行备份,万1注册表被非授权修改,系统治理员也能在最短的时间内恢复。
6.端口监控
固然说不使用端口的木马已出现,但是大部份的后门和木马还是使用TCP连接的,监控端口的状态对由于种种缘由不能封闭端口的主机来讲就是非常重要的了。对系统治理员来讲,了解自己服务器上开放的端口乃至比对进程的监控更加重要,常常使用netstat查看服务器的端口状态是1个良好的习惯,但是其实不能24小时这样做,而且NT的安全日志有1个缺点,喜欢记录机器名而不是IP,假设你既没有防火墙又没有进侵检测软件,倒是可以用脚本来进行IP日志记录的,看着这个命令:netstat -n -p tcp 10>>Netstat.log,这个命令每10秒钟自动查看1次TCP的连接状态,基于这个命令我们做1个Netlog.bat文件:time /t>>Netstat.log Netstat -n -p tcp 10>>Netstat.log。这个脚本将会自动记录时间和TCP连接状态,需要留意的是:假设网站访问量比较大,这样的操纵是需要消耗1定的CPU时间的,而且日志文件将越来越大,所以请慎之又慎。
1旦发现异常的端口,可使用特殊的程序来关联端口、可履行文件和进程(如inzider就有这样的功能,它可以发现服务器监听的端口并找出与该端口关联的文件,inzider可以从http://www.nttoolbox.com下载),这样不论是使用TCP还是UDP的木马都无处躲身。
7.终端服务的日志监控
单独将终端服务(Terminal Service)的日志监控分列出来是有缘由的,微软Win2000服务器版中自带的终端服务Terminal Service是1个基于远程桌面协议(RDP)的工具,它的速度非常快,也很稳定,可以成为1个很好的远程治理软件,但是由于这个软件功能强大而且只遭到密码的保护,所以也非常的危险,1旦进侵者具有了治理员密码,便可以够像本机1样操纵远程服务器。固然很多人都在使用终端服务来进行远程治理,但是,其实不是人人都知道如何对终端服务进行审核。大多数的终端服务器上并没有打开终端登录的日志。实在打开日志审核是很轻易的,在治理工具中打开远程控制服务配置(Terminal Service Configration),点击“连接”,右击你想配置的RDP服务(比如RDP-TCP Microsoft RDP 5.0),选中书签“权限”,点击左下角的“高级”,看见上面那个“审核”了么?我们来加进1个Everyone组,这代表所有的用户,然后审核它的“连接”、“断开”、“注销”的成功和“登录”的成功和失败就足够了。审核太多了反而不好,这个审核是记录在安全日志中的,可以从“治理工具”→“日志查看器”中查看。建立1个bat文件,叫做TSLog.bat。这个文件用来记录登录者的IP,内容以下:time /t >>TSLog.log netstat -n -p tcp find “:3389”>>TSLog.logstart Explorer。我来解释1下这个文件的含义:第1行是记录用户登录的时间,time /t的意思是直接返回系统时间(假设不加/t,系统会等待你输进新的时间),然后我们用追加符号“>>”把这个时间记进TSLog.log作为日志的时间字段;第2行是记录用户的IP地址,netstat是用来显示当前网络连接状态的命令,-n表示显示IP和端口而不是域名、协议,-ptcp是只显示tcp协议,然后我们用管道符号“ ”把这个命令的结果输出给find命令,从输出结果中查找包括“?3389”的行(这就是我们要的客户的IP所在的行,假设你更改了终端服务的端口,这个数值也要作相应的更改)。最后我们一样把这个结果重定向到日志文件TSLog.log中往,因而在TSLog.log文件中,记录格式以下:22:40 TCP 192.168.12.28:3389
192.168.10.123:4903 ESTABLISHED 22:54 TCP 192.168.12.28:338 192.168.12.29:1039 ESTABLISHED |
8.圈套技术
早期的圈套技术只是1个假装的端口服务用来监测扫描,随着“矛”和“盾”的不断升级,现在的圈套服务或圈套主机已越来越完善,越来越像真实的服务,不但能截获半开式扫描,还能假装服务器1真个回应并记录进侵者的行动,从而帮助判定进侵者的身份。我本人对圈套技术其实不是非常感爱好,1来从技术职员角度来讲,低调行事更符合安全的原则;2来圈套主机反而成为进侵者跳板的情况其实不单单出现在小说中,在现实生活中也屡见不鲜。假设架设了圈套反而被用来进侵,那真是偷鸡不成了蚀把米。记得CoolFire说过1句话,可以用来作为对圈套技术先容的1个总结:在不了解情况时,不要随便进进他人的系统,由于你永久不能事前知道系统治理员是真的白痴或是假装成白痴的天才……
进侵监测的初步先容就到这里,在实际应用中,系统治理员对基础知识掌控的情况直接关系到他的安全敏感度,只有身经百战知识丰富,仔细谨慎的系统治理员才能从1点点的蛛丝马迹中发现进侵者的影子,未雨绸缪,禁止进侵的行动。
唐山网站建设www.fw8.netTAG:服务器,系统,日志,文件,端口
评论加载中...
|