PyTorch: Bộ công cụ Machine Learning được cung cấp từ Giáng sinh đến Năm mới Trí thông minh dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.

PyTorch: Bộ công cụ Machine Learning được tung ra từ Giáng sinh đến Năm mới

PyTorch là một trong những bộ công cụ máy học phổ biến và được sử dụng rộng rãi nhất hiện có.

(Chúng ta sẽ không bị lôi cuốn vào vị trí của nó trên bảng xếp hạng trí tuệ nhân tạo – như với nhiều công cụ nguồn mở được sử dụng rộng rãi trong lĩnh vực cạnh tranh, câu trả lời dường như phụ thuộc vào người bạn hỏi và bộ công cụ nào họ tình cờ sử dụng chúng tôi.)

Ban đầu được phát triển và phát hành dưới dạng một dự án nguồn mở của Facebook, nay là Meta, phần mềm này đã được bàn giao cho Linux Foundation vào cuối năm 2022, hiện đang vận hành nó dưới sự bảo trợ của PyTorch Foundation.

Thật không may, dự án đã bị xâm phạm bởi một cuộc tấn công chuỗi cung ứng trong kỳ nghỉ lễ cuối năm 2022, giữa Ngày Giáng sinh [2022-12-25] và một ngày trước Giao thừa [2022-12-30].

Những kẻ tấn công đã ác ý tạo ra một gói Python có tên torchtriton trên PyPI, kho lưu trữ Chỉ mục Gói Python phổ biến.

Tên torchtriton đã được chọn để nó khớp với tên của một gói trong chính hệ thống PyTorch, dẫn đến một tình huống nguy hiểm được giải thích bởi nhóm PyTorch (nhấn mạnh của chúng tôi) như sau:

[A] gói phụ thuộc độc hại (torchtriton) […] đã được tải lên kho lưu trữ mã Chỉ mục gói Python (PyPI) có cùng tên gói với tên chúng tôi gửi trên chỉ mục gói hàng đêm của PyTorch. Vì chỉ số PyPI được ưu tiên, gói độc hại này đã được cài đặt thay vì phiên bản từ kho lưu trữ chính thức của chúng tôi. Thiết kế này cho phép ai đó đăng ký gói có cùng tên với gói tồn tại trong chỉ mục của bên thứ ba và pip sẽ cài đặt phiên bản của họ theo mặc định.

Chương trình pip, nhân tiện, từng được gọi là pyinstall, và rõ ràng là một trò đùa đệ quy viết tắt của pip installs packages. Mặc dù tên ban đầu của nó, nhưng bản thân nó không phải để cài đặt Python – đó là cách tiêu chuẩn để người dùng Python quản lý các thư viện phần mềm và ứng dụng được viết bằng Python, chẳng hạn như PyTorch và nhiều công cụ phổ biến khác.

Pwned bởi một mánh khóe chuỗi cung ứng

Bất kỳ ai không may cài đặt phiên bản PyTorch bị pwned trong giai đoạn nguy hiểm gần như chắc chắn sẽ bị phần mềm độc hại ăn cắp dữ liệu cài vào máy tính của họ.

