如何修正 Fortify Source Code Analyzer 報告中的 heap inspection?

靜態程式碼掃描工具,例如 Fortify Source Code Analyzer,被許多企業和組織用來檢測應用程式中的安全弱點。但對許多開發者來說,Fortify Source Code Analyzer 的報告被視為麻煩製造者,因為它們雖然指出了弱點(不論是真的或是誤報),但卻沒有提供任何修正這些弱點的方法。誰來修正報告中的弱點?

Heap inspection 是敏感資訊以未加密的方式儲存在記憶體中時出現的安全問題。這使得資訊容易受到攻擊者的攻擊,攻擊者可以執行記憶體轉儲並檢索資訊。

如何修正 heap inspection 可能不是正確的問題。一個更好的問題是,heap inspection 堆檢查是否是特定環境的有意義攻擊媒介。如果攻擊者已經有權存取處理密鑰的記憶體,則此時可能已經發生了安全弱點。然而,在高度敏感的環境中,保護記憶體中的機密可做為能額外的安全機制。除了盡可能避免儲存機密(例如使用憑證進行身份驗證而不是儲存密碼)之外,沒有萬無一失的方法可保護記憶體中的機密。如果無法避免儲存機密,則修正措施通常涉及縮短機密在記憶體中的時間,並在使用機密後將記憶體歸零。例如:

  • 使用基元類型(如 bytes 陣列或 char 陣列),因為可以直接覆蓋其使用的記憶體,或者使用設計用於在記憶體中儲存機密的類型,例如 .NET 上的 SecureString 或 Java 上的 GuardedString。
  • 在機密使用後,將金鑰佔用的記憶體清零。

以下是幾個修正 heap inspection 的範例:


SecureString securePassword = new SecureString();
ConsoleKeyInfo key = Console.ReadKey(true);;

do
{
    key = Console.ReadKey(true);
    securePassword.AppendChar(key.KeyChar);
} while (key.Key != ConsoleKey.Enter);

try
{
    Login("username", securePassword);
}
finally
{
    securePassword.Dispose();
}
                    

GuardedString guardedPassword = new GuardedString(System.console().readPassword());

try
{
    login("username", securePassword);
}
finally
{
    guardedPassword.dispose();
}
                    

若有辦法能自動修正 heap inspection 該有多好?

Lucent Sky AVM 和 Fortify Source Code Analyzer 一樣能精確地找出弱點在程式碼中的位置。但和靜態檢測工具不同,Lucent Sky AVM 也實際修正找到的弱點。 它能產生 「Instant Fixes」-一段安全的程式碼片段,能夠直接插入程式碼中來修正 cross-site scripting (XSS)、SQL injection、path manipulation 等常見的弱點。

開發者可以檢視 Instant Fix 並逐一或整批套用它們,也可以將 Lucent Sky AVM 與 CI pipeline 整合,當有新的程式碼時,弱點都能自動地被檢查、修正、測試。


一起使用 Fortify Source Code Analyzer 和 Lucent Sky AVM

Fortify Source Code Analyzer 等靜態檢測工具只會告訴你弱點在哪裡,而 Lucent Sky AVM 會指出它們的位置以及修正方式(並且實際為你修正他們,你喜歡的話)。 大部分的靜態檢測工具是被設計來供資訊安全專業人士使用,因此設計理念是找出大量的結果,再依賴資訊安全專家來移除其中的誤報。Lucent Sky AVM 則是專注於找出會真正影響應用程式安全的弱點,並依照你或你的開發與資訊安全團隊的設定來可靠的修正這些弱點。 你可以深入了解 Lucent Sky AMV 的修正流程


Lucent Sky AVM + Fortify Source Code Analyzer = 輕鬆的法規遵循

如果你的組織的法規遵循要求要修正 Fortify Source Code Analyzer 找到的所有結果(或是符合特定條件的結果,例如嚴重和高風險),Lucent Sky AVM 可以被調整來找出一樣的結果,並提供更多的功能 - 自動的修正這些弱點。


有效果的報告

許多靜態程式碼掃描工具是由資訊安全專家所設計來給其他的資訊安全專家使用。因此,它們需要由專業人士操作,而且產出的報告和結果難以實際幫助開發者。Lucent Sky AVM 提供為開發者與資訊安全專家所設計的報告,提供分析結果以及 Instant Fixes (能夠直接修正如 cross-site scripting 和 SQL injection 等常見弱點的程式碼片段),讓不是資訊安全專家的使用者能夠用來強化程式碼的安全。

對於需要法規遵循報告的企業來說,Lucent Sky AVM 能協助開發與資訊安全團隊通過 Fortify Source Code Analyzer 的檢測並減少誤報帶來的困擾,同時大幅地降低強化應用程式安全所需要的時間和精力。要進一步了解 Lucent Sky AVM 和靜態程式碼掃描工具報告的差別,請下載報告比較表


修正 Fortify Source Code Analyzer 報告中的 heap inspection 可以輕鬆快速

96% 的應用程式含有弱點—可被惡意攻擊者利用的已知安全風險。導入任何安全流程時的最大阻礙是如何實際修正被發現的弱點。開發者和安全工程師通常沒有足夠的精力來有效率的解決弱點。因此,數百個企業和組織選擇以 Lucent Sky AVM 取代或補強既有的靜態檢測工具,幫助開發團隊真正的修正弱點,並加速應用程式安全流程。

想知道 Lucent Sky AVM 可以如何在你的環境中和 Fortify Source Code Analyzer 共用,申請測試或與我們連絡。

連絡我們
Try Lucent Sky AVM