使用「自訂規則」精靈
「自訂規則精靈」可協助您新增方法到 AppScan® Source Security Knowledgebase中。大部分自訂規則都是廣域範圍(適用於所有專案)。自訂無追蹤發現項目、來源、接收槽和污染傳播者,一律是廣域範圍。自訂驗證/編碼常式不是廣域範圍。
「自訂規則精靈」會逐步指引您在Knowledgebase中定義及新增下列項目的程序:
- 接收槽和來源
- 污染傳播者
- 不易遭到污染的應用程式設計介面 (API)
- 漏洞
- 產生不含追蹤之發現項目的 API
- 非驗證/編碼常式的 API
- 污染的回呼
- 參考資訊發現項目
來源(污染)
提供程式輸入的方法,可能形態異常或具有惡意。
接收槽(很可能遭到污染)
從程式(或程式的可見部分)外傳送資料至檔案、網路、資料庫、其他程式庫或裝置的 API,很可能遭到惡意輸入。
污染傳播者
將方法標示為污染傳播者,意謂著倘若傳給 API 的任何引數是從未經驗證的輸入資料(污染的資料)衍生而來,在呼叫之後,其他引數所參照的非固定資料,以及回覆值,也都有可能遭到污染。這些資料必須先驗證或編碼,才能傳到接收槽。發生這個狀況,通常是因為將受污染之引數的資料複製或附加到其他引數,或傳回這些資料。
不容易遭受污染
將 API 標示為不容易遭受污染(不是污染傳播者),意謂著以未經驗證的輸入資料(污染的資料)所衍生的引數來呼叫 API,不會使 API 產生不安全或惡意的行為。
如果受污染的資料傳給呼叫,但這個呼叫標示為不容易遭受污染,則在追蹤方面,AppScan® Source 會忽略這個呼叫。 AppScan® Source trace 不會報告遺失的追蹤,也不會將傳播的資料視為受到污染。
無追蹤發現項目
一律會顯示為發現項目,但不會產生追蹤的方法或 API。
不是驗證/編碼常式
將 API 標示為不是驗證/編碼常式表示這個 API 不驗證任何資料。
污染的回呼
回呼是指程式碼中,通常由其他程式碼呼叫的常式(例如,從低階架構內呼叫)。回呼是以引數的形式傳給其他程式碼,之後,可用可能已污染的引數來呼叫它。如果您懷疑可能有污染的資料傳入回呼的引數,您可以將它標示為污染的回呼。如此一來,就能看到污染的資料在常式中的流程。
標示為污染回呼的常式將被當作呼叫圖的根目錄來進行分析(換言之,是由某個不明的外部呼叫端來呼叫),它的所有輸入引數都視為已遭污染。因此,AppScan® Source 會報告含有追蹤資料的發現項目,追蹤資料是由受污染之回呼的引數開始。
如果在其他環境定義中,您的應用程式碼呼叫相同的常式,在處理它時,不會有任何特殊的污染考量。在這些環境定義中,會進行平常的分析。
參考資訊
識別為參考資訊發現項目的各行程式碼不一定有漏洞,但也應該併入安全審核中。