高防cdn
扫码添加高防cdn微信客服
免费试用,满意再付款!

juniu网络高防cdn

QQ客服:1263815588

Web服务器安全攻击及防护机制解析

作者:juniu网络   来源:互联网    发布时间:2022-05-20


  网站安全可以分为两大类:

  · 网站服务器的安全性(网站服务器本身安全和软件配置)。

  · 网站运用程序的安全性(在网站服务器上执行的java、 activex、php、asp代码的安全)。

  网站服务器面临的流量攻击

  网站服务器流量攻击利用网站服务器软件和配置中常见的漏洞。这些漏洞包括:

  · 缓冲区溢出

  · 文件目录遍历

  · 脚本权限

  · 文件目录浏览

  · 网站服务器软件默认安装的示例代码

  · 网站服务器上执行的其他软件中的漏洞,例如sql信息库软件

  让大家对上诉漏洞依个开展深进地探讨。

  1.缓冲区溢出

  缓冲区溢出允许恶意代码注进到运用程序,它损坏运用程序的堆栈——内存中存放运用程序代码的一个地方——并用不同的代码代替原始代码的一部分来完成流量攻击者的目的,例如执行特洛伊木马程序或远程控制运用程序。以下是缓冲区溢出漏洞的一个简单示例代码,使用c语言编写:

  char atmp[100];

  scanf("%s",atmp);

  在第一行中,程序员声明一个长度为100的数组atmp。在第2行中,scanf方法从控制台读取信息存到atmp数组。代码不会检查%s 变量是否能够容纳输进信息的大小。因为程序员编码过程不对输进字符串的大小开展检查,如果给定的输进超过100个字符,就会造成缓冲区溢出。一个精心构造构的输进中可能包含汇编代码,这部分汇编代码能够获得源程序一样的执行权限。

  2.目录遍历

  目录遍历是指访问到了不是原先设想或允许的目录(或文件夹)。例如,微软iis 网站站点的默认文件夹为c:inetpub,流量攻击者可使用的目录遍历漏洞,在该文件夹之外往读取他们本不该访问的文件。详细来说,假如有一个网址为“www.bad.com”的网站,其服务器代码中包含目录遍历漏洞。流量攻击者根据输进以下url就可以利用该漏洞:

  http://www.bad.com/../autoexec.bat

  url中的“.../”告诉服务器上溯一个目录,也就是“c:”目录(网站 服务器可以将斜杠转换为反斜杠)。所以如果iis服务器默认目录为“c:inetpub”,那么该url会转到“c:”目录,流量攻击者将能够看到“c:utoexec.bat”文件。除非将服务器配置好了避免目录遍历,不然所有目录可能都是可访问的。这种情况下,网站服务器将显示“autoexec.bat”文件的内容,或者流量攻击者选择的任何其他文件。

  值得注意的是:大家已经使用 iis 作为示例;但是,此漏洞的利用不是针对iis服务器的,在其他的网站 服务器上也有目录遍历漏洞。

  3.脚本权限

  为了执行通用网关接口(cgi)、perl或者其他服务端运用程序,管理员必须授予对服务器端运用程序所在的目录以可执行权限。一些管理员给错误位置授予此权限(通常是因为他们不明白这么做会带来的问题)。让大家看看以下的示例,探讨如果管理员将此权限授予c盘下的所有目录将发生什么。

  http://www.bad.com/../winnt/system32/cmd.exe%20%2fc%20dir

  首先大家来破译这神秘的url。某些字符如空格和斜杠,不能出现在url中,因为url是限于7 -bit编码的ascii码。然而,某些情况下还是会使用到这些字符。可行的办法是使用其106进制的字符来表示,或者使用类似ascii的base 16编码。base 16 使用字母a、b、c、d、e 和f来表示大于9的数字。举例来说,字母a表示106进制中的数字10,f表示15,并使用10表示数字16。所以,在前面的示例:

  · 空格使用ascii编码表示为10进制的32,使用106进制则为20,因此变成%20。

  · 斜杠(/)使用ascii编码表示为10进制的47,使用106进制则为2f,因此变成%2f。

  经网站服务器解析后,就成为以下的url:

  ../winnt/system32/cmd.exe /c dir

  这是要执行“cmd.exe”并告诉它执行“dir”命令。“cmd.exe”是位于“c:winntsystem32”

  文件夹中的命令外壳。“dir”命令列出当前目录中的所有文件,并将结果返回给客户。当然,这是只是一个简单的例子,流量攻击者可以执行更复杂的命令以超过删除、执行或修改网站服务器上信息的目的。

  图1是iis目录权限的配置的截屏。最佳做法是只给包含需要执行的服务端运用的文件夹设定可执行的权限,而不是包含可被流量攻击者利用的软件的文件夹,例如包含“cmd.exe”或者其他内置的实际操作系统命令。

  图1 iis脚本权限控制台的屏幕截图

  那是用于网站访问者执行的命令,而不是可能援助流量攻击者的软件,如cmd.exe或其他内置实际操作系统命令。

  4.目录浏览

  通常情况下,目录浏览是禁用的,但是如果启用它,则它显示该目录中的所有文件,并允许浏览的子目录。有时知道一个文件存在可以帮助流量攻击者利用网站 服务器上文件和程序的漏洞。为此,不建议启用网站 服务器上的目录浏览。

  5.默认示例

  默认示例是包含在网站 服务器软件中并在服务器软件安装时默认安装的运用程序。一些默认安装的示例包含安全漏洞。针对这些漏洞保护的最佳办法是不要安装示例,如果已经安装了,最好把它们删除掉。

  6.其他服务

  流量攻击者可以根据流量攻击在网站服务器上执行的其他服务来攻陷网站服务器。这些服务包括ftp、smtp、pop3、sql服务器和netbios服务。防止此类流量攻击的最佳方法是减少“受流量攻击面”。关闭所有执行在网站服务器实际操作系统上不必要的服务并对剩下的服务开展安全地配置。最佳做法是使 网站服务器只有一个网站服务程序,而没有其他的服务。执行信息库和其他的软件应布署在单独的服务器上,这样服务器受防火墙保护,只有网站服务器易受网站流量攻击。如果流量攻击者设法利用其他服务的漏洞来流量攻击服务器,他们也能够干扰或攻陷网站站点。

  7.网站服务器软件的固有漏洞

  每个网站服务器软件,包括iis和apache,由于缺乏安全的编码技术,该软件的程序员已经提供了内置漏洞。例如,iis的.htr漏洞,允许流量攻击者看到驻留在服务器上的文件的内容。几乎每周都会发布主要的网站服务器软件平台中的新漏洞。

  网站服务器的保护

  针对上述漏洞最佳做法是遵循以下建议搭建并执行网站服务器。采取下列措施将提高网站服务器的安全性。

  · 给网站服务器服务或守护程序配置能够使它正常执行最少的权限。这样,即使流量攻击者控制了网站 服务器,他们只能获得执行该软件对应的客户账户的权限。这样,流量攻击信息处理机或网络上的其他软件可行方案就极为有限了。

  · 安装最新的安全补丁并时刻关注漏洞的最新动态。

  · 删除默认示例并避免安装类似的示例。

  · 根据删除不需要的运用程序,安全配置同一台信息处理机上的其他网络服务,确保实际操作系统已安装最新的安全补丁来确保承载网站服务器的信息处理机的安全。

  · 确保只给需要执行的脚本单独的目录执行的权限。

  · 在网站服务器上每个目录中,都提供一个index.html文件,以避免需要目录浏览。

  第1方安全产品

  商业和免费的产品也可以帮助防护与网站服务器相关的不同漏洞。主要有以下产品:

  · 软硬件防火墙

  · 网站运用防火墙(wafs)

  · 病毒防护软件

  · 基于isapi的安全产品

  · 安全日志

  · 反馈分析软件

  · 黑客侵进检测系统和黑客侵进检测防护系统

  · 漏洞扫描软件

  · 输进验证

  软硬件防火墙。防火墙过滤掉不属于正常 网站会话的流量。所有网站服务器都应配备技术先进的第4代防火墙。第4代防火墙可以区分出普通的网站浏览器合法的流量和流量攻击者的恶意流量攻击流量。直接布署在网站服务器上的防火墙软件可以为服务器提供额外的防护。

  网站运用防火墙。网站运用防火墙(wafs)是具备网站流量深度检查功能的设备。wafs能够提供基于内容的流量攻击的较好保护,因为他们会解析http会话的实际内容,寻找与正常使用模式不匹配的已知错误或异常行为。这些设备可以是非常很好地的防范大多数流量攻击。

  病毒防护软件。网站服务器上应该安装防护毒软件。如果流量攻击者利用安全漏洞企图控制网站 服务器,而且漏洞已知,病毒防护软件能够检测到并阻止。

  基于isapi的安全产品。此类产品截取url请求,过滤掉可能的流量攻击,如缓冲区溢出。网站服务器供应商通常会免费提供基于isapi的安全产品。

  反馈分析软件。反馈分析软件解析网站服务器的反应并与已知的正常网站反应开展比较。如果网站含有恶意代码或者被修改,反应将不匹配原始的已知的正常反应,这样能够检测出未经授权的网站更改。

  黑客侵进检测与防护。黑客侵进检测系统(ids)一般用于黑客侵进的后期处理,因为系统保留事件的详细记录。而黑客侵进预防系统(idp)能够阻止某些已知的不良行为。

  漏洞扫描软件。管理员应执行漏洞扫描程序定期来测试网站服务器的安全性,因为假如扫描仪发现了安全漏洞,流量攻击者很可能也会发现同样的漏洞。有越来越多免费或商业的漏洞扫描软件。其中有些是基于网站,有些是硬件程序,剩下的是纯软件。

  输进验证。输进验证产品检查提交到网站站点每个信息是否存在异常、sql注进命令或缓冲区溢出流量攻击代码。

  安全日志。安全日志可以提供网站服务器流量攻击黑客侵进的证据。除了存放在在 网站 服务器上,还应该将它们存放网络上安全的位置以防止流量攻击者更改日志或删除记录。