開始使用 Lucent Sky AVM Web UI

2024/1/20 |

Lucent Sky AVM 是一套開發者工具,能找出應用程式中的安全弱點,並直接在程式碼中修正弱點。Lucent Sky AVM 包括了 CLEAR Engine(分析及修正引擎)、Web UI、CLI、IDE 擴充套件。

這個文章描述了 Web UI 的基本功能,並帶領你使用 Web UI 掃描一個應用程式。要深入了解關於 Web UI 的其他功能,請參考 Lucent Sky 知識庫:
Lucent Sky AVM Web UI 參考資料

在這個文章中,你將會學習如何:

  • 建立包含應用程式程式碼的壓縮檔案
  • 掃描一個應用程式
  • 檢視偵測的結果以及它們的 Instant Fix
  • 下載修正後的程式碼
  • 下載報告

本文結束時,你將能夠使用 Web UI 來掃描應用程式並產生修正後的程式碼和報告。

必要條件

  • 網頁瀏覽器 - Web UI 支援最新版本的 Google Chrome、Microsoft Edge、Mozilla Firefox。

建立包含應用程式程式碼的壓縮檔案。

要深入了解關於如何建立包含應用程式程式碼的壓縮檔案,請參考 Lucent Sky 知識庫:
準備應用程式以進行掃描

掃描一個應用程式

  1. 以瀏覽器開啟 Web UI 並以你的帳號登入。
  2. 選擇左側 [新應用程式] 後,請輸入應用程式的名稱,並依需要輸入一個或多個(以逗號分隔)的標籤來分類此應用程式。選擇應用程式的框架後,選取 [建立] 按鈕。你亦可先選取 [更多選項] ,設定此應用程式預設的組建、分析、修正參數。你也可以選擇稍後再進行這些設定。
  3. 在 [分析方式] 請選取 [靜態程式碼分析],接著在 [程式碼] 選取 [壓縮檔案],再選取 [瀏覽] 來選擇包含應用程式程式碼的壓縮檔案。在此處你也可以選取 [更多選項] ,設定此應用程式的組建、分析、修正參數。完成相關設定後請選取 [上傳] 按鈕。

    要了解關於掃描選項的相關資訊,請參考 Lucent Sky 知識庫:
    使用進階選項掃描應用程式

  4. 網頁將會自動更新,此時應用程式方框會顯示應用程式的名稱以及掃描的進度。掃描共分為 10 個階段:

    • 展開中
    • 已排程
    • 檢查中
    • 準備分析中
    • 組建中
    • 分析中 (S-1)
    • 分析中 (S-2)
    • 分析中 (S-3)
    • 分析中 (S-4)
    • 分析中 (S-5)
  5. 掃描所需的時間大約在幾秒至幾小時都有可能,需視應用程式的大小及複雜度而定。在大多數的情況下,10 萬行左右的程式碼會在 10 分鐘內完成掃描。
  6. 當掃描結束時,應用程式方框將會以 A + R / T 格式顯示三個數字,其中 A 代表需要開發者處理的弱點數量,R 代表能被自動修正的弱點數量,T 代表總共的弱點數量。

檢視偵測的結果以及它們的 Instant Fix 或修正建議

  1. 選擇你想檢視的應用程式方框,將會進入 [掃描概要] 頁面。
  2. [掃描概要] 頁面分為三個部分:效益概觀、弱點資訊及附加資訊。

    效益概觀 顯示這個應用程式節省的修正成本及節省的開發時間。

    • 弱點資訊 圓餅圖顯示了弱點種類的分佈情況、並顯示各種類的弱點數量。若選擇圓餅圖上該弱點種類、或右側該分類區塊,則會進入該種類的 [弱點清單] 頁面。
    • 附加資訊 顯示此次掃描的相關資訊並比較這個應用程式前後次掃描的弱點數量變化。
  3. [弱點清單] 頁面會列出該種類所有的弱點,選擇單一弱點則可以進入 [弱點明細] 頁面。
  4. [弱點明細] 頁面頁面會在標題顯示該弱點的分類、檔案名稱及行數、 [陳述] 部分會顯示弱點在程式碼中的流程。弱點也會有 [Instant Fix] 或 [建議] - [Instant Fix] 代表取代其指出的檔案名稱以及行號的程式碼即可修正該弱點,[建議] 則提供具相關性的指引,協助開發者修正該弱點。

要深入了解關於如何抑制一個結果,使其不會出現在未來的掃描中,請參考 Lucent Sky 知識庫:
抑制結果使其不會出現在未來的掃描中

下載修正後的程式碼

  1. 選擇你想檢視的應用程式方框,將會進入 [掃描概要] 頁面。
  2. 選擇畫面左側的 [修正] 按鈕,將會跳出一個視窗,你可以選擇你是否需要以註解方式加入修正資訊及原始程式碼資訊。若你選擇加入相關資訊,會看到類似這樣的結果:

     Response.Write(HtmlEncode(Request["foo"])); // CWE79 remediated (confidence: 13). OriginalStatement: "Response.Write(Request["Foo"]);".
    

    其中 CWE79 remediated (confidence: 13) 是修正資訊、而 OriginalStatement: "Response.Write(Request["Foo"]);" 則是原始程式碼。

  3. 選取 [修正] 按鈕。當修正過的程式碼產生好了之後,選擇出現的 [下載] 按鈕。

下載報告

  1. 以瀏覽器開啟 Web UI 並以你的帳號登入。
  2. 選擇你想檢視的應用程式方框,將會進入 [掃描概要] 頁面。
  3. 選取畫面左側的 [報告] 按鈕,將會跳出一個視窗,選擇要下載的檔案格式後,選取 [產生] 按鈕。當報告產生好了之後,選取出現的 [下載] 按鈕。