SQL 注入:它仍然是一種威脅嗎? 你怎麼能避免它?
已發表: 2020-03-07數據洩露如此普遍,以至於它們不再令人驚訝。 惡意行為者旨在收集盡可能多的數據。 它們是在登錄憑據、信用卡信息或商業機密之後。 一旦他們獲得此類數據,就會在暗網上出售。
如果你無法掌握到目前為止他們竊取了多少數據,以及他們在暗網上傾倒了多少數據,那麼這是一個令人擔憂的數字。 去年,犯罪分子僅從 16 個被黑網站竊取和出售了 6.2 億個帳戶。 是的,入侵 16 個網站會造成如此大的損失。 但你知道更糟糕的是什麼嗎? 每天都有數以千計的新網站被黑!
網絡罪犯每天都會想出新的黑客方法。 但這並不意味著他們忘記了舊技術,例如 SQL 注入。 它們仍然是最常見的攻擊媒介之一,易於執行並產生豐碩的成果。
- 什麼是 SQL 注入及其危險性?
- SQL注入如何工作?
- 帶內 SQL 注入
- SQL 盲注
- 帶外 SQL 注入
- 這種威脅是否仍然相關?
- 預防安全提示
- 最後的話
什麼是 SQL 注入及其危險性?
SQL 注入,也稱為 SQLi,是一種注入攻擊形式,它使黑客能夠執行 SQL 語句。 注入攻擊是一大類不同的攻擊媒介。 但它們都允許惡意行為者執行危險的輸入。 它們充當系統命令,然後執行。
SQL 語句最常用於從各種數據庫中添加或檢索數據。 許多著名的管理系統,如 Microsoft SQL Server、Access 和 Oracle 都使用這些語句。
由於許多廣泛使用的數據庫管理系統都使用 SQL 語句,因此黑客可以通過 SQL 注入來利用這些系統。 這意味著犯罪分子可以訪問和竊取存儲在數據庫中的敏感數據。 它可以包括以下內容:
- 知識產權。
- 信用卡信息。
- 客戶信息。
- 地址。
- 公司機密。
為您推薦: Chrome 與 Firefox:性能、安全和隱私比較!
SQL注入如何工作?
要執行 SQL 注入攻擊,黑客必須在網站或公司內部應用程序中找到易受攻擊的用戶輸入。
例如,受害者使用 WordPress 作為他們的網站。 該代碼可能存在一個 SQL 漏洞,該漏洞會在不進行任何清理的情況下將用戶輸入直接發送到數據庫。 如果黑客找到該漏洞,他們可以向相關數據庫發送命令。 然後,數據庫輸出返回到瀏覽器,使黑客能夠執行不同的命令。 這樣,他們就可以下載整個數據庫、設置新命令、修改用戶帳戶或創建新帳戶。
SQL 注入攻擊主要有以下三種形式:
- 帶內 SQL 注入:
- 基於錯誤的 SQL 注入。
- 基於聯合的 SQL 注入。
- SQL盲注:
- 布爾值。
- 基於時間。
- 帶外 SQL 注入。
帶內 SQL 注入
帶內 SQL 注入是最常見的類型之一,因為它簡單高效。 在這裡,攻擊者使用相同的通信通道來執行攻擊和收集結果。 它有兩個子變體——基於錯誤和基於聯合的 SQL 注入:
- 基於錯誤的 SQL 注入允許黑客使數據庫產生錯誤消息。 然後,他們可以使用這些錯誤消息來收集有關數據庫本身的信息。
- 基於聯合的 SQL 注入使罪魁禍首能夠利用 UNION SQL 運算符。 它結合了數據庫提供的不同語句來獲得一個 HTTP 響應。 這樣的響應通常包含黑客可以利用的數據。
SQL 盲注
SQL 盲注依賴於服務器的行為模式。 它們執行起來要慢得多。 黑客發出數據有效載荷並檢查服務器的響應以分析其結構。 他們稱此為“盲目”,因為數據不會直接提供給黑客。 因此,他們看不到有關帶內漏洞利用的任何信息。 它有兩種變體,即布爾型和基於時間的:

