Phát hiện hơn 22.000 gói PyPI đã xóa có nguy cơ bị tấn công trở lại

Tác giả ChatGPT, T.Chín 05, 2024, 06:56:43 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Một kỹ thuật tấn công chuỗi cung ứng mới nhắm vào sổ đăng ký Python Package Index (PyPI) đã bị khai thác trong thực tế nhằm xâm nhập vào các tổ chức hạ nguồn.

Công ty bảo mật chuỗi cung ứng phần mềm JFrog đã đặt tên mã cho nó là Revival Hijack, cho biết phương pháp tấn công này có thể được sử dụng để chiếm đoạt 22.000 gói PyPI hiện có và dẫn đến "hàng trăm nghìn" lượt tải xuống gói độc hại. Các gói dễ bị tấn công này có hơn 100.000 lượt tải xuống hoặc đã hoạt động trong hơn sáu tháng.


Các nhà nghiên cứu bảo mật Andrey Polkovnychenko và Brian Moussalli của JFrog cho biết trong một báo cáo chia sẻ với The Hacker News: "Kỹ thuật tấn công này liên quan đến việc chiếm đoạt các gói phần mềm PyPI bằng cách thao túng tùy chọn đăng ký lại chúng sau khi chúng bị chủ sở hữu ban đầu xóa khỏi chỉ mục của PyPI".

Về cơ bản, cuộc tấn công này xoay quanh thực tế là một số gói Python được công bố trong kho lưu trữ PyPI sẽ bị xóa, khiến bất kỳ người dùng nào khác cũng có thể đăng ký chúng.

Số liệu thống kê do JFrog chia sẻ cho thấy trung bình mỗi tháng có khoảng 309 gói bị xóa. Điều này có thể xảy ra vì nhiều lý do: Thiếu bảo trì (tức là phần mềm bị bỏ rơi), gói được xuất bản lại dưới tên khác hoặc đưa cùng chức năng vào thư viện chính thức hoặc API tích hợp.

Điều này cũng tạo ra một bề mặt tấn công sinh lợi, hiệu quả hơn so với việc đánh cắp tên miền và kẻ tấn công có thể khai thác bằng cách sử dụng tài khoản của riêng mình để phát hành các gói độc hại dưới cùng tên và phiên bản cao hơn nhằm lây nhiễm vào môi trường dành cho nhà phát triển.

"Kỹ thuật này không dựa vào việc nạn nhân mắc lỗi khi cài đặt gói", các nhà nghiên cứu cho biết, đồng thời chỉ ra cách Revival Hijack có thể mang lại kết quả tốt hơn theo quan điểm của kẻ tấn công. "Nhiều người dùng coi việc cập nhật một gói 'từng an toàn' lên phiên bản mới nhất là một hoạt động an toàn".

Mặc dù PyPI có các biện pháp bảo vệ chống lại việc mạo danh tác giả và các nỗ lực đánh máy sai, nhưng phân tích của JFrog phát hiện ra rằng việc chạy lệnh " pip list --outdated " sẽ liệt kê gói giả mạo là phiên bản mới của gói gốc, trong khi gói gốc tương ứng với một gói khác từ một tác giả hoàn toàn khác.

Đáng lo ngại hơn nữa là việc chạy lệnh " pip install –upgrade " sẽ thay thế gói thực tế bằng gói giả mà không hề có cảnh báo nào cho biết tác giả của gói đã thay đổi, có khả năng khiến các nhà phát triển không biết gì phải đối mặt với rủi ro lớn về chuỗi cung ứng phần mềm.

JFrog cho biết họ đã thực hiện bước tạo một tài khoản người dùng PyPI mới có tên là " security_holding " để sử dụng một cách an toàn để chiếm đoạt các gói dễ bị tấn công và thay thế chúng bằng các chỗ giữ chỗ trống nhằm ngăn chặn những kẻ xấu lợi dụng các gói đã xóa.

Ngoài ra, mỗi gói trong số này đã được chỉ định số phiên bản là 0.0.0.1 – ngược lại với kịch bản tấn công nhầm lẫn phụ thuộc – để tránh bị các nhà phát triển kéo khi chạy lệnh nâng cấp pip.

Điều đáng lo ngại hơn là Revival Hijack đã bị khai thác trong thực tế, với một tác nhân đe dọa chưa xác định tên là Jinnis đã giới thiệu phiên bản vô hại của gói có tên " pingdomv3 " vào ngày 30 tháng 3 năm 2024, cùng ngày mà chủ sở hữu ban đầu (cheneyyan) đã xóa gói này khỏi PyPI.

Vào ngày 12 tháng 4 năm 2024, nhà phát triển mới được cho là đã phát hành bản cập nhật có chứa nội dung được mã hóa Base64 để kiểm tra sự hiện diện của biến môi trường " JENKINS_URL " và nếu có, sẽ thực thi một mô-đun giai đoạn tiếp theo không xác định được truy xuất từ máy chủ từ xa.

JFrog cho biết: "Điều này cho thấy kẻ tấn công đã trì hoãn việc triển khai cuộc tấn công hoặc thiết kế cuộc tấn công có mục tiêu cụ thể hơn, có thể giới hạn trong một phạm vi IP cụ thể".

Cuộc tấn công mới là dấu hiệu cho thấy các tác nhân đe dọa đang để mắt đến các cuộc tấn công chuỗi cung ứng trên quy mô rộng hơn bằng cách nhắm mục tiêu vào các gói PyPI đã xóa để mở rộng phạm vi của các chiến dịch. Các tổ chức và nhà phát triển được khuyến nghị kiểm tra các đường ống DevOps của họ để đảm bảo rằng họ không cài đặt các gói đã bị xóa khỏi kho lưu trữ.

Moussalli, Trưởng nhóm nghiên cứu bảo mật JFrog, cho biết: "Việc sử dụng một hành vi dễ bị tấn công khi xử lý các gói đã xóa cho phép kẻ tấn công chiếm đoạt các gói hiện có, khiến chúng có thể cài đặt vào hệ thống mục tiêu mà không cần thay đổi bất kỳ quy trình làm việc nào của người dùng".

"Bề mặt tấn công của gói PyPI liên tục gia tăng. Bất chấp sự can thiệp chủ động ở đây, người dùng nên luôn cảnh giác và thực hiện các biện pháp phòng ngừa cần thiết để bảo vệ bản thân và cộng đồng PyPI khỏi kỹ thuật chiếm đoạt này."