Chiến lược chuỗi cung ứng phần mềm để ngăn chặn các cuộc tấn công nhầm lẫn phụ thuộc

Chiến lược chuỗi cung ứng phần mềm để ngăn chặn các cuộc tấn công nhầm lẫn phụ thuộc

Các chiến lược chuỗi cung ứng phần mềm để ngăn chặn các cuộc tấn công nhầm lẫn phụ thuộc vào PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

"Những gì trong một cái tên? Thứ mà chúng ta gọi là hoa hồng Dù bằng bất kỳ cái tên nào khác cũng sẽ có mùi thơm ngọt ngào.” Khi Shakespeare viết những lời này (Romeo và Juliet, Màn 2, Cảnh 2) vào năm 1596, ông ấy đang nói rằng cái tên chỉ là một quy ước. Nó không có ý nghĩa nội tại. Juliet yêu Romeo vì con người thật của anh ấy chứ không phải vì tên tuổi của anh ấy.

Nhưng không hề biết, Shakespeare cũng đang mô tả các cuộc tấn công gây nhầm lẫn phụ thuộc.

Sự nhầm lẫn phụ thuộc là khi các gói bạn đang sử dụng trong mã không phải của bạn. Chúng có cùng tên, nhưng mã đang chạy trong sản xuất không phải là mã của bạn. Cùng tên nhưng một gói có mùi hoa hồng còn gói kia thì… hôi.

Các báo cáo nghiên cứu gần đây ước tính rằng 41% đến 49% tổ chức có nguy cơ bị tấn công nhầm lẫn phụ thuộc. Nghiên cứu mới từ OX Security cho thấy rằng khi một tổ chức có nguy cơ bị tấn công nhầm lẫn phụ thuộc, 73% tài sản của tổ chức đó sẽ dễ bị tổn thương. Nghiên cứu tập trung vào các tổ chức vừa và lớn (1K+, 8K+, 80K+ nhân viên) trên nhiều lĩnh vực — tài chính, trò chơi, công nghệ và truyền thông — và nhận thấy rủi ro trong mọi lĩnh vực ở các tổ chức thuộc mọi quy mô. Nghiên cứu cũng phát hiện ra rằng hầu hết tất cả các ứng dụng có hơn 1 tỷ người dùng đều đang sử dụng các phần phụ thuộc dễ gây nhầm lẫn về phần phụ thuộc.

Bài viết này nhằm mục đích giúp bạn hiểu được sự nhầm lẫn về phần phụ thuộc và cách ngăn chặn nó.

Gấp đôi

Các phần phụ thuộc (còn gọi là gói) là các khối xây dựng nên phần mềm của bạn. Thông thường, những phần mềm này, dù được phát triển bởi toàn bộ cộng đồng hay trong một công ty, đều thực hiện một nhiệm vụ chung và cần thiết.

Trình quản lý gói thường được sử dụng để cài đặt các phần phụ thuộc và cập nhật chúng. Họ quét các cơ quan đăng ký công khai và riêng tư để tìm tên của gói và tất cả những thứ khác đều bằng nhau, chọn số phiên bản cao nhất. Những kẻ tấn công lợi dụng điều này bằng cách đặt một gói "giả" vào sổ đăng ký công khai có cùng tên nhưng phiên bản cao hơn.

Khi người quản lý gói gặp hai gói giống hệt nhau, một gói trong sổ đăng ký công khai và một gói trong sổ đăng ký riêng tư, điều đó sẽ gây nhầm lẫn — do đó có tên là “nhầm lẫn phụ thuộc”. Vì 2 gói giống hệt nhau nên người quản lý sẽ tự động chọn cài đặt gói có phiên bản cao hơn - trong trường hợp này là gói độc hại của kẻ tấn công.

Điều này mang lại cho những kẻ không tặc một cửa sau để vào phần mềm của bạn. Từ thời điểm này, họ có thể thực hiện các hành vi vi phạm dữ liệu, thực hiện hành vi trộm cắp tài sản trí tuệ và làm tổn hại đến chuỗi cung ứng phần mềm tin cậy. Họ cũng có thể đưa ra các hành vi vi phạm tuân thủ dẫn đến các hình phạt nghiêm khắc theo quy định.

Khó khăn và rắc rối