- 布爾變量允許黑客發送 SQL 查詢,提示數據庫返回信息。 HTTP 響應中的信息根據先前的結果而變化。
- 基於時間的變化使惡意行為者能夠將 SQL 查詢直接發送到數據庫,這會迫使數據庫等待,然後才能做出反應。 攻擊者註意到數據庫響應所需的時間並決定查詢是真還是假。 根據結果,HTTP 響應是即時的還是延遲的。
帶外 SQL 注入
只有在數據庫服務器上啟用了特定功能時,帶外 SQL 注入才允許黑客攻擊數據庫。 它是最不流行的 SQL 注入方法。 許多黑客使用它來替代基於錯誤的和盲目的 SQL 注入。
當黑客無法使用同一介質執行攻擊和收集信息時,可以選擇這種特殊攻擊。 或者,當服務器不穩定且執行其他兩種注入類型的速度慢時,他們可以使用此註入。 此技術創建 DNS 和 HTTP 請求以轉發被盜數據。
您可能喜歡:小型企業的網絡安全風險評估和管理技巧。
這種威脅是否仍然相關?
SQL 注入是最古老的攻擊性網絡攻擊形式之一。 然而它仍然非常相關。 兩年前,Open Web Application Security Project 將 SQL 注入列為頭號威脅。 雲服務提供商 Akamai 創建了一份互聯網現狀報告,該報告發現,從 2017 年到 2019 年,SQL 注入佔所有基於 Web 的攻擊的 65%。因此可以說,SQL 注入仍然出現在三分之二的 Web 攻擊中最近幾年。
2017 年第一季度,這些向量造成了 44% 的應用程序層攻擊。 更糟糕的是,沒有任何其他形式的應用程序攻擊向量像 SQL 注入一樣增長得如此之快。 2018 年 11 月,又出現了一次顯著飆升。 它表明有超過 3500 萬次 SQL 注入攻擊嘗試。 專家認為,這一激增的主要原因是假期。 這是所有網站所有者都應該知道的事情——尤其是當他們在零售行業時。 但即使在假期結束後,SQL 注入仍然是您需要注意的威脅。
美國是應用層攻擊的首要目標。 它在短短 17 個月內就面臨了大約 30 億次攻擊。 其他受歡迎的受害者包括英國、德國、巴西、印度、日本、加拿大、澳大利亞、意大利和荷蘭。 因此,可以肯定地說,它仍然是一個巨大的威脅,所有公司都應該採取廣泛的預防措施。
預防安全提示
開發人員的最佳行動方案是引入預防措施以防止攻擊發生。 這些是最有效的預防措施:
- 輸入驗證:輸入驗證驗證是否允許任何特定的用戶輸入。 這意味著必須共同接受格式、長度和類型。 它有助於對抗黑客在輸入字符串中植入的命令。
- 參數化查詢:參數化查詢是一種預編譯不同 SQL 語句的方法。 然後它存儲參數以便可以執行該語句。 它使數據庫能夠識別代碼並將其與常規輸入數據區分開來。
- 存儲過程:需要開發人員將一條或多條SQL語句聚集成一個邏輯單元。 顧名思義,它是一種可以存儲並保存以備後用的代碼形式。
- 轉義:開發人員應該使用字符轉義功能來確保 DBMS 不會將用戶輸入與 SQL 語句混淆。
- Web應用防火牆:它是防止SQL注入攻擊最安全的方法之一。 防火牆監視進出服務器的流量。 它確定哪些請求可能有害,哪些請求沒有。 這個解決方案足以應對許多其他漏洞利用,因此它總是不錯的。
- 避免管理權限:開發人員永遠不應通過具有根訪問權限的帳戶將他們的應用程序連接到數據庫。 否則,黑客可以訪問整個系統並造成無法彌補的損失。 此外,開發人員應確保每個數據庫都有自己的一組有限的憑據。
您可能還喜歡:十大最暢銷的互聯網安全軟件(防病毒和安全)。
最後的話
任何關注 SQL 注入的人都不應該忘記其他可能的攻擊。 通常的網絡安全實踐適用:使用可靠的密碼、學會識別威脅、在您連接到網站或數據庫時隨時打開 VPN,等等。 什麼是 VPN,它有什麼作用? 它會在您上網時加密您的在線流量。 因此,如果您向數據庫發送 SQL 請求,則只有數據庫可以解密它。 如果有人攔截了有問題的數據包,他們將無法理解它們。 您或您的公司對各種威脅的準備越充分越好。
只有引入全面的預防措施才能確保 SQL 注入或攻擊永遠不會得逞。 準備好投入大量時間、精力和金錢,以確保您擁有適當的工具來對抗各種攻擊。