Gói độc hại Python có tên là “onyxproxy”, là một trình đánh cắp thông tin nhắm mục tiêu thông tin đăng nhập của các nhà phát triển và mã thông báo xác thực, phần mềm độc hại này sử dụng kết hợp các phông chữ Unicode khác nhau (bao gồm các phông chữ đậm và nghiêng) trong mã nguồn để giúp nó vượt qua quá trình quét và bảo mật tự động xác định các chức năng độc hại tiềm ẩn dựa trên kết hợp chuỗi.
Hiện tại, “onyxproxy” không còn khả dụng trên PyPI và đã bị xóa khỏi nền tảng này. Tuy nhiên, kể từ khi được tải lên PyPI vào ngày 15/3, gói độc hại đã có 183 lượt tải xuống, điều này đồng nghĩa có tới 183 nhà phát triển khác nhau có nguy cơ bị đánh cắp thông tin xác thực và danh tính.
Unicode bị lạm dụng trong Python
Unicode là tiêu chuẩn mã hóa toàn cầu được sử dụng cho nhiều ngôn ngữ và chữ viết khác nhau, bao gồm hơn 100.000 ký tự. Với Unicode, mọi chữ cái, chữ số và ký hiệu đều có một giá trị số duy nhất không thay đổi, bất kể chương trình hoặc nền tảng đang được sử dụng.
Phần mềm độc hại chứa gói "setup.py" với hàng nghìn chuỗi mã đáng ngờ sử dụng kết hợp các ký tự Unicode.
Sử dụng kết hợp các ký tự Unicode
Mặc dù văn bản trong các chuỗi này, bên cạnh các phông chữ khác nhau, trông gần như không có vấn đề gì, nhưng nó tạo ra sự khác biệt lớn đối với trình thông dịch Python sẽ phân tích cú pháp và nhận ra các ký tự này về cơ bản là khác nhau.
Điều này có thể thực hiện được nhờ vào việc sử dụng các biến thể Unicode trông như cùng một ký tự để ngụy trang cho màu sắc thật của nó (ví dụ: self so với 𝘀𝘦𝘭𝘧) giữa các hàm và biến. Phylum giải thích rằng Unicode có 5 biến thể cho chữ “n” và 19 biến thể cho chữ “s” để sử dụng trong các ngôn ngữ, toán học khác nhau. Ví dụ: định danh "self" có 122.740 (19x19x20x17) cách để được biểu diễn bằng Unicode.
Việc Python hỗ trợ sử dụng các ký tự Unicode cho các mã định danh, tức là các biến mã, hàm, lớp, mô-đun và các đối tượng khác, cho phép các lập trình viên tạo các mã định danh trông giống hệt nhau nhưng trỏ đến các hàm khác nhau.
Trong trường hợp của “onyxproxy”, các tác giả đã sử dụng các mã định danh “__import__”, “sub process” và “CryptUnprotectData” với nhiều biến thể, khiến chúng trở nên dễ dàng để vượt qua các biện pháp phòng thủ dựa trên khớp chuỗi.
Số lượng biến thể cho số nhận dạng đã sử dụng
Hỗ trợ Unicode của Python có thể dễ dàng bị lạm dụng để che giấu các kết quả khớp chuỗi độc hại, làm cho mã có vẻ như bình thường nhưng lại đang thực hiện các hành vi nguy hiểm. Trong trường hợp này, việc đánh cắp dữ liệu nhạy cảm và mã thông báo xác thực từ các nhà phát triển.
Mặc dù phương pháp che giấu này không đặc biệt tinh vi, nhưng thật đáng lo ngại khi thấy nó được sử dụng trên thực tế và có thể là dấu hiệu của việc lạm dụng rộng rãi hơn Unicode để che giấu Python.
Trước đây, các rủi ro của Unicode trong Python cũng đã được thảo luận rộng rãi trong cộng đồng ngôn ngữ Python. Các nhà nghiên cứu cũng đã từng đưa ra cảnh báo rằng hỗ trợ Unicode trong Python sẽ khiến ngôn ngữ lập trình này dễ bị tấn công bởi một loại khai thác bảo mật mới, khiến các bản vá và mã được gửi trở nên khó kiểm tra hơn.
Vào tháng 11/2021, hai nhà nghiên cứu Nicholas Boucher và Ross Anderson tới từ Đại học Cambridge đã trình bày một kỹ thuật tấn công có tên gọi là "Trojan Source", trong đó sử dụng các ký tự điều khiển Unicode để đưa các lỗ hổng vào mã nguồn, đồng thời khiến người đánh giá khó phát hiện ra những hành vi xâm nhập độc hại đó.
Bên cạnh “onyxproxy”, công ty an ninh mạng PyUp của Canada cho biết họ đã phát hiện ra ba gói thư viện Python lừa đảo mới, bao gồm “aiotoolbox”, “asyncio-proxy” và “pycolorz”, đã được tải xuống hơn 1.000 lần và được thiết kế để truy xuất mã bị xáo trộn (obfuscated) từ một máy chủ từ xa.
Hồng Đạt
10:00 | 16/02/2023
12:00 | 28/04/2023
10:00 | 04/01/2023
10:00 | 18/01/2023
07:00 | 11/03/2024
Mới đây, các nhà nghiên cứu của hãng bảo mật Kaspersky (Nga) đã phát hiện một Trojan ngân hàng tinh vi mới đánh cắp thông tin tài chính nhạy cảm có tên là Coyote, mục tiêu là người dùng của hơn 60 tổ chức ngân hàng, chủ yếu từ Brazil. Điều chú ý là chuỗi lây nhiễm phức tạp của Coyote sử dụng nhiều kỹ thuật tiên tiến khác nhau, khiến nó khác biệt với các trường hợp lây nhiễm Trojan ngân hàng trước đó. Phần mềm độc hại này sử dụng trình cài đặt Squirrel để phân phối, tận dụng NodeJS và ngôn ngữ lập trình đa nền tảng tương đối mới có tên Nim làm trình tải (loader) trong chuỗi lây nhiễm. Bài viết này sẽ phân tích hoạt động và khám phá khả năng của Trojan ngân hàng này.
08:00 | 06/02/2024
GitLab vừa phát hành các bản vá lỗi để giải quyết một lỗ hổng bảo mật nghiêm trọng trong phiên bản dành cho cộng đồng (CE) và phiên bản dành cho doanh nghiệp (EE). Lỗ hổng có thể bị khai thác để ghi các tệp tùy ý trong khi tạo workspace.
15:00 | 19/01/2024
Ngày 16/1, Google đã phát hành bản cập nhật để khắc phục bốn vấn đề bảo mật trong trình duyệt Chrome, trong đó có một lỗ hổng zero-day đã bị khai thác tích cực trong thực tế.
08:00 | 04/11/2023
Mới đây, truyền thông Ấn Độ đưa tin về việc thông tin cá nhân của 815 triệu người Ấn Độ được rao bán công khai trên một diễn đàn web đen.
Công ty an ninh mạng Palo Alto Networks (Mỹ) chuyên cung cấp giải pháp tường lửa cảnh báo một lỗ hổng zero-day nghiêm trọng mới, với điểm CVSS tối đa 10/10. Nếu bị khai thác, kẻ tấn công có thể thực thi mã tùy ý với đặc quyền root mà không cần xác thực.
15:00 | 16/04/2024