修補的多面性
使您的系統保持最新可以通過許多不同的方式完成,每種方式都有自己的優點和缺點。一些所謂的「打補丁」方法甚至根本不打補丁。這是您瞭解不同補丁產品的 一站式指南 。
修補既是一個IT過程,也是一個基本的安全實踐。它通常被描述為通過添加或用更新的元件替換現有元件來修復問題或向給定系統添加功能的過程。這可以在許多不同的級別完成,例如通過在子系統、依賴項或核心功能級別更新代碼。同樣,您可以修補特定的應用程式、操作系統、驅動程式或任何其他元件。
雖然目標始終是擁有正在修補的任何內容的最新版本,但如何完成此操作是多種修補方法之間的區別。
與 IT 中的其他術語(如調試)一樣,修補源自物理過程。它指的是打孔卡孔的實際覆蓋,即您將“修補”代碼的一部分。這似乎已經過時了,因此我們將介紹更現代的方法。
傳統修補
這就是大多數人會認識到的補丁。它包括下載給定軟體的更新版本,然後用新版本替換磁碟上的相應檔。
實現起來相對簡單,理解起來也很簡單:你有一個給定軟體的舊版本,被一個新版本完全或部分取代。您需要重新啟動應用程式或重新啟動系統才能選擇新版本,但沒有其他移動部件。當然,其中最大的缺點是重新啟動應用程式或重新啟動整個系統是一個緩慢的操作,會導致正在運行的任何工作負載嚴重中斷。正因為如此,它不是可以以臨時方式完成的事情,因此它通常發生在所謂的「維護視窗」預先批准的時間段內,預計系統會出現可用性或性能問題。
同樣,這設置起來很慢,並且在出現問題時容易超過預測的時間分配。
虛擬修補
這是名稱中包含“修補”的東西,並且似乎提供了表面上的修補結果,但實際上,在完全不同的級別上運行。虛擬修補不會發生實際的代碼替換或更正。它包括在防火牆級別實施威脅檢測,阻止已知的攻擊模式。從攻擊者的角度來看,攻擊失敗,因此攻擊者可能會認為系統已修補,而實際上並非如此。
這種「修補」方法有幾個缺點:您實際上不會在任何時候將更正的代碼從系統中獲取,因為保護僅涵蓋已知的攻擊模式 - 這會立即忽略僅限本地的問題,並且可以通過修改與給定威脅對應的網路流量來欺騙。
如果缺點沒有立即取消這種「修補」方法的資格,那麼優點包括沒有中斷(因為系統內部實際上什麼都不做),單個部署可以覆蓋多個系統(它實際上是一個修改後的應用程式防火牆進程),當新的僅遠端威脅被添加到其中時,它將立即保護其背後的系統。
固件修補
固件更新是傳統修補的一種特殊情況,但需要注意的是,您要將通常難以更新的存儲介質中包含的代碼直接修補到 EPROM (可擦除可程式設計只讀記憶體)晶元中。這曾經是早期智慧設備和第一代物聯網設備的常態。該軟體將在工廠中載入,並且很少 - 如果有的話 - 獲得任何更新。這部分是由於更新和安全性不像今天那樣是主要問題,但也因為軟體的存儲方式使其難以更新。較新的設備將全部或部分代碼編寫在更標準的媒體中,如SSD,SD卡或類似介質,這些介質更容易修改。
當您的代碼在晶元上運行時,必須連接到具有專有軟體要求和電纜的專用書寫硬體,這增加了一層複雜性,使整個過程對大多數IT團隊非常沒有吸引力。因此,這些設備在其整個使用壽命期間永遠不會看到更新。不幸的是,許多仍在列印伺服器,IP攝像機和數據中心感測器周圍都是以這種方式運行的設備的一個很好的例子。
即時修補
即時修補是修改正在運行的代碼並將已知的錯誤部分或函數替換為這些相同部分的更正版本的過程。這完全在記憶體中完成,不需要重新啟動應用程式即可選取新的更改。前一刻軟體在函數中包含錯誤,下一刻就使用該函數的更正版本。
沒有重新啟動,沒有重新啟動,也沒有中斷。因此,補丁可以立即部署,因為該操作不需要執行維護窗口,從而可以更快地回應新出現的威脅。現在,它不必像傳統補丁那樣等待數周或數月才能部署補丁,而是可以在補丁可用后的幾小時甚至幾分鐘內發生。
即時修補增加的複雜性發生在補丁創建時。補丁的創建方式必須使其可以使用與原始代碼相同的變數大小和對齊方式載入到正確的記憶體空間中。這種複雜性對即時修補解決方案的用戶是隱藏的,因為它僅對即時補丁提供程序可見。
一個即時補丁子系統已經能夠在 Linux 內核中部署補丁超過 10 年了,並且已經創建了多個不同的解決方案。 KernelCare Enterprise 就是這種解決方案的一個例子,它可以即時修補 Linux 內核、關鍵系統庫、資料庫甚至虛擬機管理程式。
即時修補有許多變體,包括臨時和永久。這與即時修補過程的實施方式有關 - 作為權宜之計或傳統修補的更永久替代方案。
結論
您可以在此處找到有關即時修補與虛擬修補的比較資訊,以及永久和臨時即時修補之間的區別 此處.
有很多方法可以進行修補。對於任何對保持系統、數據和使用者安全有最小關注點的組織來說,修補是必須在戰略和運營級別解決的基本問題之一,每個環境都有自己的怪癖,因此請務必根據您的具體情況選擇正確的流程。

