Ngày 24 tháng 3 năm 2023Ravie LakshmananDevSecOps / Bảo mật phần mềm
Một gói Python độc hại trên kho lưu trữ chỉ mục gói python (PyPI) đã được phát hiện sử dụng Unicode như một thủ thuật để tránh bị phát hiện và triển khai phần mềm độc hại đánh cắp thông tin.
Gói được đề cập, có tên là onyxproxy, đã được tải lên PyPI vào ngày 15 tháng 3 năm 2023 và đi kèm với các khả năng thu thập và lọc thông tin xác thực cũng như dữ liệu có giá trị khác. Nó đã bị gỡ xuống kể từ đó, nhưng không phải trước khi thu hút được tổng cộng 183 lượt tải xuống.
Theo công ty bảo mật chuỗi cung ứng phần mềm Phylum, gói này kết hợp hành vi độc hại của nó trong một tập lệnh thiết lập chứa hàng nghìn chuỗi mã có vẻ hợp pháp.
Các chuỗi này bao gồm hỗn hợp các phông chữ đậm và nghiêng, đồng thời vẫn có thể đọc được và có thể được phân tích cú pháp bằng trình thông dịch Python, chỉ để kích hoạt việc thực thi phần mềm độc hại đánh cắp khi cài đặt gói.
Công ty lưu ý: “Một lợi ích rõ ràng và ngay lập tức của sơ đồ kỳ lạ này là khả năng đọc được”. “Hơn nữa, những khác biệt có thể nhìn thấy này không ngăn mã chạy, mà đúng như vậy.”
Điều này có thể thực hiện được nhờ việc sử dụng các biến thể Unicode của những gì có vẻ là cùng một ký tự (hay còn gọi là homoglyphs) để ngụy trang cho màu sắc thực của nó (ví dụ: self so với 𝘀𝘦𝘭𝘧) giữa các hàm và biến trông có vẻ vô thưởng vô phạt.
Việc sử dụng Unicode để đưa các lỗ hổng vào mã nguồn trước đây đã được tiết lộ bởi các nhà nghiên cứu của Đại học Cambridge Nicholas Boucher và Ross Anderson trong một kỹ thuật tấn công có tên là Nguồn Trojan.
Điều mà phương pháp này thiếu tinh tế, nó bù đắp bằng cách tạo ra một đoạn mã mới lạ, mặc dù có dấu hiệu rõ ràng về nỗ lực sao chép-dán từ các nguồn khác.
Quá trình phát triển nêu bật nỗ lực liên tục của một số tác nhân đe dọa nhằm tìm ra các cách mới để vượt qua các biện pháp phòng thủ dựa trên khớp chuỗi, tận dụng “cách trình thông dịch Python xử lý Unicode để làm xáo trộn phần mềm độc hại của chúng.”
Trên một lưu ý liên quan, công ty an ninh mạng PyUp của Canada đã trình bày chi tiết việc phát hiện ra ba gói Python lừa đảo mới – aiotoolbox, asyncio-proxy và pycolorz – đã được tải xuống tích lũy hơn 1.000 lần và được thiết kế để truy xuất mã bị xáo trộn từ một máy chủ từ xa.