使用進階選項掃描應用程式

2023/6/12 |

雖然預設的掃描選項適用於掃描大多數的應用程式,Lucent Sky AVM 提供進階的掃描選項來細部調整分析和修正的行為。 這個文章描述了可用的掃描選項以及何時使用它們。

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

  • 掃描程式碼壓縮檔中特定的專案。
  • 使用自訂的弱點原則進行掃描。
  • 使用自訂的來源進行掃描。

本文結束後,你將能夠掃描特定的專案,以及使用自訂的弱點原則或來源進行掃描。

掃描程式碼壓縮檔或目錄中特定的專案

Lucent Sky AVM 能夠自動偵測程式碼壓縮檔中的專案。然而,若程式碼壓縮檔或目錄包含多個可能的專案檔案(例如多個 .*proj、build.xml,或 pom.xml 檔案),Lucent Sky AVM 可能無法選擇正確的專案。透過指定專案檔案在程式碼壓縮檔或目錄中的相對路徑,Lucent Sky AVM 可以正確識別專案並將其作為掃描的進入點。要深入了解關於如何選擇正確的專案檔案,請參考 Lucent Sky 知識庫:
準備應用程式以進行掃描

使用自訂的弱點原則進行掃描

內建的規則套件包含了一組原則來設定哪些弱點應被偵測和修正。這個行為可以透過指定一組自訂的弱點原則來改變。弱點原則有兩個類型:安全標準(例如 OWASP Top 10)和 CWE(例如 CWE-79)。混和不同類型的弱點原則是不支援的。

安全標準弱點原則

使用安全標準弱點原則來偵測和修正這些安全標準中包含的弱點。每個安全標準弱點原則包含兩個部分,其安全標準以及對應的行為。可用的安全標準有 CWE Top 25 (CWETop25)、OWASP ASVS (OWASPASVS)、OWASP Top 10 合併清單 (OWASPTop10)、OWASP Top 10 獨立清單 (OWASPTop102004OWASPTop102007OWASPTop102010OWASPTop102013OWASPTop102017OWASPTop102021OWASPMobileTop102014OWASPMobileTop102016)、PCI DSS (PCIDSS3 代表 v3.2.1 和 PCIDSS4 代表 v4.0),和 SANS Top 25 (SANSTop25)。可用的的行為有偵測和修正(2)和僅偵測(1)。要開啟多個安全標準,將它們以分號分開。

若一個弱點在包含在多個有開啟但行為不同的安全標準中,偵測並修正(2)的行為為優先。沒有包含在任何開啟的安全標準弱點原則中的弱點的行為會被設定為忽略。例如,OWASPTop10,1;PCIDSS,2OWASP Top 10 中的弱點設定為偵測,PCI DSS v4.0 中的弱點設定為偵測和修正,其他的弱點設定為忽略。

CWE 弱點原則

使用 CWE 弱點原則來明確指定特定弱點的行為。每個 CWE 弱點原則包含兩個部分,其 CWE 編號以及對應的行為。可用的行為有偵測和修正(2)、僅偵測(1),和忽略(0)。要指定多個 CWE 弱點原則,將它們以分號分開。沒有指定的弱點會保留其預設行為。

例如 CWE79,0;CWE501,2 設定 CWE-79 為忽略,設定 CWE-501 為偵測和修正,並讓其他 CWE 弱點則保留其預設行為。

使用自訂的來源進行掃描

來源是 Lucent Sky AVM 認為來自和應用程式所運行的信任界線所不同的信任界線的資料,例如網頁表單的使用者書戶或外部檔案的內容。Lucent Sky AVM 預設開啟一組來源,但每個組織和每個應用程式可能對於哪些資料應被視為不可信任的有自己的定義。舉例來說,若應用程式所使用的資料庫被認為和該應用程式屬於同一個信任界線,則 database 這個來源在掃描該應用程式時可被關閉,以降低誤報。

以下是可用的來源(斜體來源預設為關閉的):

  • Client - 所有僅存在用戶端的項目,例如 DOM-based cross-site scripting。
  • Database - 來自資料庫或常被視為資料庫(例如 XML 檔案)的資料。
  • Dependency - 應用程式所使用的依賴,例如公開套件庫中的套件或是常見的開放程式碼函式庫。
  • Exception - 例外訊息或堆疊追蹤的內容。
  • File System - 本機檔案系統或網路分享中的檔案名稱、中介資料,或內容。
  • MVC Entry Point - MVC 控制器的使用者輸入。
  • None - 所有沒有獨立資料來源的項目,例如程式碼中的明碼密碼。
  • Public Method - 公用方法的參數。
  • Private Method - 私用方法(包含受保護的方法)的參數。
  • Untrusted - 來自於自訂規則中被標記為 untrusted 來源的資料。
  • User Input - 來自非網頁來源的使用者輸入,例如命令列引數或圖形使用者介面的輸入。
  • Web Request - 網頁要求的內容。
  • Web Service - 來自外部網頁服務的資料。

使用掃描參數進行掃描

掃描參數是能精準控制掃描過程的有效工具,並能微調應用程式組建、分析、修正的方式,它們雖然有效,但不正確的使用掃描參數會導致嚴重的問題。掃描參數只應在掃描錯誤的解決方法有提示,或是 Lucent Sky 支援建議時使用。

掃描參數是由分號分隔的名稱-值組。例如,FirstArgument,foo;SecondArgument,bar。掃描參數的名稱不區分大小寫,但掃描參數的值可能會區分大小寫。