<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    哪些措施可以防御棧溢出攻擊


    發現錯別字 1年前 提問
    回答
    1
    瀏覽
    344
    請勿發布不友善或者負能量的內容。與人為善,比聰明更重要!
    回答數量: 1
    風險管理(專業級)RM/PL CICSA

    以下措施可以防御棧溢出攻擊:

    • 地址空間隨機化:顧名思義,程序每次加載到的內存位置是隨機的,所以,即使可以利用棧溢出控制函數的返回地址,但是無法確定惡意代碼的位置,因此,可以有效地防范棧溢出攻擊。

    • 不可執行棧:不可執行棧的基本原理是將數據所在的內存頁標記為不可執行的,當進程嘗試去執行數據頁面上的指令時,CPU就會拋出異常,而不是去執行。所以,當開啟了不可執行棧選項時,即使我們的惡意代碼已經插入到內存,但由于處在數據頁面,因此無法執行從而實現防御攻擊。

    • Stack Guard:gcc中的Stack Guard的保護原理時利用 “Canaries” 檢測對函數棧的破壞。具體是再緩沖區(如:棧)和控制信息(如 ebp等)間插入一個canary word。這樣,當緩沖區溢出時,再返回地址被覆蓋之前canary word會首先被覆蓋,通過檢測canary word的值是否被修改,就可以判斷是否發生了溢出,如果出現溢出則進行終止溢出的進程來進行防御。

    回答所涉及的環境:聯想天逸510S、Windows 10。

    1年前 / 評論
    亚洲 欧美 自拍 唯美 另类