如何使用Lightrun檢測、調查和驗證安全事件和零日問題的修復
譯文安全是一個具有深度和廣度的廣闊主題。但安全專家認為可以將Lightrun作為安全工具的一種創造性方法,并且可以將其提升到一個新的水平。
什么是Lightrun?
Lightrun是一個面向開發人員的可觀察性工具:就像生產環境中的調試器,并且沒有安全風險。Lightrun是一種足夠靈活的工具,可以適應多個模具。
使用Lightrun,可以在不更改代碼的情況下注入日志、添加快照(不會停止代碼執行的斷點),并使用指標在代碼級別獲得可觀察的見解。
安全工具用例
將Lightrun作為安全工具有幾個原因。以下重點介紹以下內容:
- 驗證是否存在安全漏洞。
- 檢查是否有人主動利用了安全漏洞。
- 驗證是否正確部署了修復程序。
為了保護應用程序,還有很多工作要做。Lightrun是一種通用工具;它不是Snyk等現有安全工具的替代品。并且它是免費的,填補了代碼級別的空白。
最后,將討論Lightrun如何保護本身,如果Lightrun本身不安全,就不能將其視為一種安全工具。
驗證安全漏洞
安全工具就像可觀察性工具,可以提供潛在風險的高級警報,但很少在代碼級別進行通信。因此,開發人員可能很難執行可操作的安全任務和驗證。如果安全問題在本地重現,那很好,可以及時解決。企業通??梢允褂谜{試器來填補空白。但是,一些安全問題很難在生產環境之外重現。
Lightrun不會憑空發現漏洞。為此,企業需要一個專用的安全工具。但是如果有所懷疑,Lightrun可以幫助調查并證明漏洞。
例如來看看這個明顯的錯誤:這是一個明顯的SQL注入錯誤,但它可以被利用嗎?可以花時間調整代碼嗎?
順便說一句,注意正在使用Java,這一同樣適用于所有Lightrun支持的平臺/語言。這里的一切都很容易適用于NodeJS、JavaScript/TypeScript、Python、Kotlin、Scala等。
這在Lightrun中測試很簡單??梢蕴砑右粋€日志或快照,當發生無效請求時觸發。然后,可以嘗試通過curl命令發送無效值,以查看日志是否被觸發。
需要注意的是,可以使用正則表達式來驗證名稱值。如果收到日志,則意味著有問題的值是可利用的。這也意味著安全漏洞的風險很高。
那么是否被積極利用?如果發現了一個與上述類似的安全漏洞。系統中是否已經存在黑客?
企業可以做什么?可以做一些類似于上面所做的事情,并添加一個具有類似條件和一些“調整”的快照:快照包含很多內容。
為什么是快照而不是日志?
日志很適合查看是否發生了什么事,其速度很快,并且處理量大。但是,如果有人希望獲得所有可用信息;甚至可能是人們沒有想到的事情。人們想知道網絡攻擊的向量,這意味著可以知道調用堆棧等。因此快照是一個理想的安全工具。
(1)定位標簽
需要注意,“代理”入口指向“生產”??梢曰跇撕瀸⒖煺諔玫揭唤M機器。在這種情況下,可以鎖定所有可能存在漏洞的機器。
(2)最大命中率
與日志不同,快照會填滿用戶界面(UI)和存儲空間,因此在快照過期之前可以有默認限制。通常默認為1個。在這里把它提高到20,如果愿意可以更高。
需要注意的是,如果看到這種情況發生并且正在發生漏洞攻擊,可以切換到日志。
(3)忽略配額
此選項可能不可用,因為它需要特殊權限。如果遇到這種情況,需要向IT經理申請許可。
這是一個有風險的功能,這就是它受到保護的原因,但是對于可利用的黑客攻擊,它可能是值得冒險的。
配額限制條件或表達式表示在每個Lightrun操作中可以占用的CPU數量。這里的風險是可能會發生漏洞,并且由于CPU使用率,某些信息會被“丟棄”。這意味著快照不會在任何時候暫停,也不會“錯過”潛在的漏洞利用。
不過,這可能會影響服務器性能,因此并非沒有風險。
(4)到期
Lightrun操作的默認過期時間為一小時。希望讓服務器保持快速和靈活,以便終止不需要的操作。在這種情況下,希望在修復完成之前執行該操作,因此將到期值設置為60小時。
有了這些,將會獲得遇到的任何漏洞的可操作信息。
(5)驗證修復
驗證修復非常相似??梢栽诖a的問題區域放置一個日志或快照,并查看該代碼是否到達有問題的值。
還可以添加額外的日志記錄,以驗證嘗試的攻擊是否達到了預期的范圍,并按照預期進行了處理。
Lightrun安全
易受攻擊的安全工具無法實現其目的。了解Lightrun中的安全措施是本文的重要部分。以下是Lightrun中使其如此安全的高級功能。
(1)架構
Lightrun做出了幾個顯著減少網絡攻擊向量的架構決策。
代理僅連接到Lightrun服務器以獲取操作,而不是相反。這意味著它們對最終用戶甚至對企業完全隱藏。
如果Lightrun服務器出現故障,代理將什么也不做。這意味著即使是會導致Lightrun癱瘓的DDoS攻擊也不會影響其服務器。企業將無法使用Lightrun,但服務器可以正常工作。
(2)證書固定和OIDC
Lightrun服務器的代理和客戶端使用證書固定來防止復雜的中間人攻擊。
Lightrun使用OpenI DConnect(OIDC)在其工具中提供經過驗證的安全授權。
Lightrun服務器根據分配的角色限制用戶權限。最重要的是,每個操作都會寫入管理日志。
(3)沙盒
代理中的所有操作都經過沙盒處理,并且訪問權限有限。正如以上所述,所有操作都是“只讀的”,并且不能使用太多的CPU。
這些規則也有例外,但它們需要更高的特權才能規避。
(4)阻止列表
企業中的惡意開發人員可以使用快照或日志從正在運行的應用程序中獲取信息。例如,可以在授權邏輯中放置快照,以便在編碼之前竊取用戶數據。
阻止列表可以定義在Lightrun代理中被阻止的文件。這些文件不會讓開發人員在其中執行操作。
(5)PII減少
可以有意或無意地記錄個人身份信息,例如信用卡號。個人身份信息 (PII)減少能夠定義有風險的模式,并且這些模式將從日志中隱式刪除。因此,無需清除此類日志,也不會讓自己面臨潛在的監管責任。
結語
沒有將Lightrun設計為安全工具,它不應該取代現有的安全工具。但是,它是現有工具的完美搭檔,將發揮自己的優勢,并推動了對漏洞/黑客的快速響應。
Lightrun的低級深度代碼可觀察性使人們能夠更快地響應潛在威脅,并更快地緩解漏洞。
此外,還可以為Lightrun提出更多驚人的與安全相關的用例,這些用例令人興奮。
原文標題:??Detecting, Investigating, and Verifying Fixes for Security Incidents and Zero-Day Issues Using Lightrun??,作者:Shai Almog