OWASP-CM-003

来源:互联网 发布:centos7 网络只有桥接 编辑:程序博客网 时间:2024/05/01 23:08

 Infrastructure configuration management testing (OWASP-CM-003) 础设施配置管理测试(个人觉得这个说法有点不妥,反正差不多这个意思吧)

 

具有巨大内在复杂性和异构互联的网络设备实施配置,可以承载数百个web应用,检查每一个单一应用。事实上,单一脆弱点可能导致整个架构的安全问题。为了定位各个单一脆弱点,因此需要深入检查配置。

为了维护应用程序本身的安全性,正确的配置管理是非常重要的。如果Web服务器软件,后端数据库服务器,或身份验证服务器中一个环节没有正确设置,可能提出一项不受欢迎未预料到的风险,或引入新的安全漏洞,从而危及应用程序本身。

一个web服务器的脆弱点可能导致一个远程攻击者关闭该应用程序自身的安全代码。

为了测试配置管理基础设施,需要采取下面的步骤:

 

具有巨大内在复杂性和异构互联的网络设备实施配置,可以承载数百个web应用,检查每一个单一应用。事实上,单一脆弱点可能导致整个架构的安全问题。为了定位各个单一脆弱点,因此需要深入检查配置。

为了维护应用程序本身的安全性,正确的配置管理是非常重要的。如果Web服务器软件,后端数据库服务器,或身份验证服务器中一个环节没有正确设置,可能提出一项不受欢迎未预料到的风险,或引入新的安全漏洞,从而危及应用程序本身。

一个web服务器的脆弱点可能导致一个远程攻击者关闭该应用程序自身的安全代码。

为了测试配置管理基础设施,需要采取下面的步骤:

1、确认组成基础设施的不同元素,以理解它们之间运用web应用程序的交互,以及它们是怎样影响安全的

        2、对所有的基础设施要素进行审查,以确保他们不包含任何已知的漏洞

3、必须对不同元素适用不同管理工具

        4、身份验证系统,如果有需要进行审查,则确保他们符合应用程序的需要,他们不能被外部用户做为跳板访问

        5、应用程序所需要的端口列表被维护并且是可靠的

Black Box Testing and examples黑盒测试示例

 

Review of the application architecture:

应用程序体系结构,需要通过测试进行审查,以确定用来构建Web应用程序的组件。一台单独的服务器便可运行CPerl或者Shell CGIs的应用程序,甚至包括身份认证程序。复杂的情况,如网上银行系统,多台服务器可能包括:反向代理,前端Web服务器,应用服务器和数据库服务器或LDAP服务器。这些服务器都将被用于不同的目的,甚至可能在不同的网络划分,不同的防火墙设备,创造不同的隔离区,以便使得远程用户无法访问认证机制本身,因此可以说是以妥协的方式,使各个孤立的体系结构的不同组成部分不会影响整个结构。

如果这一信息是由开发者用文件形式或通过面谈来提供,获得应用程序体系结构可以很容易,如果没有前述信息,盲目渗透测试,也可能非常困难,

一个测试者可能首先猜测该服务器是一个单一的服务器。并通过其他测试获得的信息,猜测可能的体系结构。测试者会从一些简单的问题开始,比如:是否有防火墙保护web服务器。一些信息能够通过扫描器获取。通过扫描获得的服务器端口信息猜测可能提供的服务。通过网络数据包测试,可以进一步获知防火墙或路由器的过滤列表,它们是怎么配置的,能否被绕过。

检测在Web服务器前的反向代理,需要分析Web服务器的banner,这可能可以直接发现反向代理的存在(例如,如果返回'WebSEAL'[1])。也可以通过获取web服务器的响应,并与预期的响应相比较来获得。例如,一些反向代理作为“入侵防御系统”(或网盾)来阻止在Web服务器上已知的攻击。

再比如,一个web服务器会返回404错误以表示指向不可用页面。如果CGI扫描器或其他常见web攻击,使得web服务器返回一个不同的请求,这有可能是一个反向代理(或应用级防火墙)的标志。

In some cases, even the protection system gives itself away:

某些时候,保护系统会暴露在返回的错误信息中。

 

GET / web-console/ServerInfo.jsp%00 HTTP/1.0

 

