安全強化

電腦安全領域中的安全強化(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). 

外部連結