Trường hợp này là một lời nhắc nhở mọi người về mối nguy hiểm thường trực khi dựa vào code của người khác.

Cho đến tận bây giờ, năm 2017, đối với nhiều người, việc tạo ra một website chỉ đơn giản là vấn đề của việc kết hợp các bộ phận có sẵn với nhau cho đến khi chúng tạo thành thứ gì đó hoạt động theo cách mà họ muốn.

Bất kỳ ai muốn tạo ra một cửa hàng trực tuyến chỉ cần chỉnh sửa một chút qua WordPressShopify. Có rất nhiều các plugin và công cụ có sẵn cho phép bạn chuyển một blog đơn giản thành một mạng xã hội với đầy đủ tính năng, như Peepso – một trang chia sẻ video theo phong cách Youtube.

Có thể nói, hiện tại là thời điểm tuyệt vời cho việc tự mình thực hiện các ý tưởng độc đáo, mà không phải lo lắng về việc thiếu các kỹ năng cần thiết.



Nhưng vẫn còn một vấn đề lớn mới với cách tiếp cận này. Bất cứ lúc nào bạn sử dụng code của ai đó, về căn bản, bạn đang đặt hoàn toàn niềm tin rằng họ biết họ đang làm gì. Tuy vậy, luôn có một khả năng về việc bất kỳ plugin hay công cụ nào đó bạn đang sử dụng, sẽ có một lỗ hổng bảo mật nghiêm trọng. Một ví dụ điển hình cho trường hợp này là plugin HTML Comment Box, một plugin nổi tiếng được sử dụng trong khoảng 2 triệu blog và website.

Lỗ hổng Lưu trữ XSS

Karim Rahal, một nhà nghiên cứu bảo mật và là một hacker mũ trắng mới 14 tuổi tại Lebanon, đã khám phá ra lỗ hổng Lưu trữ XSS (cross-site scripting) trong plugin này. Nhưng trước khi biết được làm thế nào anh tìm ra lỗ hổng này, có lẽ tốt hơn chúng ta nên tìm hiểu XSS là gì.

Nhiều trang web cho phép bạn đăng tải các nội dung thuần văn bản của riêng bạn. Chúng có thể là bất cứ thứ gì – từ một entry cho đến một bình luận trên blog. Vậy điều gì sẽ xảy ra nếu đoạn văn bản của bạn thêm vào lại chứa một đoạn code độc hại, được lưu trữ và tấn công bất kỳ ai ghé thăm website đó. Cách tấn công này được gọi là Lưu trữ XSS.



Phần lớn các nhà phát triển web có trình độ đều biết cách lọc các đoạn mã độc hại đó. Nhưng vấn đề là có đến hàng ngàn cách khác nhau để cho những kẻ tấn công có thể che giấu hoặc xáo trộn cách đoạn mã XSS độc hại, do đó, chúng có thể vượt qua bộ lọc đó, và rất khó để phòng tránh tất cả các cách thức trên.

Đó cũng chính là cách làm như thế nào Karim có thể gây tổn thương cho plugin HTML Comment Box. Anh nhúng một đoạn JavaScript thử nghiệm nhỏ vào bên trong thẻ IMG, và sau đó che giấu nó với một cái còn được gọi là tải công việc "Dấu ngoặc mở ngoại lai" (Extraneous open brackets).

Đây là một kỹ thuật anh học được từ bạn mình, một nhà nghiên cứu bảo mật tuổi teen, Ibram Marzouk, người khám phá ra một lỗ hổng tương tự trong PasteCoin vài tháng trước đây.



Trên đây là dòng mã mà anh đã sử dụng. Trên thực tế nó không làm được gì nhiều. Khi thực thi, dòng code này chỉ buộc trình duyệt phải tạo ra một cảnh báo pop-up cho biết '1'. Nhưng nó có thể vượt qua được các lớp bảo XSS mà nhà phát triển đã tạo ra trên trang web.



Nếu được sử dụng bởi những kẻ có ác ý, đoạn code trên có thể được sử dụng để làm phán tán mã độc, bằng cách buộc người dùng phải tải mã độc về máy tính, hoặc điều hướng người dùng đến các trang web độc hại.

Liên lạc với những nhà phát triển

Để liên lạc với những nhà phát triển plugin này khó khăn hơn Karim tưởng tượng. Nhưng nhờ vào một người quen, anh đã liên lạc được với người khổng lồ về bảo mật của Thụy Điển, Detectify Labs, và họ sẵn sàng giúp đỡ.

Karim giải thích: "Khoảng 2 tháng trước, tôi đã được mời đến chương trình Crowdsource của Detectify, nơi các hacker đóng góp vào máy quét của họ những lỗ hổng đã biết và đổi lại, họ sẽ được trả tiền. Thông qua chương trình Detectify Crowdsource, tôi đã thông báo về tình trạng của plugin HTML Comment Box nhưng không thể tìm thấy thông tin liên lạc của những nhà phát triển. Sau khi tiến hành tìm kiếm, họ đã tìm thấy email của nhà phát triển".


Email liên lạc giữa nhà phát triển và Karim Rahal.

Sau đó, các nhà phát triển của plugin HTML Comment Box cho biết họ rất ngạc nhiên khi plugin nổi tiếng của họ bị đánh gục bởi một ai đó vẫn đang ngồi ghế trung học. Karim cho họ biết lỗ hổng vào ngày 30 tháng Mười Một năm 2016, và đến ngày 1 tháng Mười Hai, các nhà phát triển đã phát hành bản sửa cho vấn đề đó.

Sau vụ việc này, Karim có một vài lời khuyên mạnh mẽ cho ai đang sử dụng bất kỳ dạng nào của hệ thống CMS: "Nếu bạn muốn được bảo mật hoàn toàn, bạn không nên sử dụng các plugin ngoài. Nếu điều đó là không thể tránh khỏi, bạn nên đảm bảo rằng việc cập nhật tự động đã được kích hoạt".

Ít nhất đây là lời nhắc nhở cho mối nguy hiểm thường trực khi dựa vào code của người khác.

Tham khảo The Next Web