什麼是列舉攻擊?如何防止它?
當駭客使用暴力破解技術來檢視網路伺服器資料庫中是否存在特定資料時,這被稱為列舉攻擊。此資訊可能包括用於簡單列舉攻擊的使用者名稱和密碼。更復雜的攻擊可能會確認不良的網路設定並揭示主機名、SNMP 和 DNS 資訊。
每個與使用者資料庫互動的 Web 應用程式模組,如果暴露在外,都有可能發展成為列舉攻擊的載體。
以下兩個 Web 應用程式經常成為列舉攻擊的目標:
密碼重置頁面
登入頁面
列舉是滲透測試的重要組成部分,因為使這些攻擊能夠讓駭客繞過資訊安全屏障的漏洞。
列舉攻擊是如何工作的?
在列舉攻擊中,駭客搜尋證明提交的憑據準確性的獨特伺服器響應。提交線上表單後,最明顯的響應是欄位身份驗證訊息。我們將使用使用者名稱列舉攻擊(其中攻擊者試圖在 Web 伺服器資料庫中查詢使用者名稱)的示例來描述此過程。
利用伺服器響應時間驗證條目
網路攻擊的最佳設定是上述反饋系統。驗證表單條目的伺服器響應通常要微妙得多。使用滲透測試工具監控伺服器響應時間是一種更復雜的方法。伺服器對無效使用者名稱條目的響應通常比對可接受的使用者名稱提交的響應花費更長時間。
使用者名稱列舉攻擊
通常,此攻擊序列的第一階段僅關注使用者名稱。此時的目標是在資料庫中找到最合法的使用者名稱。具有較弱應用程式安全性的 Web 伺服器將使用無效使用者名稱訊息來識別不存在的使用者名稱。
威脅行為者可以確認使用者名稱不存在於 Web 伺服器資料庫中,因為此訊息僅驗證使用者名稱的有效性。一旦獲得了大量經過驗證的使用者名稱,網路犯罪分子就會使用各種使用者名稱變體提交相同的密碼。
使用者名稱變體可以透過暴力破解攻擊方法或從獲取的被盜憑據列表中生成。然後,網路犯罪分子將使用密碼重複此過程,對所有已驗證的帳戶使用暴力破解方法,直到獲得成功的組合。
任何在其過程中包含資料庫驗證的 Web 應用程式功能都容易受到此類攻擊。Web 應用程式開發人員應避免可預測的時間序列,以防止駭客在伺服器響應時間和合法資料條目之間建立關聯。應將隨機時間段新增到伺服器響應中,以說明正確和錯誤的條目。
複雜的列舉攻擊示例
偵察任務使用複雜的列舉技術來查詢可探索的軟體漏洞。以下是其中一些攻擊示例。
LDAP 列舉
輕量級目錄訪問協議 (LDAP) 用於訪問目錄服務,這些服務包括使用者記錄的層次結構。
成功的 LDAP 列舉攻擊可能會暴露以下敏感資料:
使用者名稱和地址
聯絡方式
關於業務部門的資訊。
NetBIOS 列舉
端點可以透過 NetBIOS 列舉網路基本輸入輸出系統 (NetBIOS) API 訪問 LAN 資源。
每個 NetBIOS 協議都有一個 16 個字元的字串,用於透過 TCP/IP 標識網路裝置。
需要啟用印表機和檔案服務才能支援 NetBIOS 列舉攻擊。
這些攻擊的目標是 Microsoft 作業系統的埠 139。
在成功進行 NetBIOS 列舉嘗試後,可能對受損機器進行以下攻擊。
受感染的端點可能加入殭屍網路並用於執行 DDoS 攻擊。
為了訪問關鍵資源,竊賊可以使用其他列舉的特權訪問帳戶。
SNMP 列舉
簡單網路管理協議 (SNMP) 是一個用於獲取或更改網路裝置資料的框架。網路裝置可以訪問 SNMP,而不管它們使用什麼軟體,因為它與軟體無關。
網路攻擊會列舉遠端裝置上的 SNMP 以獲取以下資訊:
流量模式
遠端裝置的識別符號
識別有關網路資源和裝置的資料
如何防止列舉攻擊?
以下列表包含一些網路安全措施,這些措施可以阻止各種列舉攻擊。
多因素身份驗證 (MFA) - 透過在登入時強制執行 MFA,網路犯罪分子無法訪問任何伺服器回覆,除非首先提供正確的身份驗證令牌。網路攻擊者也極不可能破壞接收這些令牌的不同端點。
在所有表單上使用驗證碼 - 儘管驗證碼在防止自動列舉攻擊方面不如 MFA 有效,但它們確實起到了作用。
減少登入嘗試次數;MFA 和驗證碼使駭客更難以登入,從而減緩了他們的攻擊速度。速率限制可以使事情變得更加令人沮喪,它會防止來自同一 IP 地址的預定次數的失敗嘗試後登入過程。
使用 Web 應用程式防火牆 (WAF) 防止來自單個 IP 地址的未經授權的登入嘗試。
實施網路安全意識培訓 - 教導員工識別常見的策略(例如社交工程和網路釣魚),這些策略用於在列舉過程之外竊取敏感資料。
如果登入表單使用 API,請混淆回覆,以便它們不會揭示每個欄位條目的有效性。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP