Cách đây vài ngày, người ta thông báo rằng 11 gói chứa mã độc đã được phát hiện trong thư mục PyPI (chỉ mục gói Python).
Trước khi các vấn đề được phát hiện, các gói phần mềm độc hại đã được tải xuống tổng cộng khoảng 38 lần , và điều đáng chú ý là các gói phần mềm độc hại được phát hiện nổi bật nhờ việc sử dụng các phương pháp tinh vi để che giấu các kênh liên lạc với máy chủ của kẻ tấn công.
Các gói đã được phát hiện như sau:
- gói quan trọng (6305 lượt tải xuống) e gói quan trọng (12897): những gói này thiết lập kết nối với máy chủ bên ngoài dưới chiêu bài kết nối với pypi.python.org để cung cấp quyền truy cập shell vào hệ thống (ngược lại shell) và sử dụng chương trình trevorc2 để ẩn kênh liên lạc.
- pptt (10001) và bảng ip (946): đã sử dụng DNS làm kênh liên lạc để chuyển thông tin về hệ thống (trong gói đầu tiên, tên máy chủ, thư mục làm việc, IP bên trong và bên ngoài, trong gói thứ hai, tên người dùng và tên máy chủ).
- con cú (3285) DiscordAn toàn (557) y tiệc tùng (1859) - Xác định mã thông báo dịch vụ Discord trên hệ thống và gửi nó đến máy chủ bên ngoài.
- trfab (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 một kết nối trình bao ngược với một máy chủ bên ngoài.
yandex-yt (4183): hiển thị thông báo về hệ thống bị xâm phạm và được chuyển hướng đến trang có thông tin bổ sung về các hành động bổ sung, được cấp qua nda.ya.ru (api.ya.cc).
Do đó, cần đặc biệt chú ý đến 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 importantpackage và important-package, vốn sử dụng mạng phân phối nội dung Fastly được dùng trong danh mục PyPI để che giấu 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 việc chỉ định tên của python.org trong SNI trong yêu cầu HTTPS), nhưng tên của máy chủ do kẻ tấn công kiểm soát đã được đặt trong tiêu đề HTTP "Máy chủ ». Mạng phân phối nội dung đã gửi một yêu cầu tương tự đến máy chủ của kẻ 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 của PyPI được cung cấp bởi Mạng lưới phân phối nội dung Fastly (CDN), sử dụng proxy trong suốt của Varnish để lưu trữ các yêu cầu thông thường và sử dụng xử lý chứng chỉ TLS cấp CDN, thay vì máy chủ điểm cuối, để chuyển tiếp các yêu cầu HTTPS thông qua proxy. Bất kể máy chủ đích là gì, các yêu cầu đều được gửi đến proxy, proxy sẽ xác định máy chủ mong muốn bằng tiêu đề HTTP "Host", và tên miền được liên kết với các địa chỉ IP cân bằng tải CDN thông thường được tìm thấy trên tất cả các máy khách Fastly.
Máy chủ của kẻ tấn công cũng được đăng ký với CDN Fastly , nơi cung cấp các gói miễn phí và thậm chí cho phép đăng ký ẩn danh. Điều đáng chú ý là một thủ đoạn tương tự được sử dụng để gửi yêu cầu đến nạn nhân khi một "vỏ đảo ngược" được tạo ra, nhưng được khởi tạo bởi máy chủ của kẻ tấn công. Từ bên ngoài, tương tác với máy chủ của kẻ tấn công dường như là một phiên hợp lệ với thư mục PyPI, được mã hóa bằng chứng chỉ TLS của PyPI. Một kỹ thuật tương tự, được gọi là "domain fronting", trước đây đã được sử dụng để chủ động che giấu tên máy chủ bằng cách vượt qua các rào cản. Điều này liên quan đến việc sử dụng tùy chọn HTTPS do một số CDN cung cấp, chỉ định máy chủ giả trong SNI và truyền tên máy chủ được yêu cầu trong tiêu đề máy chủ HTTP trong một phiên TLS.
Để che giấu hoạt động độc hại, gói TrevorC2 đã được sử dụng bổ sung, giúp tương tác với máy chủ tương tự như duyệt web thông thường.
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 yêu cầu 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 truy vấn DNS, trong đó dữ liệu truyền đến máy chủ chỉ huy và đ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 chấp nhận các thông báo này bằng cách kiểm soát máy chủ DNS của miền.
Cuối cùng, nếu bạn muốn tìm hiểu thêm, bạn có thể xem chi tiết tại liên kết sau.