堆疊執行停用保護

保護電腦系統安全是隨需應變商業的要務之一。在當今高度網路化的環境中,如何保護電腦免受不同來源的攻擊,已形成一項艱鉅的挑戰。

由於攻擊的手法日益翻新,使電腦系統受到攻擊的機會大增,而企業及政府機構很有可能因此無法正常運作。由於沒有一項安全措施可以提供完善的保護以防範攻擊,因此您應部署多個安全機制來抵擋安全攻擊。本節將說明搭配 AIX® 使用的安全機制,防止因執行緩衝區溢位所進行的攻擊。

攻擊安全漏洞的手法有許多種,但最常見的一種方法就是:監視系統所提供的管理工具,然後尋找及利用緩衝區溢位。讓緩衝區溢位攻擊有機可乘的原因是,系統未能妥善驗證資料 (例如指令行、環境變數、磁碟或終端機 I/O),而造成內部程式緩衝區寫入過多。攻擊程式碼會透過緩衝區溢位插入正在執行的處理程序,並變更其執行路徑。傳回位址將被改寫並重新導向到插入程式碼的位置。出現安全漏洞的常見原因是範圍檢查不正確或不存在,或是對資料來源有效性的假設不正確。比方說,如果資料物件足夠存放 1 KB 的資料,但程式未能檢查輸入的範圍,使複製到該資料物件的內容得以超過 1 KB 時,就會出現緩衝區溢位。

入侵者的目的是要攻擊提供 root 專用權給一般使用者的指令及/或工具。如此即會取得對程式的控制,且會啟用所有專用權,並容許緩衝區溢位。通常攻擊是針對擁有 root 的 UID 集或使 shell 執行的程式,藉此以 root 進入 shell 來存取系統。

若要防止這類的攻擊,您可以阻擋執行的攻擊程式碼藉由緩衝區溢位進入系統。針對處理程序通常不會執行作業的記憶體區部分 (即堆疊及資料堆記憶體區),可以設定停止在這些區域上執行作業。