Tấn Công Chuỗi Cung Ứng Gravity Forms: Mã Độc Lây Nhiễm Plugin WordPress Chính Thức

Các hacker đã nhắm mục tiêu vào plugin WordPress phổ biến Gravity Forms, chèn mã độc vào các phiên bản được tải xuống từ tên miền chính thức gravityforms.com. Vụ việc này cho thấy một lỗ hổng nghiêm trọng trong chuỗi cung ứng phần mềm, ảnh hưởng trực tiếp đến người dùng tải xuống plugin từ nguồn được cho là đáng tin cậy.

Diễn Biến Sự Cố Khai Thác Gravity Forms

Phát Hiện Ban Đầu và Nguồn Gốc Tấn Công

Vụ việc được báo cáo lần đầu vào ngày 11 tháng 7 năm 2025, khi các nhà nghiên cứu bảo mật phát hiện các yêu cầu HTTP đáng ngờ đến tên miền gravityapi.org. Đáng chú ý, tên miền này chỉ mới được đăng ký vài ngày trước đó, vào ngày 8 tháng 7 năm 2025.

Tên miền gravityapi.org sau đó được xác định là máy chủ chỉ huy và điều khiển (Command-and-Control – C2) cho mã độc. Tên miền này đã bị đình chỉ hoạt động bởi nhà đăng ký Namecheap ngay sau khi được phát hiện, nhằm ngăn chặn sự lây lan và kiểm soát tiếp theo từ phía kẻ tấn công.

Cơ Chế Hoạt Động của Mã Độc

Phiên bản plugin bị xâm nhập, cụ thể là Gravity Forms version 2.9.12, được phát hiện chứa các backdoor. Các backdoor này được thiết kế để thu thập và truyền dữ liệu nhạy cảm của trang web, bao gồm URL trang, phiên bản WordPress, chi tiết PHP, các plugin đang hoạt động và số lượng người dùng. Dữ liệu này được gửi qua các yêu cầu POST tới điểm cuối độc hại trên máy chủ C2.

Sau khi nhận được phản hồi từ máy chủ C2, mã độc sẽ giải mã và ghi một tập tin backdoor mới vào máy chủ nạn nhân, thường ngụy trang dưới dạng các tập tin quản lý nội dung WordPress hợp lệ. Một ví dụ điển hình là tập tin wp-includes/bookmark-canonical.php. Tập tin này chứa các khả năng thực thi mã từ xa (Remote Code Execution – RCE) thông qua các hàm eval được kích hoạt bởi các yêu cầu không xác thực. Điều này cho phép kẻ tấn công thao túng các bài đăng, phương tiện, widget và chủ đề với hậu quả nghiêm trọng.

Các Phương Thức Tấn Công Chi Tiết

Sự tinh vi của mã độc nằm ở khả năng tích hợp sâu vào các chức năng cốt lõi của Gravity Forms. Ví dụ, hàm update_entry_detail trong tập tin gravityforms/common.php được móc nối (hooked) vào hành động plugins_loaded. Điều này đảm bảo rằng mã độc sẽ được thực thi mỗi khi plugin Gravity Forms được kích hoạt, cho phép thu thập thông tin tình báo toàn diện về trang web và triển khai các payload bổ sung dựa trên phản hồi từ máy chủ C2.

Một phương thức tấn công khác được sử dụng là thông qua hàm list_sections trong tập tin includes/settings/class-settings.php, có thể truy cập được thông qua notification.php. Hàm này yêu cầu một gf_api_token cụ thể để kích hoạt các hành động độc hại. Token được xác định là Cx3VGSwAHkB9yzIL9Qi48IFHwKm4sQ6Te5odNtBYu6Asb9JX06KYAWmrfPtG1eP3. Khi được kích hoạt, hàm này cho phép kẻ tấn công thực hiện một loạt các hoạt động trái phép, bao gồm:

  • Tạo người dùng quản trị mới (admin users).
  • Thực thi mã tùy ý thông qua các công thức được giải mã base64.
  • Tải lên các tập tin (file uploads) lên máy chủ.
  • Liệt kê hoặc xóa người dùng hiện có.
  • Duyệt qua các thư mục trên máy chủ.

Backdoor đa chức năng này biến các trang web bị nhiễm thành tài sản hoàn toàn có thể kiểm soát được bởi kẻ tấn công, cho phép chúng thực hiện gần như mọi hành động trên hệ thống bị ảnh hưởng.

Phạm Vi Tác Động và Biện Pháp Khắc Phục

Đánh Giá Mức Độ Lây Nhiễm