Theo ngắn nhưng hữu ích của riêng PyTorch phân tích phần mềm độc hại, những kẻ tấn công đã đánh cắp một số, hầu hết hoặc tất cả dữ liệu quan trọng sau đây từ các hệ thống bị nhiễm:

  • Thông tin hệ thống, bao gồm tên máy chủ, tên người dùng, người dùng đã biết trên hệ thống và nội dung của tất cả các biến môi trường hệ thống. Biến môi trường là một cách cung cấp dữ liệu đầu vào chỉ trong bộ nhớ mà các chương trình có thể truy cập khi chúng khởi động, thường bao gồm dữ liệu không được lưu vào đĩa, chẳng hạn như khóa mật mã và mã thông báo xác thực cấp quyền truy cập vào các dịch vụ dựa trên đám mây. Danh sách người dùng đã biết được trích xuất từ /etc/passwd, may mắn thay, không thực sự chứa bất kỳ mật khẩu hoặc hàm băm mật khẩu nào.
  • Cấu hình Git cục bộ của bạn. Cái này bị đánh cắp từ $HOME/.gitconfigvà thường chứa thông tin hữu ích về thiết lập cá nhân của bất kỳ ai sử dụng hệ thống quản lý mã nguồn Git phổ biến.
  • Khóa SSH của bạn. Đây là những thứ bị đánh cắp từ thư mục $HOME/.ssh. Khóa SSH thường bao gồm các khóa riêng được sử dụng để kết nối an toàn qua SSH (vỏ bảo mật) hoặc sử dụng SCP (bản sao bảo mật) với các máy chủ khác trên mạng của riêng bạn hoặc trên đám mây. Nhiều nhà phát triển giữ ít nhất một số khóa riêng tư của họ không được mã hóa, để tập lệnh và công cụ phần mềm họ sử dụng có thể tự động kết nối với hệ thống từ xa mà không cần dừng lại để yêu cầu mật khẩu hoặc khóa bảo mật phần cứng mỗi lần.
  • 1000 tệp khác đầu tiên trong thư mục chính của bạn có kích thước nhỏ hơn 100 kilobyte. Mô tả phần mềm độc hại PyTorch không cho biết cách tính “danh sách 1000 tệp đầu tiên”. Nội dung và thứ tự của danh sách tệp phụ thuộc vào việc danh sách có được sắp xếp theo thứ tự bảng chữ cái hay không; liệu các thư mục con có được truy cập trước, trong hoặc sau khi xử lý các tệp trong bất kỳ thư mục nào hay không; có bao gồm các tệp ẩn hay không; và liệu có bất kỳ tính ngẫu nhiên nào được sử dụng trong mã đi qua các thư mục hay không. Có lẽ bạn nên cho rằng bất kỳ tệp nào dưới ngưỡng kích thước đều có thể là tệp bị đánh cắp.

Tại thời điểm này, chúng tôi sẽ đề cập đến một tin tốt: chỉ những người đã tải xuống phiên bản phần mềm được gọi là "hàng đêm" hoặc thử nghiệm mới gặp rủi ro. (Cái tên “hàng đêm” xuất phát từ thực tế đây là bản dựng mới nhất, thường được tạo tự động vào cuối mỗi ngày làm việc.)

Hầu hết người dùng PyTorch có thể sẽ gắn bó với cái gọi là phiên bản "ổn định", không bị ảnh hưởng bởi cuộc tấn công này.

Ngoài ra, từ báo cáo của PyTorch, có vẻ như tệp thực thi phần mềm độc hại Triton nhắm mục tiêu cụ thể vào môi trường Linux 64 bit.

Do đó, chúng tôi cho rằng chương trình độc hại này sẽ chỉ chạy trên máy tính Windows nếu Hệ thống con Windows dành cho Linux (WSL) đã được cài đặt.

Đừng quên, mặc dù những người có nhiều khả năng cài đặt “nightly” thường xuyên nhất bao gồm các nhà phát triển của chính PyTorch hoặc của các ứng dụng sử dụng nó – có thể bao gồm cả các nhà phát triển nội bộ của riêng bạn, những người có thể có quyền truy cập dựa trên khóa riêng vào bản dựng công ty , máy chủ thử nghiệm và sản xuất.

đánh cắp dữ liệu DNS

Thú vị thay, phần mềm độc hại Triton không lọc dữ liệu của nó (thuật ngữ biệt ngữ quân sự mà ngành an ninh mạng thích sử dụng thay vì ăn cắp or sao chép bất hợp pháp) bằng HTTP, HTTPS, SSH hoặc bất kỳ giao thức cấp cao nào khác.

Thay vào đó, nó mã hóa và mã hóa dữ liệu mà nó muốn đánh cắp thành một chuỗi trông giống như “tên máy chủ” thuộc về một tên miền do bọn tội phạm kiểm soát.

