Paket Malicious Sumber Terbuka: Masalahé

Paket Malicious Sumber Terbuka: Masalahé

Iki minangka episode pisanan ing seri artikel babagan jinis serangan rantai pasokan piranti lunak sing paling umum: sing (ab) nggunakake registri umum komponen piranti lunak, sing dimaksudake kanggo proyek open-source kanggo ngunggah artefak sing bisa dienggo bareng karo pangguna liyane. Nalika wong jahat nerbitake piranti lunak angkoro ing kana, nggunakake registri minangka kendaraan kanggo distribusi malware, kita duwe serangan rantai pasokan nalika organisasi korban nginstal utawa mbukak komponen piranti lunak sing kena infeksi. 

Kanggo nggampangake diskusi, kita bakal ngrembug babagan paket perangkat lunak:, komponen ing wangun kemasan sing diprodhuksi dening pihak katelu. Iki ora mung kalebu komponen sing digunakake dening manajer paket kaya NPM utawa Poetry, nanging uga komponen sistem operasi kalebu pustaka lan binar sing bisa dieksekusi, gambar wadhah, lan mesin virtual, utawa ekstensi alat kanggo piranti pangembangan, pambangunan, lan panyebaran. Kita wis ndeleng paket angkoro ing endi-endi. Penjahat siber ora masalah: dheweke seneng karo alternatif sing diwenehake dening infrastruktur piranti lunak modern lan nggunakake registri lan alat sing paling cocog karo tujuane. Dadi, elinga yen paket piranti lunak minangka cekakan saka gambar wadhah, paket biner, repositori sumber terbuka, lan ekstensi utawa plugin saka kabeh jinis (IDE, CI/CD sistem, piranti panggawe). Kabeh rutin diserang.

Seri iki bakal duwé 5 episode:

  • Apa Masalah karo Paket Sumber Terbuka? Iki tema postingan iki. Yagene penjahat saka kabeh jinis nerbitake paket jahat? Yagene aku kudu kuwatir?
  • Anatomi Paket Jahat: Apa Tren sing Ana? Ing episode iki, kita fokus ing ancaman sing lagi dipantau nganggo sistem MEW, saben dina. Kanthi gangguan latar mburi sing gedhe amarga akeh paket jahat sing nggunakake typosquatting utawa kebingungan dependensi, persentase serangan sing luwih cilik luwih mbebayani lan nuwuhake risiko sing luwih gedhe. Kepiye owah-owahan prilaku aktor jahat babagan OS ing jaman kepungkur? Apa angka-angka kasebut? Apa taktik, teknik, lan prosedur sing digunakake, lan tumindak mbebayani sing katon?
  • Nglindhungi saka Paket Malicious Sumber Terbuka: Apa sing (Ora) Bisa DigunakakeUmume profesional sing ngerti keamanan duwe ide babagan carane nangani ancaman iki. Kita wis krungu manajer keamanan ngomong tanpa ragu-ragu yen SCA Piranti wis ngandhani sampeyan nalika versi paket kasebut minangka malware. Utawa yen piranti kasebut gumantung marang komponen piranti lunak sing wis dikenal lan diulas kanthi apik, ing ngendi malware apa wae bakal langsung dideteksi lan dibusak. Piranti kasebut nggunakake versi minor/patch terbuka kanggo entuk perbaikan kerentanan kanthi otomatis, lan iku cara sing tepat lan disaranake kanggo nyuda risiko ing dependensi sumber terbuka, miturut prinsip "patch awal, patch asring". Ing episode iki, kita bakal nliti kenapa ide-ide kasebut salah, lan kepiye salah paham kasebut nyumbang kanggo popularitas mekanisme serangan iki, lan risiko sing akeh banget sing dialami organisasi. Kita bakal mungkasi karo apa sing bisa digunakake, lan endi upaya lan sumber daya sing digunakake.
  • Paket Malicious Sumber Terbuka: Pendekatan XygeniIng episode iki, kita nampilake strategi sing kita tindakake ing Xygeni kanggo sistem Peringatan Awal Malware (MEW). Kepiye sistem multi-tahap iki bisa digunakake kanthi wektu nyata nalika versi paket anyar diterbitake, kepiye bukti dijupuk saka macem-macem sumber, kepiye triage ditindakake, kriteria klasifikasi apa sing kita tindakake, lan kenapa sawetara analisis manual isih dibutuhake kanggo ngonfirmasi sifat kandidat paket jahat? Kepiye umpan balik saka tim internal lan registri mbantu sistem sinau saka bukti sing diklumpukake sadurunge kanggo nyuda positif palsu seminimal mungkin. Kita bakal nerangake kepiye kita mbantu NPM, GitHub, PyPI, lan infrastruktur utama liyane ing ekosistem sumber terbuka kanggo nyuda wektu urip.
  • Ngoptimalake Sumber Terbuka: Apa sing Dikarepake Saka Wong AlaSeri iki rampung kanthi fokus ing tumindak paling anyar sing ditindakake mungsuh kanggo nggawe serangan luwih rahasia, luwih angel dideteksi, luwih ditargetkan marang industri tartamtu, lan entuk luwih akeh keuntungan saka kelas serangan iki. Apa serangan ransomware bakal dikirim nggunakake kendaraan iki? Kepiye wong jahat nggunakake alat AI kanggo ngirim paket jahat sing luwih canggih? Apa proyek populer paling dhuwur ana ing bebaya? Iki kanggo menehi pamaca perasaan babagan perlombaan senjata iki, lan apa sing diarepake ing jangka pendek (paruh kapindho 2024) lan jangka menengah (2025). Kita bakal sinau kepiye serangan kaya sing bubar iki Lawang mburi XZ-Utils, utawa serangan urip ing njaba lahan marang pembangun elektron ing Maret-Maret 2024 nuduhake yen kita kudu tetep waspada babagan kepiye mungsuh berkembang. 

