PyTorch: Perangkat Pembelajaran Mesin yang dibuat dari Natal hingga Tahun Baru PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

PyTorch: Toolkit Pembelajaran Mesin dibuat dari Natal hingga Tahun Baru

PyTorch adalah salah satu toolkit pembelajaran mesin yang paling populer dan banyak digunakan di luar sana.

(Kami tidak akan tertarik pada tempatnya di papan peringkat kecerdasan buatan โ€“ karena dengan banyak alat sumber terbuka yang banyak digunakan di bidang kompetitif, jawabannya tampaknya bergantung pada siapa yang Anda tanyakan, dan perangkat mana yang kebetulan mereka gunakan. diri.)

Awalnya dikembangkan dan dirilis sebagai proyek sumber terbuka oleh Facebook, sekarang Meta, perangkat lunak tersebut diserahkan ke Linux Foundation pada akhir tahun 2022, yang sekarang menjalankannya di bawah naungan PyTorch Foundation.

Sayangnya, proyek itu dikompromikan melalui serangan rantai pasokan selama musim liburan di akhir tahun 2022, antara Hari Natal [2022-12-25] dan sehari sebelum Malam Tahun Baru [2022-12-30].

Penyerang dengan jahat membuat paket Python yang disebut torchtriton di PyPI, repositori Indeks Paket Python yang populer.

Nama torchtriton dipilih agar cocok dengan nama paket di sistem PyTorch itu sendiri, yang mengarah ke situasi berbahaya dijelaskan oleh tim PyTorch (penekanan kami) sebagai berikut:

[A] paket ketergantungan berbahaya (torchtriton) [โ€ฆ] telah diunggah ke repositori kode Python Package Index (PyPI) dengan nama paket yang sama dengan yang kami kirimkan pada indeks paket nightly PyTorch. Karena indeks PyPI diutamakan, paket berbahaya ini sedang diinstal, bukan versi dari repositori resmi kami. Desain ini memungkinkan seseorang untuk mendaftarkan paket dengan nama yang sama dengan yang ada di indeks pihak ketiga, dan pip akan menginstal versi mereka secara default.

Program pip, omong-omong, dulu dikenal sebagai pyinstall, dan tampaknya merupakan lelucon rekursif yang merupakan kependekan dari pip installs packages. Terlepas dari nama aslinya, ini bukan untuk menginstal Python itu sendiri โ€“ ini adalah cara standar bagi pengguna Python untuk mengelola pustaka perangkat lunak dan aplikasi yang ditulis dengan Python, seperti PyTorch dan banyak alat populer lainnya.

Didukung oleh trik rantai pasokan

Siapa pun yang cukup malang untuk menginstal versi pwned dari PyTorch selama periode bahaya hampir pasti berakhir dengan malware pencuri data yang ditanamkan di komputer mereka.

Menurut PyTorch sendiri singkat tapi bermanfaat analisis malware, penyerang mencuri beberapa, sebagian besar atau semua data penting berikut dari sistem yang terinfeksi:

  • Informasi sistem, termasuk nama host, nama pengguna, pengguna yang dikenal di sistem, dan isi dari semua variabel lingkungan sistem. Variabel lingkungan adalah cara menyediakan data input memori saja yang dapat diakses program saat dimulai, seringkali termasuk data yang tidak seharusnya disimpan ke disk, seperti kunci kriptografi dan token autentikasi yang memberikan akses ke layanan berbasis cloud. Daftar pengguna yang dikenal diambil dari /etc/passwd, yang untungnya, sebenarnya tidak mengandung kata sandi atau hash kata sandi.
  • Konfigurasi Git lokal Anda. Ini dicuri dari $HOME/.gitconfig, dan biasanya berisi informasi berguna tentang penyiapan pribadi siapa pun yang menggunakan sistem manajemen kode sumber Git yang populer.
  • Kunci SSH Anda. Ini dicuri dari direktori $HOME/.ssh. Kunci SSH biasanya menyertakan kunci privat yang digunakan untuk terhubung dengan aman melalui SSH (secure shell) atau menggunakan SCP (salinan aman) ke server lain di jaringan Anda sendiri atau di cloud. Banyak pengembang menyimpan setidaknya beberapa kunci pribadi mereka tidak terenkripsi, sehingga skrip dan alat perangkat lunak yang mereka gunakan dapat terhubung secara otomatis ke sistem jarak jauh tanpa berhenti untuk meminta kata sandi atau kunci keamanan perangkat keras setiap saat.
  • 1000 file pertama lainnya di direktori home Anda berukuran lebih kecil dari 100 kilobyte. Deskripsi malware PyTorch tidak mengatakan bagaimana "1000 daftar file pertama" dihitung. Konten dan urutan daftar file bergantung pada apakah daftar tersebut diurutkan menurut abjad; apakah subdirektori dikunjungi sebelum, selama, atau setelah memproses file di direktori mana pun; apakah file tersembunyi disertakan; dan apakah ada keacakan yang digunakan dalam kode yang menelusuri direktori. Anda mungkin harus berasumsi bahwa file apa pun di bawah ambang ukuran bisa menjadi file yang akhirnya dicuri.

