Quản trị từ xa (SSH) & Lỗ hổng Terrapin (CVE-2023-48795)

Phân tích cơ chế bảo mật của SSH, giải phẫu Fingerprint và cách lỗ hổng Terrapin thao túng số thứ tự gói tin để hạ cấp bảo mật.

Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng & Packet Analysis! Ở bài trước, chúng ta đã thấy SFTP tận dụng sự kiên cố của kiến trúc đường hầm SSH để bảo vệ việc truyền tải dữ liệu. Tuy nhiên, vỏ bọc nào cũng có điểm yếu chí mạng nếu quá trình “đàm phán” ban đầu bị thao túng. Hôm nay, chúng ta sẽ đi sâu vào kỹ thuật quản trị từ xa bằng SSH, giải phẫu cơ chế nhận diện Fingerprint và mổ xẻ lỗ hổng Terrapin (CVE-2023-48795) — đòn tấn công tinh vi đánh thẳng vào tính toàn vẹn của quá trình bắt tay.

1. SSH (Secure Shell) - “Vua” của dòng lệnh từ xa

SSH (hoạt động ở Cổng 22) ra đời để thay thế cho giao thức Telnet lỗi thời, được sử dụng chủ yếu để đăng nhập và điều khiển các máy chủ Linux từ xa với độ bảo mật cực cao.

Bản chất của SSH là tạo ra một đường hầm mã hóa để bạn truyền các lệnh văn bản (Text-based). Nó sử dụng cơ chế bảo mật dựa trên cặp khóa Public/Private Key hoặc mật khẩu đã được băm. Đứng ở góc độ một SOC Analyst soi gói tin bằng Wireshark, toàn bộ dữ liệu giao tiếp bên trong SSH chỉ hiện ra dưới dạng các khối Encrypted Packet — kẻ tấn công không thể đọc được bạn đang gõ lệnh quản trị gì.

2. Ranh giới chống MitM: Dấu vân tay (Fingerprint) và known_hosts

Vậy làm sao máy tính của bạn biết nó đang kết nối đúng đến Server thật chứ không phải một máy chủ giả mạo do hacker dựng lên (Man-in-the-Middle)? Bí quyết nằm ở cơ chế Dấu vân tay (Fingerprint).

Khi bạn thực hiện kết nối SSH lần đầu tiên, máy khách chưa biết gì về Server. Lúc này, Server sẽ gửi “chứng minh thư” của nó dưới dạng một mã Fingerprint (thường dùng thuật toán băm ED25519 từ Khóa công khai).

# Lệnh kết nối SSH vào máy chủ Linux
# Hệ thống sẽ hỏi xác nhận Fingerprint trong lần kết nối đầu tiên
ssh admin@10.10.50.20

# The authenticity of host '10.10.50.20 (10.10.50.20)' can't be established.
# ED25519 key fingerprint is SHA256:bafc947d6e921971472e82f52462129e.
# Are you sure you want to continue connecting (yes/no/[fingerprint])?

Khi bạn gõ yes, máy của bạn sẽ lưu vĩnh viễn khóa này vào file known_hosts. Kể từ những lần đăng nhập sau, nếu dấu vân tay này bị thay đổi (do hacker can thiệp và ép dùng khóa giả), SSH sẽ lập tức hiển thị cảnh báo đỏ và ngắt kết nối để bảo vệ bạn.

3. Lỗ hổng Terrapin (CVE-2023-48795) - Thao túng gói tin bắt tay

Mặc dù khóa phiên được trao đổi và lưu an toàn trong RAM ngay từ đầu, SSH vẫn tồn tại một lỗ hổng chí mạng mang tên Terrapin Attack (CVE-2023-48795). Điểm đáng sợ của Terrapin là nó không thèm bẻ khóa thuật toán mã hóa, mà đánh trực tiếp vào tính toàn vẹn của quá trình “bắt tay” (Handshake).

Trong giao thức SSH, mỗi gói tin được gửi đi đều đi kèm với một số thứ tự (Sequence Number) ngẫu nhiên và tăng dần ngầm định. Cả Client và Server đều kiểm tra gắt gao số này để đảm bảo không một gói tin nào bị rơi rớt hay bị kẻ xấu chèn thêm vào.

Cách thức tấn công của Terrapin (kỹ thuật “Cắt dán” số thứ tự) diễn ra như sau:

  1. Hacker chiếm vị trí Man-in-the-Middle (MitM) giữa máy bạn và Server.
  2. Trong giai đoạn đầu của quá trình bắt tay (khi mã hóa toàn phần chưa được thiết lập), hacker chủ động xóa bỏ một số gói tin cụ thể — ví dụ: gói tin báo hiệu việc hỗ trợ các thuật toán bảo mật cao.
  3. Để hai bên Client và Server không phát hiện ra sự thiếu hụt này, hacker điều chỉnh lại số thứ tự của các gói tin kế tiếp sao cho chúng khớp hoàn hảo với mong đợi của hai bên — như thể gói tin bị xóa chưa từng tồn tại.

4. Hậu quả: Hạ cấp bảo mật và Vô hiệu hóa Keystroke Obfuscation

Mục đích cuối cùng của việc “xóa dấu vết” khéo léo này là để thực hiện đòn Hạ cấp bảo mật (Downgrade Attack). Bằng cách xóa các gói tin mở rộng (Extension Info), hacker đánh lừa cả hai bên về khả năng bảo mật của nhau.

Hậu quả mang lại cực kỳ tàn khốc:

  • Ép dùng thuật toán yếu: SSH sẽ bị lừa và tự động lùi về sử dụng các bộ thuật toán mã hóa cũ hơn, yếu hơn, dễ bị hacker dùng kỹ thuật tấn công kênh kề để khai thác.
  • Vô hiệu hóa Keystroke Obfuscation: Đây là tính năng quan trọng của SSH dùng để làm nhiễu “nhịp gõ phím” khi truyền qua mạng. Khi Terrapin vô hiệu hóa thành công tính năng này, hacker đứng giữa có thể dễ dàng đoán được độ dài mật khẩu và thực hiện tấn công Sniffing.

Cảnh báo SOC: Lỗ hổng Terrapin cho thấy tầm quan trọng của việc cập nhật phần mềm. Để chống lại đòn tấn công này, quản trị viên mạng phải đảm bảo cả SSH Client (như PuTTY, OpenSSH) và SSH Server đều được cập nhật lên phiên bản mới nhất có hỗ trợ cờ “Strict KEX” (Bắt tay nghiêm ngặt) nhằm chặn đứng hành vi thao túng gói tin.


Khép lại Bài 10, chúng ta đã hoàn tất việc mổ xẻ những giao thức quan trọng nhất ở Tầng Ứng dụng (Lớp 7) như DNS, DHCP, HTTP, FTP và SSH. Bức tranh về cách dữ liệu truyền tải trên mạng đã hoàn thiện. Giờ là lúc chúng ta chuyển sang thế chủ động: Làm thế nào để xây dựng các công sự bảo vệ mạng lưới này? Trong Bài 11 tiếp theo, chúng ta sẽ bắt đầu Phần 4 của Series với chủ đề Vành đai Tường lửa (Firewall) & Cơ chế NAT. Hãy cùng chờ đón nhé!