Cảnh Báo Mã Độc Pyronut: RCE Nghiêm Trọng Qua Chuỗi Cung Ứng

Một gói Python độc hại có tên pyronut đã được phát hiện trên Python Package Index (PyPI). Gói này nhắm mục tiêu vào các nhà phát triển xây dựng bot Telegram bằng cách mạo danh framework pyrogram phổ biến. Sự xuất hiện của mã độc pyronut đặt ra mối đe dọa đáng kể cho cộng đồng phát triển.
Thay vì dựa vào lỗi chính tả (typosquatting), tác nhân đe dọa đã sao chép toàn bộ mô tả dự án của pyrogram một cách chính xác. Điều này tạo ra một bản sao trojan hóa, được các nhà nghiên cứu mô tả là một “malicious fork”, nhằm tiếp cận nạn nhân thông qua kỹ thuật xã hội.
Tổng quan về Mã độc Pyronut và Kỹ thuật Tấn công
Kỹ thuật Ngụy trang và Phân phối
Framework pyrogram thu hút khoảng 370.000 lượt tải xuống mỗi tháng, biến nó thành mục tiêu có giá trị cao cho kiểu tấn công mạo danh này. Gói pyronut đã sao chép trang dự án của pyrogram mà không thêm bất kỳ tính năng mới nào. Đáng chú ý, URL kho lưu trữ GitHub được liệt kê của nó trỏ đến một trang không tồn tại.
Điều này cho thấy gói này được phân phối thông qua các cộng đồng Telegram và diễn đàn nhà phát triển, thay vì được phát hiện ngẫu nhiên. Ba phiên bản độc hại đã được xuất bản: 2.0.184, 2.0.185 và 2.0.186.
Các nhà nghiên cứu của Endor Labs đã xác định cả ba phiên bản này vào ngày 18 tháng 3 năm 2026 — cùng ngày chúng xuất hiện trên PyPI. Họ đã nhanh chóng cách ly chúng trong vòng vài giờ. Phản ứng nhanh chóng này đã giữ cho cửa sổ tấn công ngắn và giảm số lượng nhà phát triển có nguy cơ.
Tuy nhiên, bất kỳ nhà phát triển nào có bot chạy gói này trong khoảng thời gian ngắn đó đều bị lộ hoàn toàn nguy cơ bị xâm nhập. Đây là một ví dụ điển hình về nguy cơ từ tấn công chuỗi cung ứng phần mềm.
Chiến lược Kích hoạt Khó Phát hiện
Điều khiến mã độc pyronut đặc biệt khó phát hiện là chiến lược kích hoạt trong thời gian chạy của nó. Không giống như hầu hết các gói độc hại thực thi mã độc hại thông qua các hook setup.py tại thời điểm cài đặt, pyronut hoàn toàn không hoạt động cho đến khi nhà phát triển thực sự chạy bot của họ.
Nó nhúng một module backdoor ẩn tại pyrogram/helpers/secret.py. Module này được tải âm thầm mỗi khi client Telegram khởi động, bỏ qua hoàn toàn các kiểm tra bảo mật tiêu chuẩn tại thời điểm cài đặt.
Cơ chế Hoạt động và Khả năng Khai thác của Pyronut
Khả năng Remote Code Execution (RCE)
Hậu quả của một lây nhiễm thành công là nghiêm trọng. Một khi backdoor được kích hoạt, kẻ tấn công có được khả năng Remote Code Execution (RCE) kép. Điều này cho phép chạy mã Python tùy ý và các lệnh shell tùy ý trên máy của nạn nhân.
Khả năng này mở ra cánh cửa cho việc đánh cắp thông tin xác thực, trích xuất dữ liệu, di chuyển ngang qua các hệ thống và chiếm quyền kiểm soát hoàn toàn phiên Telegram đang hoạt động của nạn nhân. Đây là một mối đe dọa nghiêm trọng liên quan đến remote code execution.
Quy trình Kích hoạt Backdoor
Backdoor được kích hoạt ngay khi nhà phát triển gọi phương thức Client.start(). Đây là một bước cốt lõi trong cách mọi bot Telegram dựa trên pyrogram khởi tạo.
Tác nhân đe dọa đã sửa đổi phương thức này bên trong pyrogram/methods/utilities/start.py để âm thầm import và chạy module secret.py ẩn mỗi khi một client khởi động.
Điểm quan trọng là toàn bộ lệnh gọi được gói trong một khối try/except: pass trần trụi. Do đó, nếu backdoor gặp bất kỳ lỗi nào, nó sẽ thất bại một cách âm thầm và bot vẫn tiếp tục chạy bình thường, làm tăng tính khó phát hiện của mã độc pyronut.
Các Lệnh Điều khiển và Phương thức Liên lạc
Một khi đã chạy, backdoor đăng ký hai trình xử lý tin nhắn ẩn trên client Telegram của nạn nhân, được liên kết với hai ID tài khoản kẻ tấn công được mã hóa cứng.
- Trình xử lý thứ nhất: Được kích hoạt bởi lệnh
/e, sử dụng thư việnmevalđể chạy mã Python tùy ý bên trong phiên trực tiếp. Điều này cấp quyền truy cập đầy đủ vào tin nhắn, danh bạ và các chức năng API Telegram. - Trình xử lý thứ hai: Lệnh
/shelltruyền trực tiếp các lệnh đến/bin/bashthông quasubprocess, cung cấp cho kẻ tấn công quyền truy cập hệ thống không hạn chế.
Backdoor cũng bỏ qua việc cài đặt trên các tài khoản của chính kẻ tấn công — một dấu hiệu rõ ràng của ý định độc hại có chủ đích.
Kết quả của các lệnh được gửi lại cho kẻ tấn công thông qua chính Telegram. Các kết quả được trả về trong cùng cuộc trò chuyện nơi các lệnh đã được gửi. Điều này có nghĩa là hoạt động không để lại bất kỳ kết nối mạng bên ngoài bất thường, không có truy vấn DNS đáng ngờ và không có miền C2 nào để các công cụ giám sát gắn cờ. Điều này làm cho backdoor cực kỳ khó phát hiện thông qua phân tích mạng thông thường.
Tham khảo thêm chi tiết về phân tích gói pyronut độc hại tại Endor Labs.
Phân tích Chuyên sâu Mã độc Pyronut – Endor Labs
Các Chỉ dẫn Phát hiện và Biện pháp Khắc phục
Hành động Khắc phục Ngay lập tức
Các nhà phát triển có thể đã cài đặt mã độc pyronut nên ngay lập tức gỡ cài đặt gói này và xây dựng lại các môi trường ảo bị ảnh hưởng từ một trạng thái sạch, đã được xác minh. Tất cả các biến môi trường, khóa API, khóa SSH và mật khẩu cơ sở dữ liệu có thể truy cập được bởi tiến trình bị xâm nhập nên được coi là đã bị lộ và phải được xoay vòng ngay lập tức.
Các phiên Telegram đang hoạt động phải được chấm dứt và tất cả các token Bot API phải được thu hồi ngay lập tức. Việc áp dụng các biện pháp này là tối quan trọng để đảm bảo an toàn thông tin.
Thực hành Tốt nhất để Phòng ngừa
Các tệp phụ thuộc như requirements.txt, Pipfile và pyproject.toml nên được xem xét thường xuyên để tìm các gói không mong muốn. Nên sử dụng lockfiles với mã băm mật mã để ngăn chặn các thay thế âm thầm.
Chạy các ứng dụng theo nguyên tắc đặc quyền tối thiểu (least privilege) và tích hợp các công cụ Phân tích Thành phần Phần mềm (Software Composition Analysis – SCA) vào các quy trình CI/CD sẽ giảm đáng kể nguy cơ bị tấn công chuỗi cung ứng tương tự. Các biện pháp này góp phần củng cố bảo mật PyPI và hệ sinh thái phát triển Python nói chung.
Việc cảnh giác và tuân thủ các thực hành bảo mật tốt nhất là rất quan trọng để chống lại các mối đe dọa từ các gói độc hại như mã độc pyronut.