Pada titik ini, kami akan menyebutkan kabar baik: hanya mereka yang mengambil apa yang disebut versi perangkat lunak "nightly", atau eksperimental, yang berisiko. (Nama "nightly" berasal dari fakta bahwa ini adalah build terbaru, biasanya dibuat secara otomatis di akhir setiap hari kerja.)

Sebagian besar pengguna PyTorch mungkin akan tetap menggunakannya yang disebut versi "stabil", yang tidak terpengaruh oleh serangan ini.

Juga, dari laporan PyTorch, sepertinya file eksekusi malware Triton secara khusus menargetkan lingkungan Linux 64-bit.

Oleh karena itu, kami berasumsi bahwa program berbahaya ini hanya akan berjalan di komputer Windows jika Subsistem Windows untuk Linux (WSL) diinstal.

Jangan lupa, meskipun orang yang paling mungkin menginstal "nightlies" biasa termasuk pengembang PyTorch itu sendiri atau aplikasi yang menggunakannya - mungkin termasuk pengembang internal Anda sendiri, yang mungkin memiliki akses berbasis kunci pribadi ke bangunan perusahaan , server pengujian dan produksi.

Pencurian data DNS

Menariknya, malware Triton tidak mengekstraksi datanya (istilah jargon militeristik yang suka digunakan oleh industri keamanan siber alih-alih mencuri or menyalin secara ilegal) menggunakan HTTP, HTTPS, SSH, atau protokol tingkat tinggi lainnya.

Sebaliknya, ia mengenkripsi dan menyandikan data yang ingin dicurinya ke dalam urutan yang tampak seperti โ€œnama serverโ€ milik nama domain yang dikendalikan oleh penjahat.

Artinya, dengan melakukan serangkaian pencarian DNS, penjahat dapat menyelinapkan sejumlah kecil data di setiap permintaan palsu.

Ini adalah jenis trik yang sama yang digunakan oleh Peretas Log4Shell pada akhir tahun 2021, yang membocorkan kunci enkripsi dengan melakukan pencarian DNS untuk "server" dengan "nama" yang kebetulan merupakan nilai kunci akses AWS rahasia Anda, dijarah dari variabel lingkungan dalam memori.

Jadi apa yang tampak seperti pencarian DNS yang tidak bersalah, jika tidak berguna, untuk "server" seperti S3CR3TPA55W0RD.DODGY.EXAMPLE diam-diam akan membocorkan kunci akses Anda dengan kedok pencarian sederhana yang diarahkan ke server DNS resmi yang terdaftar untuk DODGY.EXAMPLE domain.


DEMO LOG4SHELL LANGSUNG MENJELASKAN EKSFILTRASI DATA MELALUI DNS

[Embedded content]

Jika Anda tidak dapat membaca teks dengan jelas di sini, coba gunakan mode Layar Penuh, atau tonton langsung di Youtube.
Klik roda penggerak di pemutar video untuk mempercepat pemutaran atau mengaktifkan subtitle.


Jika penjahat memiliki domain DODGY.EXAMPLE, mereka dapat memberi tahu dunia server DNS mana yang harus disambungkan saat melakukan pencarian tersebut.

Lebih penting lagi, bahkan jaringan yang secara ketat memfilter koneksi jaringan berbasis TCP menggunakan HTTP, SSH, dan protokol berbagi data tingkat tinggi lainnyaโ€ฆ

โ€ฆterkadang sama sekali tidak memfilter koneksi jaringan berbasis UDP yang digunakan untuk pencarian DNS.

Satu-satunya downside untuk para penjahat adalah permintaan DNS memiliki ukuran yang agak terbatas.

Nama server individual dibatasi hingga 64 karakter dari 37 karakter (AZ, 0-9 dan simbol tanda hubung atau tanda hubung), dan banyak jaringan membatasi paket DNS individual, termasuk semua permintaan, header, dan metadata terlampir, masing-masing hanya 512 byte.

