當前位置: 主頁 > 技術&應用 >
 

在 Embedded Workbench 開發工具中 如何實現堆疊保護 來提高代碼的安全性

本文作者:IAR Systems       點擊: 2022-07-14 14:23
前言:
 
隨著越來越多的嵌入式產品連接到外部網路,嵌入式產品的資訊安全性 (Security) 越來越多地被人們關注。其中既包括直接連接到外部網路,比如通過 Wi-Fi 連接;也包括間接連接到外部網路,比如汽車中的 ECU 通過 CAN 匯流排與 T-box 相連,而 T-box 通過移動網路可以連接到外部網路。特別是對於一些高功能安全性 (Safety) 要求的產品,如工業,汽車,醫療產品等,資訊安全成為了功能安全的前提。
 
在 C/C++ 中,堆疊緩存溢出 (Stack Buffer Overflow) 是一種常見的錯誤:當程式往堆疊緩存(Stack Buffer) 寫資料時,由於堆疊緩存通常採用固定長度,如果需要寫的資料長度超過堆疊緩存的長度時,就會造成堆疊緩存溢出。堆疊緩存溢出會覆蓋堆疊緩存臨近的堆疊資料,其中可能包含函數的返回位址,就會造成函數返回時異常。如果堆疊緩存溢出是攻擊者利用代碼的漏洞蓄意造成的,它就稱為堆疊粉碎 (Stack Smashing)。堆疊粉碎是常用的一種攻擊手段。

圖:堆疊粉碎示例

 

A 資料複製前 B "hello" 作為函數參數輸入 C "AAAAAAAAAAAAAAAAAAAA\x08\x35\xC0\x80" 作為函數參數輸入
 
 

電子郵件:look@compotechasia.com

聯繫電話:886-2-27201789       分機請撥:11