"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)
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- PlatoData.Network Vertical Generative Ai. Trao quyền cho chính mình. Truy cập Tại đây.
- PlatoAiStream. Thông minh Web3. Kiến thức khuếch đại. Truy cập Tại đây.
- Trung tâmESG. Ô tô / Xe điện, Than đá, công nghệ sạch, Năng lượng, Môi trường Hệ mặt trời, Quản lý chất thải. Truy cập Tại đây.
- PlatoSức khỏe. Tình báo thử nghiệm lâm sàng và công nghệ sinh học. Truy cập Tại đây.
- ChartPrime. Nâng cao trò chơi giao dịch của bạn với ChartPrime. Truy cập Tại đây.
- BlockOffsets. Hiện đại hóa quyền sở hữu bù đắp môi trường. Truy cập Tại đây.
- nguồn: https://www.darkreading.com/edge-articles/software-supply-chain-strategies-to-parry-dependency-confusion-attacks
- : có
- :là
- :không phải
- :Ở đâu
- 1
- 7
- a
- Giới thiệu
- ngang qua
- Hành động
- nhận nuôi
- Lợi thế
- chống lại
- Đại lý
- Mục tiêu
- Tất cả
- cho phép
- gần như
- Ngoài ra
- luôn luôn
- an
- và
- Một
- bất kì
- bất kỳ ai
- các ứng dụng
- cách tiếp cận
- LÀ
- bài viết
- AS
- Tài sản
- At
- tấn công
- Các cuộc tấn công
- tự động
- trở lại
- BE
- bởi vì
- được
- BEST
- thực hành tốt nhất
- Tỷ
- Khối
- vi phạm
- Xây dựng
- nhưng
- by
- cuộc gọi
- gọi là
- CAN
- không thể
- trường hợp
- nguyên nhân
- chuỗi
- thay đổi
- kiểm tra
- Chọn
- mã
- đến
- Chung
- Cộng đồng
- công ty
- tuân thủ
- thỏa hiệp
- nhầm lẫn
- Công ước
- Counter
- tạo
- An ninh mạng
- dữ liệu
- Vi phạm dữ liệu
- phụ thuộc
- Phụ thuộc
- phát triển
- phát triển
- đạo diễn
- hiển thị
- dns
- do
- làm
- thực hiện
- Cửa
- khác
- nhân viên
- Toàn bộ
- như nhau
- ước tính
- Ngay cả
- Mỗi
- ví dụ
- thi hành
- tiếp xúc
- mắt
- Tập tin
- tài chính
- Tìm kiếm
- tập trung
- Trong
- Buộc
- tìm thấy
- thường xuyên
- từ
- đầy đủ
- chơi game
- cho
- Toàn cầu
- Phát triển
- Một nửa
- Có
- he
- giúp đỡ
- vì thế
- cao hơn
- cao nhất
- của mình
- tổ chức
- Độ đáng tin của
- Hướng dẫn
- HTTPS
- Hàng trăm
- giống hệt nhau
- if
- sắp xảy ra
- thực hiện
- quan trọng
- in
- bao gồm
- chỉ số
- cài đặt, dựng lên
- Cài đặt
- Viện
- trí tuệ
- sở hữu trí tuệ
- nội bộ
- nội bộ
- trong
- nội tại
- giới thiệu
- IT
- ITS
- chính nó
- JavaScript
- chỉ
- Giữ
- Biết
- lớn
- hợp pháp
- cho phép
- Thư viện
- Lượt thích
- địa phương
- dài
- NHÌN
- yêu
- làm cho
- giám đốc
- Quản lý
- Có thể..
- có nghĩa là
- các biện pháp
- Phương tiện truyền thông
- chi tiết
- nhiều
- phải
- tên
- tên
- cần thiết
- Mới
- Không
- không
- con số
- of
- on
- ONE
- or
- cơ quan
- tổ chức
- Nền tảng khác
- nếu không thì
- kết thúc
- gói
- gói
- Thực hiện
- miếng
- đường ống dẫn
- giữ chỗ
- đặt
- plato
- Thông tin dữ liệu Plato
- PlatoDữ liệu
- Điểm
- Chính sách
- Phổ biến
- đặt ra
- thực hành
- ngăn chặn
- ngăn chặn
- ưu tiên
- riêng
- quá trình
- Sản lượng
- dự án
- tài sản
- bảo vệ
- bảo vệ
- công khai
- công khai
- Xuất bản
- Python
- ngọn đuốc
- trích dẫn
- phạm vi
- hơn
- RE
- lý do
- đăng ký
- cơ quan đăng ký
- đăng ký
- nhà quản lý
- Báo cáo
- kho
- nghiên cứu
- Dự trữ
- Ltd
- dự trữ
- Nguy cơ
- mạnh mẽ
- ROSE
- chạy
- s
- tương tự
- nói
- quét
- bối cảnh
- phạm vi
- kịch bản
- ngành
- Ngành
- an ninh
- nghiêm trọng
- nghiêm trọng
- nên
- Chương trình
- kể từ khi
- kích thước
- So
- Phần mềm
- chuỗi cung ứng phần mềm
- một số
- Một người nào đó
- nguồn
- riêng
- chiến lược
- Nghiêm ngặt
- như vậy
- cung cấp
- chuỗi cung ứng
- chắc chắn
- ngọt ngào
- hệ thống
- Hãy
- dùng
- Nhiệm vụ
- Công nghệ
- hơn
- việc này
- Sản phẩm
- trộm cắp
- Them
- vì thế
- Kia là
- họ
- điều
- điều này
- những
- mối đe dọa
- Như vậy
- đến
- kích hoạt
- NIỀM TIN
- đáng tin cậy
- hai
- thường
- Dưới
- hiểu
- cập nhật
- Đang tải lên
- sử dụng
- đã sử dụng
- Người sử dụng
- sử dụng
- khác nhau
- phiên bản
- Vi phạm
- Dễ bị tổn thương
- là
- Đường..
- we
- TỐT
- Điều gì
- khi nào
- liệu
- cái nào
- trong khi
- CHÚNG TÔI LÀ
- rộng
- Phạm vi rộng
- sẽ
- sự khôn ngoan
- với
- ở trong
- không có
- từ
- Công việc
- sẽ
- đã viết
- năm
- nhưng
- Bạn
- trên màn hình
- zephyrnet