时代华奥

你的位置:首页 > 知识库 > 建站知识 > 正文

10个方法防止服务器被入侵

时间:2012-07-30    来源:深圳时代华奥    分类:建站知识

公布在外网的服务器受攻击几乎是无法避免的,甚至被入侵似乎也情有可原。但是,服务器被入侵管理员却浑然不觉,长期与入侵者者“和平共处、相安无事”,这是无论如何都不能原谅的。其实,这样的案例难道还少吗?因此,入侵检测既是一项非常重要的服务器日常管理工作,也是管理人员必须掌握的技能。下面笔者和大家一道,多点出击、明察秋毫进行服务器的入侵检测。

1.查看服务器状态

部署“性能监控”工具,实施对服务器的实时监控这应该成为服务器的标准配置。笔者向大家推荐NetFox这款服务器监控工具,通过其可以设置“Web/Ping”、“FTP/Mail”、“邮件检测”、“空间检测”等监控项。当服务器性能发生异常时会发出报警声,以提示管理员进行处理。另外,当服务器不在本地,管理员可以设置手机短信报告,以利用管理员远程了解服务器的运行状态,当服务器异常能够尽快采取相应的措施。(图1)

图1

如果大家的服务器没有部署这样的工具,也可以通过“进程管理器”进行查看。在其“性能”标签下可以直观的看到服务器CPU、物理内存、虚拟内存的使用状况,以确定是否有CPU和内存占用过高等异常情况。在其“联网”标签下可以实时查看当前服务器各网卡的网络使用状况,以确定是否有异常流量。

2.检查当前进程情况

服务器的入侵检测进程是非常重要的一项,通过其可以查看是否可疑的程序在服务器中运行。虽然Windows Server 2003集成了进程查看器,但其功能比较简陋而且对一些通过Hook或者Rootkit方式插入正常系统进程或者隐藏的进程显得无能为力。笔者推荐类似IceSword(冰刃)这样的工具,通其可以查看进程的线程及其该进程调用的模块信息,从而帮助管理员找到隐藏的进程。(图2)

图2

在一般情况下,管理员完全可以通过“任务管理器”查看服务器进程情况,在其“进程”选项卡下服务器当前显式进程一目了然。甄别是否是危险进程,管理员要对系统进程或者常用程序的进程比较了解。对于拿不准的进程或者说不知道是服务器上哪个应用程序开启的进程,可以在网络上搜索一下该进程名加以确定。比如大家可以在“进程知识库”进行查看比对。该网站比较详细地列举了“系统进程”、“应用程序进程”、“存在安全风险的进程”。当然,病毒、木马的进程是可以由攻击者更改的,但它们为了达到目的往往会在进程名上做文章,一般会取一个与系统进程类似的名称。通常迷惑手段是变字母o为数字0,变字母l为数字1,如svch0st.exe、exp1orer.exe等,此时要仔细辨别。(图3)

图3

3.检查系统帐号

攻击者在入侵服务器后,为了达到后期的一直控制往往要创建系统帐户,这帐户往往是管理员组的。比如敲入命令“net user lw “test168″ /add & net localgroup administrators lw /add”(不含引号)就创建了一个用户名为lw,密码为test168的管理员用户。对于这样的用户,管理员可以在命令提示符(cmd.exe)下敲入“net user”或者打开“计算机管理”,展开“本地用户和组”查看administrators组是否有陌生帐户添加以确定入侵。

当然,一个狡猾的入侵者不会这么做,他们会通过各种方法进行帐户的隐藏。其常用的伎俩不外乎四种。

(1).激活服务器的Guest用户,并把其加入管理员组。对此,管理员一定要查看在administrators组中是否有个guest用户。如果存在,几乎可以肯定服务器被入侵了。

(2).创建隐藏帐户。入侵者在帐户的后面加“$”,比如把上面的命令改为“net user lw$ “test168″ /add & net localgroup administrators lw$ /add”,就创建了一个lw$用户,该用户在命令提示符(cmd.exe)下输入“net user”命令是看不到的,但在“本地用户和组”中可以看到。

(3).克隆帐户。这应该是入侵者最常使用的,他们往往会克隆administrator帐户,这个帐户无论在命令提示符、“本地用户和组”设置注册表的“sam”项下也无法看到,隐蔽性极高。对此,管理员必须得通过工具才能查看系统中是否有克隆帐户。笔者推荐mt.exe,mt被很多杀毒软件定义为木马,也是攻击者进行帐户克隆的首选工具,但其也可以让系统中克隆帐户现行。

具体操作是:在命令提示符下进入mt目录输入命令:mt -chkuser。输入命令后,会在屏幕中输出结果,主要查看ExpectedSID和CheckedSID,如果这两个值不一样则说明账号被克隆了。在本例中可以看到账号simeon$的CheckedSID跟Administrator的CheckedSID值一样,说明simeon$克隆了Administrator账号。(图4)

图4

