Tấn công khai thác các điểm vào trong Python, npm và các hệ sinh thái nguồn mở

Tác giả ChatGPT, T.Mười 15, 2024, 06:37:16 CHIỀU

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

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

Các nhà nghiên cứu an ninh mạng đã phát hiện ra rằng các điểm vào có thể bị lạm dụng trên nhiều hệ sinh thái lập trình như PyPI, npm, Ruby Gems, NuGet, Dart Pub và Rust Crates để dàn dựng các cuộc tấn công chuỗi cung ứng phần mềm.

"Những kẻ tấn công có thể lợi dụng các điểm vào này để thực thi mã độc khi chạy các lệnh cụ thể, gây ra rủi ro lan rộng trong bối cảnh mã nguồn mở", các nhà nghiên cứu Yehuda Gelb và Elad Rapaport của Checkmarx cho biết trong báo cáo chia sẻ với The Hacker News.


Công ty bảo mật chuỗi cung ứng phần mềm lưu ý rằng các cuộc tấn công điểm vào cung cấp cho kẻ tấn công một phương pháp lén lút và dai dẳng hơn để xâm phạm hệ thống theo cách có thể vượt qua các biện pháp phòng thủ bảo mật truyền thống.

Điểm vào trong ngôn ngữ lập trình như Python đề cập đến cơ chế đóng gói cho phép các nhà phát triển đưa ra một số chức năng nhất định dưới dạng trình bao bọc dòng lệnh (hay còn gọi là console_scripts). Ngoài ra, chúng cũng có thể dùng để tải các plugin bổ sung các tính năng của gói.

Checkmarx lưu ý rằng trong khi các điểm vào là một cách mạnh mẽ để cải thiện tính mô-đun, thì tính năng tương tự có thể bị lạm dụng để phân phối mã độc cho những người dùng không nghi ngờ. Một số cách có thể xảy ra bao gồm command-jacking và tạo các plugin giả mạo cho nhiều công cụ và khuôn khổ khác nhau.

Tấn công lệnh xảy ra khi các gói giả mạo sử dụng các điểm vào mạo danh các công cụ và lệnh phổ biến của bên thứ ba (ví dụ: aws và docker), do đó thu thập thông tin nhạy cảm khi các nhà phát triển cài đặt gói, ngay cả trong trường hợp nó được phân phối dưới dạng tệp wheel (.whl).

Một số lệnh của bên thứ ba được sử dụng rộng rãi có thể là mục tiêu tiềm năng cho lệnh-jacking bao gồm npm, pip, git, kubectl, terraform, gcloud, heroku và dotnet.

Một loại lệnh-jacking thứ hai cũng có thể biểu hiện khi các tác nhân đe dọa sử dụng tên lệnh hệ thống hợp lệ (ví dụ: touch, curl, cd, ls và mkdir) làm điểm vào để chiếm đoạt luồng thực thi.

"Thành công của cách tiếp cận này chủ yếu phụ thuộc vào thứ tự PATH", các nhà nghiên cứu chỉ ra. "Nếu thư mục chứa các điểm vào độc hại xuất hiện sớm hơn trong PATH so với các thư mục hệ thống, lệnh độc hại sẽ được thực thi thay vì lệnh hệ thống. Điều này có nhiều khả năng xảy ra trong các môi trường phát triển nơi các thư mục gói cục bộ được ưu tiên".

Không chỉ có vậy. Checkmarx phát hiện ra rằng hiệu quả của việc chiếm quyền điều khiển lệnh có thể được cải thiện bằng một chiến thuật bí mật hơn gọi là gói lệnh, bao gồm việc tạo ra một điểm vào đóng vai trò như một lớp bao bọc xung quanh lệnh gốc, thay vì thay thế hoàn toàn lệnh gốc.


Điểm mạnh của phương pháp này là nó thực thi mã độc một cách âm thầm đồng thời gọi lệnh gốc hợp pháp và trả về kết quả thực thi, do đó có thể ẩn mình dưới sự phát hiện.

"Vì lệnh hợp lệ vẫn chạy và đầu ra và hành vi của nó được bảo toàn, nên không có dấu hiệu xâm phạm ngay lập tức, khiến cuộc tấn công cực kỳ khó phát hiện thông qua việc sử dụng bình thường", các nhà nghiên cứu cho biết. "Cách tiếp cận lén lút này cho phép kẻ tấn công duy trì quyền truy cập lâu dài và có khả năng đánh cắp thông tin nhạy cảm mà không gây nghi ngờ".

Một chiến thuật tấn công điểm vào khác bao gồm việc tạo ra các plugin và tiện ích mở rộng độc hại cho các công cụ dành cho nhà phát triển có khả năng truy cập rộng rãi vào chính cơ sở mã, do đó tạo cơ hội cho kẻ xấu thay đổi hành vi của chương trình hoặc can thiệp vào quy trình thử nghiệm để làm cho mã có vẻ như đang hoạt động như mong đợi.

"Tiến về phía trước, điều quan trọng là phải phát triển các biện pháp bảo mật toàn diện có tính đến khai thác điểm vào", các nhà nghiên cứu cho biết. "Bằng cách hiểu và giải quyết những rủi ro này, chúng ta có thể hướng tới một môi trường đóng gói Python an toàn hơn, bảo vệ cả các nhà phát triển cá nhân và hệ thống doanh nghiệp khỏi các cuộc tấn công chuỗi cung ứng tinh vi".

Sự phát triển này diễn ra trong bối cảnh Sonatype, trong báo cáo thường niên về Tình hình chuỗi cung ứng phần mềm, tiết lộ rằng hơn 512.847 gói phần mềm độc hại đã được phát hiện trên các hệ sinh thái nguồn mở dành cho Java, JavaScript, Python   Đăng nhập để xem liên kết kể từ tháng 11 năm 2023, tăng 156% so với cùng kỳ năm trước.

"Các công cụ bảo mật truyền thống thường không phát hiện được những cuộc tấn công mới này, khiến các nhà phát triển và môi trường xây dựng tự động dễ bị tổn thương", công ty cho biết. "Điều này đã dẫn đến một làn sóng tấn công chuỗi cung ứng thế hệ tiếp theo mới, nhắm trực tiếp vào các nhà phát triển, bỏ qua các biện pháp phòng thủ hiện có".