ช่องโหว่ในไคลเอนต์ SSH OpenSSH และ PuTTY

ในไคลเอนต์ SSH OpenSSH และ PuTTY ระบุ จุดอ่อน (CVE-2020-14002 ใน PuTTY และ CVE-2020-14145 ใน OpenSSH) นำไปสู่การรั่วไหลของข้อมูลในอัลกอริธึมการเจรจาการเชื่อมต่อ ช่องโหว่ดังกล่าวทำให้ผู้โจมตีสามารถสกัดกั้นการรับส่งข้อมูลไคลเอนต์ (เช่น เมื่อผู้ใช้เชื่อมต่อผ่านจุดเชื่อมต่อไร้สายที่ควบคุมโดยผู้โจมตี) เพื่อตรวจจับความพยายามในการเชื่อมต่อไคลเอนต์กับโฮสต์ในขั้นต้น เมื่อไคลเอนต์ยังไม่ได้แคชคีย์โฮสต์

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

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

ปัญหาปรากฏใน OpenSSH รุ่น 5.7 ถึง 8.3 และ PuTTY 0.68 ถึง 0.73 ปัญหา ถูกกำจัด ในประเด็น ฉาบ 0.74 โดยการเพิ่มตัวเลือกในการปิดการใช้งานการสร้างไดนามิกของรายการอัลกอริธึมการประมวลผลคีย์โฮสต์ เพื่อสนับสนุนการแสดงรายการอัลกอริธึมในลำดับคงที่

โครงการ OpenSSH ไม่ได้วางแผนที่จะเปลี่ยนพฤติกรรมของไคลเอนต์ SSH เนื่องจากหากคุณไม่ได้ระบุอัลกอริทึมของคีย์ที่มีอยู่ตั้งแต่แรก จะพยายามใช้อัลกอริทึมที่ไม่สอดคล้องกับคีย์แคชและ คำเตือนเกี่ยวกับรหัสที่ไม่รู้จักจะปรากฏขึ้น เหล่านั้น. มีตัวเลือกเกิดขึ้น - ข้อมูลรั่วไหล (OpenSSH และ PuTTY) หรือคำเตือนเกี่ยวกับการเปลี่ยนคีย์ (Dropbear SSH) หากคีย์ที่บันทึกไว้ไม่สอดคล้องกับอัลกอริทึมแรกในรายการเริ่มต้น

เพื่อให้การรักษาความปลอดภัย OpenSSH ขอเสนอวิธีการอื่นสำหรับการตรวจสอบคีย์โฮสต์โดยใช้รายการ SSHFP ใน DNSSEC และใบรับรองโฮสต์ (PKI) คุณยังสามารถปิดใช้งานการเลือกอัลกอริธึมคีย์โฮสต์แบบปรับเปลี่ยนได้ผ่านตัวเลือก HostKeyAlgorithms และใช้ตัวเลือก UpdateHostKeys เพื่ออนุญาตให้ไคลเอนต์รับคีย์โฮสต์เพิ่มเติมหลังจากการรับรองความถูกต้อง

ที่มา: opennet.ru

เพิ่มความคิดเห็น