Terrapin ซึ่งเป็นการโจมตี MITM บน SSH ที่จัดการหมายเลขลำดับในระหว่างกระบวนการเจรจาการเชื่อมต่อ

ความอ่อนแอ

หากถูกโจมตี ข้อบกพร่องเหล่านี้อาจทำให้ผู้โจมตีเข้าถึงข้อมูลที่ละเอียดอ่อนโดยไม่ได้รับอนุญาต หรือก่อให้เกิดปัญหาโดยทั่วไป

เมื่อเร็ว ๆ นี้ กลุ่มนักวิทยาศาสตร์ จากมหาวิทยาลัยรูห์รแห่งโบชุม ประเทศเยอรมนี นำเสนอรายละเอียดของเทคนิคการโจมตี MITM ใหม่บน SSHซึ่งพวกเขามี รับบัพติศมาเป็น "Terrapin"» และสิ่งที่พวกเขากล่าวถึงอาจทำให้ผู้โจมตีลดระดับความปลอดภัยของการเชื่อมต่อ SSH เมื่อใช้การเจรจาขยาย SSH ผลกระทบในทางปฏิบัติจะขึ้นอยู่กับส่วนขยายที่รองรับเป็นส่วนใหญ่ แต่ "เกือบทั้งหมด" มีช่องโหว่

Terrapin ใช้ประโยชน์จากช่องโหว่ (จัดทำรายการไว้แล้วภายใต้ CVE-2023-48795) ซึ่ง ผู้โจมตีสามารถใช้ประโยชน์จากการจัดการการโจมตี MITM เมื่อใช้ OpenSSHช่องโหว่นี้ทำให้คุณสามารถคืนค่าการเชื่อมต่อเพื่อใช้อัลกอริธึมการรับรองความถูกต้องที่มีความปลอดภัยน้อยกว่าหรือปิดใช้งานการป้องกันการโจมตีช่องทางด้านข้างที่สร้างอินพุตขึ้นมาใหม่โดยการวิเคราะห์ความล่าช้าระหว่างการกดแป้นพิมพ์บนแป้นพิมพ์

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

ส่วนเรื่องช่องโหว่ก็บอกไว้แบบนี้ ส่งผลต่อการใช้งาน SSH ทั้งหมดที่รองรับการเข้ารหัสโหมด ChaCha20-Poly1305 หรือ CBC ร่วมกับโหมด ETM (เข้ารหัสแล้ว-MAC) ตัวอย่างเช่น ความสามารถที่คล้ายกันมีอยู่ใน OpenSSH มานานกว่า 10 ปี

“โดยทั่วไป สิ่งนี้จะส่งผลต่อความปลอดภัยของการตรวจสอบสิทธิ์ไคลเอนต์เมื่อใช้คีย์สาธารณะ RSA เมื่อใช้ OpenSSH 9.5 ยังสามารถใช้เพื่อปิดใช้มาตรการตอบโต้บางอย่างในการโจมตีจังหวะการกดแป้นพิมพ์ได้” นักวิจัยเขียน

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

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

ในการโจมตี Terrapin ในทางปฏิบัติ ผู้โจมตีต้องการความสามารถแบบแทรกกลางที่เลเยอร์เครือข่ายเพื่อสกัดกั้นและแก้ไขการรับส่งข้อมูล นอกจากนี้ จะต้องตกลงวิธีการเข้ารหัสเฉพาะเพื่อให้แน่ใจว่าการส่งข้อมูลมีความปลอดภัยระหว่างการเชื่อมต่อ

การโจมตีไม่สามารถทำได้โดยใช้รหัสสตรีมและ CTR เนื่องจากการละเมิดความสมบูรณ์จะถูกตรวจพบในระดับแอปพลิเคชัน ในทางปฏิบัติ ใช้การเข้ารหัส ChaCha20-Poly1305 เท่านั้น ซึ่งสถานะจะถูกติดตามด้วยหมายเลขลำดับข้อความเท่านั้น และการรวมกันของโหมด Encrypt-Then-MAC (*-etm@openssh.com) ) และยันต์ CBC อาจถูกโจมตี

เป็นที่กล่าวขวัญกันว่า ถูกตรวจพบในไลบรารี Python AsyncSSH ด้วย เมื่อรวมกับช่องโหว่ (CVE-2023-46446) ในการใช้งานเครื่องสถานะภายใน การโจมตี Terrapin ช่วยให้เราสามารถแฮ็กเข้าสู่เซสชัน SSH ได้

ช่องโหว่ แก้ไขใน OpenSSH เวอร์ชัน 9.6 และใน OpenSSH เวอร์ชันนี้และการใช้งานอื่นๆ มีการใช้ส่วนขยายของโปรโตคอล “KEX ที่เข้มงวด” เพื่อป้องกันการโจมตีซึ่งจะเปิดใช้งานโดยอัตโนมัติหากมีการรองรับบนเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ ส่วนขยายจะยุติการเชื่อมต่อเมื่อได้รับข้อความที่ผิดปกติหรือไม่จำเป็น (เช่น ด้วยแฟล็ก SSH_MSG_IGNORE หรือ SSH2_MSG_DEBUG) ที่ได้รับในระหว่างขั้นตอนการเจรจาการเชื่อมต่อ และยังรีเซ็ตตัวนับ MAC (รหัสตรวจสอบสิทธิ์ข้อความ) หลังจากเสร็จสิ้นการแลกเปลี่ยนคีย์แต่ละครั้ง

สุดท้ายนี้ หากสนใจอยากทราบข้อมูลเพิ่มเติม สามารถเข้าไปดูรายละเอียดได้ที่ ลิงค์ต่อไปนี้