Thành phần trình quản lý gói PHP Packagist dễ bị xâm nhập

Các nhà nghiên cứu từ SonarSource đã phát hiện ra một lỗ hổng ở một trong những phần quan trọng của Composer có thể được sử dụng để tấn công các kho lưu trữ mã hóa. Composer là trình quản lý gói chính cho các ứng dụng PHP

Composer phục vụ khoảng hai tỷ gói phần mềm mỗi tháng;

Theo một bài đăng trên blog kỹ thuật của SonarSource, lỗ hổng này có thể đã bị khai thác để gửi các gói cửa sau độc hại đến các máy chủ

Lỗ hổng bảo mật khiến ước tính 3500.000 phụ thuộc gặp nguy hiểm

May mắn thay, lỗ hổng đã được vá bởi những người bảo trì dự án chỉ vài giờ sau khi nó được phát hiện

tiêm đối số

Lỗi trước đó nằm trong các lớp giao tiếp với các hệ thống kiểm soát phiên bản [VCS] như Git, Mercurial và Subversion để giải quyết các phụ thuộc từ kho lưu trữ mã. Lỗi này đã được SonarSource phát hiện và báo cáo một năm trước

Những người bảo trì Packagist đã vá lỗ hổng đó, nhưng các nhà nghiên cứu của SonarSource phát hiện ra rằng các triển khai khác cùng loại vẫn dễ bị tấn công

Theo Thomas Chauchefoin cho The Daily Swig, "Nghiên cứu trước đây của chúng tôi đã giúp chúng tôi nhanh chóng điều hướng đến các phần hấp dẫn của cơ sở mã, nhưng đồng thời, chúng tôi đã bỏ sót lỗi này nhiều lần khi xem xét mã và các bản vá lỗi . "Swig hàng ngày .

Nhân viên đóng gói đọc nội dung từ readme. md hoặc tệp do người dùng chỉ định trong kho lưu trữ mã để hiển thị thông tin về các gói. Mỗi triển khai này soạn một lệnh trình bao bao gồm nội dung từ tệp do người dùng cung cấp và có sẵn trong Packagist để truy xuất dữ liệu tệp từ các hệ thống VCS khác nhau. readme. md hoặc tệp do người dùng chỉ định trong kho lưu trữ mã. Packagist chứa các triển khai riêng biệt để truy xuất dữ liệu tệp từ các hệ thống VCS khác nhau. Mỗi triển khai này soạn một lệnh trình bao bao gồm nội dung từ tệp do người dùng cung cấp.

Theo SonarSource, mặc dù Packagist sử dụng các cơ chế thoát để ngăn chặn mã độc, nhưng nó vẫn để hở một số lỗ hổng. Nếu kẻ tấn công chèn các lệnh độc hại vào tệp thông tin, chúng sẽ được chèn làm đối số trong lệnh shell chạy trên hệ thống

Tấn công chuỗi cung ứng

Các nhà nghiên cứu chứng minh cách lỗ hổng có thể được sử dụng để thực thi các lệnh tùy ý trên máy chủ trong một video chứng minh khái niệm



Quy trình phát triển phần mềm có thể bị tổn hại nếu kẻ tấn công sử dụng lỗ hổng để thay đổi định nghĩa của gói và hướng nó theo hướng không mong muốn

Theo Chauchefoin, "Việc chống lại các lỗi chèn đối số là rất hiếm so với tất cả các kỹ thuật mà chúng tôi đã quảng cáo cho các nhà phát triển trong thập kỷ qua và tôi nghĩ đó là lý do tại sao chúng tôi phát hiện ra chúng thường xuyên như vậy. "

Mặc dù dữ liệu của bên thứ ba có thể được mã hóa, thoát và xác thực nghiêm ngặt, nhưng điều đó thường không đủ

Tự bảo vệ mình

Nếu bạn đang sử dụng phiên bản Packagist chính thức mặc định hoặc Packagist riêng, thì bạn đã an toàn vì lỗi đã được vá ngay sau khi SonarSource thông báo cho Packagist về lỗi này. Bạn phải cập nhật lên một trong các phiên bản đã vá của thư viện nếu bạn đã tích hợp Trình soạn thảo dưới dạng thư viện và sử dụng các kho lưu trữ không đáng tin cậy

