應(yīng)用層攻擊主要針對網(wǎng)絡(luò)模型中的應(yīng)用層(OSI模型的第7層或TCP/IP模型的應(yīng)用層),這些攻擊通常利用應(yīng)用程序的邏輯漏洞、協(xié)議缺陷或配置錯誤來實施。以下是一些常見的應(yīng)用層攻擊類型及其簡要說明:
1. SQL注入(SQL Injection)
- 原理:攻擊者通過輸入惡意SQL代碼,操縱應(yīng)用程序的數(shù)據(jù)庫查詢,從而竊取、篡改或刪除數(shù)據(jù)。
- 示例:在登錄表單中輸入
' OR '1'='1
繞過身份驗證。 - 防御:參數(shù)化查詢、輸入驗證、ORM框架。
2. 跨站腳本攻擊(XSS, Cross-Site Scripting)
- 原理:攻擊者在網(wǎng)頁中注入惡意腳本(如JavaScript),當(dāng)其他用戶訪問時觸發(fā),竊取Cookie或會話信息。
- 類型:
- 存儲型XSS:惡意腳本存儲到服務(wù)器(如評論區(qū))。
- 反射型XSS:通過URL參數(shù)傳遞惡意腳本。
- 防御:輸入過濾、輸出編碼、設(shè)置HTTP頭(如
Content-Security-Policy
)。
3. 跨站請求偽造(CSRF, Cross-Site Request Forgery)
- 原理:誘使用戶在已登錄狀態(tài)下執(zhí)行惡意請求(如轉(zhuǎn)賬、修改密碼)。
- 示例:通過釣魚郵件誘導(dǎo)用戶點擊偽造的請求鏈接。
- 防御:使用CSRF Token、驗證請求來源(Referer檢查)。
4. 遠(yuǎn)程代碼執(zhí)行(RCE, Remote Code Execution)
- 原理:利用應(yīng)用程序漏洞執(zhí)行攻擊者指定的任意代碼,完全控制服務(wù)器。
- 案例:Log4j漏洞(CVE-2021-44228)允許通過日志輸入觸發(fā)代碼執(zhí)行。
- 防御:及時更新補(bǔ)丁、輸入過濾、最小化權(quán)限。
5. 文件包含攻擊(LFI/RFI)
- 原理:
- 本地文件包含(LFI):包含服務(wù)器本地敏感文件(如
/etc/passwd
)。 - 遠(yuǎn)程文件包含(RFI):加載遠(yuǎn)程惡意文件并執(zhí)行。
- 本地文件包含(LFI):包含服務(wù)器本地敏感文件(如
- 防御:禁用動態(tài)文件包含、白名單限制文件路徑。
6. 目錄遍歷(Directory Traversal)
- 原理:通過構(gòu)造特殊路徑(如
../../
)訪問服務(wù)器上的未授權(quán)文件。 - 示例:
http://example.com/file?name=../../etc/passwd
- 防御:規(guī)范化路徑、限制文件訪問權(quán)限。
7. HTTP Flood攻擊(DDoS應(yīng)用層)
- 原理:通過大量合法的HTTP請求耗盡服務(wù)器資源(如登錄、搜索接口)。
- 防御:速率限制、WAF(Web應(yīng)用防火墻)、CDN過濾。
8. XML外部實體注入(XXE, XML External Entity)
- 原理:利用XML解析器加載惡意外部實體,讀取文件或觸發(fā)SSRF。
- 示例:通過上傳惡意XML文件讀取服務(wù)器文件。
- 防御:禁用外部實體解析、使用JSON替代XML。
9. 不安全的反序列化(Insecure Deserialization)
- 原理:反序列化惡意數(shù)據(jù)時觸發(fā)代碼執(zhí)行或邏輯漏洞。
- 案例:Java反序列化漏洞(如Apache Commons Collections)。
- 防御:驗證序列化數(shù)據(jù)、使用安全的序列化庫。
10. API濫用攻擊
- 類型:
- 未授權(quán)訪問:API接口缺乏身份驗證(如暴露數(shù)據(jù)庫的API)。
- 數(shù)據(jù)過度暴露:API返回過多敏感信息。
- 速率限制繞過:暴力破解密碼或API密鑰。
- 防御:OAuth/JWT認(rèn)證、輸入驗證、限流。
11. 服務(wù)器端請求偽造(SSRF, Server-Side Request Forgery)
- 原理:誘使服務(wù)器向內(nèi)部或第三方系統(tǒng)發(fā)送惡意請求。
- 示例:利用URL參數(shù)讓服務(wù)器訪問內(nèi)網(wǎng)資源(如
http://internal-server/admin
)。 - 防御:過濾用戶輸入的URL、禁用非必要協(xié)議(如
file://
)。
12. 身份驗證與會話攻擊
- 類型:
- 暴力破解:嘗試大量密碼組合。
- 會話劫持:竊取Cookie或Session ID。
- 憑證填充:利用泄露的密碼庫撞庫。
- 防御:多因素認(rèn)證(MFA)、強(qiáng)密碼策略、會話超時。
13. 點擊劫持(Clickjacking)
- 原理:通過透明iframe覆蓋誘使用戶點擊惡意按鈕(如隱藏的“轉(zhuǎn)賬”按鈕)。
- 防御:設(shè)置HTTP頭
X-Frame-Options: DENY
。
14. 釣魚攻擊(Phishing)
- 原理:偽造登錄頁面或郵件誘導(dǎo)用戶提交敏感信息。
- 防御:用戶教育、SPF/DKIM郵件驗證、HTTPS。
防御通用策略
- 輸入驗證與過濾:對所有用戶輸入進(jìn)行嚴(yán)格檢查。
- 最小權(quán)限原則:限制應(yīng)用程序和用戶的權(quán)限。
- 定期更新與補(bǔ)丁:修復(fù)已知漏洞(如CVE)。
- 安全工具:使用WAF、IDS/IPS、漏洞掃描器。
- 日志與監(jiān)控:實時檢測異常行為。
應(yīng)用層攻擊因直接針對業(yè)務(wù)邏輯,危害性極大。防御需結(jié)合安全開發(fā)(如SDL)、持續(xù)監(jiān)控和用戶教育。