安全強化在電腦安全領域中的安全強化(hardening)也稱為安全固化,是指減少系統的攻擊表面,提昇系統安全性的作法。若系統的功能越多,攻擊表面就越大。理論上單一功能的系統會比多功能的系統要安全。減少攻擊可能性的方式一般包括有更換預設密碼、移除不必要的軟體、不必要的用户或是登入、關閉或是移除不必要的服務。 依照NIST的定義,安全強化是指:「利用增加漏洞的修補程式,關閉不必要的服務來消除攻擊表面的作法。」[1] 有許多對Unix及Linux系統安全強化的方式。這些包括有在内核增加像是Exec Shield或是PaX的修補程式,關閉通訊埠、架設入侵检测系统(IDS)、防火墙及入侵預防系統(IPS)。不過也有來源認為防火墙、入侵检测系统及入侵預防系統不算是安全強化。 也有用來安全強化的脚本语言和工具,像是Lynis、 Bastille Linux、Solaris系統的JASS以及Apache/PHP Hardener,這些工具可以在組態檔案中關閉不必要的功能,或是進行其他保護性的措施。 目的實務上,安全強化的目的有以下幾點:
安全強化也可能會降低系統的複雜度以及維護時需要花的心力,這也可以看成安全強化的另一個目的,可以增加系統受控的程度,減少管理錯誤的可能性。 二進制強化二進制強化(Binary hardening)是一種分析並且修改二进制文件以避免常見暴露的安全技術。二進制強化和編譯器無關,和工具鏈(toolchain)有關。例如,有一種二進制強化技術是偵測潛在的緩衝區溢位,將已有的程式改為較安全的程式。處理二進制檔的優點是可以直接處理既有程式碼的漏洞,不需要其原始碼(原始碼可能已無法取得或是不完整。再者,相同的技術可以應用在由多個編譯器產生的二進制檔中,其中可能有些是比較不安全的。 二進制強化常伴隨著非確定性的,對控制流及指令位置的修改,其目的是避免駭客可以復用程式碼來進行攻擊。常見的強化技術有:
相關條目參考資料外部連結
|