Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.3. 保护服务

虽然用户对管理控制的访问权限对企业内的系统管理员而言是一个重要问题,但监控哪个网络服务处于活动状态对任何管理和运行 Linux 系统的人员而言至关重要。
红帽企业 Linux 7 中的许多服务都是网络服务器。如果网络服务正在计算机上运行,则服务器应用程序(称为守护进程)正在侦听一个或多个网络端口上的连接。其中每个服务器都应被视为潜在的攻击途径。

4.3.1. 服务风险

网络服务可能会给 Linux 系统带来很多风险。以下是一些主要问题的列表:
  • 拒绝服务攻击(DoS) - 通过请求占用服务时,拒绝服务攻击可能会导致系统无法使用,因为它尝试记录并回答每个请求。
  • 分布式拒绝服务攻击(DDoS) - 一种 DoS 攻击类型,它使用多台受入侵机器(通常数以千计或更长时间)来指示对服务的协同攻击,将其与请求充满,并使其无法使用。
  • 脚本漏洞攻击 - 如果服务器使用脚本执行服务器端操作,如 Web 服务器通常执行,攻击者可以将编写错误的脚本作为目标。这些脚本漏洞攻击可能会导致缓冲区溢出状况,或允许攻击者更改系统上的文件。
  • 缓冲区溢出攻击 - 希望侦听端口 1 到 1023 的服务必须以管理权限启动,或者需要为它们设置 CAP_NET_BIND_SERVICE 功能。当进程绑定到端口并正在侦听该端口后,通常会丢弃特权或功能。如果没有丢弃特权或功能,并且应用具有可利用的缓冲区溢出,攻击者能够以运行守护进程的用户身份获取系统访问权限。由于存在可利用的缓冲区溢出,因此攻击者使用自动化工具来识别具有漏洞的系统,一旦获得访问权限,他们便使用自动化的根基片来维护其对系统的访问权限。
注意
在红帽企业 Linux 7 中,缓冲区溢出漏洞的风险由ExecShield 缓解,这是受 x86 兼容单处理器和多处理器内核支持的可执行内存分段和保护技术。ExecShield 通过将虚拟内存划分为可执行和非可执行文件片段来降低缓冲区溢出的风险。任何试图在可执行段外执行的程序代码(如从缓冲区溢出利用而注入的恶意代码)都会触发分段错误并终止。
ExecShield 还包括对 AMD64 平台和 Intel® 64 系统中无 eXecute (NX)技术的支持。这些技术可与 ExecShield 配合使用,防止恶意代码以细粒度为 4KB 的可执行文件代码在虚拟内存的可执行部分运行,从而降低受缓冲区溢出漏洞攻击攻击的风险。
重要
为限制网络受到攻击的风险,应关闭所有未使用的服务。