Rủi ro an toàn thông tin nghiêm trọng từ npm độc hại

Rủi ro an toàn thông tin nghiêm trọng từ npm độc hại

Rủi ro an toàn thông tin từ chuỗi cung ứng npm tiếp tục cho thấy mã độc có thể ẩn trong một gói trông hợp lệ, phát tán qua ứng dụng Android và đánh cắp token xác thực ngay khi khởi chạy. Trong trường hợp này, gói codexui-android được quảng bá như một remote web UI cho OpenAI Codex nhưng lại âm thầm thu thập OpenAI Codex authentication tokens.

Gói npm hợp lệ bề ngoài nhưng chứa mã độc

Gói codexui-android xây dựng được một mức độ tin cậy nhất định với khoảng 27.000 lượt tải hàng tuần và một kho GitHub hoạt động. Theo phân tích trong báo cáo được công bố tại Aikido, phần mã độc chỉ tồn tại trong bản phân phối npm, không xuất hiện trong mã nguồn GitHub công khai.

Cách triển khai này khiến quá trình rà soát mã nguồn thông thường khó phát hiện, vì nhà phát triển nhìn vào repository sẽ không thấy logic trích xuất dữ liệu. Đây là một dạng cảnh báo bảo mật thông tin điển hình trong chuỗi cung ứng phần mềm.

Mã độc kích hoạt ngay khi ứng dụng khởi chạy

Thành phần độc hại được nạp trước khi ứng dụng thực thi logic chính, không cần người dùng tương tác hay gọi hàm đặc biệt nào. File độc hại chunk-PUR7OUAG.js chạy ngay tại module load, nên có quyền truy cập vào các tệp xác thực đã lưu từ thời điểm startup.

Cơ chế này làm tăng mức độ remote code execution theo nghĩa logic thực thi tự động trong ngữ cảnh ứng dụng, dù không phải là khai thác CVE truyền thống. Nội dung gốc không cung cấp CVE hay CVSS, vì vậy không có định danh lỗ hổng để gán vào sự kiện này.

Kỹ thuật trích xuất token và luồng exfiltration

Đối tượng tấn công nhắm vào tệp auth.json nằm trong thư mục Codex của người dùng. Sau khi tìm thấy, dữ liệu được mã hóa XOR với khóa anyclaw2026, rồi base64-encode trước khi được gửi lén ra ngoài.

Endpoint nhận dữ liệu được đặt tên để giống một kết nối Sentry hợp lệ, giúp che giấu trong quá trình giám sát mạng thông thường. Điều này khiến lưu lượng ra ngoài trông như telemetry bình thường thay vì một cuộc tấn công mạng đánh cắp thông tin xác thực.

Dữ liệu bị thu thập

  • Access token
  • Refresh token
  • ID token
  • Account ID

Đáng chú ý, refresh token có thể không hết hạn ngay, nên nếu bị lộ, kẻ tấn công có thể duy trì truy cập trong thời gian dài. Đây là rủi ro bảo mật trực tiếp đối với môi trường phát triển sử dụng Codex.

IOC liên quan đến chiến dịch

Phần tài liệu gốc có IOC được nêu rõ. Các chỉ dấu dưới đây nên được đưa vào quy trình phát hiện xâm nhập và đối soát log nội bộ.

  • Package name: codexui-android
  • Malicious file: chunk-PUR7OUAG.js
  • Encryption key: anyclaw2026
  • Exfiltration domain: sentry.anyclaw[.]store
  • Exfiltration path: /startlog
  • Target file: auth.json

Khi triển khai IDS hoặc kiểm tra log proxy, cần chú ý các kết nối bất thường đến domain trên, đặc biệt nếu đi kèm hành vi đọc file xác thực trong thư mục Codex.

Phân phối qua ứng dụng Android

