緩衝區溢位攻擊 學生:A02953323羅以豪 教授:梁明章 網路安全期末報告 緩衝區溢位攻擊 學生:A02953323羅以豪 教授:梁明章
何謂溢位 真實世界 坑道與水 電腦觀點 緩衝區(Buffer)….記憶體 緩衝區溢位 超過處理常式限制範圍,該資料造成程式的溢位 真實世界 坑道與水 電腦觀點 緩衝區(Buffer)….記憶體 緩衝區溢位 超過處理常式限制範圍,該資料造成程式的溢位 C程式語言中出現疏漏 沒有自動做陣列或者指標的邊界檢查
溢位分類 溢位模式 堆疊溢位、堆積溢位 引發機制 字元溢位、整數溢位 攻擊模式 遠端溢位、本地溢位
攻擊方式(1/2) Char pass[4] , buff[255]; scanf(“%s”,buff); 本地溢位 ----- ex : 密碼驗證 Char pass[4] , buff[255]; scanf(“%s”,buff); strcpy(pass,buff); if( strcmp(pass,”XXXX”) ==0) {……} 輸入 4 字元 OK if 輸入 aaaaaaa......超長字元?? 緩衝區溢位 程式break down 00 DA BB …………… 61 ……………
攻擊方式(2/2) 堆疊溢位攻擊 中斷指令位置覆蓋 Dark Spyrit 資料指令相對位置概念 aaaa&jmp esp + shellcode ps.jmp esp模式(組合語言中無條件跳轉) DA 00 ………. 指令 ……
如何防護攻擊 64 bit CPU 資料和程式分開 資料記憶體設為不可執行 非執行緩衝區 設定堆疊資料斷不可執行 編寫安全程式 strcpy呼叫 關閉不需要的port 和服務 更新、新版本軟體 軟體執行權限
THE END