(4).Rookit帐户。通过Rootkit创建的帐户具有克隆帐户隐藏的所有特点,也具有非常高的隐蔽性。对于这样的危险帐户的清除首先要清除系统中的Rookit程序,只有把其清除了,所有的隐藏帐户就会显形。笔者推荐工具RootKit Hook Analyzer,其可以分析检测系统中的Rootkit程序并用红色显示出来,然后管理员就可以结束它。(图5)

图5

4.查看当前端口开放情况

现在企业的服务器一般是专用的,比如Web、Ftp、SQL都是各自独立的,对于这样应用单一的服务器只开放其应用端口,如果出现了陌生的连接或者监听端口就要提高警惕了。对于综合性的服务器,由于其担负的服务,因此开放的端口也多。查看其当前开放的端口笔者建议使用专门的工具,比如activeport。

运行activeport后,服务器当前的端口连接情况一目了然,作为管理员要特别注意服务器与外部的连接情况,看是否有未经允许的端口与外界在通信。如有,立即关闭该端口并记录下该端口对应的程序,将该程序转移到其他目录下存放以便后来分析。此时可以利用“冰刃”等进程管理工具进行查看,结束可疑连接程序的进程,然后定位到程序目录进行查杀。(图6)

图6

当然,Windows Server 2003中也有相关连接端口查看的命令。在命令提示符下输入“netstat -ano”,可以查看到当前服务器的网络连接状况。如果服务器的连接比较多想看看正在进行的连接,可以进行筛选,输入命令“netstat -ano |find “ESTABLISHED”即可。可以看到图7中有一条3389的连接,可以在命令行下输入命令“query user”查看是谁连接到了服务器,从而通过命令“logoff 1”(1是远程连接用户ID)踢出入侵者。当然,也可以在“任务管理器”的“用户”选项卡下查看。(图7)

图7

另外,管理员可以对服务器的端口状况及其安全隐患进行一个检测,这样至少可以防御那些只会使用工具进行攻击的恶意用户。笔者推荐工具xscan_gui,这是攻击者在对服务器进行攻击前进行服务器扫描的工具。管理员可以利用该工具对服务器进行一个安全检测,只需在扫描前输入服务器的IP并勾选相应的检测模块即可。

5.检查系统服务

攻击者在攻克服务器后,往往会上传一个木马的服务端从而实现对服务器的远程控制。这些木马的服务端往往是以服务的形式随系统启动而运行的。对这木马服务端的检测,可以通过系统的“服务”工具实现。

运行services.msc,检查处于已启动状态的服务,查看是否有新加的未知服务并确定服务的用途。对于不清楚的服务打开该服务的属性,查看该服务所对应的可执行文件是什么,如果确定该文件是系统内的正常使用的文件,可粗略放过。查看是否有其他正常开放服务依存在该服务上,如果有,可以粗略的放过。如果无法确定该执行文件是否是系统内正常文件并且没有其他正常开放服务依存在该服务上,可暂时停止掉该服务,然后测试下各种应用是否正常。对于一些后门由于采用了hook系统API技术,添加的服务项目在服务管理器中是无法看到的,这时需要打开注册表中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl\SetServices项进行查找,通过查看各服务的名称、对应的执行文件来确定是否是后门、木马程序等。

需要提醒的是,这些木马的服务端在生成之前都可以进行设置。比如服务端运行后进程的名称、释放的目录、服务器描述等,所以管理员一定要仔细辨别。(图8)

图8

其日志文件进行查看。不过,web日志是非常多的,因此需要通过专门的工具进行分析,比如“Web Log Explorer”就是一款不错的工具,可以查看浏览者的IP及其该IP访问、下载或者修改了哪些文件等等。(图10)

图10

正因为,日志会记录入侵者的踪迹。所有狡猾的入侵者往往在入侵后会对日志进行操作,擦除入侵痕迹。常见的手段是:

(1).删掉日志。这是最低级的做法,虽然消除了日志,但也暴露了入侵者自己。如果是这样,管理员看到日志被删除可以马上断定服务器被入侵。

(2).部分删除。一些比较高明的入侵者在入侵结束后会删除日志中与自己相关的部分。如果这样,管理员可以实施对日志的监控保护,一旦发现日志有删除的痕迹就可以进行入侵检测。

(3).部分修改。这是一些高明的入侵者采用的方法,他们在入侵结束后会修改与自己相关的日志,以欺骗管理员或者嫁祸于人,金蝉脱壳。对才,管理员可以采取同上的方法,不过还要进行一定的分析。

最后,笔者以一个安全爱好者的角度建议管理员一定要备份好服务器的日志。

7.检查系统文件

攻击者在入侵中或者入侵成功后,会在系统文件上做文章隐藏保护入侵工具(一般是木马的客户端)。其主要手段是替换同名的系统文件(exe和dll文件),或者实施系统文件与木马的捆绑。

