ActiveX Controls: Sai lầm lớn nhất trong lịch sử Web


Được ra mắt vào năm 1996, ActiveX Controls của Internet Explorer là một ý tưởng tồi tệ cho nền tảng web. Nó được tạo ra nhằm củng cố sự thống trị của Internet Explorer trên hệ điều hành Windows, nhưng lại gây ra hàng loạt vấn đề về bảo mật.

ActiveX Controls là gì?

ActiveX Controls là một loại chương trình có thể nhúng vào những ứng dụng khác. Microsoft sử dụng chúng cho nhiều mục đích khác nhau. Ví dụ, bạn có thể nhúng ActiveX Controls vào tệp tài liệu Microsoft Office. Tuy nhiên, trong bài viết này, chúng tôi tập trung nói về việc sử dụng ActiveX Controls cho nền tảng web. Bắt đầu với Internet Explorer 3.0 năm 1996, Microsoft đã khuyến khích các nhà phát triển web nhúng ActiveX Controls vào trang web của họ.

Vào thời gian đó, mỗi khi bạn truy cập một trang web, trình duyệt IE sẽ gợi ý bạn tải về và chạy các chương trình ActiveX Controls được nhúng vào trang web.

Những tiện ích mở rộng phổ biến trên IE như Adobe Flash, Adobe Shockwave, RealPlayer, Apple QuickTime và Windows Media Player;đều hoạt động dựa trên ActiveX Controls.

Nảy sinh những vấn đề bảo mật ngay từ khi ra mắt

Ở thập niên 90, tình hình hoàn toàn khác so với hiện nay. Ban đầu, ActiveX Controls cũng giống với mọi chương trình khác trên máy tính. Mỗi khi bạn chạy ActiveX Controls, nó có toàn quyền truy cập mọi thứ trên máy tính.

Nói cách khác, bạn có thể truy cập một trang web bằng trình duyệt IE và thấy một thông báo từ trang web rằng nó muốn chạy một trò chơi hoặc một chương trình khác. Nếu bạn đồng ý, ActiveX Controls có thể làm bất cứ thứ gì nó muốn với mọi tập tin và mọi chương trình có trên máy tính của bạn. Như vậy, ActiveX Controls gần như trở thành con đường hoàn hảo cho các loại mã độc.

Cách thức này khác hoàn toàn với công nghệ Java của Sun. Cùng thời điểm đó, Java cũng được sử dụng để chạy các chương trình trên trang web trong trình duyệt. Tuy nhiên, Java cố gắng hạn chế quyền truy cập các chương trình này bằng cách sử dụng hộp cát. Dù Java trên trang web có một lịch sử lâu đời về khả năng bảo mật kém, nhưng ít nhất nó đã cố gắng giới hạn khả năng của các ứng dụng.

Năm 1997, CNET có đăng tải một bài viết mô tả động thái của Microsoft vào thời gian đó: "Mặc dù hộp cát của Java có mức độ bảo mật cao, nhưng nó không cho phép người dùng tải về và khởi chạy những trò chơi đa phương tiện đầy thú vị hoặc những chương trình khác với đầy đủ tính năng trên máy tính của họ", một tuyên bố đăng trên trang trang bảo mật của Microsoft. "Cuối cùng, người dùng có thể muốn tải về đoạn mã có toàn quyền truy cập toàn bộ nguồn lực của máy tính".

Bài viết cũng giải thích rằng Microsoft đã bổ sung một hệ thống "trách nhiệm giải trình" có tên Authenticode. Các nhà lập trình có thể chọn đánh dấu dấu chương trình ActiveX Controls của họ bằng chữ ký số, nhưng chính sách này lại không bắt buộc. Những lập trình viên tạo ra mã độc dựa trên ActiveX Controls có thể dễ bị truy vết hơn nếu họ chọn gắn chữ ký số.

Với việc để hệ thống dựa trên danh dự cá nhân, ActiveX Controls dễ dàng trở thành một con đường tiềm năng để phát tán mã độc và phần mềm gián điệp trong hệ người dùng IE.

ActiveX Controls được thiết kế cho nền tảng Web cũ