Điều này có nghĩa là bằng cách thực hiện một chuỗi tra cứu DNS, kẻ lừa đảo có thể đánh cắp một lượng nhỏ dữ liệu trong mỗi yêu cầu giả mạo.

Đây là cùng một loại mẹo đã được sử dụng bởi Tin tặc Log4Shell vào cuối năm 2021, kẻ đã làm rò rỉ khóa mã hóa bằng cách thực hiện tra cứu DNS cho “máy chủ” với “tên” tình cờ là giá trị của khóa truy cập AWS bí mật của bạn, đã lấy cắp từ một biến môi trường trong bộ nhớ.

Vì vậy, những gì trông giống như một tra cứu DNS vô tội, nếu vô nghĩa, cho một "máy chủ" chẳng hạn như S3CR3TPA55W0RD.DODGY.EXAMPLE sẽ lặng lẽ làm rò rỉ khóa truy cập của bạn dưới chiêu bài tra cứu đơn giản hướng đến máy chủ DNS chính thức được liệt kê cho DODGY.EXAMPLE miền.


LOG4Shell DEMO TRỰC TIẾP GIẢI THÍCH LỌC DỮ LIỆU QUA DNS

[Nhúng nội dung]

Nếu bạn không thể đọc rõ văn bản ở đây, hãy thử sử dụng chế độ Toàn màn hình hoặc xem trực tiếp trên Youtube.
Nhấp vào bánh răng trong trình phát video để tăng tốc độ phát lại hoặc bật phụ đề.


Nếu kẻ lừa đảo sở hữu tên miền DODGY.EXAMPLE, họ có thể cho cả thế giới biết máy chủ DNS nào sẽ kết nối khi thực hiện các tra cứu đó.

Quan trọng hơn, ngay cả các mạng lọc nghiêm ngặt các kết nối mạng dựa trên TCP bằng HTTP, SSH và các giao thức chia sẻ dữ liệu cấp cao khác…

…đôi khi hoàn toàn không lọc các kết nối mạng dựa trên UDP được sử dụng để tra cứu DNS.

Nhược điểm duy nhất đối với kẻ lừa đảo là các yêu cầu DNS có kích thước khá hạn chế.

Tên máy chủ riêng lẻ được giới hạn ở 64 ký tự trong bộ 37 (AZ, 0-9 và ký hiệu dấu gạch ngang hoặc dấu gạch nối) và nhiều mạng giới hạn các gói DNS riêng lẻ, bao gồm tất cả các yêu cầu, tiêu đề và siêu dữ liệu kèm theo, chỉ ở mức 512 byte mỗi gói.

Chúng tôi đoán đó là lý do tại sao phần mềm độc hại trong trường hợp này bắt đầu bằng cách theo dõi các khóa riêng tư của bạn, sau đó tự giới hạn tối đa 1000 tệp, mỗi tệp nhỏ hơn 100,000 byte.

Bằng cách đó, kẻ gian có thể đánh cắp nhiều dữ liệu riêng tư, đặc biệt là bao gồm các khóa truy cập máy chủ, mà không tạo ra một số lượng lớn tra cứu DNS khó quản lý.

Một số lượng lớn các tra cứu DNS có thể được chú ý vì các lý do hoạt động thông thường, ngay cả khi không có bất kỳ sự giám sát nào được áp dụng riêng cho mục đích an ninh mạng.

Phải làm gì?

PyTorch đã thực hiện hành động để ngăn chặn cuộc tấn công này, vì vậy nếu bạn chưa bị tấn công, thì gần như chắc chắn bạn sẽ không bị tấn công ngay bây giờ, vì phần mềm độc hại torchtriton gói trên PyPI đã được thay thế bằng một gói trống có cùng tên "dud" có chủ ý.

