OWASP 十大安全風險 | 概述

目錄

OWASP Top 10 概述

什麼是OWASP?

OWASP 是一個致力於網絡應用程序安全教育的非盈利組織。 

OWASP 學習材料可在其網站上訪問。 他們的工具可用於提高 Web 應用程序的安全性。 這包括文檔、工具、視頻和論壇。

OWASP Top 10 是一個列表,突出顯示了當今 Web 應用程序的首要安全問題。 他們建議所有公司將此報告納入其流程以降低安全風險. 以下是 OWASP 10 年 2017 大報告中包含的安全風險列表。

SQL注入

當攻擊者向 Web 應用程序發送不適當的數據以破壞應用程序中的程序時,就會發生 SQL 注入.

SQL注入的一個例子:

攻擊者可以將 SQL 查詢輸入到需要用戶名明文的輸入表單中。 如果輸入表單不安全,將導致執行 SQL 查詢。 這個 被提及 作為 SQL 注入。

要保護 Web 應用程序免受代碼注入,請確保您的開發人員對用戶提交的數據使用輸入驗證. 這裡的驗證是指拒絕無效輸入。 數據庫管理員還可以設置控制以減少 信息 這樣可以 被披露 在註入攻擊中.

為了防止 SQL 注入,OWASP 建議將數據與命令和查詢分開。 更好的選擇是使用安全的 API 防止使用解釋器,或遷移到對象關係映射工具 (ORM).

認證失敗

身份驗證漏洞可能允許攻擊者訪問用戶帳戶並使用管理員帳戶破壞系統. 網絡罪犯可以使用腳本在系統上嘗試數千種密碼組合,看看哪些有效. 一旦網絡罪犯進入,他們就可以偽造用戶的身份,讓他們能夠訪問機密信息.

允許自動登錄的 Web 應用程序中存在身份驗證失效漏洞。 糾正身份驗證漏洞的一種流行方法是使用多因素身份驗證。 此外,登錄速率限制可能 被包括在內 在網絡應用程序中防止暴力攻擊。

敏感數據暴露

如果 Web 應用程序不保護敏感的攻擊者可以訪問和使用它們來獲取利益。 路徑攻擊是竊取敏感信息的一種流行方法。 當所有敏感數據都被加密時,暴露的風險可以降到最低。 Web 開發人員應確保沒有敏感數據暴露在瀏覽器上或被不必要地存儲。

XML 外部實體 (XEE)

網絡犯罪分子可能能夠上傳惡意 XML 內容、命令或代碼,或將其包含在 XML 文檔中. 這允許他們查看應用程序服務器文件系統上的文件。 一旦獲得訪問權限,他們就可以與服務器交互以執行服務器端請求偽造 (SSRF) 攻擊.

XML 外部實體攻擊可以 被阻止 允許 Web 應用程序接受不太複雜的數據類型,例如 JSON. 禁用 XML 外部實體處理還可以減少 XEE 攻擊的機會。

訪問控制損壞

訪問控制是一種系統協議,用於限制未經授權的用戶訪問敏感信息。 如果訪問控制系統被破壞,攻擊者可以繞過身份驗證。 這使他們能夠像獲得授權一樣訪問敏感信息。 可以通過在用戶登錄時實施授權令牌來保護訪問控制。 對於用戶在經過身份驗證時發出的每個請求,都會驗證用戶的授權令牌,表明用戶已獲得發出該請求的授權。

安全配置錯誤

安全配置錯誤是一個常見問題 網絡安全 專家觀察 Web 應用程序。 發生這種情況的原因是錯誤配置的 HTTP 標頭、損壞的訪問控制以及在 Web 應用程序中公開信息的錯誤顯示. 您可以通過刪除未使用的功能來更正安全配置錯誤。 您還應該修補或升級您的軟件包。

跨站腳本(XSS)

當攻擊者操縱受信任網站的 DOM API 在用戶瀏覽器中執行惡意代碼時,就會出現 XSS 漏洞. 當用戶單擊看似來自受信任網站的鏈接時,通常會執行此惡意代碼. 如果網站沒有針對 XSS 漏洞進行保護,它可以 被妥協. 惡意代碼 被執行 讓攻擊者訪問用戶的登錄會話、信用卡詳細信息和其他敏感數據.

為防止跨站點腳本 (XSS),請確保您的 HTML 已得到妥善清理。 這個可以 達到 根據選擇的語言選擇可信框架. 您可以使用 .Net、Ruby on Rails 和 React JS 等語言,因為它們有助於解析和清理您的 HTML 代碼。 將來自經過身份驗證或未經身份驗證的用戶的所有數據視為不受信任可以降低 XSS 攻擊的風險.

不安全的反序列化

反序列化是將序列化數據從服務器轉換為對象。 數據反序列化在軟件開發中很常見。 數據不安全 被反序列化 來自不受信任的來源。 這個可以 可能 讓您的應用程序受到攻擊。 當來自不受信任來源的反序列化數據導致 DDOS 攻擊、遠程代碼執行攻擊或身份驗證繞過時,就會發生不安全的反序列化.

為避免不安全的反序列化,經驗法則是永遠不要信任用戶數據。 每個用戶輸入的數據應該 被處理 as 可能 惡意的。 避免反序列化來自不受信任來源的數據。 確保反序列化函數 使用 在您的 Web 應用程序中是安全的。

使用具有已知漏洞的組件

庫和框架使開發 Web 應用程序變得更快,而無需重新發​​明輪子. 這減少了代碼評估中的冗餘。 它們為開發人員專注於應用程序更重要的方面鋪平了道路。 如果攻擊者發現這些框架中的漏洞,使用該框架的每個代碼庫都會 被妥協.

組件開發人員通常會為組件庫提供安全補丁和更新。 為避免組件漏洞,您應該學會使用最新的安全補丁和升級使您的應用程序保持最新狀態. 未使用的組件應該 被刪除 從應用程序減少攻擊向量。

日誌記錄和監控不足

日誌記錄和監控對於顯示 Web 應用程序中的活動很重要。 日誌記錄使跟踪錯誤變得容易, 監控 用戶登錄和活動。

未記錄安全關鍵事件時,記錄和監視不足 正確. 攻擊者利用這一點在有任何明顯響應之前對您的應用程序進行攻擊.

日誌記錄可以幫助您的公司節省金錢和時間,因為您的開發人員可以 容易 尋找錯誤. 這使他們可以更專注於解決錯誤而不是搜索錯誤。 實際上,日誌記錄可以幫助您的站點和服務器每次都保持正常運行,而不會出現任何停機.

結論

好的代碼不是 只是 關於功能,這是為了保證您的用戶和應用程序的安全. OWASP Top 10 列出了最關鍵的應用程序安全風險,是開發人員編寫安全 Web 和移動應用程序的絕佳免費資源. 從長遠來看,培訓您團隊中的開發人員評估和記錄風險可以節省您的團隊時間和金錢。 如果你願意 了解更多有關如何在 OWASP Top 10 上培訓您的團隊的信息,請單擊此處。