Qua sự cố lỗi bảo mật trong phần mềm Joomla vừa qua, có thể thấy rõ vấn đề đảm bảo an toàn cho website trước tiên phụ thuộc vào ý thức của người quản trị, chứ không phải chuyện phần mềm miễn phí hay thương mại, nguồn mở hay nguồn đóng.
Ngày 13/8, Một lỗi bảo mật nghiêm trọng đã được phát hiện trong các hệ thống phần mềm quản trị nội dung web nguồn mở Joomla 1.5.x hiện đang được hàng ngàn website Việt Nam sử dụng. Lỗi này cho phép một người dùng bình thường không cần đăng nhập cũng có thể cướp quyền quản trị nội dung toàn bộ website.
Phần mềm này hiện được cộng đồng CNTT Việt Nam sử dụng khá phổ biến vì khả năng tùy biến cao, sử dụng dễ dàng và miễn phí bản quyền.
Theo website của các nhà phát triển Joomla, đây là một lỗi bảo mật nằm trong cơ chế xác thực token để tái lập mật khẩu quản trị của phần mềm Joomla của file /components/com_user/models/reset.php.
Thay vì phải nhập một thẻ token được hệ thống gửi tới email của người quản trị, một người dùng bình thường có thể nhập mã thẻ token là một dấu phẩy trên (’) và được chuyển ngay tới phần đặt lại mật khẩu mới cho tài khoản người dùng có mã số ID nhỏ nhất. Thông thường, đây là tài khoản mang tên admin, có quyền quản trị cấp cao nhất (administrator). Do đây là thành phần mặc định của Joomla nên khả năng reset password thành công là 100%.
Hiện tổ chức các nhà phát triển Joomla đã cảnh bảo các website sử dụng những phiên bản Joomla từ 1.5.5 trở về trước nên cập nhật ngay lên phiên bản 1..5.6 hoặc khắc phục lỗi trong file reset.php.
Đến trẻ con cũng có thể... hack
Chỉ cần đọc qua một đoạn giới thiệu trên diễn đàn, một người dùng bình thường, thậm chỉ kể cả học sinh phổ thông cũng có thể thực hiện việc tấn công chiếm quyền quản trị nội dung web của phầm mềm Joomla thông qua lỗi nói trên.
Vào thời điểm các website chưa kịp nâng cấp, không mấy khó khăn để có thể tìm kiếm một website sử dụng phần mềm Joomla qua Google, kể cả với website dùng tiếng Việt, vì thông thường các website đều có ghi danh phần mềm Joomla được sử dụng theo quy định bản quyền của phần mềm nguồn mở này.
Bước tiếp theo, kẻ tấn công chỉ việc gõ (hoặc paste) thêm một đoạn đường link (?option=com_user&view=reset&layout=confirm) vào sau địa chỉ trang chủ của website và bấm enter, một bảng thông báo sẽ hiện ra cho biết hệ thống đã gửi email chứa thẻ xác thực (token) tới địa chỉ mail của người quản trị và yêu cầu nhập token đó vào để có thể đổi mật khẩu cho tài khoản.
Tuy nhiên, kẻ tấn công có thể đi qua bước xác thực này một cách đơn giản bằng cách nhập ký tự dấu phảy trên (’), và lập tức được chuyển tới mục nhập mật khẩu mới 2 lần để thay đổi mật khẩu quản trị. Sau khi đổi được mật khẩu, kẻ tấn công có thể đàng hoàng đăng nhập vào hệ thống quản trị của Joomla bằng cách gõ thêm cụm /administrator/ vào sau tên miền của website theo tên đăng nhập là admin, với mật khẩu vừa thay đổi.
Lúc này, toàn bộ hệ thống quản trị nội dung web của phần mềm Joomla đã nằm trong quyền kiểm soát của kẻ tấn công.
Các "nạn nhân" không có quy mô lớn
Sáng ngày 13/8, khi phát hiện nguy cơ bảo mật nhằm vào các website sử dụng Joomla 1.5.x, Trung tâm ứng cứu sự cố máy tính khẩn cấp VNCERT đã phối hợp nhanh với Trung tâm Internet Việt Nam để có được danh sách hàng trăm website .vn sử dụng phần mềm Joomla để tiến hành cảnh báo trực tiếp.
Tuy nhiên, vì Joomla là phần mềm nguồn mở miễn phí với đặc thù đơn giản, dễ triển khai, tùy biến, phù hợp với các hệ thống website nhỏ và trung bình, nên phần lớn các tên miền .vn sử dụng Joomla cũng là các website cá nhân, nhóm diễn đàn hoặc cộng đồng mạng ít phổ biến, hoặc các doanh nghiệp, tổ chức có quy mô không lớn, không có nhiều thông tin trọng yếu.
Do đó, trung tâm VNCERT cũng chỉ thực hiện cảnh báo trực tiếp qua điện thoại, e-mail tới các doanh nghiệp, tổ chức sở hữu các website như luatgiapham.com, daoduytu.edu.vn, giaoduc.edu.vn, www.vctv.vkn, sport.com.vn... Sau khi nhận được thông báo, các website này đều đã tiến hành vá lỗi bảo mật bằng cách nâng cấp lên phiên bản Joomla 1.5.6.
Cập nhật nhanh - cách phòng vệ tốt nhất!
Đối với các chuyên gia quản trị website (webmaster), cách tốt nhất để bảo vệ website của mình trước các nguy cơ bảo mật là thường xuyên cập nhật các thông tin từ nhà cung cấp sản phẩm phần mềm, hoặc từ các diễn đàn, tổ chức đang phát triển sản phẩm mà website sử dụng.
Cụ thể trong trường hợp của phần mềm Joomla, các thông báo về lỗi reset mật khẩu quản trị cũng đã có khá sớm trên diễn đàn các nhà phát triển Joomla (developer.joomla.org), đồng thời được hệ thống các cơ quan ứng cứu sự cố máy tính khẩn cấp trên khắp thế giới chuyển tiếp nhanh chóng, từ USCERT, JCERT.... cho tới VNCERT.
Một số cách khác để nhanh chóng tiếp cận các thông tin cảnh báo lỗi bảo mật là đăng ký dịch vụ newsletter của các tổ chức CERT hoặc doanh nghiệp, tổ chức cung cấp, phát triển các phần mềm cần theo dõi, hoặc cập nhật các kênh tin tức qua RSS để nắm thông tin. Đây là những biện pháp cập nhật thông tin cơ bản mà bất cứ webmaster nào cũng phải thực hiện để đảm bảo hệ thống website luôn được khắc phục các lỗi bảo mật nhanh nhất.
Nhưng có một thực tế đáng buồn là thói quen này chưa thực sự phổ biến đối với các webmaster tại Việt Nam. Một minh chứng đơn giản nhất: Ngày 18/8/2008, sau khi lỗi Joomla được phát hiện và công bố được 5 ngày, vẫn còn khá nhiều website .vn chưa khắc phục lỗi và dễ dàng trở thành nạn nhân của các newbie thích tò mò phá phách qua mạng.
Chỉ cần tìm kiếm qua Google và kiểm tra thử như phần đầu bài viết đã đề cập, cũng có thể dễ dàng tìm thấy các website vẫn có thể bị thay đổi mật khẩu quản trị dễ dàng như hdhtienhai.com.vn, trongdongviet.vn; environment.hcmuns.edu.vn, victory.com.vn hay pgviet.com.vn.
Trên thực tế, các lỗi bảo mật tương tự như của Joomla không phải là hiếm, thậm chí có trong cả các sản phẩm phần mềm thương mại như của Microsoft, Cisco... Do đó, vấn đề đảm bảo an toàn cho website trước tiên phụ thuộc vào ý thức của người quản trị, chứ không phải chuyện phần mềm miễn phí hay thương mại, nguồn mở hay nguồn đóng.