Gói npm độc hại không phải là kênh phát tán duy nhất. Một ứng dụng Android mang tên OpenClaw Codex Claude AI Agent và một ứng dụng khác tên Codex đều sử dụng cùng chuỗi thực thi. Ứng dụng đầu tiên tự động tải build npm độc hại mỗi khi khởi chạy.

Ứng dụng Android được mô tả là trông sạch khi quét trước khi phát hành, dung lượng chỉ khoảng 26 MB. Ở lần chạy đầu tiên, nó giải nén một môi trường Linux vào private storage, chạy Node.js bên trong và cài gói từ npm mà không pin phiên bản.

Cách làm này tạo ra nguy cơ xâm nhập trái phép thông qua dependency động, vì thiết bị sẽ luôn kéo về bản build hiện tại từ registry nếu không khóa version. Đây là điểm quan trọng trong đánh giá mối đe dọa chuỗi cung ứng.

Hệ quả đối với tài khoản Codex

Khi người dùng đăng nhập vào Codex trong ứng dụng, file auth.json được ghi vào storage, sau đó gói độc hại đọc và chuyển ra ngoài. Từ đó, kẻ tấn công có thể dùng token để mạo danh nạn nhân trong các phiên làm việc tiếp theo.

Nếu môi trường đã bị ảnh hưởng, cần coi đây là sự cố rò rỉ dữ liệu nhạy cảm, không chỉ là một cảnh báo phần mềm độc hại đơn lẻ. Việc lộ token xác thực có thể dẫn đến hệ thống bị xâm nhập ở tầng tài khoản và phiên làm việc.

Ảnh hưởng hệ thống và dấu hiệu cần kiểm tra

Chuỗi tấn công này không cần quyền khai thác kernel hay leo thang đặc quyền để gây thiệt hại. Chỉ cần ứng dụng chạy là payload đã hoạt động và trích xuất dữ liệu bí mật ngay từ startup.

Ảnh hưởng chính tập trung vào thông tin xác thực của Codex và khả năng truy cập liên tục nếu refresh token chưa bị thu hồi. Với các hệ thống CI/CD hoặc máy trạm lập trình, đây là điểm đột phá khiến bảo mật mạng và quản trị bí mật cần được xem lại.

Hành động cần thực hiện

  • Thu hồi và xoay vòng toàn bộ Codex credentials đã dùng với codexui-android hoặc các app liên quan.
  • Giám sát outbound connections tới sentry.anyclaw[.]store.
  • Rà soát storage cục bộ để xác định sự xuất hiện của auth.json.
  • Kiểm tra lịch sử cài đặt npm package không pin version.
  • Đối chiếu log ứng dụng với thời điểm token bị truy cập lần đầu.

Đây là các bước cơ bản để phát hiện tấn công và giảm nguy cơ lộ thêm dữ liệu xác thực sau khi hệ thống đã bị ảnh hưởng.

Nhận diện hành vi trong giám sát an ninh mạng

Trong môi trường giám sát, lưu lượng tới domain exfiltration có thể bị nhầm thành telemetry nếu chỉ kiểm tra sơ bộ. Vì vậy, cần phân tích sâu các chuỗi request, thời điểm kết nối và sự tương quan với hành vi đọc file cục bộ.

Nếu triển khai threat intelligence, IOC về domain và tên file nên được thêm vào danh sách phát hiện. Tài liệu nguồn cũng nhấn mạnh việc chỉ giải mã lại chuỗi domain trong môi trường kiểm soát như SIEM, MISP hoặc VirusTotal.

Với đặc tính giả mạo kết nối hợp lệ, đây là mẫu điển hình của rủi ro an toàn thông tin khi một gói phần mềm được thiết kế để vừa hữu ích vừa làm vỏ bọc cho hành vi đánh cắp token.

Tham chiếu kỹ thuật

Tài liệu nguồn và phân tích liên quan có thể đối chiếu thêm tại báo cáo gốc của Aikido: https://www.aikido.dev/blog/codex-remote-ui-steals-ai-tokens.