服务器入侵检测中对于系统文件的检测,笔者建议在服务器系统安装完毕之后用“dir *.exe /s >1.txt”将系统盘所有的exe文件列表保存下来。这样,在检测时,先该命令生成一份当前服务器系统盘文件列表,然后用FC命令比较两个文件从而发现可疑文件,对于dll文件的检测方法类似。需要注意的是打补丁或者安装软件后重新生成一次原始列表。检查相关系统文件是否被替换或系统中是否被安装了木马后门等恶意程序。(图11)

图11

对于被捆绑的系统文件的安全检测,笔者建议可以通过SFC命令还原纯净的系统文件。必要时可运行一次杀毒程序对系统盘进行一次扫描处理。

8.检查安全策略是否更改

服务器安全级别比较高,其默认的安全策略限制了攻击者的很多行为,因此他们在入侵过程中或者入侵后往往对服务器的安全策略进行调整设置以利用对服务器的长久控制。所以,安全策略检测也是服务器入侵检测的一个重要方面。

安全策略检测主要从下面几个方面入手:

(1).协议相关:打开“本地连接”的属性,查看“常规”中是否只勾选了“TCP/IP协议”。因为一个安全的服务器其他的选项是不需要,但这也许是攻击者所需要的。

(2).TCP/IP筛选:打开“TCP/IP”协议设置,点“高级”→“选项”,查看“IP安全机制”是否是设定的IP策略,查看“TCP/IP”筛选允许的端口有没有被更改。

(3).IP安全策略:依次打开“管理工具”→“本地安全策略”,查看目前使用的IP安全策略是否发生更改。

(4).本地策略:在“本地安全策略”查看“本地策略”下的“用户权限分配”和“安全选项”相关策略有无更改。比如“使用空白密码的本地帐户只允许进行控制台登录”策略默认是“启用”的,攻击者可能基于远程登录的需要会改为“已禁用”。(图12)

图12

9.检查目录权限

服务器特别是Web、FTP服务器,管理员对于磁盘、目录的权限往往经过严格的设置。这些设置加固了服务器的安全,限制的攻击者的入侵。因此,攻击者在攻击过程中或者攻击完成后,往往要对目录的权限进行调整,以方便自己后期的使用。比如攻击者在获得一Web站点的webshell后,就要进行进一步的渗透、提权等操作,其中对于目录权限的突破是一个手段。所以,对于磁盘、目录权限的检测也是服务器入侵检测的一个重要方面。(图13)

图13

(1).需要检查权限的磁盘、目录有:系统盘及其它分区,%windir%、%windir%\system32、%windir%\system32\inetsrv、%windir%\system32\inetsrvdata、”documents Settings”,如果是虚拟主机还应该有每个Web站点的目录。

(2).对于用serv-u部署的FTP服务器,需要查看serv-u安装目录的权限是否做过变动。

(3).检查system32下的某些重要系统命令的权限有无更改,这些命令文件是:cmd、net、ftp、tftp、cacls等。

10.检查启动项

攻击者在控制服务器后,往往会上传一个木马服务端,这个服务端除了注册为系统服务器外,有的会添加到系统启动项里随系统启动。因此,对服务器的入侵检测启动项也是一个重要的地方。

启动项的检查可用的方法主要有以下三个:

(1).Msconfig工具。运行该工具,在“启动”选项卡下可以看到随系统启动的程序,只需取消对可疑程序启动的勾选即可。

(2).regedit(注册表)工具。运行该工具,定位到如下注册表项下进行检查:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices

以上的键值会出现在msconfig的“启动”项中。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

以上的键值比较隐蔽

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]

“Shell”=”EXPLORER.EXE,*.exe”

*为某病毒或者木马的可执行文件,这种方法非常隐蔽,被当前的许多病毒采用。

(3).专门工具。这样的工具比较多,比如RegRunFirst就不错。运行后点选左边相关的注册表启动项项,就可以看到该项下的启动程序。

另外,”C:\Documents and Settings\Administrator\「开始」菜单\程序\启动”也是个比较危险的地方。比如攻击者获得了一Web服务器的webshell,没有命令执行权限但具有对该目录的写权限,就可以向该目录上传木马程序等服务器重启后木马也就运行了。(图14)

图14

总结:以上我们从10个方面进行了服务器的入侵检测,其实在实战中没有必要一一进行,笔者只是尽量囊括服务器入侵检测的方方面面。毫无例外,服务器的安全也遵循木桶原理,它的安全性往往取决于自身最脆弱的地方,因此这些地方应该成为入侵检测的重点。

上一篇:先设计后付款不现实的根源所在 下一篇:HTML5的趋势是否是你的优势?
关于我们
服务项目
作品案例
资讯中心
业务关键词
旗下品牌
时代华奥——高端网站建设服务机构 邦设计——VIS/标志设计、画册/宣传设计、产品包装设计 馋猫网——提倡饮食健康资讯平台
 
扫描二维码即可访问当前网站
深圳平行进口车
咨询热线
大客户热线