HTTP/1.0 200

Pragma: no-cache

Cache-Control: no-cache

Content-Type: text/html

Content-Length: 83

 

<TITLE>Error</TITLE>

<BODY>

<H1>Error</H1>

FW-1 at XXXXXX: Access denied.</BODY>

Example of the security server of Check Point Firewall-1 NG AI “protecting” a web server

一个使用防火墙保护web服务器的例子。

反向代理也可以推出作为委托书缓存以加速回性能后端应用程序服务器。检测这些代理可以做基础,再在服务器上头或时间应缓存服务器和服务器比较采取后续请求与第一个请求的时间要求。

网络负载均衡是另一个可以被检测的元素。可能基于不同的算法进行负载均衡(round-robin, web server load, number of requests, etc.)要进行多次检查。

应用服务器常常容易检测。因为对一些资源的请求常常是由应用服务器而不是web服务器来处理的。应答的header可能有不同的特征。另一种方法是检测header,分析web服务器是否尝试设置cookie,这是应用web服务器被使用的标志。

 

Known server vulnerabilities了解服务器的脆弱点

在不同的应用架构的脆弱点,无论是在web服务器还是数据库,都将严重的影响应用本身。

比如说,考虑一个服务器的脆弱点。这个脆弱点允许远程、无认证的用户上传文件到web服务器,或甚至替换文件。这个脆弱点可能危害应用,因为一个恶意用户可能能够替换掉应用本身,或者引入影响后端服务器的代码,这个代码完全可能像其他任何应用程序那样运行。

如果渗透测试很盲目,检查服务器的漏洞可能难以做到。在这种情况下,漏洞需要远程进行测试,通常使用一个自动工具。

然而,一些漏洞测试可能导致Web服务器出现不可预知的结果。

同样,一些自动工具能够标志基于web服务器版本的脆弱点。

这同时有有利的方面,也有不利的方面:一方面,如果Web服务器版本已被删除或被本地站点管理员模糊了,扫描工具将不会标记该服务器为脆弱的服务器,即使这个服务器是脆弱的服务器。另一方面,如果供应商提供的软件不更新版本,基于版本的扫描工具可能将不存在的脆弱点标记出来。

后者在操作系统没有及时打上补丁的情况下非常常见。

 

任何web服务器都需要管理工具的存在以维持和更新信息。这包括静态内容(网页或者图片文件)、应用源代码、用户认证数据库等。

网站的应用会使用下述技术或软件:比如一些web服务器会使用管理界面来进行管理,如iPlanet web 服务器,或者使用文本管理文件来管理,如Apache case,或使用操作系统GUI工具,如Microsoft’s IIS server ASP.Net

在大多数情况下,进行服务器配置会使用不同的工具,而不仅仅由Web服务器的工具实现。这可以通过FTP服务器管理,WebDAV管理,网络文件系统(NFSCIFS)或其他机制来进行管理。显然,操作系统这一元素将使应用结构使用其他的工具。应用程序也可能有用于管理应用数据本身的自嵌的管理界面。

重新考虑用于管理应用结构不同部分的管理界面也是非常重要的,因为一旦一名攻击者获得访问其中任意部分的权限,他可能危害或者毁灭整个应用结构。

因此,重要的是:

Thus it is important to:

  • List all the possible administrative interfaces. 列出所有可能的管理界面
  • Determine if administrative interfaces are available from an internal network or are also available from the Internet. 确定是否管理界面是仅可以内部访问还是外部和内部访问均可
  • If available from the Internet, determine the mechanisms that control access to these interfaces and their associated susceptibilities. 如果可外部访问, 确定这些界面的控制访问机制和他们的相关敏感性。
  • Change the default user & password. 修改默认的用户名和密码

有些公司选择不来管理他们的web服务器应用程序的所有方面,但可能有其他机构管理web应用的交付内容。外部机构可能提供部分内容(新闻更新或促销活动),或者完全的管理web服务器(包括内容和代码)。

Internet上找出可用的管理界面是很常见的,因为Internet比使用专线便宜。在这种情况下,测试管理界面对攻击者来说是否是脆弱的非常重要。

 

 

 

 

 

原创粉丝点击