Lucent Sky AVM:常見問題

弱點修正

當識別到弱點時,Lucent Sky AVM 也會提取意向 — 開發者在不慎引入弱點時希望達到的目的。修正演算法會產生「Instant Fix」,這些安全的程式碼段直接替換脆弱的程式碼,同時保持其原始的意向。如果無法為特定弱點產生 Instant Fix,Lucent Sky AVM 會產生 Guided Fix(一種具相關性的修正指引)來幫助開發者有效的修正弱點。對於有弱點的軟體元件,Lucent Sky AVM 會產生 Guided Remediation,幫助開發者將其更新到安全的版本。

Instant Fixes 分為三個步驟產生:了解有弱點程式碼及其相關程式碼的意向、根據最佳實務與安全標準選出修正方式、並在程式碼中找出理想的位置來套用修正,以確保此變更在修正弱點時能維持程式碼及其相關程式碼的意向。一個掃描的所有 Instant Fixes 都在單一流程中產生,以確保其一致性和可靠性。

Lucent Sky AVM 的修正演算法能識別情境與意向,因此在產生 Instant Fixes 時,可維持原始程式碼的功能。此外,一個演算法會在 Instant Fixes 被產生後獨立驗證其正確性。然而,程式碼的任何變更都有可能是有破壞性的。因此,由 Lucent Sky AVM 修正後的應用程式仍應通過一般的測試和品管流程,就像開發者對應用程式進行變更一樣。

因為弱點是透過修改程式碼來修正,對效能的影響極小。根據內部測試和使用者回報的數據,應用程式經由 Lucent Sky AVM 修正之後,99% 的請求的回應時間和原始、不安全的應用程式相同。雖然將 Lucent Sky AVM 和 WAF 或 RASP 做比較並不適當,但和 WAF 或 RASP 相比,熱門的 WAF 或 RASP 解決方案對效能的影響,大約是 Instant Fix 對效能影響的 18 倍。你可以在這篇網誌文章 Lucent Sky works with New Relic to put offline security into runtime analytics 中了解更多關於效能影響的資訊。

雖然都是由智慧的演算法所產出,Instant Fixes 和基於生成式 AI 的「code fixes」在適用性和可靠性上有顯著的差別:
  • 方法:Instant Fixes 是使用智慧的修正演算法產生,此演算法可理解原始程式碼的情境和意向,並依照安全專家定義的最佳方法來修正弱點。這確保 Instant Fixes 的安全性與可靠性,並確實在功能上修正弱點。基於生成式 AI 的程式碼修改是由大型語言模型(LLM)來找出特定上下文中統計上最常出現的程式碼片段,因此需要仔細地檢查並可能需要大量改寫。
  • 可靠性:一致性和可靠性是 Instant Fixes 背後演算法的設計理念。每個 Instant Fix 也都經過獨立驗證,以確保能有效修正弱點,且不會影響功能或引入新的問題。另一方面,大型語言模型會產生「幻覺」,產生可能不正確、不相干,甚至會導致新弱點的修改建議。
  • 適用性:Lucent Sky AVM 被設計與 SDLC 整合並在全自動的情境下使用,而 Instant Fixes 就如同人類開發者撰寫並簽入了這個修正一樣。基於生成式 AI 的程式碼修改則需要有經驗的開發者來檢視甚至改寫,因此適合做為開發者的輔助,而非 SDLC 的一部分。

分析

掃描一個應用程式所需要的時間取決於應用程式的規模和複雜度,以及執行 Lucent Sky AVM 的硬體規格。一個一百萬萬行程式碼的應用程式通常可在 30 至 60 分鐘內掃描完成。

如果一個應用程式是由多個較小的專案或模組組成(多數大型應用程式都是),建議逐一或以小組方式掃描並修正這些專案和模組的弱點。因為 Lucent Sky AVM 使用混成掃描,逐一掃瞄專案和一次掃描整個應用程式的掃描範圍和精準度相同,但效率較高。

