程式碼安全 兩種程式碼漏洞

zktq2021發表於2022-07-05

沒有什麼能消除所有的錯誤,在編寫的程式碼中也是如此。平均而言,所有程式碼都有錯誤。其中一些錯誤是良性的,有些會導致意外提前終止,少數會導致資源消耗失控。一些錯誤會導致安全漏洞,讓使用者做一些意想不到的事情,有時甚至是不希望發生的事情。

一些安全漏洞是行為漏洞,因為它們取決於程式碼在執行時的行為。另一種型別是智慧漏洞,程式碼行為可能是正確的,但會洩露有關如何利用系統的詳細資訊。這是兩種主要的程式碼漏洞型別,兩者都有風險。

執行時的行為漏洞

程式碼執行時的行為漏洞涵蓋了廣泛的問題,但所有這些問題都是程式碼行為導致的結果,在特定的情況下導致了不期望發生的結果,其中大多數都是無意的。

傳送到資料庫的未轉義使用者輸入可能會導致SQL隱碼攻擊漏洞,或者傳送到瀏覽器的未經處理的字串可能會建立跨站點指令碼(XSS)漏洞。有些行為是有意為之,但卻會帶來意想不到的後果;允許其輸出環境變數或從外部資源讀取資料的Log4j字串替換行為是故意的,但我們現在稱為 Log4Shell 的惡意使用並非如此。在最近的另一個示例中,可以利用多種行為組合在 Linux 臺式計算機上獲得 root 許可權。

內容中的情報漏洞

在20世紀50年代,電話公司(當時幾乎只有一家)開始實施完全自動撥號,無需人工接線員在交換站接聽電話。從中收集到的資訊導致建立了“藍盒子”,利用內部資訊讓外人控制電話裝置並免費撥打長途電話。

今天,我們的程式碼中存在情報漏洞。程式碼中包含大量的秘密,以及這些秘密連線到哪些系統的細節。這些秘密曾經很難管理,將它們放入程式碼中是唯一可行的選擇。現在我們有像Hashicorp Vault這樣的工具,例如,幾乎每個雲中都有安全金鑰庫,但是遺留程式碼中所有這些秘密的遺留和安全債務對於Lapsus$這樣的攻擊者和其他專門針對程式碼的人來說是一個金礦。

安全是一個過程,而不是一個產品

我們每個人都能說出許多型別的行為漏洞,比不同型別的情報漏洞多得多。但這兩類漏洞所代表的風險相對相同。最近發生的事件表明,攻擊者利用從程式碼中獲取的內部資訊,如從程式碼中獲取的密碼和金鑰,夠在防火牆和其他訪問控制的情況下快速行動

將檢測整合到開發人員的工作流程中,這樣他們就可以在處理和審查程式碼時在上下文中採取行動,這是消除新的安全問題的有效方法。為開發人員提供所需的資訊以瞭解其程式碼中智慧風險的總體情況、風險最高的區域,以及指向他們可以立即修復的可操作問題以改善程式碼健康狀況,這些工具對於幫助團隊降低歷史風險是有必要的,理想情況下是透過輪換發現的任何秘密。

現有的程式碼安全檢測工具可以自動完成這個過程,並幫助團隊消除程式碼中超過一半的風險。


文章來源:

https://devops.com/the-two-types-of-code-vulnerabilities/


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2904295/,如需轉載,請註明出處,否則將追究法律責任。

相關文章