Tin tặc Triều Tiên triển khai 197 gói npm để phát tán mã độc OtterCookie phiên bản cập nhật

Các tác nhân đe dọa từ Triều Tiên đứng sau chiến dịch Contagious Interview đã tiếp tục tràn ngập kho lưu trữ npm với 197 gói mã độc mới kể từ tháng trước. Theo Socket, các gói này đã được tải xuống hơn 31.000 lần và được thiết kế để phát tán một biến thể của OtterCookie, kết hợp các tính năng của BeaverTail và các phiên bản OtterCookie trước đó.
Mã độc npm

Các tác nhân đe dọa từ Triều Tiên đứng sau chiến dịch Contagious Interview đã tiếp tục tràn ngập kho lưu trữ npm với 197 gói mã độc mới kể từ tháng trước.

Theo Socket, các gói này đã được tải xuống hơn 31.000 lần và được thiết kế để phát tán một biến thể của OtterCookie, kết hợp các tính năng của BeaverTail và các phiên bản OtterCookie trước đó.

Một số gói "loader" được xác định được liệt kê dưới đây:

  • bcryptjs-node
  • cross-sessions
  • json-oauth
  • node-tailwind
  • react-adparser
  • session-keeper
  • tailwind-magic
  • tailwindcss-forms
  • webpack-loadcss

Sau khi được khởi chạy, mã độc cố gắng né tránh các sandboxes và máy ảo, lập hồ sơ máy tính, sau đó thiết lập kênh C2 (command-and-control) để cung cấp cho kẻ tấn công một remote shell, cùng với khả năng đánh cắp nội dung clipboard, ghi lại thao tác bàn phím (keystrokes), chụp ảnh màn hình và thu thập thông tin đăng nhập trình duyệt, tài liệu, dữ liệu ví tiền điện tử và các cụm từ hạt giống (seed phrases).

Đáng chú ý là sự khác biệt ngày càng mờ nhạt giữa OtterCookie và BeaverTail đã được Cisco Talos ghi nhận vào tháng trước, liên quan đến một vụ lây nhiễm ảnh hưởng đến hệ thống của một tổ chức có trụ sở tại Sri Lanka sau khi một người dùng có khả năng bị lừa chạy một Node.js application trong khuôn khổ một quy trình phỏng vấn việc làm giả mạo.

Sơ đồ tấn công npm

Phân tích sâu hơn đã xác định rằng các gói này được thiết kế để kết nối với một URL Vercel được mã hóa cứng ("tetrismic.vercel[.]app"), sau đó tiến hành tải payload OtterCookie đa nền tảng từ một GitHub repository do tác nhân đe dọa kiểm soát. Tài khoản GitHub đóng vai trò là phương tiện phân phối, stardev0914, hiện không còn truy cập được.

"Tốc độ tấn công liên tục này khiến Contagious Interview trở thành một trong những chiến dịch khai thác npm phổ biến nhất, và nó cho thấy các tác nhân đe dọa Triều Tiên đã thích nghi công cụ của họ kỹ lưỡng như thế nào với quy trình phát triển JavaScript và crypto-centric development workflows," nhà nghiên cứu bảo mật Kirill Boychenko cho biết.

Diễn biến này xảy ra khi các trang web đánh giá giả mạo do các tác nhân đe dọa tạo ra đã tận dụng các hướng dẫn kiểu ClickFix để phân phối mã độc được gọi là GolangGhost (còn gọi là FlexibleFerret hoặc WeaselStore) với lý do khắc phục sự cố camera hoặc microphone. Hoạt động này được theo dõi dưới tên gọi ClickFake Interview.

Được viết bằng Go, mã độc liên hệ với một C2 server được mã hóa cứng và đi vào một vòng lặp xử lý lệnh liên tục để thu thập thông tin hệ thống, tải lên/tải xuống tệp, chạy operating system commands và thu thập thông tin từ Google Chrome. Khả năng tồn tại dai dẳng (persistence) đạt được bằng cách ghi một macOS LaunchAgent kích hoạt thực thi thông qua một shell script tự động khi người dùng đăng nhập.

Cũng được cài đặt như một phần của chuỗi tấn công là một decoy application hiển thị một lời nhắc truy cập camera Chrome giả để duy trì sự lừa dối. Sau đó, nó hiển thị một lời nhắc mật khẩu kiểu Chrome thu thập nội dung người dùng nhập vào và gửi đến một tài khoản Dropbox.

"Mặc dù có một số điểm chồng chéo, chiến dịch này khác biệt so với các kế hoạch DPRK IT Worker khác tập trung vào việc cài cắm các tác nhân vào các legitimate businesses dưới false identities," Validin cho biết. "Ngược lại, Contagious Interview được thiết kế để thỏa hiệp các cá nhân thông qua các staged recruiting pipelines, malicious coding exercises và fraudulent hiring platforms, weaponizing the job application process itself."