มีวิธีมาตรฐานในการพิสูจน์ความปลอดภัยของรหัสผ่านให้กับผู้ที่ไม่ใช่นักคณิตศาสตร์หรือไม่?


16

ลูกค้าของฉันมีเซิร์ฟเวอร์ที่กำลังถูกพยายามเข้าสู่ระบบที่โหดร้ายจากบ็อตเน็ต เนื่องจากความหลากหลายของเซิร์ฟเวอร์และไคลเอนต์ของลูกค้าเราจึงไม่สามารถปิดกั้นความพยายามได้อย่างง่ายดายผ่านไฟร์วอลล์การเปลี่ยนพอร์ตหรือการเปลี่ยนชื่อบัญชีเข้าสู่ระบบ

การตัดสินใจถูกปล่อยให้เปิดเพื่อโจมตี แต่หาวิธีการรักษารหัสผ่านที่ปลอดภัย ฝ่ายบริหารและที่ปรึกษาอื่นบางคนระบุว่าสิ่งที่ดีที่สุดที่ต้องทำคือติดตั้งซอฟต์แวร์การหมุนรหัสผ่านเพื่อหมุนรหัสผ่านทุกสิบนาทีและให้รหัสผ่านใหม่แก่ผู้ใช้ที่ต้องเข้าสู่ระบบ

กำลังพยายามดุร้ายกำลังเกิดขึ้นสองครั้งทุกวินาที

ฉันต้องแสดงให้เห็นว่าการใช้รหัสผ่านที่คาดเดายากด้วยความยาว 12-15 ตัวอักษรเป็นวิธีที่ง่ายและฟรี ฉันรู้วิธีพิสูจน์ด้วยคณิตศาสตร์ แต่ฉันแค่เขียนอะไรบางอย่างเช่น "มีการเปลี่ยนรหัสผ่านที่เป็นไปได้จำนวนมาก x และผู้โจมตีสามารถลองได้ครั้งละไม่เกินครั้งดังนั้นเราจึงคาดหวังให้พวกเขาไป x / โดยเฉลี่ย 2n วันก่อนที่พวกเขาจะเดารหัสผ่านของเรา " มี "หลักฐาน" ที่เป็นมาตรฐานมากกว่านี้หรือไม่?

คำตอบ:


14

การใช้ fail2ban กับ iptables เป็นวิธีที่ยอดเยี่ยม

นี่คือคณิตศาสตร์สำหรับคุณ:

ผสมตัวอักษรตัวพิมพ์ใหญ่และเล็กและสัญลักษณ์ร่วมกันความยาว 8 ตัวอักษรให้คุณ 2.9 ล้านล้าน conbinations และ 10,000 ครั้งต่อวินาทีจะใช้เวลา 9,488 ปี นั่นคือจำนวนสูงสุด - คาดว่ารหัสผ่านของคุณจะแตกใน 4000 ปี 1,000 ปีถ้าคุณไม่รู้สึกโชคดี

อย่างที่คุณเห็นคุณไม่ควรมีปัญหาใด ๆ หากคุณใช้รหัสผ่าน 15 ตัวอักษรเช่น:

dJ&3${bs2ujc"qX

fail2ban จะช่วยต่อต้าน botnet ได้อย่างไร
innaM

2
เพียงออกคุณจะต้องเป็นว่าไม่มีใครสามารถจำรหัสผ่านของตน ..
Jeff Atwood

นั่นเป็นลิงค์ที่น่าสนใจจริงๆ แต่ฉันได้สังเกตเห็น (ที่ด้านล่างของหน้า) ว่าเวลาการโจมตีของพวกเขานั้นมีพื้นฐานมาจาก Pentium 100! อาจจะล้าสมัยเล็กน้อยในตอนนี้ แต่ก็ยังอ่านได้ดี
Coops

8

นอกจาก fail2ban แล้ว

หากคุณใช้ UNIX ที่ทันสมัยคุณสามารถเปลี่ยนเวลาสลีปของรหัสผ่านไม่ถูกต้องเป็นสูงสุด 5 วินาทีและลดความเร็วในการโจมตีลง 2000% [Solaris 10 มีไว้ใน / etc / default / login, ค้นหา SLEEPTIME] ซึ่งการใช้ความคลาดเคลื่อนเดียวกันนั้นหมายความว่าคุณสามารถหมุนรหัสผ่านได้ทุก 3 ชั่วโมง 20 นาที

นอกจากนี้รหัสผ่านจะพยายามก่อนที่จะปิดใช้งานตัวเลือกที่ทำงานได้ แต่ฉันสงสัยว่ามันไม่ได้สำหรับคุณเพราะคุณมีผู้ใช้หลายคนแบ่งปันบัญชีเดียวและไม่ต้องการให้มันถูกล็อคตลอดเวลา

การขอรหัสผ่านอักขระ 12-15 ตัวจะช่วยได้ แต่หากคุณถูกโจมตีอย่างต่อเนื่อง ฉันไม่ทราบว่างบประมาณของ บริษัท คุณคืออะไร แต่คีย์การ์ด RSA สำหรับทุกคนที่ต้องการลงชื่อเข้าใช้บัญชีนั้นจะแก้ปัญหาได้เช่นกัน การรับรองความถูกต้องด้วยสองปัจจัยผลักดันความน่าจะเป็นออกไปในเวลาคำนวณควอนตัม

วิธีเดรัจฉานกำลังดำเนินต่อไปนานพอที่คุณจะโพสต์บนกระดานนี้ได้อย่างน่าประหลาดใจ โดยทั่วไปแล้วมันพูดได้ค่อนข้างต่ำและที่ดีที่สุดคือฟิลเลอร์บันทึกในขณะที่การโจมตีจริงเกิดขึ้น


6

วิธีการเกี่ยวกับการอุทธรณ์ไปยังผู้มีอำนาจ? คุณสามารถอ้างอิงแนวทางปฏิบัติด้านความปลอดภัยทางเทคนิคของ DoD (iase.disa.mil/stigs/stig) และพูดว่า "ถ้ามันดีพอสำหรับกระทรวงกลาโหมมันก็ดีสำหรับเรา"


5

สิ่งที่ควรพิจารณา: หากคุณมีรหัสผ่านที่ไม่เปลี่ยนแปลงและการโจมตีด้วยกำลังดุร้ายกำลังทดสอบจักรวาลของรหัสผ่านที่มีของคุณการโจมตีด้วยกำลังแบบเดรัจฉานจะรับประกันได้ว่าจะถูกโจมตีในที่สุดและคุณจะยังคงอ่อนแอต่อไป

โอกาส "ที่สุ่มเลือกจะตีรหัสผ่านของคุณสามารถคำนวณได้ตามที่คุณแนะนำ แต่ที่ไม่อาจบอกเรื่องราวทั้งหมด

หากคุณดูความพยายามของเดรัจฉานและดูว่ารหัสผ่านที่ยาวที่สุดที่พวกเขาพยายามคือ 10 ตัวอักษรการเลือกอะไรก็ได้ที่ 12 จะทำให้แน่ใจได้ว่าคุณจะไม่โดนโจมตี

ระวังให้ดีเมื่อพยายามใช้สถิติกับกรณีเฉพาะ พวกเขาทำนายพฤติกรรมโดยรวมด้วยตัวอย่างจำนวนมากเท่านั้น

นอกเหนือจากนั้นหากคณิตศาสตร์ไม่ได้โน้มน้าวใจใครให้ลองหาสิ่งที่มีโอกาสเกิดขึ้นแบบเดียวกัน แต่เป็นที่คุ้นเคยเช่นอาจลอตเตอรี่หรืออุบัติเหตุทางรถยนต์หรือฟ้าผ่า หากคุณสามารถพูดว่า "โอกาสของคนที่กดรหัสผ่านนี้จะใกล้เคียงกับการชนะลอตเตอรีถึงหกสัปดาห์" มันอาจทำให้พวกเขารู้สึกดีขึ้น


3
ทำไมไม่เลือกรหัสผ่านที่ผู้โจมตีพยายามแล้ว? ผมล้อเล่น.
innaM

4

สิ่งหนึ่งที่ยังไม่ได้รับการพิจารณาคือชื่อผู้ใช้ที่ botnet ใช้กับ Bruteforce ในทุกกรณีที่ฉันเห็นกองกำลังเดรัจฉานมีไว้สำหรับความหลากหลายของผู้ดูแลระบบและรูทและในกรณีที่ชื่อผู้ใช้ที่หายากหนึ่งรายถูกคัดลอกมาจากเว็บไซต์ corp

ฉันต้องการเปลี่ยนข้อ จำกัด การเข้าสู่ระบบแบบโต้ตอบเพื่อให้บัญชีรูทของคุณถูกปิดใช้งาน (ต้องการ) หรือ จำกัด เฉพาะซับเน็ตท้องถิ่นหรือช่วงที่อยู่ที่คล้ายกัน


2

สองครั้งต่อวินาทีไม่เลว เราเคยเห็นหลายพันครั้งต่อนาทีก่อนที่จะใช้fail2banซึ่งจะล็อค IP เฉพาะออกจากเครือข่ายตามระยะเวลาที่กำหนดหลังจากความพยายามที่ล้มเหลวจำนวนมาก (กำหนดค่าได้ทั้งหมด)

สิ่งนี้ได้ผลดีสำหรับเรา


2

ที่จริงแล้วคุณสามารถเลือกสแกนจากการจู่โจม ssh แบบ brute force โดยใช้ iptables ถ้ามันเหมาะกับคุณ

ทั้งสองสาย:

iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name sshscans 
iptables -A INPUT -m recent --rcheck --seconds 60 --hitcount 5 --name sshscans --rsource -j DROP 

จะบล็อกการเข้าถึงกับทุกคนที่พยายามเชื่อมต่อกับ SSH มากกว่า 5 ครั้งในช่วงเวลา 60 วินาที คุณสามารถเปลี่ยนหมายเลข "- ยอดคงเหลือ" หากคุณต้องการอนุญาตให้มีจำนวนมากกว่า 5 ต่อวินาที


2

ฉันยอมรับว่าการเปลี่ยนรหัสผ่านทุก ๆ 10 นาทีดูเหมือนจะมากเกินไป ณ จุดนี้ปัญหาจะกลายเป็นวิธีที่คุณส่งรหัสผ่านใหม่อย่างปลอดภัยและทำให้ระบบซิงค์กัน

บทความนี้มีสถิติที่น่าสนใจเกี่ยวกับความเร็วในการถอดรหัส:

http://www.lockdown.co.uk/?pg=combi

http://en.wikipedia.org/wiki/Password_cracking


2

มันน่าแปลกใจที่มีคนจำนวนมากที่ไม่เข้าใจเส้นโค้งเลขชี้กำลัง แต่ทุกคนรู้ถึงความแตกต่างระหว่าง 10, 100 และ 1,000 ดังนั้นมันอาจเป็นสถานที่ที่ดีในการเริ่มเปรียบเทียบ

ชั้นเชิงอื่นอาจเป็นการแสดงให้คนเห็นว่าต้องใช้เวลานานเท่าใดในการใช้รหัสผ่าน 6 ตัวอักษรที่โหดร้าย หากคุณมีความรู้ด้านการเขียนโปรแกรมคุณสามารถรวบรวมเครื่องมือด่วนที่ทำสิ่งนี้


2

คุณสามารถแสดงให้พวกเขาเห็นว่าตารางสายรุ้งที่มีอยู่นั้นง่ายเพียงใด

http://project-rainbowcrack.com/table.htm


มีประโยชน์ก็ต่อเมื่อพวกเขาได้รับรหัสผ่านแฮชและด้วยการเติมเกลืออย่างเหมาะสมภัยคุกคามสามารถลดลงได้
skitzot33

2

นี่อาจเป็นเรื่องแปลก แต่ฉันใช้denyhostsและมันลดแรงเดรัจฉานอย่างมากในกล่อง Linux ของฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.