使用「自訂規則」精靈

「自訂規則精靈」可協助您新增方法到 AppScan® Source Security 知識庫中。大部分自訂規則都是廣域範圍(適用於所有專案)。自訂無追蹤發現項目、來源、接收槽和污染傳播者,一律是廣域範圍。自訂驗證/編碼常式不是廣域範圍。

註: 「自訂規則精靈」不會驗證您的選項。例如,您可以定義一個自訂規則,將方法識別為污染傳播者及接收槽,這並非是有效實務。

「自訂規則精靈」會逐步指引您在知識庫中定義及新增下列項目的程序:

  • 接收槽和來源
  • 污染傳播者
  • 不易遭到污染的應用程式設計介面 (API)
  • 漏洞
  • 產生不含追蹤之發現項目的 API
  • 非驗證/編碼常式的 API
  • 污染的回呼
  • 參考資訊發現項目

來源(污染)

提供程式輸入的方法,可能形態異常或具有惡意。

接收槽(很可能遭到污染)

從程式(或程式的可見部分)外傳送資料至檔案、網路、資料庫、其他程式庫或裝置的 API,很可能遭到惡意輸入。

污染傳播者

將方法標示為污染傳播者,意謂著倘若傳給 API 的任何引數是從未經驗證的輸入資料(污染的資料)衍生而來,在呼叫之後,其他引數所參照的非固定資料,以及回覆值,也都有可能遭到污染。這些資料必須先驗證或編碼,才能傳到接收槽。發生這個狀況,通常是因為將受污染之引數的資料複製或附加到其他引數,或傳回這些資料。

不容易遭受污染

將 API 標示為不容易遭受污染(不是污染傳播者),意謂著以未經驗證的輸入資料(污染的資料)所衍生的引數來呼叫 API,不會使 API 產生不安全或惡意的行為。

如果受污染的資料傳給呼叫,但這個呼叫標示為不容易遭受污染,則在追蹤方面,AppScan® 會忽略這個呼叫。 AppScan® Source 追蹤 不會報告遺失的追蹤,也不會將傳播的資料視為受到污染。

註: 如果污染的資料所沾染的方法既不是驗證或編碼常式,也不是接收槽、污染傳播者或不容易遭受污染,則這個方法會報告為遺失的追蹤。非常數的引數和回覆值不一定會遭到污染。AppScan® Source 追蹤呼叫圖會顯示遺失的追蹤。

無追蹤發現項目

一律會顯示為發現項目,但不會產生追蹤的方法或 API。

不是驗證/編碼常式

將 API 標示為不是驗證/編碼常式表示這個 API 不驗證任何資料。

污染的回呼

回呼是指程式碼中,通常由其他程式碼呼叫的常式(例如,從低階架構內呼叫)。回呼是以引數的形式傳給其他程式碼,之後,可用可能已污染的引數來呼叫它。如果您懷疑可能有污染的資料傳入回呼的引數,您可以將它標示為污染的回呼。如此一來,就能看到污染的資料在常式中的流程。

標示為污染回呼的常式將被當作呼叫圖的根目錄來進行分析(換言之,是由某個不明的外部呼叫端來呼叫),它的所有輸入引數都視為已遭污染。因此,AppScan® 會報告含有追蹤資料的發現項目,追蹤資料是由受污染之回呼的引數開始。

如果在其他環境定義中,您的應用程式碼呼叫相同的常式,在處理它時,不會有任何特殊的污染考量。在這些環境定義中,會進行平常的分析。

參考資訊

識別為參考資訊發現項目的各行程式碼不一定有漏洞,但也應該併入安全審核中。