安全強化

在電腦安全領域中的安全強化（hardening）也稱為安全固化，是指減少系統的攻擊表面，提昇系統安全性的作法。若系統的功能越多，攻擊表面就越大。理論上單一功能的系統會比多功能的系統要安全。減少攻擊可能性的方式一般包括有更換預設密碼、移除不必要的軟體、不必要的用户或是登入、關閉或是移除不必要的服務。

依照NIST的定義，安全強化是指：「利用增加漏洞的修補程式，關閉不必要的服務來消除攻擊表面的作法。」

有許多對Unix及Linux系統安全強化的方式。這些包括有在内核增加像是或是PaX的修補程式，關閉通訊埠、架設入侵检测系统（IDS）、防火墙及入侵預防系統（IPS）。不過也有來源認為防火墙、入侵检测系统及入侵預防系統不算是安全強化。

也有用來安全強化的脚本语言和工具，像是、 Bastille Linux、Solaris系統的JASS以及Apache/PHP Hardener，這些工具可以在組態檔案中關閉不必要的功能，或是進行其他保護性的措施。
目的
實務上，安全強化的目的有以下幾點：

減少漏洞被利用的可能性
減少可能的攻擊方式
在駭客攻擊成功後，減少其可用的工具
在駭客攻擊成功後，減少其可取得的權限
增加系統偵測駭客攻擊的能力

安全強化也可能會降低系統的複雜度以及維護時需要花的心力，這也可以看成安全強化的另一個目的，可以增加系統受控的程度，減少管理錯誤的可能性。
 二進制強化 
二進制強化（Binary hardening）是一種分析並且修改二进制文件以避免常見暴露的安全技術。二進制強化和編譯器無關，和工具鏈（toolchain）有關。例如，有一種二進制強化技術是偵測潛在的緩衝區溢位，將已有的程式改為較安全的程式。處理二進制檔的優點是可以直接處理既有程式碼的漏洞，不需要其原始碼（原始碼可能已無法取得或是不完整。再者，相同的技術可以應用在由多個編譯器產生的二進制檔中，其中可能有些是比較不安全的。

二進制強化常伴隨著非確定性的，對控制流及指令位置的修改，其目的是避免駭客可以復用程式碼來進行攻擊。常見的強化技術有：


 堆疊溢位保護
 地址无关執行檔及位址空間配置隨機載入
 Binary stirring（亂數化基礎區塊的地址）
 Pointer masking（避免代碼注入）
 控制流亂數化（避免control flow diversion）

相關條目
计算机安全

參考資料

外部連結
  at globalsecurity.org
Category:電腦安全流程