如何制定Apache安全最佳做法?
Apache HTTP Server软件于18年前首次推出,逾十年以来,该软件一直都是最流行的Web服务器软件--Apache占Web服务器市场的份额超过50%,这也使其成为最热门的攻击目标。
安全公司ESET和Sucuri的研究人员发现了最新针对Apache的高调攻击,攻击人员试图寻找一个后门进入Apache,重定向网络流量到恶意网站,访客进入恶意网站后,将被Blackhole漏洞利用工具包所感染。这种攻击表明,企业必须制定Apache安全最佳做法,并且企业需要意识到,不安全的Apache Web服务器可能引起严重的后果。
在这篇文章中,我们将提供最佳做法来帮助企业保护Apache服务器抵御现代攻击。
Apache安全基础
在很多情况下,Apache服务器感染是因为过时的模块、配置或甚至Web服务器托管的Web代码。为了解决这些问题,企业应该使用最新版本的Apache HTTP及其附件,同时还应该保持HTTP服务器的更新,这是至关重要的。然而,目前攻击者的趋势是专注于外部组件框架、模块和附件,这些方面的漏洞让Apache HTTP很容易受到攻击,并且很难摆脱。企业应该追踪这些新组件,这等于成功了一半,另一半则是确保这些数据包安装了最新补丁,以及升级到最新版本。另外,在更新时,企业还应该记得要仔细检查下载来源,聪明的攻击往往试图将恶意软件伪装成软件更新。
除了保持更新外,企业还应该配置Apache HTTP Server以将攻击面减到最小。虽然这听起来很简单,但这只有系统管理员可以处理的几十个考虑因素(通常还需要与Web开发人员协作)。例如,分布式拒绝服务攻击的最新趋势是使用最少量的流量消耗系统资源。这种攻击的影响可以通过配置参数来最小化,例如配置RequestReadTimeout、TimeOut、KeepAliveTimeout 和MaxRequestWorkers来减少资源消耗值。此外,系统管理员应该考虑以下其他因素:
• 使用限制特权的账户运行HTTPd,如果攻击者试图攻击后台程序本身的话,这样做能够最大限度地减少对整个系统的影响。
• 通过配置AllowOverride参数到None,拒绝对. htaccess文件的使用。这能够确保htaccess文件不能使用。
• 配置模式(例如mod_python 和 mod_php)来使用安全模式,在有必要的地方进行这种配置,但在新版本中可能没有这个必要。
• 锁定文件系统,这样只有根用户可以重写Apache二进制文件,这样做将防止httpd二进制文件被恶意版本替换。
监测Apache攻击
即使部署了保护措施来保护Apache服务器,企业仍然必须警惕攻击者通过其他途径“趁虚而入”。为了确保攻击者不会偷偷潜入,企业必须密切监测其日志来追踪攻击迹象。启用一定水平的日志记录,同时记录系统水平的HTTPd,以及内部web后台程序。你可以简单地创建bash或Python脚本,来搜索日志中特定内容,或者使用内置syslogd命令来提醒管理员潜在的错误或攻击。有效的监测和警报需要企业了解所提供的内容。一些内容(例如使用LDAP用于身份验证)的运作方式可能会导致不太动态的web服务器生成警报。如果你的服务器试图使用LDAP,而web应用被设计为使用本地身份验证,这可能会引起报警。禁用mod_php可能使企业排除这种类型的攻击警报,从而使真正的警报发挥其作用。对于面临高风险攻击的web服务器,考虑启用mod_log_forensic以获得对客户端请求的更深入视图。
启用mod_security,所有系统都可以获益,但高风险web服务器获益最多。该模块还可以使企业利用各种工具来检测和阻止攻击。你还可以通过IPS、IDS、NIDS和SIEM系统将它集成到现有的企业安全模式中。mod_security还能够作为web应用防火墙,当用于可能没有最佳输入过滤的web应用时,它的作用非常大。
保持警惕
通过制定这些基本措施,企业可以确保Apache HTTP服务器的安全,同时以最低风险提供内容。操作安全系统最重要的部分之一就是保持追踪最新的安全风险和软件版本。这样做,再加上积极地监测,将能够很好地保护你的Apache实例的安全。