數據驅動攻擊

數據驅動攻擊

數據驅動攻擊是通過向某個活動中的服務發送數據,以產生非預期結果來進行的攻擊。"非預期結果"這一說法因人而異。從攻擊者看來結果是所希望的,因為它們給出了訪問目標系統的許可權。從編程人員看來,那是他們的程序收到了未曾料到的將導致非預期結果的輸入數據。數據驅動攻擊分為緩衝區溢出攻擊(buffer overflow attack)和輸入驗證攻擊(input validation attack)。

定義


數據驅動攻擊是通過向某個程序發送數據,以產生非預期結果的攻擊,通常為攻擊者給出訪問目標系統的許可權,數據驅動攻擊分為緩衝區溢出攻擊、格式化字元串攻擊、輸入驗證攻擊、同步漏洞攻擊、信任漏洞攻擊等。

主要類別


(1)緩衝區溢出攻擊
緩衝區溢出攻擊的原理是向程序緩衝區寫入超出其邊界的內容,造成緩衝區的溢出,使得程序轉而執行其他攻擊者指定的代碼,通常是為攻擊者打開遠程連接的ShellCode,以達到攻擊目標。近年來著名的蠕蟲如Code-Red、SQL.Slammer、Blaster 和Sasser 等,都是通過緩衝區溢出攻擊獲得系統許可權後進行傳播。
(2)同步漏洞攻擊
這種方法主要是利用程序在處理同步操作時的缺陷,如競爭狀態。信號處理等問題,以獲取更高許可權的訪問。發掘信任漏洞攻擊則利用程序濫設的信任關係獲取訪問權的一種方法,著名的有Win32 平台下互為映像的本地和域Administrator 憑證、LSA 密碼(Local SecurityAuthority)和Unix 平台下SUID 許可權的濫用和X Window 系統的xhost 認證機制等。
(3)格式化字元串攻擊
這種方法主要是利用由於格式化函數的微妙程序設計錯誤造成的安全漏洞,通過傳遞精心編製的含有格式化指令的文本字元串,以使目標程序執行任意命令。輸入驗證攻擊針對程序未能對輸入進行有效的驗證的安全漏洞,使得攻擊者能夠讓程序執行指定的命令。