3 điểm bởi GN⁺ 2024-05-07 | 1 bình luận | Chia sẻ qua WhatsApp
  • VPN là công nghệ tạo một đường hầm cho lưu lượng mạng giữa thiết bị của người dùng và máy chủ trên một mạng khác. Nhờ đó, mạng ảo được tạo ra hoạt động giống như mạng vật lý mà không bị ràng buộc bởi vị trí địa lý.
  • Ứng dụng khách VPN tạo một giao diện mạng ảo, mã hóa/giải mã lưu lượng rồi gửi nó qua giao diện mạng vật lý.
  • VPN được thiết kế để dễ dùng nhất có thể cho người dùng, và thường không yêu cầu nhiều thao tác ngoài việc đăng nhập và nhấn nút.
  • Vì VPN truyền lưu lượng mạng ở tầng thấp qua Internet, nó thực tế làm tăng bề mặt tấn công của máy chủ. VPN đóng gói lưu lượng LAN qua Internet để tạo ra một mạng cục bộ (LAN) trên Internet.
  • VPN sử dụng các biện pháp kiểm soát bù trừ như mã hóa gói tin để giảm thiểu bề mặt tấn công của LAN mở rộng. Tuy nhiên, VPN không bảo vệ người dùng khỏi các cuộc tấn công mạng cục bộ nhằm vào LAN vật lý.

DHCP và DHCP Option 121

  • DHCP là giao thức cấp phát địa chỉ IP động và cung cấp các tùy chọn cho phép điều chỉnh cấu hình thiết bị từ xa.
  • DHCP Option 121 là tùy chọn cho phép quản trị viên thêm các tuyến tĩnh vào bảng định tuyến của máy khách.
  • Một đặc điểm thú vị của DHCP Option 121 là máy chủ DHCP không thể chỉ định thiết bị giao diện mạng nào sẽ cài đặt tuyến. Thay vào đó, khi áp dụng quy tắc định tuyến cho tùy chọn này, máy khách DHCP sẽ ngầm chọn giao diện mạng dùng để liên lạc với máy chủ DHCP.

Điều kiện và quy trình tấn công Decloaking

  • Máy chủ mục tiêu phải chấp nhận thuê bao DHCP từ máy chủ DHCP do kẻ tấn công kiểm soát
  • Ứng dụng khách DHCP trên máy chủ mục tiêu phải triển khai DHCP Option 121
  • Kẻ tấn công chạy một máy chủ DHCP trên cùng mạng với người dùng VPN và đặt chính mình làm gateway trong cấu hình DHCP.
  • Sử dụng DHCP Option 121 để thiết lập các tuyến trong bảng định tuyến của người dùng VPN.
  • Nhờ thiết lập tuyến này, lưu lượng mạng sẽ được gửi qua giao diện mạng dùng để liên lạc với máy chủ DHCP, thay vì giao diện ảo của VPN.
  • Lưu lượng được truyền ra ngoài đường hầm mã hóa của VPN, nhưng kênh điều khiển VPN vẫn được giữ nguyên nên VPN vẫn được coi là đang kết nối.

Đối tượng bị ảnh hưởng

  • Hầu hết các hệ điều hành như Windows, Linux, iOS, MacOS đều bị ảnh hưởng nếu triển khai ứng dụng khách DHCP theo đặc tả RFC và hỗ trợ các tuyến của DHCP Option 121. (Android không bị ảnh hưởng vì không hỗ trợ DHCP Option 121)
  • Các VPN chỉ dựa vào quy tắc định tuyến để bảo vệ lưu lượng của máy chủ là dễ bị tấn công.
  • Nếu tự lưu trữ máy chủ VPN, bạn có thể vẫn dễ bị ảnh hưởng nếu không tăng cứng cấu hình ứng dụng khách VPN.
  • Vấn đề này ảnh hưởng bất kể giao thức VPN nền tảng là gì (WireGuard, OpenVPN, IPsec, v.v.) vì nó tái cấu hình network stack của hệ điều hành mà VPN phụ thuộc vào.

Biện pháp giảm thiểu và giới hạn

  • Sử dụng network namespace của Linux có thể giải quyết triệt để vấn đề này, nhưng nhìn chung chưa được triển khai tốt.
  • Một số nhà cung cấp VPN được ghi nhận là chặn lưu lượng vào/ra trên giao diện vật lý bằng quy tắc tường lửa, nhưng đây chỉ là biện pháp giảm thiểu một phần.
  • Bỏ qua DHCP Option 121 cũng là một cách giảm thiểu khả thi, nhưng có thể làm mất kết nối mạng.
  • Dùng hot spot hoặc VM có thể hữu ích vì khiến kẻ tấn công khó giành được quyền truy cập mạng cục bộ hơn.
  • Nếu cần tính bí mật lưu lượng ở mức tuyệt đối, phòng thủ tốt nhất là tránh sử dụng các mạng không đáng tin cậy.

