Đánh giá kiểm toán bảo mật Mullvad VPN
(x41-dsec.de)- X41 đã kiểm tra ứng dụng Mullvad VPN bằng kiểm thử xâm nhập hộp trắng có bao gồm quyền truy cập mã nguồn, đồng thời xây dựng một mô hình đe doạ ở mức nhẹ
- Phạm vi kiểm toán gồm mã của Android 2024.8-beta1, iOS 2024.8 và Desktop 2024.6, với giả định ứng dụng hoạt động trên 5 nền tảng: Linux, Windows, macOS, Android, iOS
- Quá trình kiểm thử phát hiện 6 lỗ hổng, nhưng ứng dụng Mullvad VPN nhìn chung vẫn cho thấy mức độ bảo mật cao theo mô hình đe doạ của báo cáo
- Vấn đề nghiêm trọng nhất là hỏng bộ nhớ do điều kiện tranh chấp trong signal handler và vi phạm tính an toàn theo thời gian, nhưng mức độ nghiêm trọng giảm xuống vì kẻ tấn công trước đó phải kích hoạt signal bằng một lỗi khác
- Một số lỗ hổng có thể dẫn tới rò rỉ thông tin nhận dạng người dùng cho kẻ tấn công trên mạng lân cận hoặc tạo điều kiện cho tấn công side-channel trong những điều kiện nhất định, và Mullvad VPN AB đã nhanh chóng áp dụng các bản sửa lỗi
Phạm vi kiểm toán và đặc điểm đối tượng
- X41 đã thực hiện kiểm thử xâm nhập hộp trắng đối với ứng dụng VPN của Mullvad
- Có quyền truy cập mã nguồn và cũng bao gồm việc xây dựng một mô hình đe doạ ở mức nhẹ
- Mã nguồn được kiểm toán là các phiên bản sau
- Ứng dụng mục tiêu có quy mô lớn và chạy trên 5 nền tảng, khiến việc kiểm toán trở nên khó hơn
- Các nền tảng được hỗ trợ là Linux, Windows, macOS, Android và iOS
- Mullvad VPN đã thực hiện kiểm toán định kỳ, và việc các lỗ hổng mới được tìm thấy trong mã hiện có cho thấy sản phẩm phức tạp đến mức cần được rà soát bảo mật liên tục
- Ở các mục tiêu đã trưởng thành, các phát hiện thường có xu hướng dịch chuyển sang những khu vực nằm ngoài phạm vi kiểm soát trực tiếp hoặc trọng tâm của đội phát triển ứng dụng
- Đặc tính hoạt động của hệ điều hành
- Sự tương tác giữa các lớp mạng và giao thức khác nhau
Kết quả phát hiện và đánh giá bảo mật
- Trong quá trình kiểm thử, X41 đã phát hiện tổng cộng 6 lỗ hổng
- Ứng dụng Mullvad VPN cho thấy mức độ bảo mật cao theo mô hình đe doạ của báo cáo
- Các mẫu thiết kế và lập trình an toàn
- Kiểm toán và kiểm thử xâm nhập định kỳ
- Môi trường thực thi được tăng cường bảo vệ
- Lỗ hổng nghiêm trọng nhất là hỏng bộ nhớ do điều kiện tranh chấp trong mã signal handler và vi phạm tính an toàn theo thời gian
- Một khi mã signal handler bị kích hoạt, khả năng bị khai thác dường như không thấp
- Tuy nhiên, mức độ nghiêm trọng tổng thể giảm xuống vì kẻ tấn công trước tiên phải kích hoạt signal bằng một lỗi khác
- Các lỗ hổng khác có thể cho phép kẻ tấn công trên mạng lân cận làm rò rỉ thông tin định danh người dùng, hoặc thực hiện tấn công side-channel khiến lộ ra trang web mà client đang truy cập trong một số điều kiện nhất định
- Phần lớn các tấn công side-channel đã được giảm thiểu
- Ngoại lệ là các cuộc tấn công ở cấp giao thức phát sinh từ sự kết hợp của nhiều công nghệ như NAT và các biến thể giao thức HTTP hiện đại, nằm ngoài phạm vi kiểm soát của Mullvad VPN AB
- Người dùng cần mức độ bảo mật và quyền riêng tư cao hơn có thể cân nhắc các kỹ thuật làm rối và dịch vụ proxy bên trong VPN được bảo vệ
- Mullvad VPN AB đã nhanh chóng sửa các vấn đề được phát hiện, và các bản sửa lỗi cũng đã được kiểm toán là hoạt động bình thường
1 bình luận
Ý kiến trên Hacker News
Các vấn đề được phát hiện gồm thiếu stack thay thế cho trình xử lý tín hiệu, sử dụng hàm không an toàn bất đồng bộ, rò rỉ địa chỉ IP ảo của thiết bị tunnel, khử ẩn danh qua NAT, khử ẩn danh qua MTU, sideloading trong quá trình cài đặt, v.v.
Nhìn chung nội dung khá trực quan, và họ dựa nhiều vào DAITA (phòng vệ trước phân tích lưu lượng bằng AI); tôi vẫn chưa hiểu hoàn toàn nhưng có vẻ đáng đọc thêm: https://mullvad.net/en/vpn/daita
Ngay cả OpenSSH cũng từng có vấn đề liên quan https://blog.qualys.com/vulnerabilities-threat-research/2024..., và nếu không có cơ chế function coloring rõ ràng thì có vẻ khó tạo được abstraction tốt trong bất kỳ ngôn ngữ nào
Có lẽ một ngôn ngữ thuần hàm như Haskell thì có thể
Việc dùng hàm không an toàn bất đồng bộ là vấn đề phổ biến nhưng khó khai thác trong thực tế; nếu là lập trình viên từng xử lý signal handler thì hẳn ai cũng từng mắc lỗi kiểu này ít nhất một lần vì vấn đề timing cực khó tái hiện
Rò rỉ địa chỉ ARP không hẳn là vấn đề của riêng Mullvad mà chỉ có thể bị khai thác trong mạng cục bộ; các cuộc tấn công khử ẩn danh áp dụng cho mọi VPN, và có thể ẩn danh hóa hơn nữa nhưng sẽ tốn chi phí
Sideloading có lẽ là vấn đề tệ nhất, nhưng tự nó thì không thể bị khai thác
Tuy vậy, việc họ tìm được một lỗ hổng làm hỏng heap trong chương trình Rust có thể kích hoạt thực tế là một phát hiện tốt
Nhưng việc gán mức nghiêm trọng cao cho lỗ hổng tiếp theo thì có vẻ chỉ mang tính lý thuyết, không có proof of concept, cũng không phải lỗi hỏng bộ nhớ, nên trông giống thổi phồng mức xếp hạng
Phần mô hình đe dọa riêng là thứ nhiều công ty audit bỏ qua trong báo cáo
Tôi tin chắc các auditor trước đây như Cure53, Assured, Atredis cũng đã xây dựng mô hình đe dọa phù hợp từ trước với Mullvad, nhưng nếu không viết rõ cho độc giả thì kết quả có thể bị hiểu sai
Khi đối tượng được audit có tiếng nói trong cách audit hay cách tấn công, rất khó để kết quả không bị thiên lệch có lợi cho đối tượng đó
Tôi nghĩ cách ít thiên lệch nhất là đối tượng hoàn toàn không biết auditor sẽ làm gì
Nếu Mullvad có tham gia vào phương pháp hoặc giới hạn phạm vi kiểm thử, thì kết quả dù sao cũng chẳng còn giá trị
Việc ngừng hỗ trợ OpenVPN cũng không ổn với tôi, vì tôi có vài use case cần nó nên dự định chuyển sang nơi khác
Tiếc thật, vì họ đã làm tốt trong thời gian dài
Việc bỏ port forwarding giúp giảm đáng kể tình trạng lạm dụng phải xử lý, và chỉ ảnh hưởng đến một nhóm rất nhỏ người dùng cực kỳ nerd
Tôi đã dùng Mullvad để torrent một thời gian, và với torrent ít seed thì đôi khi mất khá lâu mới bắt đầu, nhưng cuối cùng vẫn tải được
Với các media ngách hơn, đôi khi phải tính trước vài ngày
Thành thật mà nói, có lẽ tôi sẽ không cân nhắc nhà cung cấp không hỗ trợ OpenVPN nào cả, vậy thì còn ý nghĩa gì nữa
Vì lý do nào đó, trên router của tôi nó hoạt động tốt và ổn định hơn nhiều dưới dạng VPN site-to-site
man wg)Hoạt động tốt, và để ẩn danh cũng có thể mua theo tháng bằng Bitcoin
Tôi có hiểu sai gì không?
Tôi không cố che giấu việc thỉnh thoảng dùng VPN; ISP thấy tunnel, các website tôi truy cập thấy IP VPN, còn netflow lưu thời gian, thời lượng, lượng truyền dữ liệu, v.v.
Việc dùng VPN tự nó không phải là bí mật
Tôi nghĩ phần lớn người dùng VPN là những người bình thường như tôi, muốn có quyền riêng tư trước các công ty quảng cáo trực tuyến và công ty thu thập dữ liệu
Không mong muốn hay kỳ vọng quyền riêng tư từ nhà cung cấp VPN
Dù sao thì tôi cũng kết nối tới dịch vụ VPN của họ từ IP ISP gia đình của một tài khoản đứng tên tôi
Dù bạn che giấu việc thanh toán VPN thế nào, họ cũng sẽ biết bạn là ai
Dân kỹ thuật, đặc biệt là người làm bảo mật, thường đi quá xa trong những vấn đề kiểu này đến mức phi thực tế, và có cảm giác xa rời mô hình đe dọa cũng như các trường hợp sử dụng trong đời thực
Bài viết ngắn “This World of Ours” của James Mickens bàn rất tốt về chủ đề này: https://www.usenix.org/system/files/1401_08-12_mickens.pdf
Trong số các ứng dụng VPN đã thử, nó ổn định nhất, và mỗi tài khoản dùng được tối đa 5 thiết bị
Nếu đúng như họ nói là không lưu log, thì dù họ biết gì về bạn, IP mà cảnh sát hỏi đến có thể đã được bất kỳ ai trong số hàng nghìn khách hàng dùng, nên dù muốn họ cũng không thể giao nộp cho nhà chức trách
Tôi có đang bỏ sót điều gì không?
Có vẻ có khá nhiều lời nhảm nhí, và cũng có bầu không khí rằng VPN “ngầu” phải đến từ các nước Scandinavia, nhưng thực tế phần lớn không phải vậy
Nói tốt nhất thì nó chỉ liên quan bên lề tới bài viết, còn cách diễn đạt thì mơ hồ khiến nghe như Mullvad đang làm điều gì xấu
Mullvad nói rõ họ đặt tại Thụy Điển, ý là không phải vậy sao? Họ cũng công khai vị trí máy chủ và chủ sở hữu
Họ cũng cung cấp khá nhiều thông tin về lý do nên hoặc không nên dùng VPN, không ghi dữ liệu khách hàng, đã chuyển sang hạ tầng chỉ dùng RAM, và giá rẻ với một mức thuê bao cố định duy nhất
Tôi tò mò chính xác điều gì là lời nhảm nhí, và bạn muốn họ làm khác đi điều gì
Tôi không hiểu vì sao phải như thế, cũng không hiểu vì sao điều đó không đúng
Công bằng mà nói, trong số các VPN định hướng quyền riêng tư mạnh mà tôi biết, cái không thuộc Scandinavia chỉ khoảng ProtonVPN
Vài năm trước khi dùng Nord, tôi phát hiện một lỗi im lặng: nó hiển thị là đã kết nối nhưng thực ra không kết nối VPN; khi báo cáo thì họ trả lời đó là vấn đề đã biết nên đừng lo
Theo tôi biết, họ không đưa ra thông báo bảo mật nào
Việc họ không đổ hàng đống tiền quảng cáo lên YouTube hay các trang affiliate ngược lại khiến tôi yên tâm
Tôi cũng thích việc họ không nằm trong một khu vực pháp lý kiểu nơi trú ẩn cho các công ty đáng ngờ
Tóm lại, tôi thích vì có vẻ ít lời nhảm nhí và khá ổn
Tôi không nghĩ mình có thể tin PIA hay những công ty kiểu đó
Tôi khá chắc rằng việc chặn mạnh tay không phải vì lạm dụng, mà vì VPN thực sự trở thành vấn đề đối với theo dõi và khai thác dữ liệu
Thường thì một máy chủ thoát dùng được với một trong hai trang nhưng không dùng được với cả hai, nên tôi nghi rằng có một mức độ phối hợp nào đó trong việc chặn IP giữa YouTube và Reddit nhằm làm việc dùng VPN trở nên phiền phức và khiến người dùng nản
Cản trở việc qua lại giữa các mạng xã hội của người dùng VPN có vẻ là một chiến lược hiệu quả để tác động đến hành vi, và cả hai về thực chất là độc quyền tự nhiên nên gần như không có rủi ro mất người dùng khi làm vậy
Nó giống như cách banner cookie bị lạm dụng để khiến cảm xúc của mọi người về quy định quyền riêng tư thay đổi theo hướng có lợi cho khai thác dữ liệu
Thậm chí nhiều dân kỹ thuật cũng tin rằng các banner cookie phiền phức là lỗi của EU, nhưng trên thực tế nhiều cách làm là tuân thủ ác ý, không cần thiết, hoặc công khai bất hợp pháp
Dù sao thì nó thật sự khó chịu, và có cảm giác như một khía cạnh của quá trình enshittification chung trên web cùng sự bất mãn đang tăng nhanh
Gần như bị đối xử như người bị né tránh, và nhiều CAPTCHA thực chất chỉ là chặn nhưng có vẻ vẫn kỳ vọng được huấn luyện miễn phí