Lucent Sky AVM 掃描過的最大應用程式有超過五百萬行程式碼。但為了提升分析和修正的效率,建議將大型程式的各專案分開掃描,而非一次掃描整個應用程式。這也有助降低掃描時所需的硬體需求。

Lucent Sky AVM 有兩種掃描模式,智慧分析和完整分析。智慧分析會自動偵測需要掃描的程式碼。完整分析會掃描所有程式碼和函式庫,使用者亦可依照命名空間和類別名稱來指定要掃描的部分。

因為 Lucent Sky AVM 用來修正弱點的脈絡和意向資訊經常會跨越模組和類別,因此建議讓 Lucent Sky AVM 選擇掃描範圍。

第三方函式庫,不論是 .dll 或 .jar 檔案等二進位形式或程式碼形式,都會和應用程式本身一起進行二進位和程式碼分析,來找出其中未知的弱點。此外函式庫和其他的相依性也會進行軟體組成分析,來找出其中已知的弱點。未知的弱點會有 Instant Fix 和修正建議,已知的弱點則會用相依性更新指引。

Lucent Sky AVM 使用多級混成分析做為修正演算法的基礎。資料流、控制流、語意和意向分析不僅識別弱點的位置,還能獲得弱點的脈絡。透過意向分析,Lucent Sky AVM 在發現弱點時可評估每個弱點所帶來的風險,並排除風險極低的弱點。因此,和 SAST 工具相比,Lucent Sky AVM 有較低的誤報機率。對於仍然存在的誤報,使用者可以使用抑制功能,讓這些結果在未來的掃描中不會出現。

報告

  • 互動式、數位簽章的 HTML 報告,具有篩選和搜尋弱點的能力
  • PDF 報告
  • 數位簽章的 XML 報告
  • 透過 WCF API 直接存取資料庫

佈署與整合

Lucent Sky AVM 有 3 種佈署方式:雲端(Microsoft Azure、Rackspace、Amazon AWS)、以軟體形式安裝在 Windows 伺服器中,或是預先設定好的硬體。你可以在技術規格中找到系統需求資訊。

Lucent Sky AVM 的更新分為兩類,次要更新和維護更新。次要更新約每三至四個月推出,著重於新功能(例如新的識別演算法、修正演算法或編譯器),以及對於新的基準的支援(例如新的弱點類別和新版本的框架及函式庫)。維護更新則在每個次要更新之間視需要推出,著重於產品問題的修正以及其他緊急的更新。此外,雲端推送的威脅情報則提供即時資訊來識別不安全的軟體相依性。

Lucent Sky AVM 透過 CLI 或 IDE 外掛元件和版本控制系統,例如 Azure DevOps (TFS)、CVS、Git、SVN,整合。了解更多關於如何整合 Lucent Sky AVM 和你的 CI 或組建伺服器。

Lucent Sky AVM 透過 CLI 或 API 能和大多數的 CI 伺服器和組建伺服器整合。了解更多關於如何整合 Lucent Sky AVM 和你的 CI 或組建伺服器。

相容性

Lucent Sky AVM 相容於使用 .NET、ASP、Android、C/C++、Go、iOS、Java、Lua、PHP、Python、Ruby、Rust、Visual Basic 開發的應用程式。它也支援跨框架語言,例如 CFML、Dart、ECMAScript(包含 ActionScript、JavaScript、TypeScript)、HTML、SQL,以及資料交換語言,例如 JSON、XML、YAML。要深入了解關於 Lucent Sky AVM 支援的應用程式框架和語言,請拜訪 Lucent Sky Docs 上的 Lucent Sky AVM 支援的應用程式框架和語言

授權

Lucent Sky AVM 授權包含使用者用戶端存取授權(使用者 CAL)和處理器授權。用戶端存取授權決定能存取 Lucent Sky AVM 伺服器的使用者數目上限,處理器授權則決定 Lucent Sky AVM 伺服器可使用的處理器數目以及同時可以進行的掃描數目。要了解更多關於授權結構的資訊,請參考 Lucent Sky Docs 上的Lucent Sky AVM Server 授權概觀