Ý kiến của GN⁺

  • VPN không được thiết kế để giảm thiểu các cuộc tấn công LAN trên mạng vật lý, nên các tuyên bố tiếp thị của nhà cung cấp VPN rằng VPN bảo vệ khách hàng trên mạng không đáng tin cậy có thể gây rủi ro. Các nhà cung cấp VPN nên công khai tài liệu về biện pháp giảm thiểu hoặc bản sửa lỗi cho TunnelVision và thông báo cho người dùng.
  • VPN doanh nghiệp thường được dùng ở quán cà phê, khách sạn, sân bay, nên quản trị viên mạng cần thông báo cho nhân viên về rủi ro khi làm việc ở những nơi này và khuyến cáo tránh nếu có thể. Ngoài ra, nên triển khai các giao thức mã hóa như HTTPS cho tài nguyên nội bộ để ngăn rò rỉ dữ liệu do người dùng VPN kết nối qua mạng không đáng tin cậy.
  • Vì phần lớn lưu lượng Internet hiện được bảo vệ bằng HTTPS, nên ngay cả khi VPN bị vô hiệu hóa thì phần lớn dữ liệu người dùng cũng sẽ không bị lộ cho kẻ tấn công trên mạng cục bộ. Tuy nhiên, với lưu lượng nhạy cảm thì vẫn cần cảnh báo.
  • Các đơn vị bảo trì hệ điều hành, ngoại trừ Linux, nên xem xét liệu có thể bổ sung hoặc cải thiện các tính năng liên quan đến network namespace hay không.
  • Dù không vi phạm các thuộc tính bảo mật của chính công nghệ VPN, kỹ thuật này vẫn có thể được xem là một lỗ hổng vì nó mâu thuẫn với các đảm bảo mà nhà cung cấp VPN đưa ra. Nhóm nghiên cứu ước tính kỹ thuật này có thể đã khả thi từ năm 2002, và đã quyết định công bố kết quả nghiên cứu để thông tin rộng rãi tới các bên bị ảnh hưởng.

1 bình luận

 
GN⁺ 2024-05-07
Ý kiến trên Hacker News

Tóm tắt:

  • Cuộc tấn công này tương tự với cuộc tấn công "Poison Tap" của Samy Kamkar năm 2016. Bằng cách sử dụng bộ điều hợp mạng USB/Thunderbolt để quảng bá hai tuyến cụ thể hơn, kẻ tấn công có thể chặn toàn bộ lưu lượng với mức ưu tiên cao hơn các giao diện khác của hệ thống.
  • Dù tiêu đề cho rằng nó ảnh hưởng đến mọi ứng dụng khách VPN, nhiều ứng dụng khách thực tế thiết lập quy tắc tường lửa để chặn lưu lượng với giao diện vật lý. Sẽ hữu ích hơn nếu tài liệu hóa tỷ lệ các giải pháp VPN cá nhân/thương mại và doanh nghiệp lớn có tính năng này được bật mặc định.
  • Với tùy chọn DHCP 121, máy chủ DHCP có thể thiết lập quy tắc định tuyến cho các dải CIDR cụ thể. Các quy tắc này được ưu tiên hơn quy tắc mặc định 0.0.0.0/0 nhờ tiền tố dài hơn.
  • "Cuộc tấn công" này là cách tận dụng khéo léo tùy chọn DHCP 121. Để cô lập đúng cách, cần dùng định tuyến dựa trên chính sách phù hợp, chẳng hạn Linux network namespaces, FreeBSD vnet, hoặc OpenBSD rdomains.
  • Trên Linux, có thể giảm thiểu vấn đề này bằng cách đặt giao diện VPN vào VRF. systemd-networkd hỗ trợ việc này theo mặc định.
  • Mô hình đe dọa trong đó kẻ tấn công có thể trở thành máy chủ DHCP của mạng LAN là khó xảy ra, nhưng không phải là không thể.
  • Kiến trúc dựa trên máy ảo cũng có thể giải quyết vấn đề này. QubesOS cho phép cấu hình một thiết lập tương tự rất dễ dàng.
  • Một lựa chọn thay thế thú vị cho network namespaces là bỏ qua hoàn toàn mạng kernel và sử dụng ngăn xếp mạng không gian người dùng.
  • Điều đáng lo hơn là sử dụng dịch vụ VPN chỉ hỗ trợ IPv4 trong khi vẫn bật IPv6 trên hệ thống. Điều đó có thể gây ra vấn đề nghiêm trọng.