看見密碼的弱點
檢視密碼工具與技術
破解操作系統密碼
破解有密碼保護的檔案。
在密碼破解之下保護你的系統
密碼破解是最普遍、容易的手法對於攻擊者要獲得無授權的網路、電腦、或應用程式的存取,常會有年度最弱密碼的報告,時至今日,弱密碼的這個弱點,仍是企業體常見的弱點。
強密碼其實好做好維護的(理想上,更長,更強的密碼就越不好破解),但網管和用戶經常忽略這件事在密碼管理上。
因此密碼是資訊安全鏈中最脆弱的一環。
密碼依賴於保密,若是密碼被突破了,原擁有者,就不再是維一可存取系統的人,
那時,責任歸屬就消失了,壞事就要發生了。
responsibility 是指"對於「被指派的任務」 負責"。 accountability 是指"對於「被授予的權力」 負責"。
「當責」與「負責」有何差別?
密碼依賴於保密
我曾訪問過3M公司,他們努力推動當責的文化與應用已有數年。3M說,他們推動當責是:「From board room to mailroom (從董事會到收發室)」──收發室是什麼意思?他們舉例,盡責地把重要文件準時依規寄出是「負責」;如再進一步確定對方是否收到這封重要文件,就是「當責」。因為,當責是要對最後成果負責。所以,這是第一個差異,「負責」:通常只是為行動負責,盡心盡力;「當責」:一定要為最後成果負責,要交出成果
https://www.hr.org.tw/hr_2.asp?ctype=2&autono=763
外部的攻擊者或是惡意的內部人員,有許多方法可以獲取密碼,他們可以透過用問的,或是偷看的,或是透過破解軟體,可能透過網路,遠端破解水電、鍵盤記錄器、或是網路分析軟體。
本章將演示壞人如何從你的網路和電腦系統取得密碼。作者列出常見的密碼弱點還有描述對策來預防弱點被突破。如果能夠執行這些測試和實施對策,你將在你的安全之路上無恙。
Understanding Password Vulnerabilities
Passwords
create a false sense of security
密碼會讓人產生一種虛假的安全感
Knowing a password doesn’t make someone an authorized user.
組織或人的弱點:組織缺乏安全意識,或部份人缺乏安全意識。
技術的弱點:
較弱的加密方式和不安全的密碼存放
人們更驅向記憶容易記憶的密碼,這個心態導致密碼是最容易突破的關卡,相較於八碼字母組成的密碼,人們更喜歡password或是abc123這種。
通常會有這些問題:
1。容易猜:像是password,letmein
2。不改:人們不太需要定期得、持續得改密碼。
3。重覆使用密碼在記多地方:當壞人取得一組密碼後,就可以盡情使用在後面的系統裡。要向你的使用者宣傳,這種作法會讓你如何陷入困境。
4。寫下來:又複雜的密碼就越難破解,但通常,越複雜的密碼就讓使用者越想寫下來,外部的攻擊者或惡意的內部就能找到這些密碼來搞你和你的事業。
常有的技術弱點
加密的機制太弱,hakers可以利用此章介紹的方法來破解密碼儲存機制
許多供應商認為只要不公開加密方法的sourcecode就足夠安全,但這是錯的。
破解密碼的工具只要有足夠的時間和電力就能破解任何加密的密碼。
程式存密碼在記憶體、不安全的檔案、容易存取的資料庫中。
未加密的資料庫,提供直接存取機敏資訊,只要能存取資料不管是有沒有商業需求。
使用者的軟體在打密碼的時候會直接秀出來。
https://nvd.nist.gov/vuln/search
這裡可以查一下你的系統、密碼有多脆弱。
破密碼是hackers最愉快的事,因為它激發了他們的探索意識和解決問題的願望。
你也許沒有破密碼的熱情,但這接近破密碼這回事的心理機制。
建議從最主要的開始。
老方法:
社交工程:釣魚、偷看、從身邊資訊猜
利用信任人類的天性,去取得資訊。
比如說釣魚平台像LUCY,在上面使人們提供自己登入的資料,聽起來可笑但時常發生。
佯稱你的信件卡住了,需要你的帳密去解除。
發釣魚信請對方提供,作者發現請user確認他們對內部安全規則的了解與遵守透過送出他們的登入到釣魚平台上就能辦到
如果測試期間有user給你密碼,確保在測試後它們都會被改變,以免密碼洩露問題出來要你負責。
另一個共通的弱點
員工的姓名電話email如果有貼在公司的網站上,社交媒體也可以,linkin、fb、twitter上常會有相關的資料找得到。
使用者有意識得維持安全訓練是很好的方法。
安全性工具是很好的故障保護工具如果有在監控mail和web瀏覽。
訓練員工能認出攻擊,比如說可疑的電話,或釣魚信,並且能有效回應。
最好是能拒絕給予資訊,並且能提醒組織內的安管人員。
同時,把員工目錄從網站上移。或至少刪掉it人員的資訊。
Shoulder surfing簡單說就是偷看
鼓勵使用者當要登入時,若有人在身邊,應該要有所警示,甚至不登入。若對方仍不放棄,則應該明確得有禮貌得表示。3m的防窺片是不錯的東西,但很少人用。
推理
用現有的資訊去猜,比如說生日,喜愛的電視節目,電話等。
聽起來很蠢,但常被猜到。
最好的防禦應是教育使用者要建立一個與這些資訊無關的密碼。
在沒有某些密碼複雜性過濾器的前題下,這樣的做法是比較能防禦的策略。
所以你需要健全的安全政策和持續的安全意識與培訓,提醒使用者建立這樣的密碼
弱認證
攻擊者經常取得優勢在老舊或沒有安全性的系上或不需密碼登入的系統,未使用密碼的平板和手機也一樣。
某些舊系統像win9x,在提示密碼輸入時,可以用esc跳過,現在很難找9x,但類似的系統仍有,跳進該系統後,就能存取裡面的密碼,像是vpn或是螢幕保護密碼,相關的工具有:Proactive System Password Recovery (https://www.elcomsoft.com/pspr.html)
或是Cain & Abel (www.oxid.it/cain.html).
這些弱系統可以被信任著服務,也代表著人們認為他們安全,這也為基於網路的密碼攻擊提供了良好的發射台。
真得能防禦弱認證舊系統上的,就是在開機的時候要求輸入密碼,以排除掉弱點,至少更新到win7,如果不是10,或是比較現在的linux,或其它unix,比如mac或chromeos
現行的認證系統,比如說kerberos或ad,加密密碥或是不會透過網路交流密碼,增加了安全層。
用hightech工具破解密碼
使用程式去嘗試和猜出所有密碼組合。
在你存取電腦和密碼資料庫後,這些方法是最自動化
有些工具需要物理訪問你的電腦,
你也許好奇,實體存取的價值在哪,如果一個haker能實體存取你的系統和密碼檔案,你就只有基本資訊安全問題需要煩腦,對嗎?對。但這樣的訪問是完全可能的。
像是暑期實習生?不滿的員工或是外部的不懷好意的合約商,
一台未加密的筆電就此遺失或被偷或落入不懷好意的人手機,僅此風險就足夠。
了解如何破解密碼後,需要了解密碼如何加密。
密碼通常在它們儲存時加密,用一個加密或單向雜湊算法像是sha2和md5,然後雜湊後的密碼會重新呈現成固定長度有加密過的字串,這些字串始終表示相同的密碼。這些雜湊方法是不可逆的,因此理論上無法被解密,此外,某些密碼比如linux中的密碼,會被添加一種稱之為「鹽」的隨機值,以創造某個程度上的隨機性,此值可防止有2個使用者用了相同密碼具有相同has值。
windows裡,密碼hash後被獲得,攻擊者可以槓桿一種攻擊叫傳遞hash,而不是實際密碼發送到系統進行身份驗證,你可以參考一下這一篇
用一些密碼來跳一些hash函數,跑出來的值再比對原有的的密碼。一旦比對出來相對應的值,密碼就破解了。(比對模式)
其它破解工具嘗試的作法是用預先定義的帳密去破。這是許多目錄結構的破解工具在用。
15、16章有。
密碼被破後最終會丟失,你要會使用一樣的工具來對付壞人,這些工具可以合法使用對付惡意的攻擊者,你要找到密碼弱點在本章,作者會告訴你一些他最喜歡的方法在windows和linux密碼中
知道你的密碼在哪
WINDOWS
• Security Accounts Manager (SAM) database (c:\windows\system32\config)
• Active Directory database file stored locally or spread across domain controllers
(ntds.dit)
Windows may also store passwords in a backup of the SAM file in the c:\winnt\
repair or c:\windows\repair directory.
某些windows的程式會存在registry或是文字檔在破碟裡。比如passwd
linux會放在
Linux and other Unix variants typically store passwords in these files:
• /etc/passwd (readable by everyone)
• /etc/shadow (accessible by the system and the root account only)
• /etc/security/passwd (accessible by the system and the root account only)
• /.secure/etc/passwd (accessible by the system and the root account only)
破解密碼時,相關的使用者可能會被鎖,要小心不要搞到人。如果你有啟用入侵者鎖定,請小心。如果鎖定是啟用的,你也許會鎖到某些或全部的帳號,有點類似dos自己人。
字典攻擊是利用一個密碼資料庫去快速比對,像是字典檔,一行一個字。從10th開始到zxygote。
許多破解工具會使用分開的字典可能是自建的,或是從網路上抓的。
下面兩個是存放字典文件和雜項單詞列表的網站。
»»ftp://ftp.cerias.purdue.edu/pub/dict
»»www.outpost9.com/files/WordLists.html
也別忘了其它語言的字典。
要有時間來做這個不然會覺得字典攻擊有點只是練習,多數字典攻擊是好用在弱密碼,某些特別的字典像是常拼錯的字或是替代拼寫像是pa55w0rd或是5ecur1ty
此外有些特殊的字典會包含非英文字和專題字從宗教、政治或是像Star Trek
蠻力攻擊:只要時間夠,就一定破得了。
會拼湊所有的字元組合。
許多工具會讓你填入測試標準像是字元集、密碼長度測試、和已知字元,
蠻力測試曠日廢時。
聰明的hackers會嘗試緩慢登入或是隨機時間登入,這樣錯誤的登入無不可預見或是不明顯在登入記錄檔內。
某些惡意使用者甚至會叫it來幫忙重設帳號。這類社交工程會引起大災難,特別是組織沒有機制來驗證被鎖住的用卡是不是他們所說的那個人。
密碼過期能讓hackers攻擊或破解軟體失效嗎?可以。一旦密碼變更,破解就必須重來,如果要測完所有的組合的話。
這就是為什麼定期改密碼是好點子的原因。
但也不是一定要很經常改,縮短變動間隔雖然可以減少風險但在政治上對你的業務不利,最終會創造出與想你要的效果相反的效果。
你必須在安全、便利、可用性之間取得平衡。
許多狀態下,作者不認為改密碼是豪無理由的,每半年到一年或是發生潛在危險的時候。心裡要記得,密碼變更間隔與密碼長度有直接關係。越長的間隔,則越需要越長的密碼。
詳盡得嘗試破解密碼是沒有必要的。
多數密碼都蠻弱的。
甚至最低的密碼需求,比如說長度,都能幫助你的測試。
你也許能發現安全規則在透過其它工具測試時。
如果你能發現密碼規則,你就能更精準調整你的破解工具,
讓你可以更早更快得到結果。
彩虹攻擊對LM,NTLM,cisco pix,MD5有奇效,因為這些雜湊運算會事先運算。幾乎百分之百有效。
彩虹攻擊不能用來攻擊沒有限制長度的雜湊密碼。
目前最大長度
microsoft LM,14字元。
windows vista/win7,nt hashes,16。
彩虹表可以在網路上買。
它有長度限制,因為彩虹表的產生需要大量的時間。
如果時間足夠,一個充足數量的表就會產生出來。
然後,當然到那時,電腦和程式就會有完全不同的驗證機制和散列標準。包括了新的漏洞,
來應對。
資訊安全人員的工作保障永遠不會停止增長。
接下來是windows和linux用這兩個工具去破解密碼的過程。
這邊我就要跳了。
一個完全用126個字元(不包括null和return)的密碼組合。會有63,527,879,748,485,376個組合。
如果是256個,扣掉null和return,254個字元的組合有17,324,859,965,700,833,536,大概會有27億的時間比地球人口還多。
一個文字檔要包括這些組合的話,大概需要幾百萬TB,
即使你用95個ascii字元數字和標點符號,也需要大概數千TB.
這是用字典攻擊和蠻力攻擊需要用到的大小。
這是為什麼彩虹攻擊比較有效率的原因。
鑑於彩虹攻擊的有效性,考慮到現有的科技和平均壽命,認為任何人都能破解任何密碼是比較實際的。
這大概不會發生。
但1980年時,人們都覺得640k的記憶體和10m的硬體不是大家都需要的。
經過前面的win/linux的步驟,你可以強迫不符合規定的使用者改密碼或是建立一個密碼規則,或是使用資訊去更新你的提醒程式。
做點什麼。
小心持有你破解得到的密碼,因為現在起這個密碼不只一個人知道了。
永遠對密碼資訊保持極機密。
如果你最終要儲存這些東西,你也要確保它是極安全的,如果你是用筆電,把你的硬碟加密。
密碼保護文件的對策
使用較強的pgp或是aes加密在檔案上。
winzip裡面好像可以選。
如果你仍然擔心,考慮使用過濾系統或是資料遺失預防系統,保護未受保護的外送email附件。
其它破密碼的方式
Keystroke logging是錄密碼最利害的,能透過硬體或軟體記錄打字
若要用要小心,避免影響各種法律問題,一定要從法律顧問確認到主管。
把這種錄敲鍵盤的程式裝在公用電腦上,什麼密碼就都錄下來了。
對策
最好的對抗方法是使用反惡意軟體程式,或是端點保護的程式。
至於硬體式的,你得要用眼睛檢查。
許多舊的、獨立的應用系統像是email或是撥接網路或是帳號軟體,原地儲存密碼,使得密碼容易被hacking,在演示的時候,甚至可以看到乾淨的文字檔在本機硬體裡,你可以透過工具去找到它們。
用windows或linux內建的搜尋功德,去找你最喜歡的文字,你會有驚人的發現。
有些程式會直接把它們留在電腦裡。
弱密碼儲存體是haCKer犯人的夢想,可以的話把它關掉。我不是說你要開始用雲端的東西,那些系統也被黑了。
最可靠的方法是透過應用程式去儲存密碼。
這個練習也許不太實際,但這是你維一能保證密碼安全的方法,另一個選擇是不要儲存你的密碼。
當你升級程式時,請你的供應商告訴你程式是如何儲存密碼的。或是找第三方軟體。
壞人可能會透過無線或是實體網路插孔獲得網路權限後使用網路分析軟體去掃你的網路。
前面的練習有做過可以透過網路分析軟體掃網,這一節則show出這套軟體可以看到清楚的在網路上的密碼,只要是那些沒有加密的FTP、HTTP、TELNET等。
只要不是透過加密的通道像是VPN、SSH、或是HTTPS。都會是弱點。
cain&abel是個破壞工具也是網路分析能力。
你也可以使用一般的網路分析工具,像是omnipeek或是commview,或是免費的opensourCe像是wireshark。透過網路分析工具,你可以建立一些瀘鏡,像是搜尋pop3的密碼或是尋找PASS字眼,只要有看到就會被拉進資料裡。
網路分析軟體必須透過hub或是mirrorport,否則看不到。
檢查你的交換器看是否有這樣的預設port或是如何操作。
對策:
使用交換器,而不是hub。
如果一定要用,把你的網卡設定混雜模式它能告訴你網路分析儀正在網路上運作。
確保無監控區域沒有活著的網路。
一個實體的port就是一個洞。
別讓任何人沒有商業需求就能存取你的交換器。
交換器也不是萬能的,它有ARP病毒攻擊。
bios密碼常見問題
電腦都幾乎有可以設定BIOS 密碼的地方,非MAC的,都有,但也都有一致的問題如下:1。拿掉主機板電池就可以重設。2。有許多破解程式在網路上。3。直接拿走硬碟就好。
困境中的弱密碼。
指的是剛建立的帳號、新員工的帳號、測試的帳號、或是剛被重設的帳號。
這些剛建立的帳號通常都有一個相對弱的密碼要給他們去改。有些則是會有一些預設的密碼。
對策:1。要求重設必須在線上或是在桌前。
2。要求要立刻登入並修改密碼
3。加入強密碼要求、挑戰/回答問題、SMARTCARD、數位認證。
4。可自行處理密碼問題的機制。
通用通策
通常一個系統的密碼幾乎等於許多系統的密碼,因為許多人都是用一樣的密碼在許多系統中,也許你會想要考慮要求使用者建立不同的密碼,但缺點會是要記憶許多密碼,這將會讓他們想要寫下來,這又會導致所有的好處消失。
強密碼是很重要的。
你需要平衡安全與便利,你不能期待使用者每幾周就要改密碼還要他們記下來,但你也不能允許弱密碼或不設密碼,強密碼規則要求要夠長、夠強,時間就能拉長到1-2年改一次就好。
密碼的保存。
如果一定要選擇「使用者記得住的弱密碼/使用者一定要寫下來的強密碼」我建議讀者寫下密碼,但要安全得儲存它。
訓練使用者保存密碼在安全的地方,不是鍵盤下、或是記事本、表格檔。建議如下:1。有鎖的地方,或是保險箱。
2。硬碟有加密的系統。
3。密碼管理工具像是LASTPASS或是PWSAFE>ORG
提醒:應用程式不保證不被攻擊。要小心。
別寫在便條紙上,人們笑這件事,但它仍然在發生。這對事業並不好。
建立密碼規則:
作為一個資訊/安全的專業人員,你應該告訴使用者保護密碼的重要性。以下是小技巧
1。展示如何建立安全的密碼:建議用「密碼短語」而不是「密碼」,人們根據字面上理解而使用單字,安全性會減低。
2。向他們展示如果用弱密碼會怎樣。
3。努力建立用戶對社會工程攻擊的意識。
強制或至少鼓勵使用強密碼規則策略如下:
1。 大小寫字元、符號、數字。
2。錯誤拼寫或是用一些縮寫加入密碼
3。用標點符號去分割字元
4。每半年到一年改密碼,或是懷疑被入侵時立刻改:越頻繁就越不便,終將導致不安全。
5。每個系統不同密碼,這特別重要,使用類似字元是OK,像是WINDOWS的就用PASSWORD-WIN10,linux的就用LINUX-PASSWORD。
6。使用可變動長度的密碼
7。不要使用常用的俚語或字典中的單詞。
8。不使用完整字,3改用E,5改用s,!替代1
9。不使用同一密碼在五次變動內。
10。螢幕保護程式要設密碼。
11。不要分享你的密碼
12。避免存放密碼在不安全的地方,像是沒有鎖的表格或文字內在硬碟裡。
其它的對策。
1。啟用安全認證,幫助監時目和追蹤密碼攻擊。
2。測試你的程式確保它們不會存密碼在記憶體或硬碟裡。winhex是個可以用的工具,作者它用找過pass=,logiin等字元。
某些後門程式會存找這些東西在記憶體裡。後門程式的保護方式是安裝webroot、mcafee、bit9
3。系統修補要持續做。
4。知道你的使用者id,如果有沒在用的帳號,就刪掉。
\
鎖帳號的機制:通常系統會有超過幾次就鎖住的機制。作者建議10-15次左右。
1。使用鎖定機制來預防user dos, 通常需要2個帳號,如果你有這個機制的話。
2。如果你允許自動重設帳號的話,通常是叫入侵者鎖定,設置時間不要太短,3分鐘是不錯的選擇。
如果帳戶受到自動攻擊,錯誤登入計數器能增加安全性和最小化影響,這種計數字能強制密碼改在有次數的失敗後。
其它對策:
強驗證:挑戰/回應、smartcard、token、生物驗證、數位認證。
自動化碼重設:使用者能自行重設密碼
有設bios密碼的系統:對筆電和SERVER蠻重要。
你可以對你的系統做一系列安全措施,每一陣子就做一下低端、高端的測試,以確保系統安全。
WINDOWS:
有些密碼可以透過regedit讀到,要鎖好你的regedit:
1。只允許管理者帳號可以存取。
2。強化系統透過sans、nist、
3。保持sam資料庫的備份安全。
4。在 Windows 中為少於 15 個字符的密碼禁用 LM hash存儲。
5。使用本地或群組安全規則限制弱密碼的建立。
6關掉空session或是打開windowsfirewall。
7。啟用不允許不用帳號登入的安全規則。
linxu
1。確保使用md5密碼。
2。避免建立弱密碼。
4。檢查/etc/passwd是否有複製檔案。
留言列表