Kami menduga itulah mengapa malware dalam kasus ini dimulai dengan mencari kunci pribadi Anda, lalu membatasi diri hingga maksimal 1000 file, masing-masing lebih kecil dari 100,000 byte.

Dengan begitu, penjahat dapat mencuri banyak data pribadi, terutama termasuk kunci akses server, tanpa menghasilkan pencarian DNS dalam jumlah besar yang tidak dapat dikelola.

Sejumlah besar pencarian DNS mungkin diperhatikan karena alasan operasional rutin, bahkan ketika tidak ada pengawasan yang diterapkan secara khusus untuk tujuan keamanan siber.

Apa yang harus dilakukan?

PyTorch telah mengambil tindakan untuk mematikan serangan ini, jadi jika Anda belum terkena, Anda hampir pasti tidak akan terkena sekarang, karena berbahaya torchtriton paket pada PyPI telah diganti dengan sengaja "tidak berguna", paket kosong dengan nama yang sama.

Ini berarti siapa pun, atau perangkat lunak apa pun, yang mencoba menginstal torchtriton dari PyPI setelah 2022-12-30T08:38:06Z, baik secara tidak sengaja atau sengaja, tidak akan menerima malware.

Paket PyPI nakal setelah intervensi PyTorch.

PyTorch telah menerbitkan daftar IoC yang praktis, atau indikator kompromi, yang dapat Anda telusuri di seluruh jaringan Anda.

Ingat, seperti yang kami sebutkan di atas, bahwa meskipun hampir semua pengguna Anda tetap menggunakan versi "stabil", yang tidak terpengaruh oleh serangan ini, Anda mungkin memiliki pengembang atau penggemar yang bereksperimen dengan "nightlies", meskipun mereka menggunakan versi stabil rilis juga.

Menurut PyTorch:

  • Malware diinstal dengan nama file triton. Secara default, Anda akan berharap menemukannya di subdirektori triton/runtime di direktori paket situs Python Anda. Mengingat bahwa nama file saja merupakan indikator malware yang lemah, bagaimanapun, perlakukan keberadaan file ini sebagai bukti bahaya; jangan perlakukan ketiadaannya sebagai semua jelas.
  • Malware dalam serangan khusus ini memiliki jumlah SHA256 2385b294ยญ89cd9e35ยญf92c0727ยญ80f903aeยญ2e517ed4ยญ22eae672ยญ46ae50a5cc738a0e. Sekali lagi, malware dapat dengan mudah dikompilasi ulang untuk menghasilkan checksum yang berbeda, jadi tidak adanya file ini bukanlah tanda kesehatan yang pasti, tetapi Anda dapat memperlakukan keberadaannya sebagai tanda infeksi.
  • Pencarian DNS yang digunakan untuk mencuri data diakhiri dengan nama domain H4CK.CFD. Jika Anda memiliki log jaringan yang mencatat pencarian DNS berdasarkan nama, Anda dapat mencari string teks ini sebagai bukti bahwa data rahasia telah bocor.
  • Balasan DNS jahat tampaknya masuk ke, dan balasan, jika ada, berasal dari server DNS yang dipanggil WHEEZY.IO. Saat ini, kami tidak dapat menemukan nomor IP apa pun yang terkait dengan layanan tersebut, dan PyTorch belum memberikan data IP apa pun yang akan mengikat taffic DNS ke malware ini, jadi kami tidak yakin seberapa banyak penggunaan informasi ini untuk perburuan ancaman. saat ini [2023-01-01T21:05:00Z].

Untungnya, kami menduga sebagian besar pengguna PyTorch tidak akan terpengaruh oleh hal ini, baik karena mereka tidak menggunakan nightly build, atau tidak bekerja selama masa liburan, atau keduanya.

Tetapi jika Anda adalah penggemar PyTorch yang mengotak-atik nightly build, dan jika Anda telah bekerja selama liburan, bahkan jika Anda tidak dapat menemukan bukti jelas bahwa Anda telah disusupiโ€ฆ

โ€ฆnamun Anda mungkin ingin mempertimbangkan untuk membuat pasangan kunci SSH baru sebagai tindakan pencegahan, dan memperbarui kunci publik yang telah Anda unggah ke berbagai server yang Anda akses melalui SSH.

Jika Anda curiga Anda disusupi, tentu saja, jangan tunda pembaruan kunci SSH tersebut โ€“ jika Anda belum melakukannya, lakukan sekarang juga!


Stempel Waktu:

Lebih dari Keamanan Telanjang