暴力破解是什麼?5 招預防密碼被破解!
暴力破解是什麼?
暴力破解也稱作「蠻力攻擊」、「蠻攻」或「窮舉攻擊(Exhaustive Attacks)」,是一種駭客網路攻擊手法,經由反覆測試不同組合來找出正確的密碼、登入資料或加密金鑰。密碼無論多複雜,組合的可能性終究有限,只要駭客有足夠的時間和電腦運算資源,就可以不斷重複嘗試新的密碼,直到找到匹配的密碼組合。
比方說,一組由 5 位數數字和大寫英文字母組成的密碼有 365(即 60,466,176) 種可能性,駭客從 00000000 猜到 ZZZZZZZZ,必然可以猜中正確密碼。暴力破解本身原理簡單,沒有特別的技術要求或事先設計繁雜社交工程的騙局,僅是將「嘗試錯誤法(trial and error)」發揮到極致。顧名思義,靠「暴力」和「蠻力」破解密碼,未經授權入侵系統。但是反覆輸入密碼,並等待系統回應,耗費一定時間。因此,密碼複雜度越高,暴力破解所需的時間就越多。雖然 5 位數和 7 位數密碼只差兩位,但電腦蠻力破解花費的時間相差甚巨。假設電腦每秒可以嘗試輸入 1 千 5 百萬組不同的密碼,由數字和大小寫英文字母組成的 7 位數密碼、 5 位數密碼所需的時間分別約為 2.7 天和 61 秒。
當密碼可能性越多時,單純靠蠻力猜密碼時間成本過高。為增加效率,駭客通常會搭配殭屍網路(Botnet)使用暴力破解攻擊。駭客先感染一群電腦和系統設備,再遠端操控感染的殭屍電腦,利用多台機器的運算資源,搭配自動化腳本進行蠻力攻擊。另一方面,隨著硬體設備效能提升,暴力破解的速度也逐年加快。
【暴力破解示意圖】
暴力破解攻擊的 6 種類型
暴力破解攻擊以逐一嘗試密碼為背後原則,再搭配不同的手法和猜密碼邏輯,衍生出多種暴力破解的子類別。包含最基礎的傳統暴力破解攻擊,常見的暴力攻擊可以分為 6 種:傳統暴力破解攻擊、字典攻擊、混合暴力攻擊、撞庫攻擊、密碼潑灑、反向暴力破解攻擊。
一、傳統暴力破解(Traditional Brute Forace Attacks)
最簡單的暴力密碼破解,不以其他方式縮寫猜測密碼的範圍,將可能的密碼組合依序輸入系統,一一測試。
二、字典攻擊(Dictionary Attacks)
與基本的暴力破解攻擊相比,字典攻擊猜測密碼的範圍較小。駭客選定攻擊目標後,會準備一張「字詞清單(Dictionary List)」,清單內列舉常被設為密碼的字詞與數字組合。例如,連續按鍵「qwertyu」、「123456789」等和簡單詞彙「password」、「iloveyou」等。駭客再將清單上的組合依次輸入,測試是否能成功登入。
與傳統的暴力破解相比,字典攻擊的成功與否主要倚賴人行為模式的慣性,猜測密碼的範圍較小。因此字典攻擊佔用的運算資源少、執行攻擊速度快、效率較高,且因為不會出現大量可疑的登入嘗試,較難以偵測。
三、混合暴力攻擊 (Hybrid Brute Force Attacks)
混合暴力攻擊,混合了傳統暴力破解和字典攻擊。駭客先使用效率較高的字典攻擊,嘗試固定範圍內的密碼組合,節省運算資源和時間。若沒有成功,再改用最終一定可以破解密碼的傳統暴力攻擊。
四、撞庫攻擊(Credential Stuffing)
撞庫攻擊(或憑證填充)和字典攻擊類似,駭客也會事先準備一份帳碼清單。兩者不同之處是,撞庫攻擊中所使用的清單來自其他網站或服務外洩的帳號密碼。駭客將某網站外洩的帳號密碼,逐一至另一網站登入測試,直到找到匹配的登入資料。
撞庫攻擊同樣是針對人類行為模式的解密手法,得以成功的原因在於使用者在不同的網站或服務設定相同的帳號密碼。
【想更進一步瞭解撞庫攻擊是什麼,可以參考《撞庫攻擊》文章。】
五、密碼潑灑(Password Spraying)
密碼潑灑攻擊中,駭客會預先鎖定好已知的使用者帳號作為目標,再以常用的密碼組合登入測試目標帳號。駭客有多種取得已知使用者帳號的方式,包含從暗網上購買、透過其他資料外洩事件。密碼的部分,則與字典攻擊雷同,駭客在開始解密之前,已有常用密碼清單。再將帳號清單與密碼清單上的帳號密碼逐一登入測試,尋找匹配的登入資料。
六、反向暴力破解攻擊(Reverse Brute Force Attacks)
反向暴力破解攻擊,顧名思義和傳統暴力攻擊相反。駭客已經得到了正確的密碼,但不知道帳號,駭客因而改為「暴力」測試多種可能的帳號來找出正確的登入資訊組合。
面對駭客發展出來的多種暴力攻擊手段該如何有效防範呢?本文接下來將介紹五招暴力破解的預防方式。
預防暴力破解,應該如何保護網路密碼?
一、增加密碼強度
個人使用者對付暴力破解最直接的方式就是設置複雜度較高的密碼。雖然暴力破解背後的原理是測試所有可能的組合,但一旦可能的密碼組合數量過大,暴力破解所耗費的運算資源和時間成本也會大幅增加。破解密碼的時間可能從數小時變成數年,進而讓以暴力破解攻擊也變得不切實際。例如,使用 10 位數以上長度的密碼。除了增加密碼位數以外,還可讓密碼包含數字、大小寫拉丁字母和特殊符號。
另一方面,在設置密碼時,也建議避免使用過於簡單的字詞,如「password」、「123456789」等,以防遭受字典攻擊或密碼潑灑而被入侵系統。可將多個單字串連,或穿插特殊符號於其中,降低密碼過於普遍的可能性。也可以透過刪去某些特定字母,使密碼看起來像是隨機選擇的字串,譬如拿掉單字中的母音,或自行創造縮寫。同時,為防範撞庫攻擊,建議避免在不同網站或服務使用相同的密碼。
而提供網路服務的企業可在使用者建立帳戶的頁面,加入密碼規則說明和密碼強度提醒,協助使用者設置強度較高的密碼。並在企業內部加強資安教育,提升員工資安意識和落實密碼管理。
二、開啟雙因子認證(2FA)/多因子認證(MFA)
啟用雙因子認證(Two-Factor Authentication,2FA)和多因子認證(Multi-Factor Authentication,MFA)機制,使用者在登入網站時,除了輸入帳號密碼以外,需要透過另外的方式驗證身份。例如簡訊、電子信件、實體卡片、生理特徵(指紋、掌紋、虹膜、臉部特徵)等等。MFA 降低身份驗證過程中對帳號密碼的依賴,以加強帳戶安全性。
使用者可以透過網站和服務中的個人設定開啟 2FA 或 MFA 功能,或下載可信的外部 2FA/MFA 應用程式(如 Microsoft Authenticator)。提供網路服務的企業也可以透過在服務中增加 2FA/MFA 選項,讓身份驗證多一道防護
三、使用 CAPTCHA/reCAPTCHA
CAPTCHA 是「全自動公開化圖靈測驗人機辨識(Completely Automated Public Turing test to tell Computers and Humans Apart)」的縮寫,為人機驗證技術;reCAPTCHA 則是延伸自其的系統,兩者皆可用來辨別試圖登入網站的是真人還是機器人。由於駭客使用暴力破解攻擊時,通常會使用殭屍機器人和自動化腳本加快攻擊的速度,因此企業在登入頁面設置人機辨識系統可阻擋駭客透過暴力攻擊,未經授權存取帳戶。
四、封鎖特定 IP 位置
建立 IP 黑名單,封鎖曾經用來進行暴力破解的 IP 地址,阻止殭屍機器人的登入嘗試。另外,建議提供網路服務的企業定期更新 IP 黑名單,即時將用來進行暴力攻擊的新 IP 位置加入封鎖名單。
五、全天候監測
暴力破解攻擊通常有跡可循,例如短時間內有多次登入嘗試、透過新的裝置或地點登入帳號、使用相同裝置的大量登入嘗試等等。因此全天候監測網站或伺服器系統,注意是否有可疑及異常活動,並即時封鎖、阻檔惡意網路攻擊。
【想更進一步瞭解網路攻擊是什麼,可以參考《網路攻擊》文章。】
暴力破解雖然本身簡單,但可以造成嚴重的後果:盜用資料、身份竊盜、散播電腦病毒、錢財或智慧財產損失、企業名譽受損等問題。採取防護措施,阻攔暴力攻擊也因此成為使用者和企業共同的課題。個人使用者建議提升資安意識,使用高強度密碼,並開啟 MFA 功能。企業方面,則可以使用多重資安服務,套用 2FA/MFA 服務、防堵機器人和監測系統及流量。
晟崴科技提供 MFA、Web 應用程序及 API 保護(WAAP)、威脅偵測應變服務(MDR)、資安弱點通報機制等資安產品和服務,協助您提升服務的身份驗證安全,並全面監控 IT 資產,並在偵測到異常活動時,迅速採取行動,降低暴力破解的威脅性。
歡迎聯絡晟崴科技