8.1 資源管理
8.1.1 重復釋放資源
審計指標:應避免重復釋放資源。
審計人員應檢查代碼是否存在重復釋放資源的情況。重復釋放資源可能會造成系統崩潰。
8.1.2 資源或變量不安全初始化
審計指標:宜避免不安全的資源或變量初始化。
審計人員宜檢查代碼是否對資源或變量進行了安全的初始化,包括但不限于:
a)宜檢查代碼是否對關鍵變量進行初始化,未初始化關鍵變量易導致系統按非預期值執行,如結果為否定,則提示存在安全風險;
b)宜檢查代碼是否采用了不安全或安全性較差的缺省值來初始化內部變量。缺省值通常和產品一起發布,容易被熟悉產品的潛在攻擊者獲取而帶來系統安全風險,如結果為肯定,則提示存在安全風險;
c)宜檢查代碼中關鍵的內部變量或資源是否采用了可信邊界外的外部輸人值進行初始化,如結果為肯定,則提示存在安全風險。
8.1.3 初始化失敗后未安全退出
審計指標:初始化失敗后應安全退出程序。
審計人員應檢查代碼在初始化失敗后能否安全退出。
8.1.4 引用計數的更新不正確
審計指標:應避免引用計數的更新不正確。
審計人員應檢查代碼中管理資源的引用計數是否正確更新,引用計數更新不正確,可能會導致資源在使用階段就被過早釋放,或雖已使用完畢但得不到釋放的安全風險。
8.1.5 資源不安全清理
審計指標:宜避免不安全的資源清理。
審計人員宜檢查代碼中資源清理部分的相關功能,檢查代碼在使用資源后是否恰當地執行臨時文件或輔助資源的清理,避免清理環節不完整。
8.1.6 將資源暴露給非授權范圍
審計指標:不應將資源暴露給非授權的范圍。
審計人員應檢查代碼是否將文件和目錄等資源暴露給非授權的范圍,如果存在,則提示代碼存在信息暴露的風險。
8.1.7 未經控制的遞歸
審計指標:應避免未經控制的遞歸。
審計人員應檢查代碼是否避免未經控制的遞歸,未控制遞歸可造成資源消耗過多的安全風險。
8.1.8 無限循環
審計指標:執行迭代或循環應恰當地限制循環執行的次數,以避免無限循環。
審計人員應檢查代碼中軟件執行迭代或循環,是否充分限制循環執行的次數,以避免無限循環的發生導致攻擊者占用過多的資源。
8.1.9 算法復雜度攻擊
審計指標:宜避免算法復雜度攻擊。
審計人員宜檢查代碼中算法是否存在最壞情況下非常低效,復雜度高,會嚴重降低系統性能。如果是,則攻擊者就可以利用精心編制的操作來觸發最壞情況的發生,從而引發算法復雜度攻擊。
8.1.10 早期放大攻擊
審計指標:宜遵守正確的行為次序避免早期放大攻擊數據。
審計人員宜檢查代碼是否存在實體在授權或認證前執行代價高的操作的情況,不合理執行代價高的操作可能會造成早期放大攻擊。規范/不規范代碼示例參見B.4.1。
GB/T 39412-2020 信息安全技術 代碼安全審計規范
推薦文章: