今天筆記的是和應用程式相關的攻擊。
這種類型的攻擊是利用程式設計上的錯誤或漏洞,讓應用程式發生異常導致服務故障,或是進行權限提升後取得更多系統及服務資料。攻擊方式包含:注入式攻擊(Injection)、溢位攻擊(Overflow)、例外處理(Exception/Error Handling)、重播攻擊(Replay)、請求偽造(Request forgeries)等等。
注入攻擊這種手法是利用程式沒有正確過濾掉使用者輸入資料的漏洞,將包含有目的程式碼的輸入資料變成執行指令或程式,透過這些被誤執行的非預期程式碼讓攻擊者達到破壞目標或取得服務上的敏感資料。注入攻擊的類型分成以下:SQL注入(SQL Injection)、命令注入(Command Injection)、DLL注入(DLL Injection)、LDAP注入(LDAP Injection)、XML注入(XML External Entity Injection)、跨站腳本(Cross Site Scripting)。
這篇鐵人賽系列文不小心飛進資安之旅(學習筆記) 系列有幾篇寫了關於各類型注入攻擊的詳細介紹。
我找到比較近期的注入攻擊新聞是世大運的這則:
世大運1.8萬志工個資全都露 今早緊急關站
雖然這類型的攻擊很早就開始、也是已知的攻擊手法,但還是需要倚賴程式設計師在開發程式時考慮到這些狀況的處理,避免漏洞被攻擊者發現或知道,導致系統或服務無法使用、甚至損毀的狀況發生。
溢位攻擊是攻擊者利用程式設計的錯誤,例如讓輸入的長度大於允許長度導致緩衝區溢位的方式,讓程式產生問題,造成系統停止、或被迫執行攻擊者期望的指令或程式。溢位攻擊的類型包含:緩衝區溢位(Buffer overflow)、整數溢位。這篇文章緩衝區溢位 (Buffer Overflow)介紹了緩衝區溢位;而在這篇文章Day8 - Integer Overflow/Underflow介紹了整數溢位的問題。
這則關於Adobe修復漏洞的新聞裡提到修復內容就包含了緩衝區溢位漏洞的問題:
Adobe修補已被開採的Adobe Acrobat Reader程式碼執行漏洞
(1) 企業常遇到的四種網頁注入(Web Injection)攻擊
(2) 游戏中注入 DLL 是什么意思,具体怎么实现的?
(3) 史上最惡劣的程式瑕疵安全性問題