- Đã phát hiện một lỗ hổng bảo mật nghiêm trọng khi StarDict trong môi trường X11 gửi phần văn bản người dùng chọn tới máy chủ bên ngoài qua HTTP không mã hóa
- Sự cố này xảy ra vì các plugin YouDao và dict.cn được bật mặc định trong cấu hình mặc định của Debian
- Điều này có nghĩa là mỗi khi người dùng chọn bất kỳ đoạn văn bản nào, nó sẽ tự động được gửi lên máy chủ, kéo theo nguy cơ rò rỉ thông tin nhạy cảm
- Người quản lý gói đã xem xét đề xuất vô hiệu hóa tính năng và tách plugin, nhưng việc áp dụng giải pháp tận gốc vẫn còn thiếu sót
- Vấn đề này đã nhiều lần được nêu ra trong quá khứ, một lần nữa cho thấy sự thiếu vắng phản ứng triệt để và tầm quan trọng của nhận thức bảo mật
Tổng quan về cách StarDict hoạt động và vấn đề bảo mật
- StarDict là một chương trình từ điển đa nền tảng theo giấy phép GPLv3, hỗ trợ nhiều ngôn ngữ và có hệ sinh thái plugin phong phú
- Trong cấu hình mặc định của Debian, khi chạy StarDict, văn bản do người dùng chọn sẽ được gửi tới hai máy chủ từ xa youdao.com và dict.cn qua HTTP không mã hóa
- Vấn đề này cũng đã được báo cáo trên danh sách thư oss-security và trình theo dõi lỗi của Debian
Chi tiết vấn đề
- Về mặt thiết kế của StarDict, phần mã giao tiếp với các website từ điển là một cấu phần tự nhiên, nhưng tính năng "quét" lại được bật mặc định
- Điều này có nghĩa là khi người dùng chọn văn bản bằng chuột, một cửa sổ bật lên dịch thuật sẽ tự động xuất hiện, đồng thời văn bản đó cũng tự động bị gửi tới máy chủ bên ngoài
- Vấn đề đặc biệt nghiêm trọng khi người dùng luôn để StarDict chạy nền
Khác biệt giữa các môi trường Linux
- Trong môi trường Wayland, StarDict không thể chụp văn bản từ ứng dụng khác, nên tính năng quét không hoạt động và không phát sinh vấn đề bảo mật này
- Vấn đề này hiện chỉ tồn tại trong môi trường X11 truyền thống
Phản ứng từ Debian và các nhà phát triển StarDict
- Người quản lý gói Debian Xiao Sheng Wen cho rằng đây không phải vấn đề lớn vì
"có thể vô hiệu hóa tính năng quét và plugin YouDao" - Tuy nhiên, người báo cáo Vincent Lefevre chỉ ra rằng "các tính năng liên quan tới quyền riêng tư bắt buộc phải bị tắt theo mặc định"
- Có thể thông báo tính năng này qua phần mô tả gói, nhưng mô tả của stardict-plugin không hề đề cập tới việc sử dụng từ điển trực tuyến
- Đã có đề xuất cải thiện như tách plugin riêng, nhưng chưa có hành động tức thời
Sự tiện lợi của tính năng và lo ngại bảo mật
- Tính năng quét là một ưu điểm lớn của StarDict khi người dùng muốn tra từ điển nhanh lúc đọc ngoại ngữ
- Nhưng người dùng khó có thể ngờ rằng giao tiếp này không được mã hóa. Bất kỳ ai trên đường truyền trung gian đều có thể thấy văn bản nhạy cảm
Các sự cố bảo mật tương tự trước đây và cách xử lý
- Những trường hợp tương tự cũng từng được báo cáo vào năm 2009 và 2015
- Năm 2009: việc vô hiệu hóa từ điển mạng từng được áp dụng tạm thời làm mặc định
- Tuy nhiên plugin YouDao được thêm vào năm 2016 lại bỏ qua thiết lập đó
- Vấn đề năm 2015 mãi tới năm 2025 mới được xử lý theo hướng loại bỏ plugin
- Có thể thấy vấn đề tái diễn và phản ứng chậm chạp, cùng việc thay đổi người bảo trì và ưu tiên xử lý chưa phù hợp, đã lặp lại nhiều lần
Quy mô người dùng và tác động bảo mật
- Theo thống kê của Debian, hiện chỉ có khoảng 178 người cài và dùng StarDict, nhưng nếu tính cả các hệ thống không tham gia thống kê thì trong nhiều năm qua có thể đã có khá nhiều người dùng bị phơi bày trước nguy cơ rò rỉ văn bản
- Mật khẩu được sao chép, email nhạy cảm, đoạn văn bản được chọn khi đang chỉnh sửa tài liệu đều có thể bị lộ nguyên trạng ra bên ngoài
Hệ sinh thái mã nguồn mở và nghị trình bảo mật
- Những bản phân phối lớn như Debian phải quản lý rất nhiều gói, nên tình trạng bỏ sót cập nhật và phần mềm lỗi thời xảy ra thường xuyên
- Định luật Linus rằng "nếu đủ nhiều người cùng nhìn thì lỗi sẽ trở nên nông" chỉ đúng khi thực sự có ai đó phát hiện lỗi, báo cáo nó, và người bảo trì công nhận rồi sửa chữa
Sự chuyển dịch từ X11 sang Wayland
- Việc đưa Wayland vào sử dụng nhằm giảm chính kiểu lỗ hổng bảo mật này, đặc biệt là khả năng rò rỉ thông tin giữa các ứng dụng
- Tuy vậy, sự bất tiện về mặt chức năng và cách xử lý quyền truy cập mới đi kèm vẫn là những thách thức còn lại
Kết luận và hàm ý
- Thực tế rằng những vấn đề bảo mật được phát hiện, chẩn đoán và báo cáo vẫn có thể chưa được xử lý hoặc tiếp tục tái diễn là điều đáng lo ngại
- Để duy trì uy tín bảo mật của Linux, cần có sự nhận thức liên tục và phản ứng nhanh từ các nhà phát triển mã nguồn mở, người phụ trách quản lý gói và người dùng
1 bình luận
Ý kiến Hacker News
Như Xiao đã chỉ ra, người cài phần mềm có thể đọc mô tả gói, và thực tế tính năng quét đã được nhắc tới. Nhưng các quản trị viên Debian thường trả lời báo cáo lỗi theo kiểu “bạn phải đọc kỹ mô tả của mọi gói (kể cả hàng trăm gói được cài như phụ thuộc)”, mà thành thật thì nếu vài ngày trước bạn bắt đầu đọc hết mọi mô tả và README của bản phát hành Trixie, có lẽ đến giờ vẫn chưa đọc xong
Dĩ nhiên, với một chương trình từ điển thì người ta có thể cho rằng nó sẽ chứa mã giao tiếp với website. Nhưng nếu tôi cài một từ điển bằng apt-get, tôi có thể kỳ vọng là toàn bộ từ điển nằm trên máy của mình. Xét cho cùng, từ điển giấy đã được dùng hàng trăm năm rồi mà... Stardict thì thiên về trực tuyến, có thể là bình thường, nhưng vẫn cho cảm giác như có cái bẫy nào đó
Tôi đã khá sốc khi phát hiện trên điện thoại Samsung, toàn bộ dữ liệu clipboard được chia sẻ giữa mọi thiết bị trong tài khoản Samsung của tôi (kể cả mật khẩu), và thậm chí còn lưu cả lịch sử. Tôi không nhớ đó có phải mặc định hay do mình vô tình đồng ý. Tôi đoán dữ liệu này được chuyển qua máy chủ của Samsung. Tôi đã tắt tính năng chia sẻ, nhưng lịch sử clipboard thì không tắt được; dù đổi sang bàn phím khác, chỉ cần chuyển lại về bàn phím Samsung là toàn bộ lịch sử clipboard cũ vẫn còn đó. Giờ tôi nghĩ điện thoại tiếp theo sẽ không chọn Samsung nữa
Tôi cảm thấy có chút gây hiểu lầm trong phần nói về Wayland. Phần tóm tắt cuối là chính xác: “Có lẽ StarDict đã yêu cầu quyền đặc biệt để chạy trên Wayland, và người dùng đã chấp nhận giá trị mặc định đó như bây giờ.” Tức là khả năng lớn là vậy, và quyền đó cũng có thể đã được gán tự động trong quá trình cài đặt. Phần mềm độc hại thì lúc nào cũng tồn tại. Wayland có thể ngăn được một số kiểu tấn công, nhưng nó không bảo vệ bạn khỏi các gói được cài như một phần của bản phân phối
Việc tra từ điển cục bộ cho mỗi clipboard là ổn. Thêm tính năng truy vấn từ điển từ xa cũng không sao. Ngay cả việc kết hợp hai tính năng này cũng có thể chấp nhận nếu được tách riêng bằng một cờ đặc biệt nào đó, nhưng trộn chúng lại trong thiết lập mặc định thì gần như là hành vi ác ý
Về câu “đương nhiên chương trình từ điển có mã kết nối website”, tôi muốn nói rằng thực tế còn tùy vào mục đích sử dụng. Phiên bản tối giản của từ điển tiếng Phần Lan (
tsk) mà tôi làm có dung lượng khoảng 30MB với khoảng 250 nghìn từ, và toàn bộ từ điển được nhúng thẳng vào binary; mỗi lần chạy nó sẽ dựng lại phần tìm kiếm theo tiền tố. Nhưng cơ sở dữ liệu khổng lồ có thêm lemmatization, từ nguyên học v.v. có thể phình lên tới hàng chục gigabyte. Tôi cần cấu trúc này vì mục tiêu là tra cứu hoàn toàn tức thời theo từng nhịp gõ bàn phím. Tôi đã bỏ rất nhiều công sức, nên từ các phiên bản sau tôi quyết định thu phí tsk Github trang chủ bản trả phí (hiện đang offline vì vấn đề code signing cho Win). Với hầu hết trường hợp sử dụng khác, truy vấn lên máy chủ sẽ tiện hơn rất nhiều. Hầu như không có lý do gì để tải xuống toàn bộ một từ điển khổng lồ, nên cấu trúc lai (ví dụ cache cục bộ 10 nghìn từ phổ biến nhất, còn từ hiếm thì hỏi máy chủ) cũng khá hợp lýCàng nhìn càng thấy nhiều điểm chỉ có thể hiểu là có ác ý. Người bảo trì trả lời rằng “người dùng đã tự bật tính năng ‘quét’, và việc chọn văn bản sẽ kích hoạt dịch... vậy tại sao lại chọn dữ liệu confidential để dịch?”
Tôi rất tôn trọng lượng công sức đổ vào Debian, nhưng lúc nào cũng ghét kiểu “tối đa hóa” này của trình quản lý gói. Ví dụ cài foo thì nó kéo theo mọi phần mềm liên quan có thể có, và nếu có daemon mạng thì còn cho chạy luôn. Tôi biết có cờ để chặn cài “gói khuyến nghị”, nhưng tôi vẫn thấy mặc định như vậy là làm người dùng khổ hơn
--no-install-recommends--install-recommendslà mặc định thì không vấn đề gì. Việc tạo ra khác biệt tinh tế giữa Recommends là “đa số chúng ta đều muốn cái này” và Suggests là “tính năng thiểu số” không phải ý tồi. Nhưng tôi cũng đồng ý rằng việc từng người bảo trì riêng lẻ lạm dụng trường Recommends là một vấn đề. Ví dụ cài công cụ nén mà lại kéo theo cả một hệ thống init cụ thể thì thật vô lý (đang nhìn về phía file-roller và nhóm liên quan tới gnome)Tôi không hiểu vì sao tất cả việc này lại không làm ngoại tuyến. Toàn bộ từ điển tiếng Trung còn chưa tới 400 nghìn từ, giả sử mỗi từ 1k thì 400MB là đủ. Hoàn toàn có thể làm cục bộ, việc phụ thuộc vào kết nối mạng đơn thuần là thiết kế kém
Cứ thấy những chuyện như thế này là tôi cực kỳ tức giận. Đây là điều tuyệt đối không thể chấp nhận được