Terrapin - lỗ hổng trong giao thức SSH cho phép bạn giảm mức độ bảo mật kết nối

Một nhóm các nhà nghiên cứu từ Đại học Ruhr ở Bochum (Đức) đã trình bày kỹ thuật tấn công MITM mới trên SSH - Terrapin, khai thác lỗ hổng (CVE-2023-48795) trong giao thức. Kẻ tấn công có khả năng tổ chức một cuộc tấn công MITM có khả năng, trong quá trình đàm phán kết nối, chặn việc gửi tin nhắn bằng cách định cấu hình các tiện ích mở rộng giao thức để giảm mức độ bảo mật kết nối. Nguyên mẫu của bộ công cụ tấn công đã được xuất bản trên GitHub.

Ví dụ: trong bối cảnh OpenSSH, lỗ hổng bảo mật cho phép bạn khôi phục kết nối để sử dụng thuật toán xác thực kém an toàn hơn và vô hiệu hóa tính năng bảo vệ chống lại các cuộc tấn công kênh bên tạo lại đầu vào bằng cách phân tích độ trễ giữa các lần nhấn phím trên bàn phím. Trong thư viện Python AsyncSSH, kết hợp với lỗ hổng (CVE-2023-46446) trong quá trình triển khai máy trạng thái nội bộ, cuộc tấn công Terrapin cho phép chúng ta tự đưa mình vào phiên SSH.

Lỗ hổng này ảnh hưởng đến tất cả các triển khai SSH hỗ trợ mật mã chế độ ChaCha20-Poly1305 hoặc CBC kết hợp với chế độ ETM (Encrypt-then-MAC). Ví dụ: các khả năng tương tự đã có trong OpenSSH hơn 10 năm. Lỗ hổng này đã được khắc phục trong bản phát hành OpenSSH 9.6 ngày hôm nay, cũng như các bản cập nhật lên PuTTY 0.80, libssh 0.10.6/0.9.8 và AsyncSSH 2.14.2. Trong Dropbear SSH, bản sửa lỗi đã được thêm vào mã nhưng bản phát hành mới vẫn chưa được tạo.

Lỗ hổng này xảy ra do kẻ tấn công kiểm soát lưu lượng kết nối (ví dụ: chủ sở hữu của một điểm không dây độc hại) có thể điều chỉnh số thứ tự gói trong quá trình đàm phán kết nối và xóa âm thầm một số lượng tin nhắn dịch vụ SSH tùy ý. được gửi bởi máy khách hoặc máy chủ. Ngoài ra, kẻ tấn công có thể xóa các tin nhắn SSH_MSG_EXT_INFO được sử dụng để định cấu hình các tiện ích mở rộng giao thức được sử dụng. Để ngăn bên kia phát hiện mất gói do khoảng cách về số thứ tự, kẻ tấn công bắt đầu gửi một gói giả có cùng số thứ tự với gói từ xa để thay đổi số thứ tự. Gói giả chứa một thông báo có cờ SSH_MSG_IGNORE, cờ này bị bỏ qua trong quá trình xử lý.

Terrapin - lỗ hổng trong giao thức SSH cho phép bạn giảm mức độ bảo mật kết nối

Cuộc tấn công không thể được thực hiện bằng cách sử dụng mật mã luồng và CTR vì vi phạm tính toàn vẹn sẽ được phát hiện ở cấp ứng dụng. Trong thực tế, chỉ có mật mã ChaCha20-Poly1305 mới dễ bị tấn công ([email được bảo vệ]), trong đó trạng thái chỉ được theo dõi bằng số thứ tự thông báo và sự kết hợp từ chế độ Mã hóa-Sau đó-MAC (*[email được bảo vệ]) và mật mã CBC.

Trong OpenSSH 9.6 và các triển khai khác, phần mở rộng của giao thức “strict KEX” được triển khai để chặn cuộc tấn công, giao thức này được kích hoạt tự động nếu có hỗ trợ ở phía máy chủ và máy khách. Tiện ích mở rộng chấm dứt kết nối khi nhận được bất kỳ tin nhắn bất thường hoặc không cần thiết nào (ví dụ: với cờ SSH_MSG_IGNORE hoặc SSH2_MSG_DEBUG) nhận được trong quá trình đàm phán kết nối và cũng đặt lại bộ đếm MAC (Mã xác thực tin nhắn) sau khi hoàn thành mỗi lần trao đổi khóa.

Nguồn: opennet.ru

Thêm một lời nhận xét