Có nhiều cách tiếp cận khác nhau đối với một cuộc tấn công nhầm lẫn phụ thuộc.

  • Không gian tên. Bằng cách tải thư viện phần mềm độc hại lên cơ quan đăng ký công khai — chẳng hạn như Python Package Index (PyPI) hoặc JavaScript's đăng ký npm - đó là được đặt tên tương tự đối với thư viện được sử dụng nội bộ, đáng tin cậy, các hệ thống bỏ qua kiểm tra không gian tên/URL hoặc không bắt buộc tìm nạp từ sổ đăng ký riêng tư có thể lấy nhầm mã độc. Các sự cố nhầm lẫn phụ thuộc PyTorch gần đây là một ví dụ như vậy
  • giả mạo DNS. Bằng cách sử dụng một kỹ thuật như giả mạo DNS, các hệ thống có thể được hướng dẫn để lấy các phần phụ thuộc từ các kho lưu trữ độc hại trong khi hiển thị những gì trông giống như các URL/đường dẫn nội bộ hợp pháp.
  • Viết kịch bản. Bằng cách sửa đổi tập lệnh xây dựng/cài đặt hoặc tích hợp liên tục/phân phối liên tục (CI/CD), hệ thống có thể bị lừa tải xuống các phần phụ thuộc phần mềm từ nguồn độc hại thay vì kho lưu trữ cục bộ.

Mọi việc được thực hiện tốt và cẩn thận

Để bảo vệ khỏi sự nhầm lẫn về sự phụ thuộc, hãy thực hiện các phương pháp này.

  • Đặt chính sách trong trình quản lý gói. Không cho phép người quản lý gói ưu tiên gói công khai hơn gói riêng tư.
  • Luôn bao gồm tệp .npmrc. Nếu bạn đang sử dụng NPM phổ biến làm trình quản lý gói, hãy luôn bao gồm tệp .npmrc chỉ định vị trí tìm nạp các gói trong phạm vi tổ chức cụ thể.
  • Đặt tên gói trong sổ đăng ký công khai. Một cách khác để bảo vệ chống lại các cuộc tấn công nhầm lẫn phụ thuộc là bảo lưu tên gói trong sổ đăng ký công khai để những kẻ không tặc không thể sử dụng nó và do đó, không thể “lừa” người quản lý gói cài đặt một gói độc hại.

Để bảo vệ hoàn toàn khỏi các cuộc tấn công nhầm lẫn phụ thuộc, các tổ chức phải luôn sử dụng phạm vi tổ chức cho tất cả các gói nội bộ, ngay cả khi xuất bản lên sổ đăng ký nội bộ của bạn. Phạm vi tổ chức cũng phải được đăng ký tại cơ quan đăng ký công khai của NPM, do đó ngăn chặn bất kỳ ai chiếm đoạt phạm vi và lợi dụng sự nhầm lẫn.

Tên gói cũng phải được đăng ký công khai. Ví dụ: nếu một tổ chức đang sử dụng PIP phổ biến làm trình quản lý gói cho các phần phụ thuộc Python, thì tổ chức đó nên tạo các gói nội bộ có hậu tố nghiêm ngặt, dễ nhận biết và sẽ hoạt động trên tất cả các dự án. Tải gói trống có cùng tên lên sổ đăng ký công khai PyPI làm trình giữ chỗ.

Một lý do khác để bảo lưu tên gói trong sổ đăng ký công khai là vì nếu người khác bảo lưu tên đó (dù có ác ý hay không), các nhà phát triển sẽ phải thay đổi tất cả tên gói trong sổ đăng ký riêng thành tên chưa được bảo lưu trên sổ đăng ký công cộng. Đây có thể là một quá trình lâu dài và tẻ nhạt.

Điều quan trọng cần lưu ý là không phải tất cả các cơ quan đăng ký gói đều cho phép người dùng đặt trước tên gói, vì vậy hãy đảm bảo bạn tìm thấy tên đó.

Thoát ra, bị truy đuổi bởi một con gấu

Các cuộc tấn công gây nhầm lẫn phụ thuộc gây ra mối đe dọa an ninh mạng nghiêm trọng và sắp xảy ra đối với các tổ chức trên toàn cầu. Khoảng một nửa số tổ chức gặp rủi ro và 73% tài sản của các tổ chức đó bị lộ. Để chống lại mối đe dọa ngày càng tăng này, các tổ chức phải thực hiện các biện pháp phòng ngừa mạnh mẽ và áp dụng các phương pháp hay nhất về an ninh mạng.

Những bông hồng của Shakespeare có thể đã báo trước nguy cơ xảy ra các cuộc tấn công nhầm lẫn do phụ thuộc hàng trăm năm, nhưng một câu trích dẫn khác của Bard có thể chứa đựng một số sự khôn ngoan để bảo vệ chống lại chúng: “Hãy để mọi con mắt tự thương lượng và không tin tưởng vào đại lý.” (Much Ado About Nothing, Màn 2, Cảnh 1)

Dấu thời gian:

Thêm từ Đọc tối