[Security] 防止網站上的暴力登錄


Answers

在我看來,有幾種可能性,每種都有缺點和優點:

強制安全密碼

  • :會阻止字典攻擊
  • Con :也會阻止流行,因為大多數用戶都無法記住複雜的密碼,即使你向他們解釋,如何輕鬆記住它們。 例如,通過記住句子:“我在購物中心購買1 Apple for 5 Cent”導致“Ib1Af5CitM”。

幾次嘗試後鎖定

  • Pro :會減慢自動化測試速度
  • Con :很容易鎖定第三方用戶
  • Con :使它們在數據庫中持久化可能會導致Twitter或可比較等巨大服務中的大量寫入過程。

驗證碼

  • :他們阻止自動化測試
  • Con :他們正在消耗計算時間
  • Con :將“減慢”用戶體驗
  • 巨大的CON :它們不是無障礙的

簡單的知識檢查

  • :會阻止自動化測試
  • 騙局 :“簡單”是旁觀者的眼睛。
  • Con :將“減慢”用戶體驗

不同的登錄和用戶名

  • :這是一種技術,很難看到,但在我看來,這是防止蠻力攻擊的良好開端。
  • Con :取決於用戶對兩個名稱的選擇。

使用整個句子作為密碼

  • Pro :增加可搜索空間的大小。
  • 專業版 :大多數用戶都更容易記住。
  • Con :取決於用戶的選擇。

正如您所看到的,“好”解決方案都取決於用戶的選擇,這再次將用戶視為鏈中最薄弱的元素。

還有其他建議嗎?

Question

作為對最近的Twitter劫持Jeff關於字典攻擊的帖子的回應,保護您的網站免受暴力登錄攻擊的最佳方法是什麼?

Jeff的帖子建議每次嘗試登錄都會增加延遲,評論中的建議是在第二次嘗試失敗後添加驗證碼。

這兩個看起來都是好主意,但你怎麼知道它的“嘗試數”是什麼? 您不能依賴會話ID(因為攻擊者每次都可以更改它)或IP地址(更好,但易受殭屍網絡攻擊)。 只需根據用戶名記錄它就可以使用延遲方法鎖定合法用戶(或者至少使登錄過程對他們來說非常慢)。

思考? 建議?




我想你應該再次登錄用戶名。 這是唯一的常量(其他任何東西都可以被欺騙)。 是的,它可以鎖定一天的合法用戶。 但如果我必須在黑客帳戶和已關閉帳戶之間做出選擇(一天),我肯定會選擇鎖定。

順便說一句,在第三次嘗試失敗後(在一定時間內),您可以鎖定帳戶並向所有者發送發布郵件。 郵件包含解鎖帳戶的鏈接。 這對用戶來說是輕微的負擔,但是破解者被阻止了。 如果即使郵件帳戶被黑客入侵,您也可以設置每天解鎖數量的限制。




我傾向於同意大多數其他評論:

  • X密碼嘗試失敗後鎖定
  • 計算對用戶名失敗的嘗試
  • 可選擇使用CAPTCHA(例如,嘗試1-2是正常的,嘗試3-5是CAPTCHA,進一步嘗試阻止15分鐘)。
  • (可選)向帳戶所有者發送電子郵件以刪除該塊

我想要指出的是,你應該非常小心強制使用“強”密碼,因為這通常意味著它們只能寫在桌面上的帖子上/連接到顯示器上。 此外,某些密碼策略會導致可預測的密碼。 例如:

如果密碼不能是以前使用過的任何密碼並且必須包含一個號碼,那麼它很可能是任何帶有序號的通用密碼。 如果你必須每6個月更改一次密碼,並且一個人已經有兩年的密碼,那麼他們的密碼很可能就像密碼4

假設您更加限制它:必須至少8個字符,不能有任何連續的字母,必須有字母,數字和特殊字符(這是許多人認為安全的真實密碼策略)。 試圖闖入John Quincy Smith的賬戶? 知道他出生在3月6日嗎? 他的密碼很可能像jqs0306! (或者也許是jqs0306~ )。

現在,我不是說讓用戶擁有密碼密碼也是個好主意,只是不要自欺欺人地認為你的強制“安全”密碼是安全的。




您可以添加某種形式的CAPTCHA測試。 但要注意,他們中的大多數都會讓人眼前一亮或眼睛受損。 一個有趣的CAPTCHA形式是問一個問題,

2和2的總和是多少?

如果您記錄上次登錄失敗,如果CAPTCHA足夠大,您可以跳過CAPTCHA。 如果最後一次失敗是在最後10分鐘內,則僅進行CAPTCHA測試。




對於.NET環境

動態IP限制

IIS的動態IP限制擴展為IT專業人員和託管服務提供了一個可配置模塊,通過臨時阻止遵循可能模式的HTTP客戶端的Internet協議(IP)地址,幫助緩解或阻止拒絕服務攻擊或通過暴力破解密碼有利於這種攻擊之一。 可以配置此模塊,以便可以在Web服務器或Web站點級別完成分析和阻止。

通過動態阻止來自惡意IP地址的請求,降低拒絕服務攻擊的可能性

IIS的動態IP限制允許您通過檢查請求的源IP並識別可能發出攻擊信號的模式來降低Web服務器遭受拒絕服務攻擊的可能性。 當檢測到攻擊模式時,模塊會將違規IP放在臨時拒絕列表中,並避免在預定時間內響應請求。

最大限度地減少暴力破解Web服務器密碼的可能性

IIS的動態IP限制能夠檢測指示嘗試解碼Web服務器密碼的請求模式。 該模塊將違規IP放在拒絕訪問預定時間的服務器列表上。 在針對Active Directory服務(ADS)進行身份驗證的情況下,模塊可以通過避免向ADS發出身份驗證質詢來維護Web服務器的可用性。

特徵

  • 無縫集成到IIS 7.0 Manager中。

  • 根據以下任一標準動態阻止來自IP地址的請求:

    • 並發請求的數量。

    • 一段時間內的請求數。

  • 支持允許繞過動態IP限製過濾的IP列表。

  • 可以在Web站點或Web服務器級別配置阻止請求。

  • 可配置的拒絕操作允許IT管理員指定將返回給客戶端的響應。 模塊支持返回狀態代碼403,404或關閉連接。

  • 支持IPv6地址。

  • 支持可能修改客戶端IP地址的代理或防火牆後面的Web服務器。

http://www.iis.net/download/DynamicIPRestrictions




像大多數銀行一樣,在X登錄失敗後鎖定用戶名/帳戶。 但我不會像銀行那樣嚴格,因為你必須打電話來解鎖你的帳戶。 我會在1-5分鐘內暫時鎖定。 當然,除非Web應用程序與銀行一樣對數據敏感。 :)




Links