Ayo diwiwiti karo episode pisanan: Apa sing kedadeyan karo paket sumber terbuka sing mbebayani?

Apa Masalah karo Paket Sumber Terbuka?

Ing taun-taun pungkasan, para pelaku kejahatan saka kabeh jinis nggunakake registri piranti lunak sumber terbuka kanggo ngirim prilaku jahat. Aktivitas kasebut wis padha karo sumber terbuka, nanging frekuensine saya tambah akeh sajrone telung taun pungkasan. 

Nerbitake komponen mbebayani menyang registri umum (serangan berbasis ketergantungan) yaiku perang gerilya asimetris sing digunakake para pelaku ancaman kanggo nyebarake malware, nggunakake kepercayaan sing diwenehake organisasi marang komponen sumber terbuka sing asale saka pangembang sing ora dingerteni (elinga komik xkcd katergantunganAmarga sampeyan percaya karo paket lan ora keberatan mriksa isi paket lan katergantungane kanthi manual, serangan iki efektif banget. Lan asimetri kasebut kedadeyan amarga bisa diotomatisasi lan wong jahat ora perlu sesambungan langsung karo korban. Dheweke mung ngunggah paket menyang registri umum lan ngeculake.

Paket-paket jahat mundhak kanthi faktor 6x ing taun 2022, lan terus tuwuh kanthi faktor 2.5x ing taun 2023. Taun kepungkur ana 245,000 paket jahat sing katon, angka sing luwih saka kaping pindho saka total jumlah saka taun-taun sadurunge digabungake. Iki minangka pertumbuhan eksponensial! Saka atusan penghapusan paket minangka malware sing dikonfirmasi sajrone taun 2021 lan ewonan sajrone taun 2022, kita weruh luwih akeh "gangguan" latar mburi sajrone taun 2023, kanthi kecepatan sing padha kanggo taun iki. Lan didhelikake ing latar mburi kasebut sing disebabake dening penjahat siber sing ora canggih sing ngetutake "dalan sing paling gampang", sawetara serangan profil dhuwur dadi berita utama sanajan ing media umum.

Yagene iki dadi masalah sing gedhe banget? Ana kepercayaan sing berlebihan ing saindenging rantai. Piranti lunak sumber terbuka disebarake karo kode sumbere, lan dirilis miturut lisensi sing diwenehake. Ya, sapa wae bisa mriksa kode sumber; nanging, sapa sing nindakake kanthi bebas? Sapa, sawise mriksa manawa piranti lunak kasebut ora duwe malware, mbangun piranti lunak saka sumber kasebut? Sapa, sadurunge ngliwati komponen sing dikemas (uga dikenal minangka paket) hilir menyang manajer paket utawa alat pambangunan, mesthekake yen paket kasebut ora kebak malware lan cocog karo kode sumber sing kudune asale?

Yagene infrastruktur ngidini serangan sing gampang kaya ngono?

Registri paket mbukak, asring mbutuhake verifikasi minimal babagan identitas penerbit. "Sapa wae olèh nerbitaké piranti lunak ing kene!" Standar kanggo penyerang wis ditemtokake kurang: dheweke nggunakake alamat email sing bisa dibuwang lan akun GitHubgithub sing bisa dibuwang kanggo nggawe atusan paket angkoro ing kampanye cendhak, kaya phishing. Mung kanggo sing ditarget, kecanggihan sing luwih dhuwur dibutuhake: Kita weruh malah nggawe repositori sumber GitHub sing dipercaya kanthi akeh lintang lan commitsaka pirang-pirang kontributor palsu lan metrik popularitas lan pangopènan liyané. Entuk para pengamat lintang lan reputasi saka kontribusi palsu ora angel diotomatisasi. Kita weruh penyalahgunaan ing infrastruktur piranti lunak terbuka saka kabeh jinis, ora mung malware, kaya insiden protokol teh.

Manajer paket dirancang kanggo gampang digunakake lan ora kanggo keamanan.Dheweke bisa mbukak skrip pasca-instalasi sadurunge lan sawise instalasi (kadhangkala kompilasi kode asli kanggo perpustakaan dibutuhake). Uga, Manajer paket nginstal paket saka pirang-pirang sumber, lan kadhangkala standar yaiku nggunakake registri umum. Dheweke ora mriksa ketidakcocokan antarane metadata ing panjalukan publikasi, lan metadata ing paket kasebut dhewe.

Dependensi disusun lan mbentuk grafik. Ing ekosistem tartamtu kaya Node (JavaScript), dependensi cilik nglumpuk nganti atusan utawa ewonan. Salah sawijining perkara yaiku duwe kontrol sing ketat babagan dependensi langsung sing diumumake dening proyek piranti lunakku, nanging ketergantungan transitif luwih angel dikendhaleni. Sumber terbuka ngetutake "kanca-kancane kanca-kancaku yaiku kanca-kancaku". Persaudaraan iku lumrah ing Timur Jauh sing liar! Aktor ancaman ngerti iki lan ndhelikake prilaku jahat kanthi jero ing dependensi sing ora jelas sing asring ora dingerteni. Iki kedadeyan karo aliran acara kedadeyan sing ngincer Dompet copay

Iki cara kerja piranti lunak sumber terbuka wiwit wiwitane. Iki ora bakal owah akeh. Sawetara registri paket paling banter nuntut otentikasi rong faktor, lan asring mung kanggo paket sing paling populer. Sawetara registri nyedhiyakake cakupan, ruang jeneng sing diduweni dening organisasi sing wis diverifikasi, nanging tragis liyane ora ndhukung (PyPI) utawa ndadekake opsional (NPM).  Iku menarik kanggo dicathet yen sanajan a skema penyaringan prasaja (adhedhasar kontrol repositori/organisasi DNS utawa GitHub sing cocog karo ID grup) lan nggawe Tandha tangan PGP wajib kanggo kabeh artefak kajaba checksum mbusak sebagian besar "noise", paket jahat kaya typosquatting, lan mbatesi sebagian besar kebingungan katergantunganSerangan sing canggih bisa ditindakake nanging luwih angel, mung sawetara kaya com.github.codingandcoding:plugin-kompiler-maven dikenal amarga Maven Central. Lan ora kabeh registri maven ngetutake praktik sing padha!

Kontrol keamanan ing manajer paket bisa uga dadi beban nanging ora ngalangi serangan dependensi. Masalah karo otentikasi multi-faktor yaiku kanggo otomatisasi, kredensial sing asale kaya token akses utawa kunci APIapi digawe kanggo akun sing bakal digunakake ing panggilan APIapi sing digawe saka skrip otomatisasi, tanpa dhukungan pangguna interaktif sing nyedhiyakake faktor kapindho. MFA apik kanggo nglindhungi akun pangguna saka bocor sandhi, nanging token akses utawa kunci APIapi sing digawe kudu dilindhungi nalika aktif, utawa sing duwe bakal ditiru dening mungsuh. Sebagian gedhe kampanye rantai pasokan berbasis paket diwiwiti karo kunci/token sing bocor. Elinga kedadeyan kaya Ledger, 3CX, lan liya-liyane, ing ngendi kredensial non-interaktif pisanan diekstrak ing intrusi awal kanggo ngluncurake serangan rantai pasokan.

Tanggepan sing diwenehake marang ancaman iki ora cukup kuat. Ing episode kaping telu, kita bakal fokus ing apa sing berhasil, lan apa sing gagal banget. Industri iki kudu kerja bareng kanggo standards, proses, pendidikan, lan piranti kanggo nyuda risiko rantai pasokan global. Iki dudu masalah sing bisa dirampungake dening siji organisasi dhewe.

Kanggo mungkasi bagean iki, salah paham sing penting: kita lagi ngomong babagan angkoro paket, ora ngrugekke sing siji. Kerentanan asale saka kesalahan desain utawa kode, sing ora sengaja dilebokake, tanpa niat ala. Kerentanan kasebut bisa uga dieksploitasi, nanging akeh sing ora. Paket jahat mesthi disengaja, lan ana eksploitasi 100% yen dieksekusi. Ora ana risiko sing bisa dibandhingake! Mula Iku paradoks kanggo ndeleng pira upaya sing ditindakake kanggo ndeteksi lan nyuda kerentanan, lan ora ana langkah-langkah sing padha kanggo komponen sing mbebayani.

"Kita nganggep keamanan kanthi serius"

Paket Malicious Sumber Terbuka: Masalah 2

Ayo padha mbayangake adat istiadat Perusahaan AcmeAcme, panyedhiya utama kanggo WileCoyote.com, nduweni sebagian besar piranti lunak saka pihak katelu, kanthi luwih saka 80% saka proyek sumber terbuka. Dheweke ngasilake piranti lunak kanggo panggunaan internal, nanging uga nyedhiyakake piranti lunak kanggo mitra, panyedhiya, lan pelanggan / pangguna pungkasan. Acme nduweni piranti lunak sing ditulis ing Go, JavaScript, Java, C#, lan Python, lan mbukak sebagian besar piranti lunak ing méga, ing kluster Kuberneteskubernetes. Acme mbangun gambar khusus saka gambar dhasar sing dijupuk saka Docker Hub lan registri liyane. Lan dheweke uga nuduhake sawetara perpustakaan, paket, lan gambar wadhah ing registri umum.

Acme nganggep keamanan kanthi serius. Dheweke cukup ngerti masalah kasebut open source security, lan risiko sing ditimbulake. Kabeh pangembang, manajer sistem, lan insinyur DevOpsdevops nggunakake kunci kripto cilik sing lucu kasebut minangka otentikasi faktor kapindho. Kabeh commitrepo kode s ditandatangani, perlindungan cabang diaktifake kanthi tinjauan kode wajib, CI/CD dikunci, rahasia disimpen ing brankas rahasia, lan registri internal sebagian nggambarake registri eksternal ing ngendi mung komponen sing diidini lan didaftar putih sing disimpen. Piranti lunak sing digawe dening Acme kudu njupuk dependensi pihak katelu saka registri iki. 

Mbokmenawa umume organisasi cocog karo profil iki. Para pamaca, profil sampeyan mesthi cocog yen sampeyan isih ana ing kene, ta?

Banjur ing sawijining dina sing apes, ana pangembang frontend sing penting ing Acme mlayu npm nginstal acme-cute-lib, lali yen @acme/cute-lib minangka dependensi sing diliput kanthi bener. Kesalahan sing tepat ora penting, akeh perkara sing bisa salah sanajan wong bisa ngontrol siklus urip piranti lunak kanthi sampurna. Pengembang kita ora ngerti yen klompok APT ngincer Acme lan nerbitake komponen jahat kanthi jeneng kasebut, kanthi cara sing licik saengga prilaku jahat mung diaktifake nalika piranti lunak diinstal ing komputer Acme. Paket kasebut ora dideteksi nganti pirang-pirang minggu sawise diterbitake. 

Skrip instalasi dilakokake kanggo nggoleki kredensial (ana akeh token akses sing menarik ing laptop pangembang kita), sing ngidini akses menyang repositori piranti lunak internal, lan repositori internal sing kasebut ing ndhuwur, sing mesthi mung bisa diakses liwat VPN. Kode jahat kasebut kasil nggunakake sambungan VPN sing wis ana lan nerbitake komponen jahat tahap kapindho menyang registri internal, sing mengaruhi perpustakaan utils umum sing dienggo bareng dening sebagian besar piranti lunak sing dikirim dening Acme.

Pirang-pirang minggu sawisé, organisasi liya sing nggunakaké piranti Acme sing wis diterbitaké wiwit ndeleng lalu lintas aneh ing jaringan, kanthi lalu lintas sing nggunakaké protokol Acme nanging diarahake menyang host sing mèmper karo domain Acme. Lalu lintas kasebut dienkripsi nanging piranti pemantauan sistem nemokake akses menyang file sing ora dikarepke lan eksekusi proses sing katon kaya printah sistem nanging pungkasane mbukak file sing bisa dieksekusi sing diunduh. 

Liyane wis dadi sejarah: Acme pisanan nolak yen prilaku kasebut bisa disebabake dening dheweke lan kabeh langkah keamanan wis ditindakake. Mung sawise media cybersec wiwit takon kenapa sumber prilaku sing dideteksi asale saka komponen Acme, lan analisis keamanan nerbitake kepiye komponen kasebut kebak malware sing ora bisa dideleng, Acme kudu ngenali kedadeyan kasebut lan nelpon perusahaan respon insiden. Kampanye pemasaran negatif sing ngrusak kapercayan sing wis dipikolehi kanthi susah payah sajrone sedetik.Acme mung sak instalasi npm saka disaster"iku berita utama sing umum. Banjur tuntutan hukum lan kontrak sing dibatalake ngetutake.

Apa sampeyan ndeleng kamiripan karo kedadeyan sing wis dingerteni ing jaman kepungkur? Acme tiba ing kedadeyan rantai pasokan ing rong fase, nggunakake campuran kebingungan/salah ketik serangan sing nggunakake workstation pangembang minangka papan kanggo nginfeksi komponen sing pungkasane dadi piranti lunak sing digunakake dening pihak katelu. Kepiye carane nyegah utawa nyuda iki? 

Apa sebabe paket beracun dadi populer banget

Kedadeyan hipotetis iki nuduhake yen sanajan nganggo pendekatan sing cukup kanggo keamanan sumber terbuka, organisasi butuh langkah-langkah khusus kanggo ngindhari dadi korban malware ing komponen sumber terbuka. Sacara skematis, aktor ancaman bisa:

  • Gawe paket anyar (nututi dalan typosquatting utawa kebingungan dependensi sing wis kondhang, iki dalan sing paling kerep diliwati dening wong jahat kanthi volume gedhe);
  • Coba nginfeksi sing wis ana, kanthi nyuntikake menyang kode sumber, nyoba nyamar dadi kontributor liwat pull request, utawa nggunakake rekayasa sosial kanggo dadi pengelola (kaya sing ditindakake "Jao Tan" ing XZ Backdoor utawa right9ctrl Panganggo GitHub nindakake ing aliran acara kedadeyan ing musim gugur 2018), utawa kanthi entuk kredensial repositori sumber terbuka lan nyamar dadi pengelola;
  • Nyuntikake malware sajrone proses mbangun paket, kanthi mbukak skrip mbangun sing mbebayani, utawa ngganggu unduhan paket nganggo intersep man-in-the-middle (untunge, TLS saiki mesthi dibutuhake ing umume registri).
  • Injeksi komponen sing wis dikemas langsung menyang registri, biasane kanthi njupuk kredensial registri (alternatif sing disenengi kanggo akeh serangan canggih kaya Acme, ing ngendi workstation sing disusupi ing tahap pertama duwe token akses registri internal, contone, ing biasane .NS or ~/.m2/setelan.xml(aktor ala pancen ngerti ngendi kudu nggoleki rahasia). Kerentanan ing registri uga dieksploitasi. 

Registri keracunan nganggo malware minangka dhasar serangan ketergantungan. Ora ana sing anyar ing sangisore srengenge: prevalensine saya tambah akeh, nanging teknik sing padha saiki isih bisa digunakake kaya limang taun kepungkur.  

Paket jahat bisa beroperasi nalika instalasi, nalika mbangun piranti lunak, utawa nalika runtime. Lan prilakune wiwit saka eksfiltrasi informasi, contone ngekstrak rahasia kanggo upaya fase kapindho, nganti ekstraksi kode sumber, mbusak malware tambahan. Ing episode sabanjure, kita bakal mbedah paket jahat lan kepiye diterbitake.

Cathetan suku

Episode sabanjure Anatomi Paket Jahat: Apa Tren sing Ana? bakal fokus ing kasus nyata sing lagi dipantau nganggo sistem Peringatan Awal Malware, saben dina. Kita bakal nliti jinis malware endi sing katon, lan taktik, teknik, lan prosedur endi sing dadi favorit. Kita bakal nliti obfuscation lan kepiye carane nyoba ndhelik saka calon reviewer, teknik penghindaran kanggo ngindhari deteksi, lan kepiye dheweke berkembang nganggo telemetri lan gerakan lateral. Mangga tetep dirungokake! 

Cathetan Suku

Anatomi Paket Malicious: Apa Tren-tren sing Ana?

Nglindhungi saka Paket Malicious OSS: Apa sing (Ora) Bisa Digunakake

piranti lunak-piranti-sca-piranti-analisis-komposisi
Prioritasake, ndandani, lan amanake risiko piranti lunak sampeyan
Entuk Akun Gratismu.
Ora ana kertu kredit.

Amanake Pangembangan lan Pangiriman Piranti Lunak Sampeyan

karo Suite Produk Xygeni