Linux 服务器加固与安全验证

在如今的技术领域中,做一个完全安全的系统是一个不可能实现的目标。正如 FBI 的 Dennis Hughes 所说,“真正安全的计算机是没有连线、锁在一个保险箱中、埋藏在一个秘密场所的地下 20 英尺处的计算机……我甚至不确定这样是否安全。”在不能选择通过拔掉线缆、锁住和掩埋计算机来保护系统的世界里,可通过以下步骤缩小 您系统的攻击面。Open Web Application Security Project (OWASP) 的 攻击面分析备忘录 提供了有关攻击面的更多信息。

sane 系统配置等流程可缩小攻击面,而渗透测试和模糊测试可帮助工程师加固系统,通过熟练利用漏洞和意外输入来攻破系统,从而查找可修复的漏洞。这些技术通过在有机会利用恶意实体之前检测和消除漏洞,提高了系统的安全性。

Sane 配置

Sane 配置是加固任何系统的关键,因为任何漏洞都可以在某种程度上被利用。例如,SSH(比如 arcfour)或一些协议(比如用于 Web 服务器的 TLSv1.0)对遗留密码的支持,是攻击者获取访问权并且损害系统的一种途径。为了阻止这些和其他漏洞,在执行用户授权时请遵循最少特权原则;为用户或进程提供能够完成需要任务所需的最小访问权和许可。关闭未用端口,以减少网络攻击者可访问的入口点,从而阻止来自网络的入侵。此外,确保启用了防火墙协议,从而进一步限制可能的网络攻击。使用某种工具(比如 seccomp)过滤系统调用对进程的可用性,减少暴露的内核表面。

未用的包没有提供任何额外功能,但却是潜在的攻击载体。确认安装的应用程序和包是必需的,删除不必要的应用程序和包。一个简单示例是,如果一个系统仅通过控制台访问,则删除所有未用的 GUI 支持。Center for Internet Security (CIS-CAT) 提供的 Configuration Assessment Tool 是一个有用的应用程序,允许用户运行不同深度的加固基准测试,以指出系统在哪些地方未满足想要的标准。强烈推荐使用 CIS-CAT 帮助您发现系统的细微配置加固漏洞。

除了系统加固之外,软件发布者还为用户提供了重要的软件和安全更新。代码修复和改进对系统安全有一定的影响。过时的系统是攻击者更容易攻击的目标。依据 United States Computer Emergency Readiness Team,如果受害者拥有恰当更新的系统,可以避免高达 85% 的针对性攻击 (https://www.us-cert.gov/ncas/alerts/TA15-119A)。如果系统得到恰当更新,可显著减少攻击成功率。普遍攻击,包括恶意的实体,都是众所周知的。尽责的供应商会努力及时发布补丁。但是,如果系统管理员未能应用更新,这些补丁就无法保护他们提供的系统和服务。必须尽力确保所有系统得到及时更新。

渗透测试

渗透测试是一种使用自动化工具或自定义攻击查找系统漏洞的方法。渗透测试的目标是破坏系统安全防护,在没有期望的权限或凭据的情况下通过非故意操作模式获得数据的访问权。这些攻击使用目标系统中存在的已知利用手段和漏洞。渗透测试需要一种与传统验证方法(比如验证测试)不同的思维。不同于更加传统的测试,渗透测试人员尝试使用恶意攻击者的工具和方法访问系统组件和数据。尽管渗透测试的原理看起来比较落后,但它提供了比单一传统测试更加透明和完整的系统安全概况。

渗透测试工具链包含一些示例,比如 Metasploit,这是一个功能全面的渗透测试框架,其中包含数据库中已知的漏洞和用于扫描网络和已暴露系统的工具。其他示例还有 NmapWireshark,它们分别使用端口扫描或包检查来测试网络。这两个工具都提供了系统操作和响应网络的情况的详细信息。端口扫描显示可通过网络获得哪些应用程序和系统实用程序,显示哪些端口未用并应考虑阻止访问。可从网络访问的任何实体都是可能的目标,所以需要优先考虑禁止访问。以下工具非常有用,能在各种目标上执行自动化的漏洞检测:

除了扫描和工具之外,深入了解正在遭受攻击的系统始终有利无弊。创建特定的利用手段并手动执行有效负载,比定义许多形式的渗透测试的自动化过程复杂得多。一旦找到某种利用手段,就可以创建自动化测试和有效负载传送系统,但寻找这类攻击是一个艰苦的过程。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7f311dbf1b4c3e1c9cfff16ebc485cac.html