所有 Lucent Sky AVM 標準版和企業版的授權都允許在授權範圍內無限次數的掃描。一個授權可以同時進行多個掃描。

不需要。修正過的應用程式不需要任何 Lucent Sky 授權即可運作。即使你的 Lucent Sky AVM 授權過期,它們也會持續運作。

Lucent Sky AVM 授權允許你掃描所有目前已有以及授權期間中增加的技術框架和語言。

為了準確地表示一個應用程式的大小,Lucent Sky AVM 檢查應用程式的行數,以及使用函式庫的大小。常見的第三方函式庫(例如 Entity Framework 和 Spring MVC) 不會被計算在函式庫大小限制中。

如果你的 Lucent Sky AVM 授權使用 LOCe(等效行數)限制,你可以繼續使用或轉換為行數+函式庫大小限制。

每個授權的使用者都可以同時從多個位置和介面(例如 web 介面、IDE 外掛元件和命令列界面)存取 Lucent Sky AVM。

Lucent Sky AVM 僅能被用來掃描被授權人直接擁有或開發的應用程式。掃描第三方(包括被授權人的關係企業)的應用程式是禁止的。如果你是服務提供者想使用 Lucent Sky AVM 提供服務,或有其他授權問題,請連絡 Lucent Sky 技術支援,我們的授權工程師會與你連絡。

客製化與維護

可以。掃描開始前,使用者可以選擇開啟或關閉各種來源(例如 web requset 或 database) 和規則(例如 cross-site scripting 和 SQL injection)來改變會被識別的弱點類型。進階的使用者若要細部調整 Lucent Sky AVM 的分析行為,也可以直接修改規則套件(一組規範什麼是弱點的 XML 檔案)。要了解更多關於如何客製化規則套件,請連絡 Lucent Sky 技術支援

可以。Lucent Sky AVM 預設使用業界標準和最佳建議來修正弱點。使用者可以透過修改規則套件來變更修正演算法的行為。舉例來說,使用者可以指定「對於所有 .NET 應用程式中從 database 發生的 privacy violation 弱點,使用我的公司的標準 DLP 函式庫來修正它們。」要了解更多關於如何客製化規則套件,請連絡 Lucent Sky 技術支援

將 Lucent Sky AVM 與安全測試產品一起使用

SAST 工具經常是由資訊安全團隊使用,並且著重於發現弱點以及確保上線應用程式的安全等級。Lucent Sky AVM 多半是由開發團隊使用,透過弱點修正來提升軟體開發流程的效率。有些企業和組織選擇將 Lucent Sky AVM 與既有的 SAST 工具共同使用-透過在 SDLC 的早期自動化修正弱點,來大幅降低應用程式上線 SAST 掃描時剩餘的弱點數量。

不一定。許多企業和組織在軟體開發流程的尾聲或應用程式已經上線後,才進行安全檢測。在這樣的情況下,Lucent Sky AVM 適合在程式開發階段由開發者使用,能夠大幅降低測試前程式中的弱點數量以及程式碼在開發團隊與資訊安全團隊間來回的時間。

對於已經上線且被安全檢測找出需修正弱點的應用程式,使用 Lucent Sky AVM 使用於一般需要人工進行修正的階段。Lucent Sky AVM 掃描程式碼並產生修正後的應用程式後,應用程式再次測試後即可重新上線。

Lucent Sky AVM 可以被設定來修正特定 SAST 工具所識別的弱點,例如 Checkmarx CxSAST、Fortify SCA、Klocwork。要了解更多關於如何使用 Lucent Sky AVM 來加速修正你的 SAST 工具所識別的弱點,請告訴我們,我們的團隊成員會和你連絡。
Try Lucent Sky AVM