SQL 注入:它仍然是一種威脅嗎? 你怎麼能避免它?
已發表: 2020-03-07數據洩露如此普遍,以至於它們不再令人驚訝。 惡意行為者旨在收集盡可能多的數據。 它們是在登錄憑據、信用卡信息或商業機密之後。 一旦他們掌握了這些數據,他們就會在暗網上出售這些數據。
如果你無法掌握他們到目前為止竊取了多少數據,以及他們在暗網上傾倒了多少數據,那麼這是一個令人擔憂的數字。 去年,僅 16 個被黑網站,犯罪分子就竊取並出售了 6.2 億個賬戶。 是的,入侵 16 個網站會造成如此巨大的損失。 但你知道更糟糕的是什麼嗎? 每天都有數以千計的新網站被黑!
網絡犯罪分子每天都會想出新的黑客攻擊方法。 但這並不意味著他們會忘記舊的技術,例如 SQL 注入。 它們仍然是最常見的攻擊媒介之一,易於執行並產生豐碩的成果。
- 什麼是 SQL 注入,為什麼它很危險?
- SQL 注入是如何工作的?
- 帶內 SQL 注入
- 盲注 SQL
- 帶外 SQL 注入
- 這種威脅仍然相關嗎?
- 預防的安全提示
- 最後的話
什麼是 SQL 注入,為什麼它很危險?

SQL Injection,也稱為 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 注入是最古老的攻擊性網絡攻擊形式之一。 然而,它仍然非常相關。 兩年前,開放 Web 應用程序安全項目將 SQL 注入列為第一大威脅。 雲服務提供商 Akamai 創建了一份互聯網狀況報告,該報告發現 SQL 注入佔 2017 年至 2019 年所有基於 Web 的攻擊的 65%。因此可以說 SQL 注入仍然出現在三分之二的 Web 攻擊中最近幾年。
在 2017 年第一季度,這些向量造成了 44% 的應用層攻擊。 更糟糕的是,沒有其他形式的應用程序攻擊向量增長得像 SQL 注入一樣快。 2018 年 11 月,又出現了一次大幅飆升。 它表明有超過 3500 萬次 SQL 注入攻擊嘗試。 專家認為,這一高峰的主要原因是假期。 這是所有網站所有者都應該注意的事情 - 特別是如果他們從事零售行業。 但即使在假期結束後,SQL 注入仍然是您需要注意的威脅。
美國是應用層攻擊的首要目標。 它在短短 17 個月內就面臨了大約 30 億次攻擊。 其他受歡迎的受害者包括英國、德國、巴西、印度、日本、加拿大、澳大利亞、意大利和荷蘭。 因此,可以安全地假設它仍然是一個巨大的威脅,所有公司都應該採取廣泛的預防措施。
預防的安全提示

開發人員的最佳行動方案是引入預防措施以防止攻擊發生。 這些是最有效的預防措施:
- 輸入驗證:輸入驗證驗證是否允許任何特定的用戶輸入。 這意味著必須共同接受格式、長度和類型。 這有助於對抗黑客在輸入字符串中植入的命令。
- 參數化查詢:參數化查詢是一種預編譯不同 SQL 語句的方法。 然後它存儲參數,以便可以執行語句。 它使數據庫能夠識別代碼並將其與常規輸入數據區分開來。
- 存儲過程:他們需要開發人員將一個或多個 SQL 語句聚集成一個邏輯單元。 顧名思義,它是一種可以存儲並保存以備後用的代碼形式。
- 轉義:開發人員應使用字符轉義功能來確保 DBMS 不會將用戶輸入與 SQL 語句混淆。
- Web 應用防火牆:它是防止 SQL 注入攻擊的最安全的方法之一。 防火牆監控流入和流出服務器的流量。 它識別哪些請求可能有害,哪些不是。 這個解決方案對於許多其他漏洞利用已經足夠了,所以它總是不錯的。
- 避免管理權限:開發人員不應該通過具有 root 訪問權限的帳戶將他們的應用程序連接到數據庫。 否則,黑客可能會訪問整個系統並造成無法彌補的損失。 此外,開發人員應確保每個數據庫都有自己的一組有限的憑據。
您可能還喜歡:十大暢銷網絡安全軟件(防病毒和安全)。
最後的話

任何關心 SQL 注入的人也不應該忘記其他可能的攻擊。 通常的網絡安全實踐適用:使用強大的密碼,學會識別威脅,在連接到網站或數據庫時打開 VPN,等等。 什麼是 VPN,它有什麼作用? 它會在您上網時加密您的在線流量。 因此,如果您向數據庫發送 SQL 請求,則只有數據庫可以解密它。 如果有人截獲有問題的數據包,他們將無法理解它們。 您或您的公司對各種威脅的準備越充分越好。
只有引入全面的預防措施才能確保 SQL 注入或攻擊永遠不會成功。 準備好投入大量時間、精力和金錢,以確保您擁有適當的工具來對抗各種攻擊。
