安全强化

维基百科,自由的百科全书

电脑安全领域中的安全强化(hardening)也称为安全固化,是指减少系统的攻击表面,提升系统安全性的作法。若系统的功能越多,攻击表面就越大。理论上单一功能的系统会比多功能的系统要安全。减少攻击可能性的方式一般包括有更换预设密码、移除不必要的软件、不必要的用户或是登入、关闭或是移除不必要的服务

依照NIST的定义,安全强化是指:“利用增加漏洞的修补程式,关闭不必要的服务来消除攻击表面的作法。”[1]

有许多对UnixLinux系统安全强化的方式。这些包括有在内核增加像是Exec Shield英语Exec Shield或是PaX的修补程式,关闭通讯埠、架设入侵检测系统(IDS)、防火墙及入侵预防系统(IPS)。不过也有来源认为防火墙、入侵检测系统及入侵预防系统不算是安全强化。

也有用来安全强化的脚本语言和工具,像是Lynis英语Lynis、 Bastille Linux、Solaris系统的JASS以及Apache/PHP Hardener,这些工具可以在组态档案中关闭不必要的功能,或是进行其他保护性的措施。

目的

实务上,安全强化的目的有以下几点:

  • 减少漏洞被利用的可能性
  • 减少可能的攻击方式
  • 在骇客攻击成功后,减少其可用的工具
  • 在骇客攻击成功后,减少其可取得的权限
  • 增加系统侦测骇客攻击的能力

安全强化也可能会降低系统的复杂度以及维护时需要花的心力,这也可以看成安全强化的另一个目的,可以增加系统受控的程度,减少管理错误的可能性。

二进制强化

二进制强化(Binary hardening)是一种分析并且修改二进制文件以避免常见暴露的安全技术。二进制强化和编译器无关,和工具链(toolchain)有关。例如,有一种二进制强化技术是侦测潜在的缓冲区溢位,将已有的程式改为较安全的程式。处理二进制档的优点是可以直接处理既有程式码的漏洞,不需要其源代码(源代码可能已无法取得或是不完整。再者,相同的技术可以应用在由多个编译器产生的二进制档中,其中可能有些是比较不安全的。

二进制强化常伴随着非确定性的,对控制流及指令位置的修改,其目的是避免骇客可以复用程式码来进行攻击。常见的强化技术有:

相关条目

参考资料

  1. ^ Hardening. NIST. [2023-12-14]. (原始内容存档于2023-12-14). 

外部链接