7 招搞定你的网站安全(下)

  • 作者: 酷哥
  • 最后编辑: 2017年05月07日
  • 标签: 网络安全

这是 7 招搞定你的网站安全(下)篇,如果你没有看过前一篇,建议你先从那里入手。

文件审计和入侵检测系统

文件审计是在系统处于已知良好状态时,将当前系统与文件的记录和文件特征进行比较的过程。这用于检测可能已授权的系统更改。

入侵检测系统或IDS是一种监视系统或网络以进行未授权活动的软件。许多基于主机的IDS实现使用文件审计作为检查系统是否已更改的方法。

他们如何提高安全性?

与上述服务级审计类似,如果您认真确保安全系统,则能够对系统执行文件级审计非常有用。这可以由管理员定期执行或作为IDS中自动化过程的一部分。

这些策略是一些绝对确保您的文件系统未被某些用户或进程更改的唯一方法。由于很多原因,入侵者通常希望保持隐藏,以便他们可以继续在延长的时间内利用服务器。他们可能会用受损的版本替换二进制文件。对文件系统进行审计将告诉您是否有任何文件被更改,从而使您对服务器环境的完整性有信心。

这是怎么实现?

实施IDS或执行文件审计可能是一个相当密集的过程。初始配置包括告知审计系统您对服务器进行的任何非标准更改,并定义应排除以创建基准读数的路径。

它也使日常操作更加深入。它使更新过程变得复杂,因为您需要在运行更新之前重新检查系统,然后在运行更新后重新创建基准以捕获对软件版本的更改。您还需要将报告卸载到其他位置,以便入侵者无法更改审计以覆盖其轨道。

虽然这可能会增加您的管理负载,能够检查您的系统对已知好的副本是唯一的方法,以确保文件没有在您不知情的情况下更改。一些流行的文件审计/入侵检测系统是Tripwire和Aide。

服务审计

到目前为止,我们已经讨论了一些可以实现以提高安全性的技术。但是,安全性的一大部分是分析您的系统,了解可用的攻击面,并尽可能最佳地锁定组件。

服务审计是发现在您的基础架构中的服务器上运行什么服务的过程。通常,默认操作系统配置为在引导时运行某些服务。安装附加软件有时可以拉入也自动启动的依赖项。

服务审计是了解系统上正在运行的服务,它们用于通信的端口以及接受哪些协议的一种方式。此信息可以帮助您配置防火墙设置。

如何提高安全性?

服务器启动许多进程用于内部目的和处理外部客户端。这些代表了恶意用户的扩展攻击面。您运行的服务越多,可访问软件中存在的漏洞就越大。

一旦你了解你的机器上正在运行什么网络服务,你就可以开始分析这些服务。一些问题,你会想问自己每一个是:

这个服务应该运行吗?

服务是否在其不需要的接口上运行?应该绑定到单个IP吗? 您的防火墙规则是否构造为允许合法流量传递到此服务? 您的防火墙规则是否阻止不合法的流量? 您是否有接收关于这些服务的漏洞的安全警报的方法? 在基础架构中配置任何新服务器时,此类服务审核应该是标准做法。

这是怎么实现?

做基本的服务审计是非常简单的。您可以使用netstat命令找出哪些服务正在侦听每个接口上的端口。一个简单的示例显示用于监听TCP和UDP流量的程序名称,PID和地址:

sudo netstat -plunt

您将看到如下所示的输出:

Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 887/sshd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 919/nginx
tcp6 0 0 :::22 :::* LISTEN 887/sshd
tcp6 0 0 :::80 :::* LISTEN 919/nginx

您需要注意的主要列是Proto,本地地址和PID /程序名称。如果地址为0.0.0.0,那么服务将接受所有接口上的连接。

孤立的执行环境

隔离执行环境是指其中各个组件在其自己的专用空间内运行的任何方法。

这意味着将您的离散应用程序组件分离到自己的服务器,或者可以参考将服务配置为在chroot环境或容器中操作。隔离级别很大程度上取决于应用程序的需求和基础架构的现实情况。

他们如何提高安全性?

将进程隔离为单独的执行环境可提高隔离任何可能出现的安全问题的能力。类似于舱壁和舱室如何帮助防止船舶中的船体破坏,分离各个组件可能会限制入侵者对其他基础架构的访问。

这是怎么实现?

根据您选择的安全壳类型,隔离应用程序可以相对简单。通过将各个组件打包在容器中,您可以快速实现一些隔离措施,但请注意,Docker不会将其容器化作为安全功能。

为每个片段设置chroot环境也可以提供一定程度的隔离,但这也不是万无一失的隔离方法,因为通常有一些方法可以打破chroot环境。将组件移动到专用机器是最好的隔离级别,并且在许多情况下可以是最简单的,但是对于附加机器可能花费更多。

结论

上面列出的策略只是您可以提高的一些增强功能,以提高系统的安全性。重要的是要认识到,虽然迟到比从未更好,但是安全措施的有效性降低,等待实施它们的时间越长。安全不能是事后的想法,必须从一开始就与您提供的服务和应用程序一起实施。