Ở thời kỳ trước, công nghệ web chưa quá mạnh mẽ. Nếu bạn muốn một thứ tiên tiến hơn văn bản và hình ảnh, thậm chí nếu bạn muốn nhúng một video vào trang web, bạn sẽ cần cài thêm một số tiện ích mở rộng cho trình duyệt.

ActiveX Controls được thiết kế cho một thế giới cũ kỹ, nơi mà bạn không thể tạo ra các ứng dụng phức tạp, đầy đủ tính năng bằng HTML, JavaScript và những công nghệ hiện đại khác như thời đại ngày nay.

Nhiều tổ chức đã chuyển sang sử dụng ActiveX Controls để tích hợp thêm tính năng vào trang web của họ. Nhiều doanh nghiệp cũng sử dụng ActiveX Controls để cài đặt phần mềm cho máy tính nội bộ một cách nhanh chóng. Khi bạn truy cập một trong những trang web sử dụng ActiveX Controls trên trình duyệt IE, nó sẽ yêu cầu bạn tải về một chương trình ActiveX Controls và bạn cần chạy chương trình này.

Đơn giản và dễ dàng, rất dễ là đằng khác. ActiveX Controls giúp việc cài đặt phần mềm trên mạng nội bộ, nơi mà mọi thứ đều đáng tin cậy, diễn ra nhanh hơn nhiều lần. Nhưng trên nền tảng web đầy nguy hiểm, nó có thể gây ra rất nhiều vấn đề.

ActiveX là một tập hợp các nguy cơ về bảo mật

Trên lý thuyết, ActiveX Controls có hai vấn đề bảo mật lớn. Đầu tiên là các trang web độc hại có thể yêu cầu bạn cài đặt chương trình ActiveX Controls chứa mã độc và người dùng IE sẽ dễ dàng chấp nhận cài đặt nó.

Thứ hai, lỗ hổng trong chương trình ActiveX Controls đã lỗi thời cũng có thể là vấn đề. Ví dụ, nếu bạn đang cài đặt phiên bản Adobe Flash hết hạn, và vì ActiveX Controls được nhúng trong Flash, một trang web độc hại có thể lợi dụng lỗ hổng này và truy cập vào toàn bộ máy tính của bạn.

Đây thật sự là một vấn đề lớn vì ActiveX Controls thường không có hệ thống tự động cập nhật.

Trải qua thời gian, Microsoft ngày càng thắt chặt cài đặt bảo mật và thêm vào một số lớp bảo vệ như  "Protected Mode" và "Enhanced Protected Mode". Ví dụ, trình duyệt IE được tích hợp danh sách các chương trình ActiveX Controls lỗi thời và từ chối chạy các chương trình có trong danh sách. IE cũng bổ sung thêm một số cảnh báo trước khi tải về và chạy ActiveX Controls. Một số cài đặt bảo mật khác được thêm vào như cho phép nhà phát hành hạn chế ActiveX Controls chỉ hoạt động trên một trang web nhất định…

Một trường hợp điển hình là trang web của Microsoft từng yêu cầu cài đặt ActiveX Controls của "Trình quản lý tải xuống" Akamai để tải một số tệp tin nhất định. Trình quản lý tải xuống này yêu cầu quyền truy cập vào toàn bộ máy tính của bạn và tất nhiên, nó chỉ chạy trong Internet Explorer. Không có gì ngạc nhiên khi chương trình trình quản lý tải xuống này cũng có những lỗ hổng bảo mật riêng của nó. Liệu đây có thật sự là giải pháp tốt hơn để tải tệp tin thay vì sử dụng trình tải xuống tích hợp sẵn trong trình duyệt không?

ActiveX Controls không hỗ trợ đa nền tảng

ActiveX Controls là công nghệ của Microsoft và nó chỉ hoạt động tốt nhất với trình duyệt IE trên Windows. Có một số tiện ích mở rộng cho phép các trình duyệt đối thủ của IE hỗ trợ ActiveX Controls, như Netscape Navigator (tiền thân của Mozilla Firefox) chẳng hạn. Tuy vậy, nó thật sự chỉ hoạt động tốt với IE.