Chauchefoin cho biết, vì đây là những dự án quan trọng đã được thực hiện trong nhiều năm nên không có gì thay đổi trong năm kể từ lần khám phá trước đó của chúng tôi.

Thực thi các tính năng như chữ ký của bất kỳ tạo phẩm xây dựng nào [i. e. Quy trình công việc của hàng triệu nhà phát triển có thể sẽ gặp phải những thay đổi không nhỏ do các gói

Trong khi đó, Chauchefoin bày tỏ sự lạc quan rằng việc tăng cường hỗ trợ cho các tiêu chuẩn đổi mới như sigstore có thể làm giảm nguy cơ tấn công chuỗi cung ứng

"Ký mọi thứ là chìa khóa, và sigstore làm cho nó hợp lý hơn nhiều," anh nói. "Lý tưởng nhất là các trình quản lý gói chỉ nên là ống giữa người bảo trì và người dùng gói và không có cách nào can thiệp vào những gì đang chảy bên trong. "

Các nhà nghiên cứu tại SonarSource đã tìm thấy một trong những thành phần quan trọng của Composer, trình quản lý gói chính cho các ứng dụng PHP, chứa một lỗ hổng có thể bị lạm dụng để tấn công các kho lưu trữ mã hóa.

Packagist, thành phần dễ bị tổn thương, cho phép Composer xác định và tải xuống các phụ thuộc phần mềm mà các nhà phát triển phần mềm đưa vào dự án của họ. Composer phục vụ khoảng hai tỷ gói phần mềm mỗi tháng

Một bài đăng trên blog kỹ thuật của SonarSource giải thích rằng lỗ hổng bảo mật có thể đã bị khai thác để phân phối các gói backdoor độc hại tới các máy chủ.

Ước tính có khoảng 3500.000 phụ thuộc bị đe dọa bởi lỗ hổng bảo mật

May mắn thay, lỗ hổng đã được giải quyết bởi những người bảo trì dự án chỉ vài giờ sau khi nó được báo cáo

tiêm đối số

Lỗi mới xuất hiện một năm sau khi SonarSource phát hiện và báo cáo một lỗ hổng tấn công chuỗi cung ứng khác trong Packagist. Lỗi trước đó nằm trong các lớp tương tác với các hệ thống kiểm soát phiên bản [VCS] như Git, Mercurial và Subversion để giải quyết các phụ thuộc từ kho lưu trữ mã

Mặc dù lỗ hổng đó đã được vá bởi những người bảo trì Packagist, nhưng các nhà nghiên cứu của SonarSource nhận thấy rằng các phần khác của việc triển khai cùng lớp vẫn có khả năng bị tấn công

“Nghiên cứu trước đây của chúng tôi đã giúp chúng tôi điều hướng nhanh chóng đến các phần hấp dẫn của cơ sở mã, nhưng đồng thời, chúng tôi đã bỏ sót lỗi này nhiều lần khi xem xét mã và các bản vá liên quan đến khám phá trước đây của chúng tôi,” Thomas Chauchefoin . The Daily Swig.

Để hiển thị thông tin về gói, Packagist đọc nội dung từ readme. md hoặc tệp do người dùng chỉ định trong kho lưu trữ mã. Packagist chứa các triển khai riêng biệt để truy xuất dữ liệu tệp từ các hệ thống VCS khác nhau. Mỗi triển khai này soạn một lệnh trình bao bao gồm nội dung từ tệp do người dùng cung cấp.

Theo SonarSource, nếu kẻ tấn công chèn các lệnh độc hại vào tệp thông tin, chúng sẽ được chèn làm đối số trong lệnh shell chạy trên hệ thống. Và mặc dù Packagist sử dụng các cơ chế thoát để ngăn chặn mã độc, nó vẫn để ngỏ một số lỗ hổng

Tấn công chuỗi cung ứng

Trong một video chứng minh khái niệm, các nhà nghiên cứu chỉ ra cách lỗ hổng có thể bị khai thác để chạy các lệnh tùy ý trên máy chủ



Kẻ tấn công có thể lạm dụng lỗi để sửa đổi định nghĩa của gói và trỏ nó đến đích không mong muốn, làm hỏng quy trình phát triển phần mềm trong quy trình

Chauchefoin nhận xét: “Việc chống lại các lỗi tiêm đối số là rất bất thường so với tất cả các kỹ thuật mà chúng tôi đã thúc đẩy các nhà phát triển trong thập kỷ qua và tôi nghĩ đó là lý do tại sao chúng tôi đã tìm thấy chúng rất nhiều”.

“Dữ liệu của bên thứ ba có thể được mã hóa, thoát và xác thực chặt chẽ, nhưng điều đó thường không đủ. ”

Tự bảo vệ mình

Lỗi đã được vá ngay sau khi SonarSource báo cáo với Packagist. Nếu bạn đang sử dụng phiên bản Packagist chính thức mặc định hoặc Packagist riêng, thì bạn đã an toàn. Nếu bạn đã tích hợp Trình soạn thảo dưới dạng thư viện và hoạt động trên các kho lưu trữ không đáng tin cậy, bạn phải nâng cấp lên một trong các phiên bản vá lỗi của thư viện

Chauchefoin cho biết: “Không có gì thay đổi trong năm sau phát hiện trước đó của chúng tôi, điều này có thể hiểu được vì đây là những dự án quan trọng với nhiều năm làm việc phía sau chúng”.

“Thực thi các tính năng như ký tên vào bất kỳ tạo phẩm xây dựng nào [i. e. , gói] có thể sẽ đưa ra những thay đổi không nhỏ đối với quy trình làm việc của hàng triệu nhà phát triển. ”

Trong khi đó, Chauchefoin bày tỏ hy vọng rằng nhiều lực kéo hơn xung quanh các tiêu chuẩn mới như sigstore có thể giúp giảm thiểu rủi ro của các cuộc tấn công chuỗi cung ứng

“Lý tưởng nhất là các trình quản lý gói chỉ nên là ống nối giữa người bảo trì và người dùng gói và không có cách nào can thiệp vào những gì đang chảy bên trong. Ký mọi thứ là chìa khóa, và sigstore làm cho nó có giá phải chăng hơn nhiều,” anh ấy nói

Lỗi chèn đối số gây ra rủi ro RCE. Một lỗ hổng khiến các phụ thuộc PHP có nguy cơ bị tấn công. Một trong những thành phần quan trọng của Composer, … https. //www. Google. com/url?rct=j&sa=t&url=https. //portswigger. net/daily-swig/php-package-manager-component-packagist-vulnerable-to-compromise&ct=ga&cd=CAIyGjgzMjVmMTg3YzNmN2FkZTk6Y29tOmVuOlVT&usg=AOvVaw1-IVWR97Xx6Ru8OhLqHfCM

Các nhà nghiên cứu tại SonarSource đã tìm thấy một trong những thành phần quan trọng của Composer, trình quản lý gói chính cho các ứng dụng PHP, chứa một lỗ hổng có thể bị lạm dụng để tấn công các kho lưu trữ mã hóa.

Packagist, thành phần dễ bị tổn thương, cho phép Composer xác định và tải xuống các phụ thuộc phần mềm mà các nhà phát triển phần mềm đưa vào dự án của họ. Composer phục vụ khoảng hai tỷ gói phần mềm mỗi tháng

Một bài đăng trên blog kỹ thuật của SonarSource giải thích rằng lỗ hổng bảo mật có thể đã bị khai thác để phân phối các gói backdoor độc hại tới các máy chủ.

Ước tính có khoảng 3500.000 phụ thuộc bị đe dọa bởi lỗ hổng bảo mật

May mắn thay, lỗ hổng đã được giải quyết bởi những người bảo trì dự án chỉ vài giờ sau khi nó được báo cáo

tiêm đối số

Lỗi mới xuất hiện một năm sau khi SonarSource phát hiện và báo cáo một lỗ hổng tấn công chuỗi cung ứng khác trong Packagist. Lỗi trước đó nằm trong các lớp tương tác với các hệ thống kiểm soát phiên bản [VCS] như Git, Mercurial và Subversion để giải quyết các phụ thuộc từ kho lưu trữ mã

Mặc dù lỗ hổng đó đã được vá bởi những người bảo trì Packagist, nhưng các nhà nghiên cứu của SonarSource nhận thấy rằng các phần khác của việc triển khai cùng lớp vẫn có khả năng bị tấn công

Thomas Chauchefoin, một nhà nghiên cứu về lỗ hổng bảo mật tại

Để hiển thị thông tin về các gói, Packagist đọc nội dung từ readme. md hoặc tệp do người dùng chỉ định trong kho lưu trữ mã. Packagist chứa các triển khai riêng biệt để truy xuất dữ liệu tệp từ các hệ thống VCS khác nhau. Mỗi triển khai này soạn một lệnh trình bao bao gồm nội dung từ tệp do người dùng cung cấp

Theo SonarSource, nếu kẻ tấn công chèn các lệnh độc hại vào tệp thông tin, chúng sẽ được chèn làm đối số trong lệnh shell chạy trên hệ thống. Và mặc dù Packagist sử dụng các cơ chế thoát để ngăn chặn mã độc, nó vẫn để ngỏ một số lỗ hổng

Tấn công chuỗi cung ứng

Trong một video chứng minh khái niệm, các nhà nghiên cứu chỉ ra cách lỗ hổng có thể bị khai thác để chạy các lệnh tùy ý trên máy chủ

Kẻ tấn công có thể lạm dụng lỗi để sửa đổi định nghĩa của gói và trỏ nó đến đích không mong muốn, làm hỏng quy trình phát triển phần mềm trong quy trình

Chauchefoin nhận xét: “Việc chống lại các lỗi tiêm đối số là rất bất thường so với tất cả các kỹ thuật mà chúng tôi đã thúc đẩy các nhà phát triển trong thập kỷ qua và tôi nghĩ đó là lý do tại sao chúng tôi đã tìm thấy chúng rất nhiều”.

“Dữ liệu của bên thứ ba có thể được mã hóa, thoát và xác thực chặt chẽ, nhưng điều đó thường không đủ. ”

Tự bảo vệ mình

Lỗi đã được vá ngay sau khi SonarSource báo cáo với Packagist. Nếu bạn đang sử dụng phiên bản Packagist chính thức mặc định hoặc Packagist riêng, thì bạn đã an toàn. Nếu bạn đã tích hợp Trình soạn thảo dưới dạng thư viện và hoạt động trên các kho lưu trữ không đáng tin cậy, bạn phải nâng cấp lên một trong các phiên bản vá lỗi của thư viện

Chauchefoin cho biết: “Không có gì thay đổi trong năm sau phát hiện trước đó của chúng tôi, điều này có thể hiểu được vì đây là những dự án quan trọng với nhiều năm làm việc phía sau chúng”.

“Thực thi các tính năng như ký tên vào bất kỳ tạo phẩm xây dựng nào [i. e. , gói] có thể sẽ đưa ra những thay đổi không nhỏ đối với quy trình làm việc của hàng triệu nhà phát triển. ”

Trong khi đó, Chauchefoin bày tỏ hy vọng rằng nhiều lực kéo hơn xung quanh các tiêu chuẩn mới như sigstore có thể giúp giảm thiểu rủi ro của các cuộc tấn công chuỗi cung ứng

“Lý tưởng nhất là các trình quản lý gói chỉ nên là ống nối giữa người bảo trì và người dùng gói và không có cách nào can thiệp vào những gì đang chảy bên trong. Ký mọi thứ là chìa khóa, và sigstore làm cho nó có giá phải chăng hơn nhiều,” anh ấy nói

LIÊN QUAN Phần mềm Nepxion Discovery với chức năng Spring Cloud không vá lỗi RCE, rò rỉ thông tin

Chủ Đề