Điều này có nghĩa là bất kỳ người nào hoặc bất kỳ phần mềm nào đã cố cài đặt torchtriton từ PyPI sau 2022-12-30T08:38:06Z, cho dù do vô tình hay cố ý, sẽ không nhận được phần mềm độc hại.

Gói PyPI lừa đảo sau sự can thiệp của PyTorch.

PyTorch đã xuất bản một danh sách IoC tiện dụng, hoặc các chỉ số của sự thỏa hiệp, mà bạn có thể tìm kiếm trên mạng của mình.

Hãy nhớ rằng, như chúng tôi đã đề cập ở trên, rằng ngay cả khi hầu hết tất cả người dùng của bạn sử dụng phiên bản “ổn định”, không bị ảnh hưởng bởi cuộc tấn công này, bạn vẫn có thể có những nhà phát triển hoặc người đam mê thử nghiệm “nightly”, ngay cả khi họ sử dụng phiên bản ổn định. phát hành là tốt.

Theo PyTorch:

  • Phần mềm độc hại được cài đặt với tên tệp triton. Theo mặc định, bạn sẽ tìm thấy nó trong thư mục con triton/runtime trong thư mục gói trang web Python của bạn. Tuy nhiên, do chỉ riêng tên tệp là chỉ số phần mềm độc hại yếu, hãy coi sự hiện diện của tệp này là bằng chứng nguy hiểm; đừng coi sự vắng mặt của nó là hoàn toàn rõ ràng.
  • Phần mềm độc hại trong cuộc tấn công cụ thể này có tổng SHA256 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. Một lần nữa, phần mềm độc hại có thể dễ dàng được biên dịch lại để tạo ra một tổng kiểm tra khác, do đó, việc không có tệp này không phải là dấu hiệu của tình trạng sức khỏe rõ ràng, nhưng bạn có thể coi sự hiện diện của nó là dấu hiệu của sự lây nhiễm.
  • Tra cứu DNS được sử dụng để đánh cắp dữ liệu đã kết thúc với tên miền H4CK.CFD. Nếu bạn có nhật ký mạng ghi lại các tra cứu DNS theo tên, bạn có thể tìm kiếm chuỗi văn bản này để làm bằng chứng cho thấy dữ liệu bí mật đã bị rò rỉ.
  • Các phản hồi DNS độc hại rõ ràng đã được gửi đến và các phản hồi, nếu có, đến từ một máy chủ DNS có tên WHEEZY.IO. Hiện tại, chúng tôi không thể tìm thấy bất kỳ số IP nào được liên kết với dịch vụ đó và PyTorch chưa cung cấp bất kỳ dữ liệu IP nào có thể liên kết DNS taffic với phần mềm độc hại này, vì vậy chúng tôi không chắc mức độ sử dụng thông tin này để tìm kiếm mối đe dọa tại thời điểm này [2023-01-01T21:05:00Z].

May mắn thay, chúng tôi đoán rằng phần lớn người dùng PyTorch sẽ không bị ảnh hưởng bởi điều này, bởi vì họ không sử dụng các bản dựng hàng đêm hoặc không làm việc trong kỳ nghỉ hoặc cả hai.

Nhưng nếu bạn là một người đam mê PyTorch, người mày mò các bản dựng hàng đêm và nếu bạn làm việc trong các ngày nghỉ, thì ngay cả khi bạn không thể tìm thấy bất kỳ bằng chứng rõ ràng nào cho thấy mình đã bị xâm phạm…

…tuy nhiên, bạn có thể muốn xem xét việc tạo các cặp khóa SSH mới để đề phòng và cập nhật các khóa chung mà bạn đã tải lên các máy chủ khác nhau mà bạn truy cập qua SSH.

Tất nhiên, nếu bạn nghi ngờ mình đã bị xâm phạm, thì đừng tắt các bản cập nhật khóa SSH đó – nếu bạn chưa thực hiện chúng, hãy thực hiện chúng ngay bây giờ!


Dấu thời gian:

Thêm từ An ninh trần trụi