Về mặt kỹ thuật, ActiveX Controls có thể hoạt động đa nền tảng. Microsoft đã hỗ trợ ActiveX Controls cho trình duyệt IE trên hệ điều hành Mac. Tuy nhiên, khác với Java (có thể hoạt động đa nền tảng), ActiveX Controls được lập trình cho hệ điều hành Windows không thể hoạt động trên Mac. Lập trình viên cần tạo chương trình ActiveX Controls riêng cho hệ điều hành Mac.

Ví dụ, vào thập niên 90, chính phủ Hàn Quốc đã chuẩn hóa một chương trình ActiveX Controls để truy cập an toàn vào các trang web tài chính và các trang web của chính phủ. Chính sách này chỉ mới thật sự kết thúc vào năm 2020 và sự phụ thuộc vào ActiveX Controls đã khiến người dân nước này phải sử dụng một công nghệ lỗi thời trong thời gian dài. Năm 2013, tờ Washington Post từng viết rằng "mua sắm trực tuyến tại Hàn Quốc bị mắc kẹt bởi Internet Explorer". Bài viết mô tả người dùng máy tính Mac tại Hàn Quốca phải sử dụng máy tính tại văn phòng, quán café internet, máy tính cũ hay dùng cả Boot Camp để có thể mua sắm trực tuyến.

Những tình huống tương tự cũng xảy ra ở nhiều nơi khác. Các công ty đã chuẩn hóa ActiveX Controls trong quá trình phân phối ứng dụng nội bộ bị giới hạn do phụ thuộc vào trình duyệt IE trên Windows cho đến khi có sự thay đổi.

Nền tảng Web hiện nay đã phát triển đến đâu?

Từ góc độ bảo mật, nền tảng web hiện nay đã tốt hơn rất nhiều. Khi bạn tải một trang web, trình duyệt sẽ tải và chạy trang web đó trong một hộp cát độc lập. Trình duyệt không còn phụ thuộc vào ActiveX, Java, Flash hay bất cứ chương trình bên thứ ba nào khác.

Các trang web không còn khả năng sử dụng những đoạn mã cho phép nó truy cập mọi thứ trên máy tính, ngoài trừ việc tải xuống một chương trình có đuôi .EXE và chạy nó bên ngoài trình duyệt.

Trình duyệt của bạn cũng được cập nhật tự động, vì vậy những lỗ hổng bảo mật cũ sẽ nhanh chóng nhận được bản vá và không còn khả năng gây hại cho người dùng.

Trước khi bị loại bỏ hoàn toàn vào cuối năm 2020 để phát triển các công nghệ web tiên tiến hơn, thậm chí Flash còn bảo mật hơn so với ActiveX. Ví dụ như trình duyệt Google Chrome chạy Flash trong hộp cát. Một ứng dụng mã độc sử dụng Flash có thể lợi dụng lỗ hổng để thoát ra khỏi hộp cát của Adobe Flash và sử dụng một lỗ hổng khác để thoát ra hộp cát của Google Chrome, sau đó mới có thể truy cập toàn bộ máy tính.

Và tất nhiên, nền tảng web hiện nay là hệ thống đa nền tảng. Bạn có thể sử dụng bất cứ trình duyệt nào trên bất kỳ hệ điều hành nào bạn muốn. Bạn không bị trói buộc vào trình duyệt IE trên Windows như trước đây, khi mà các trang web yêu cầu phải cài đặt ActiveX Controls và nó chỉ hoạt động trên IE.

Và tất nhiên, hầu hết các tiện ích mở rộng trên trình duyệt có thể truy cập vào mọi thứ bạn làm trên trình duyệt, nhưng ít nhất là chúng không thể truy cập vào toàn bộ máy tính của bạn.

ActiveX Controls trên Windows 10

Năm 2021, phiên bản mới nhất của Windows 10 vẫn còn hỗ trợ ActiveX Controls. Tuy nhiên, bạn cần sử dụng trình duyệt Edge (phiên bản kế nhiệm của Internet Explorer 11) để sử dụng vì trình duyệt Microsoft Edge (sử dụng nhân Chromium) không còn hỗ trợ ActiveX Controls.

Hiện nay, một số doanh nghiệp và tổ chức vẫn còn sử dụng ActiveX Controls, do đó, Microsoft vẫn chưa thể ngừng hỗ trợ chương trình này ngay lập tức.

Minh Bảo (Tham khảo HowToGeek)

Top