7.5 指針安全
7.5.1 不兼容的指針類型
審計指標:不宜使用不兼容類型的指針來訪問變量。
審計人員宜檢查代碼是否使用不兼容類型的指針來訪問變量。通過不兼容類型的指針修改變量可能會導致不可預測的結果。代碼的不規范用法示例參見B.3.9.
7.5.2 利用指針減法確定內存大小
審計指標:宜避免使用指針的減法來確定內存大小。
審計人員宜檢查代碼是否采用一個指針減去另一個指針的方式來確定內存大小。如果兩個指針不是同一類型,那么使用指針的減法來確定內存大小的計算可能會不正確,導致不可預測的結果。代碼的不規范/規范用法示例參見B.3.10。
7.5.3 將固定地址賦值給指針
審計指標:不宜把固定地址賦值給指針。
審計人員宜檢查代碼是否將一個NULL或0以外的固定地址賦值給指針。將固定地址賦值給指針會降低代碼的可移植性,并為攻擊者進行注人代碼攻擊提供便利。
7.5.4 試圖訪問非結構體類型指針的數據域
審計指標:不應把指向非結構體類型指針強制轉換為指向結構類型的指針并訪問其字段。
審計人員應檢查代碼是否將指向非結構體類型的指針,強制轉換為指向結構類型的指針并訪問其字段,如果結果為肯定,則可能存在內存訪問錯誤或數據損壞的風險。
7.5.5 指針偏移越界
審計指標:不應使用偏移越界的指針。
審計人員應檢查代碼在使用指針時是否存在偏移越界的情況,因指針偏移越界可能會造成訪問緩沖區溢出風險。
7.5.6 無效指針使用
審計指標:應避免無效指針的使用。
審計人員應檢查代碼是否存在使用無效指針的情況,因使用無效指針,可能會產生非預期行為。
GB/T 39412-2020 信息安全技術 代碼安全審計規范
推薦文章: