Kami telah menulis tentang PHP Ekosistem paket sebelumnya.
Seperti PyPI untuk Pythonista, Permata untuk penggemar Ruby, NPM untuk pemrogram JavaScript, atau LuaRocks untuk Luaphiles, Packagist adalah repositori tempat kontributor komunitas dapat menerbitkan detail paket PHP yang mereka buat.
Hal ini memudahkan sesama pembuat kode PHP untuk mendapatkan kode pustaka yang ingin mereka gunakan dalam proyek mereka sendiri, dan memperbarui kode tersebut secara otomatis jika mereka mau.
Tidak seperti PyPI, yang menyediakan servernya sendiri tempat kode perpustakaan sebenarnya disimpan (atau LuaRocks, yang terkadang menyimpan kode sumber proyek itu sendiri dan terkadang menautkan ke repositori lain), Tautan Packagist ke, tetapi tidak menyimpan salinannya sendiri, kode yang Anda perlu mengunduh.
Ada keuntungan melakukannya dengan cara ini, khususnya bahwa proyek yang dikelola melalui layanan kode sumber terkenal seperti GitHub tidak perlu menyimpan dua salinan dari rilis resmi mereka, yang membantu menghindari masalah "penyimpangan versi" antara sistem kontrol kode sumber dan sistem pengemasan.
Dan ada sisi negatifnya, terutama ada dua cara berbeda yang pasti membuat paket bisa dijebak.
Manajer paket itu sendiri dapat diretas, di mana mengubah satu URL saja sudah cukup untuk menyesatkan pengguna paket.
Atau repositori kode sumber yang ditautkan dapat diretas, sehingga pengguna yang mengikuti apa yang tampak seperti URL yang benar akan berakhir dengan konten nakal.
Akun lama dianggap berbahaya
Kredensial mikro menyerang (kami akan menyebutnya begitu, meskipun tidak ada kode jebakan yang diterbitkan oleh peretas yang bersangkutan) menggunakan apa yang Anda sebut pendekatan hybrid.
Penyerang menemukan empat akun Packagist lama dan tidak aktif yang entah bagaimana mereka dapatkan kata sandi masuknya.
Mereka kemudian mengidentifikasi 14 proyek GitHub yang ditautkan oleh akun tidak aktif ini dan menyalinnya ke akun GitHub yang baru dibuat.
Akhirnya, mereka men-tweak paket-paket di sistem Packagist untuk menunjuk ke repositori GitHub yang baru.
Mengkloning proyek GitHub sangat umum. Kadang-kadang, pengembang ingin membuat garpu asli (versi alternatif) dari proyek di bawah manajemen baru, atau menawarkan fitur yang berbeda; di lain waktu, proyek bercabang tampaknya disalin untuk apa yang secara tidak menyenangkan disebut "alasan volumetrik", membuat akun GitHub terlihat lebih besar, lebih baik, lebih sibuk, dan lebih berkomitmen pada komunitas (jika Anda mau memaafkan permainan kata-kata) daripada yang sebenarnya.
Meskipun peretas dapat memasukkan kode jahat ke dalam sumber GitHub PHP yang dikloning, seperti menambahkan pelacak, keylogger, pintu belakang, atau malware lainnya, tampaknya yang mereka ubah hanyalah satu item di setiap proyek: sebuah file bernama composer.json
.
File ini termasuk entri berjudul description
, yang biasanya berisi apa yang ingin Anda lihat: string teks yang menjelaskan kegunaan kode sumber.
Dan itu semua yang dimodifikasi peretas kami, mengubah teks dari sesuatu yang informatif, seperti Project PPP implements the QQQ protocol so you can RRR
, sehingga proyek mereka justru melaporkan:
Dimiliki oleh XXX@XXXX.com. Ini adalah Keamanan Aplikasi, Penguji Penetrasi, Spesialis Keamanan Cyber.
Kalimat kedua, ditulis setengah dalam bahasa Rusia, setengah dalam bahasa Inggris, artinya:
Saya mencari pekerjaan di Keamanan Aplikasi... dll.
Kami tidak dapat berbicara untuk semua orang, tetapi seiring berjalannya CV (resume), kami tidak menganggap ini terlalu meyakinkan.
Juga kata tim pembuat paket bahwa semua perubahan yang tidak sah sekarang telah dikembalikan, dan bahwa 14 proyek GitHub yang dikloning tidak dimodifikasi dengan cara apa pun selain menyertakan permintaan pekerjaan dari pemilik.
Untuk apa nilainya, akun GitHub calon pakar Keamanan Aplikasi masih aktif, dan masih memiliki proyek "bercabang" di dalamnya.
Kami tidak tahu apakah GitHub belum sempat menghapus akun atau proyek, atau apakah situs telah memutuskan untuk tidak menghapusnya.
Lagi pula, proyek forking adalah hal yang lumrah dan diperbolehkan (di mana persyaratan lisensi memungkinkan, setidaknya), dan meskipun menjelaskan proyek kode yang tidak berbahaya dengan teks Pwned by XXXX@XXXX.com
tidak membantu, hampir tidak ilegal.
Apa yang harus dilakukan?
- Jangan lakukan ini. Anda pasti tidak akan menarik minat pemberi kerja yang sah, dan (jika kami jujur) Anda bahkan tidak akan mengesankan penjahat dunia maya mana pun di luar sana.
- Jangan biarkan akun yang tidak terpakai aktif jika Anda dapat membantu. Seperti yang kami katakan kemarin Hari Sandi Sedunia, pertimbangkan untuk menutup akun yang tidak Anda perlukan lagi, karena semakin sedikit kata sandi yang Anda gunakan, semakin sedikit kata sandi yang dapat dicuri.
- Jangan menggunakan ulang kata sandi di lebih dari satu akun. Asumsi Packagist adalah bahwa kata sandi yang disalahgunakan dalam kasus ini ada di catatan pelanggaran data dari akun lain di mana korban menggunakan kata sandi yang sama seperti di akun Packagist mereka.
- Jangan lupakan 2FA Anda. Packagists mendesak semua penggunanya sendiri untuk mengaktifkan 2FA, jadi kata sandi saja tidak cukup bagi penyerang untuk masuk ke akun Anda, dan merekomendasikan untuk melakukan hal yang sama di akun GitHub Anda juga.
- Jangan membabi buta menerima pembaruan rantai pasokan tanpa memeriksa kebenarannya. Jika Anda memiliki jaringan dependensi paket yang rumit, Anda tergoda untuk mengesampingkan tanggung jawab Anda dan membiarkan sistem mengambil semua pembaruan Anda secara otomatis, tetapi itu hanya menempatkan Anda dan pengguna hilir Anda pada risiko tambahan.
INI SARAN DARI HARI PASSWORD DUNIA
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- PlatoAiStream. Kecerdasan Data Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Mencetak Masa Depan bersama Adryenn Ashley. Akses Di Sini.
- Beli dan Jual Saham di Perusahaan PRE-IPO dengan PREIPO®. Akses Di Sini.
- Sumber: https://nakedsecurity.sophos.com/2023/05/05/php-packagist-supply-chain-poisoned-by-hacker-looking-for-a-job/
- :memiliki
- :adalah
- :bukan
- :Di mana
- $NAIK
- 1
- 14
- 15%
- 2FA
- a
- Tentang Kami
- Mutlak
- Setuju
- Akun
- Akun
- diperoleh
- aktif
- menambahkan
- Tambahan
- nasihat
- Semua
- mengizinkan
- sendirian
- alternatif
- Meskipun
- an
- dan
- Apa pun
- Aplikasi
- keamanan aplikasi
- pendekatan
- ADALAH
- sekitar
- AS
- anggapan
- At
- penulis
- mobil
- secara otomatis
- menghindari
- backdoors
- background-image
- BE
- menjadi
- sebelum
- Lebih baik
- antara
- lebih besar
- BleepingComputer
- secara membabi buta
- batas
- Bawah
- pelanggaran
- tapi
- by
- panggilan
- bernama
- CAN
- kasus
- pusat
- rantai
- berubah
- Perubahan
- mengubah
- penutupan
- kode
- warna
- COM
- berkomitmen
- Umum
- masyarakat
- rumit
- prihatin
- Mempertimbangkan
- dianggap
- mengandung
- Konten
- kontributor
- kontrol
- salinan
- bisa
- menutupi
- membuat
- dibuat
- CVS
- maya
- keamanan cyber
- data
- Data pelanggaran
- Tanggal
- memutuskan
- pastinya
- rincian
- pengembang
- berbeda
- Display
- do
- Tidak
- melakukan
- Dont
- turun
- Download
- Kelemahan
- setiap
- Mudah
- antara
- majikan
- pekerjaan
- akhir
- Inggris
- cukup
- masuk
- dll
- Bahkan
- semua orang
- persis
- mengharapkan
- penggemar
- Fitur
- sesama
- sedikit
- File
- Menemukan
- diikuti
- Untuk
- garpu
- garpu
- ditemukan
- empat
- dari
- asli
- mendapatkan
- GitHub
- Go
- akan
- hack
- hacker
- memiliki
- Setengah
- Memiliki
- tinggi
- membantu
- membantu
- memegang
- melayang-layang
- HTTPS
- Hibrida
- i
- diidentifikasi
- if
- liar
- mengimplementasikan
- in
- non-aktif
- memasukkan
- termasuk
- luar biasa
- mau tak mau
- informatif
- sebagai gantinya
- bunga
- ke
- IT
- NYA
- Diri
- JavaScript
- Pekerjaan
- hanya
- Menjaga
- Tahu
- paling sedikit
- Meninggalkan
- meninggalkan
- sah
- Perpustakaan
- Perizinan
- 'like'
- terkait
- link
- hidup
- mencatat
- masuk
- melihat
- tampak
- mencari
- memelihara
- MEMBUAT
- Membuat
- malware
- berhasil
- pengelolaan
- manajer
- Margin
- max-width
- cara
- mungkin
- dimodifikasi
- lebih
- Perlu
- New
- tidak
- normal
- terutama
- sekarang
- of
- menawarkan
- resmi
- Tua
- on
- ONE
- or
- Lainnya
- kami
- di luar
- sendiri
- paket
- paket
- pengemasan
- Kata Sandi
- password
- paul
- penetrasi
- PHP
- plato
- Kecerdasan Data Plato
- Data Plato
- Titik
- posisi
- Posts
- PPP
- Masalah
- Programmer
- proyek
- memprojeksikan
- protokol
- menyediakan
- menerbitkan
- diterbitkan
- Menempatkan
- benar-benar
- merekomendasikan
- arsip
- Pers
- menghapus
- Dilaporkan
- gudang
- tanggung jawab
- meninjau
- Risiko
- bulat
- Rusia
- Tersebut
- sama
- Kedua
- keamanan
- melihat
- terlihat
- tampaknya
- putusan pengadilan
- Layanan
- tunggal
- situs web
- So
- permohonan
- padat
- sesuatu
- sumber
- kode sumber
- berbicara
- spesialis
- Masih
- dicuri
- tersimpan
- toko
- Tali
- seperti itu
- menyediakan
- supply chain
- SVG
- sistem
- tim
- istilah
- dari
- bahwa
- Grafik
- Proyek
- Sumber
- mereka
- Mereka
- kemudian
- Sana.
- Ini
- mereka
- ini
- itu
- meskipun?
- kali
- untuk
- terlalu
- puncak
- lemparan
- pelacak
- transisi
- jelas
- MENGHIDUPKAN
- dua
- bawah
- terpakai
- Pembaruan
- upside
- mendesak
- URL
- menggunakan
- bekas
- Pengguna
- biasanya
- versi
- melalui
- korban
- ingin
- adalah
- Cara..
- cara
- we
- jaringan
- terkenal
- adalah
- Apa
- apakah
- yang
- SIAPA
- akan
- dengan
- tanpa
- dunia
- bernilai
- akan
- tertulis
- namun
- kamu
- Anda
- zephyrnet.dll