Gói Python độc hại trên PyPI sử dụng Unicode như một kỹ thuật che giấu để tránh bị phát hiện trong khi đánh cắp và lấy cắp thông tin đăng nhập tài khoản của nhà phát triển cũng như dữ liệu nhạy cảm khác từ các thiết bị bị xâm nhập.
Gói độc hại, có tên là "onyxproxy", sử dụng kết hợp các phông chữ Unicode khác nhau trong mã nguồn để giúp nó vượt qua quá trình quét và phòng thủ 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.
Việc phát hiện ra onyxproxy đến từ các chuyên gia an ninh mạng tại Phylum , người đã xuất bản một báo cáo giải thích về kỹ thuật này.
Gói này không còn khả dụng trên PyPI, đã bị xóa khỏi nền tảng ngày hôm qua. Tuy nhiên, kể từ khi xuất bản trên nền tảng này vào ngày 15 tháng 3, gói độc hại đã thu được 183 lượt tải xuống .
Unicode là một tiêu chuẩn mã hóa ký tự toàn diện bao gồm nhiều loại chữ viết và ngôn ngữ, thống nhất các bộ/sơ đồ khác nhau theo một tiêu chuẩn chung bao gồm hơn 100.000 ký tự.
Nó được tạo ra để giúp duy trì khả năng tương tác và trình bày văn bản nhất quán trên các ngôn ngữ và nền tảng khác nhau, đồng thời loại bỏ xung đột mã hóa và các sự cố hỏng dữ liệu.
Gói "onyxproxy" 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ư bình thường khi kiểm tra trực quan, 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.
Ví dụ: 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.v. Ví dụ: định danh "bản thân" 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", lớn hơn và có nhiều biến thể, dễ dàng đánh bại 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ẻ vô hại trong khi vẫn thực hiện 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 ngoài tự nhiên 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.
"Tuy nhiên, bất kỳ ai mà tác giả này đã sao chép mã bị xáo trộn này đều đủ thông minh để biết cách sử dụng phần bên trong của trình thông dịch Python để tạo ra một loại mã bị xáo trộn mới lạ, một loại có thể đọc được phần nào mà không tiết lộ quá nhiều chính xác mã đó là gì. cố gắng ăn cắp," Phylum kết luận.
Trước đây, các rủi ro của Unicode trong Python đã được thảo luận rộng rãi trong cộng đồng phát triển Python.
Các nhà nghiên cứu và nhà phát triển khác trước đây cũng đã cảnh báo rằng hỗ trợ Unicode trong Python sẽ khiến ngôn ngữ lập trình 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 năm 2021, các nhà nghiên cứu hàn lâm đã trình bày một cuộc tấn công lý thuyết có tên là " Nguồn Trojan " 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 đó.
Tóm lại, các cuộc tấn công này hiện đã được xác nhận và những người bảo vệ phải triển khai các cơ chế phát hiện mạnh mẽ hơn để chống lại các mối đe dọa mới nổi này.
Mời quý khách đặt trước (trả sau) để nv tiện gọi lại tư vấn bằng livestream cụ thể cho khách chụp màn hình để đồng kiểm. Công Tắc Công Suất Cao Tuya Wifi 20a Lắp Bình Nóng Lạnh mua ở đây sẽ được bảo hành 36 tháng + bh mở rộng, bh rơi vở vô nước chạm cháy tại trungtambaohanh.com, phục vụ 24/7 tại nhà nhằm đảm bảo tối đa tính an toàn riêng tư dữ liệu cho người dùng, chỉ cần đặt hàng trước 24h quý khách được tặng gói bảo hiểm phần cứng và phần mềm.