Cảnh báo: Tính năng PyPI tự động thực thi mã sau khi tải xuống gói Python

Thực thi mã PyPi

Trong một phát hiện khác có thể khiến các nhà phát triển tăng nguy cơ bị tấn công , gần một phần ba các gói trong PyPI, Chỉ mục gói Python, kích hoạt thực thi mã tự động khi tải chúng xuống.

“Một tính năng đáng lo ngại trong pip / PyPI cho phép mã tự động chạy khi các nhà phát triển chỉ đơn thuần tải xuống một gói”, nhà nghiên cứu Yehuda Gelb của Checkmarx cho biết trong một báo cáo kỹ thuật được công bố tuần này.

“Ngoài ra, tính năng này cũng đáng báo động do rất nhiều gói mã độc mà chúng tôi đang tìm thấy đang sử dụng tính năng thực thi mã này khi cài đặt để đạt được tỷ lệ lây nhiễm cao hơn.”

Một trong những cách mà các gói có thể được cài đặt cho Python là thực hiện lệnh “pip install”, lệnh này sẽ gọi một tệp có tên “setup.py” đi kèm với mô-đun.

“setup.py”, như tên của nó, là một tập lệnh thiết lập được sử dụng để chỉ định siêu dữ liệu được liên kết với gói, bao gồm cả các phần phụ thuộc của nó.

Mặc dù các tác nhân đe dọa đã sử dụng đến việc kết hợp mã độc hại trong tệp setup.py, Checkmarx nhận thấy rằng những kẻ thù địch có thể đạt được các mục tiêu tương tự bằng cách chạy lệnh “tải xuống pip”.

“Tải xuống pip có cùng độ phân giải và tải xuống như cài đặt pip, nhưng thay vì cài đặt các phần phụ thuộc, nó thu thập các bản phân phối đã tải xuống vào thư mục được cung cấp (mặc định là thư mục hiện tại)”, tài liệu viết.

Xem tiếp:   Báo cáo tiền thưởng về lỗi do clickjacking giả mạo: Sự thật chính

Thực thi mã PyPi

Nói cách khác, lệnh có thể được sử dụng để tải xuống một gói Python mà không cần phải cài đặt nó trên hệ thống. Nhưng hóa ra, việc thực thi lệnh tải xuống cũng chạy tập lệnh “setup.py” nói trên, dẫn đến việc thực thi mã độc hại có trong nó.

Tuy nhiên, cần lưu ý rằng sự cố chỉ xảy ra khi gói chứa tệp tar.gz thay vì tệp bánh xe (.whl), tệp này “cắt việc thực thi ‘setup.py' ra khỏi phương trình.”

“Các nhà phát triển chọn tải xuống, thay vì cài đặt các gói, hy vọng một cách hợp lý rằng không có mã nào sẽ chạy trên máy khi tải tệp xuống”, Gelb lưu ý, mô tả đó là một vấn đề thiết kế hơn là một lỗi.

Mặc dù pip mặc định sử dụng bánh xe thay vì tệp tar.gz, kẻ tấn công có thể lợi dụng hành vi này để cố tình xuất bản các gói python mà không có tệp .whl, dẫn đến việc thực thi mã độc hại có trong tập lệnh thiết lập.

Gelb nói: “Khi người dùng tải xuống gói python từ PyPi, pip sẽ ưu tiên sử dụng tệp .whl, nhưng sẽ trở lại tệp tar.gz nếu thiếu tệp .whl.

Phát hiện này được đưa ra khi Cơ quan An ninh Quốc gia Hoa Kỳ (NSA), cùng với Cơ quan và Cơ sở hạ tầng (CISA) và Văn phòng Giám đốc Tình báo Quốc gia (ODNI), đưa ra hướng dẫn để đảm bảo chuỗi cung ứng phần mềm.

Xem tiếp:   Tin tặc JuiceLedger đứng sau các cuộc tấn công lừa đảo gần đây chống lại người dùng PyPI

Cơ quan này cho biết: “Khi tiếp tục trở nên tinh vi hơn, các đối thủ đã bắt đầu tấn công vào chuỗi cung ứng phần mềm, thay vì dựa vào các lỗ hổng đã được biết đến công khai”. “Cho đến khi tất cả DevOps đều là DevSecOps, vòng đời phát triển phần mềm sẽ gặp rủi ro.”

.

Check Also

JumpCloud đổ lỗi cho diễn viên ‘Nhà nước quốc gia tinh vi’ vì vi phạm an ninh

Ngày 18 tháng 7 năm 2023THNBảo mật dữ liệu / Tấn công mạng Hơn một …