Mặc dù vụ tấn công rất nghiêm trọng, phạm vi lây nhiễm được cho là tương đối hạn chế. Các bản quét từ các nhà cung cấp dịch vụ hosting lớn cho thấy sự lây lan không rộng rãi. Theo nhân viên của RocketGenius (đơn vị phát triển Gravity Forms), điều này có thể là do các bản tải xuống bị nhiễm chỉ có sẵn trong một thời gian ngắn và chỉ ảnh hưởng đến các cài đặt thủ công hoặc thông qua Composer.

Phản Ứng Nhanh Chóng từ Gravity Forms và Cộng Đồng

Sau khi phát hiện, các hành động khắc phục đã được triển khai nhanh chóng:

  • Vào ngày 11 tháng 7 năm 2025, lúc 12:07 UTC, Gravity Forms đã xác nhận điều tra vụ vi phạm mã độc và gỡ bỏ mã độc khỏi các bản tải xuống tiếp theo.
  • Lúc 12:38 UTC, Patchstack đã thu được các phiên bản dễ bị tấn công và đã được vá, xác nhận vấn đề đã được cô lập.
  • Đến 14:10 UTC cùng ngày, phiên bản 2.9.13 được phát hành dưới dạng một bản cập nhật an toàn. Đồng thời, tên miền gravityapi.org đã được gỡ bỏ khỏi hoạt động để ngăn chặn việc khai thác tiếp theo.

Chỉ Dẫn Bảo Mật và Bài Học Rút Ra

Các Bước Khuyến Nghị Cho Chủ Sở Hữu Trang Web

Đối với các chủ sở hữu trang web sử dụng Gravity Forms, việc thực hiện các bước ngay lập tức là rất quan trọng để đảm bảo an toàn:

  1. Kiểm tra sự hiện diện của các tập tin hoặc chức năng đáng ngờ: Rà soát các tập tin không mong muốn, đặc biệt là trong thư mục wp-includes/, và các chức năng lạ trong mã nguồn của plugin.
  2. Cập nhật ngay lập tức lên phiên bản 2.9.13: Đây là phiên bản đã được vá lỗi và loại bỏ mã độc.
  3. Quét hệ thống để tìm các Chỉ số Thỏa hiệp (IOCs): Tìm kiếm các dấu hiệu của sự xâm nhập, bao gồm các yêu cầu không mong muốn từ các địa chỉ IP đáng ngờ và các user agent giả mạo.

Chỉ Số Thỏa Hiệp (IOCs)

Các chỉ số thỏa hiệp liên quan đến vụ tấn công này bao gồm:

  • Tên miền C2: gravityapi.org
  • Địa chỉ IP đáng ngờ: 193.160.101.6 (địa chỉ này đã giả mạo user agent để kiểm tra các điểm cuối backdoor trên các trang web khác).
  • Token API độc hại: Cx3VGSwAHkB9yzIL9Qi48IFHwKm4sQ6Te5odNtBYu6Asb9JX06KYAWmrfPtG1eP3
  • Đường dẫn tập tin backdoor phổ biến: wp-includes/bookmark-canonical.php
  • Các tập tin plugin hợp lệ được lợi dụng:
    • gravityforms/common.php (hàm update_entry_detail)
    • includes/settings/class-settings.php (hàm list_sections)
    • notification.php (điểm vào để truy cập list_sections)

Các quản trị viên hệ thống có thể kiểm tra log máy chủ web và log bảo mật để tìm kiếm các dấu hiệu của các yêu cầu đến hoặc từ các IOCs này.

Nhận Diện Tấn Công Chuỗi Cung Ứng trong WordPress

Sự cố này lặp lại một cuộc tấn công tương tự trước đó nhắm vào plugin Groundhogg, cho thấy một mô hình tấn công chuỗi cung ứng có mục tiêu trong hệ sinh thái WordPress. Các nhóm an ninh như Patchstack đã và đang theo dõi các mối đe dọa này, nhấn mạnh sự cần thiết của việc cảnh giác cao độ trong quản lý plugin.

Mặc dù phạm vi tấn công dường như được kiểm soát, sự cố này vẫn là một lời nhắc nhở quan trọng về những rủi ro khi sử dụng các plugin của bên thứ ba và tầm quan trọng của các biện pháp thực hành tải xuống an toàn. Việc chủ động đối phó với mối đe dọa đang phát triển này không chỉ bảo vệ các trang web riêng lẻ mà còn củng cố cộng đồng WordPress rộng lớn hơn trước các đối thủ mạng tinh vi.