-
09/04/2020
-
136
-
1.875 bài viết
Phát hiện mới mã độc trên PyPI: Cài nhầm thư viện Python có thể mất quyền máy tính
Các chuyên gia an ninh mạng vừa phát hiện một chiến dịch tấn công chuỗi cung ứng phần mềm mới nhắm vào cộng đồng lập trình viên Python thông qua kho thư viện PyPI - nền tảng được hàng triệu developer trên toàn cầu sử dụng để tải package phục vụ phát triển phần mềm.
Điểm đáng chú ý là chiến dịch này không chỉ phát tán mã độc thông thường mà còn sử dụng một kỹ thuật khá tinh vi: lợi dụng nền tảng chat công khai Zulip làm máy chủ điều khiển (C2), giúp mã độc “ẩn mình” tốt hơn trước các hệ thống giám sát bảo mật truyền thống.
Ba gói Python tưởng vô hại nhưng chứa mã độc
Theo báo cáo từ các nhà nghiên cứu của Kaspersky, ba package độc hại đã được phát hiện trên PyPI gồm:
- uuid32-utils
- colorinal
- termncolor
Các package này đã bị gỡ khỏi PyPI, nhưng trước đó đã ghi nhận hàng nghìn lượt tải xuống. Bề ngoài, các thư viện này hoạt động đúng như mô tả để tránh gây nghi ngờ. Tuy nhiên, mục đích thực sự là bí mật cài mã độc có tên ZiChatBot lên hệ thống Windows và Linux của nạn nhân.
Đây là kiểu tấn công đặc biệt nguy hiểm vì lập trình viên thường có xu hướng tin tưởng các package trên PyPI, nhất là những thư viện có tên “na ná” các package phổ biến.
Đây là kiểu tấn công đặc biệt nguy hiểm vì lập trình viên thường có xu hướng tin tưởng các package trên PyPI, nhất là những thư viện có tên “na ná” các package phổ biến.
ZiChatBot hoạt động như thế nào?
Khi lập trình viên cài đặt một trong các package độc hại, mã độc sẽ âm thầm triển khai các file thực thi xuống máy tính. Trên Windows, package sẽ thả một file DLL có tên terminate.dll. Khi thư viện được import vào project Python, DLL này sẽ tiếp tục tải ZiChatBot vào hệ thống, tạo cơ chế tự khởi động cùng Windows thông qua Registry rồi tự xóa dấu vết ban đầu để tránh bị phát hiện.
Trên Linux, file terminate.so sẽ cài mã độc vào thư mục /tmp/obsHub/obs-check-update và thêm tác vụ cron để tự động chạy định kỳ.
Sau khi hoạt động, ZiChatBot có thể nhận shellcode hoặc lệnh từ xa để thực thi trực tiếp trên máy nạn nhân. Điều đáng chú ý là thay vì kết nối tới máy chủ điều khiển bí mật như malware truyền thống, mã độc lại sử dụng API của ứng dụng chat Zulip để nhận lệnh và gửi phản hồi. Sau khi hoàn thành lệnh, malware thậm chí còn gửi biểu tượng trái tim để báo cho phía điều khiển biết việc thực thi đã thành công.
Trên Linux, file terminate.so sẽ cài mã độc vào thư mục /tmp/obsHub/obs-check-update và thêm tác vụ cron để tự động chạy định kỳ.
Sau khi hoạt động, ZiChatBot có thể nhận shellcode hoặc lệnh từ xa để thực thi trực tiếp trên máy nạn nhân. Điều đáng chú ý là thay vì kết nối tới máy chủ điều khiển bí mật như malware truyền thống, mã độc lại sử dụng API của ứng dụng chat Zulip để nhận lệnh và gửi phản hồi. Sau khi hoàn thành lệnh, malware thậm chí còn gửi biểu tượng trái tim để báo cho phía điều khiển biết việc thực thi đã thành công.
Vì sao kỹ thuật này nguy hiểm?
Thông thường, các hệ thống bảo mật doanh nghiệp sẽ giám sát lưu lượng kết nối tới các máy chủ đáng ngờ hoặc domain lạ. Nhưng trong trường hợp này, mã độc lại giao tiếp với một nền tảng chat hợp pháp và công khai. Điều đó khiến traffic độc hại dễ “lọt lưới” vì nhìn bề ngoài gần giống hoạt động bình thường của ứng dụng web.
Ngoài ra, việc lợi dụng package Python còn khiến nguy cơ lan rộng hơn rất nhiều. Chỉ cần một developer cài nhầm package vào môi trường phát triển nội bộ, mã độc có thể:
Ngoài ra, việc lợi dụng package Python còn khiến nguy cơ lan rộng hơn rất nhiều. Chỉ cần một developer cài nhầm package vào môi trường phát triển nội bộ, mã độc có thể:
- Đánh cắp dữ liệu
- Cài backdoor
- Chiếm quyền máy chủ
- Di chuyển ngang trong mạng nội bộ
- Xâm nhập chuỗi build phần mềm
Trong nhiều trường hợp, đây có thể trở thành điểm khởi đầu cho các cuộc tấn công quy mô lớn vào doanh nghiệp.
Nghi vấn liên quan nhóm APT32/OceanLotus
Các nhà nghiên cứu cho biết đoạn dropper của chiến dịch này có độ tương đồng khoảng 64% với công cụ từng được sử dụng bởi nhóm tin tặc OceanLotus (APT32) – một nhóm hacker bị cho là có liên hệ với Việt Nam.
Trước đó, nhóm này từng bị phát hiện phát tán project Visual Studio Code giả mạo plugin Cobalt Strike để cài trojan lên máy nạn nhân. Khi đó, malware sử dụng nền tảng Notion làm hạ tầng điều khiển thay vì máy chủ C2 truyền thống.
Dù chưa thể khẳng định chắc chắn chiến dịch PyPI lần này do OceanLotus thực hiện, các chuyên gia nhận định nhóm tấn công đang mở rộng chiến thuật, chuyển từ phishing truyền thống sang tấn công chuỗi cung ứng phần mềm nhằm vào cộng đồng developer.
Trước đó, nhóm này từng bị phát hiện phát tán project Visual Studio Code giả mạo plugin Cobalt Strike để cài trojan lên máy nạn nhân. Khi đó, malware sử dụng nền tảng Notion làm hạ tầng điều khiển thay vì máy chủ C2 truyền thống.
Dù chưa thể khẳng định chắc chắn chiến dịch PyPI lần này do OceanLotus thực hiện, các chuyên gia nhận định nhóm tấn công đang mở rộng chiến thuật, chuyển từ phishing truyền thống sang tấn công chuỗi cung ứng phần mềm nhằm vào cộng đồng developer.
Người dùng và doanh nghiệp cần làm gì?
Các chuyên gia khuyến cáo lập trình viên và doanh nghiệp cần đặc biệt cẩn trọng khi cài package từ PyPI, kể cả những thư viện có vẻ “bình thường”.
Một số biện pháp quan trọng gồm:
Một số biện pháp quan trọng gồm:
- Kiểm tra kỹ tên package trước khi cài đặt
- Chỉ sử dụng thư viện từ nguồn đáng tin cậy
- Theo dõi package có ít lượt tải hoặc mới tạo
- Kiểm tra dependency trước khi triển khai vào production
- Giám sát kết nối bất thường từ môi trường phát triển
- Sử dụng công cụ quét supply chain và dependency security
Ngoài ra, doanh nghiệp nên rà soát log hệ thống để phát hiện các dấu hiệu như:
- Kết nối lạ tới Zulip API
- File DLL/SO đáng ngờ
- Tác vụ cron bất thường
- Registry autorun không rõ nguồn gốc
Vụ việc cho thấy các cuộc tấn công chuỗi cung ứng phần mềm đang ngày càng tinh vi và khó phát hiện hơn. Thay vì tấn công trực tiếp vào doanh nghiệp, hacker đang chuyển sang nhắm vào các công cụ và thư viện mà lập trình viên sử dụng hằng ngày. Điều nguy hiểm là chỉ một package Python nhỏ tưởng như vô hại cũng có thể trở thành “cửa hậu” giúp tin tặc xâm nhập sâu vào hệ thống nội bộ của tổ chức.
Theo The Hacker News