Ieu mangrupikeun episode kaopat dina runtuyan tulisan ngeunaan komponén jahat, dimana urang nampilkeun Xygeni pendekatan pikeun nanganan ancaman ieu, salaku bagian tina cakupan kami pikeun Open Source Security.
Urang ningali yén kaleuleuwihan kapercayaan kana komponén sumber terbuka tina sumber anu teu pasti dimanfaatkeun ku sagala rupa jalma anu salah pikeun ngahasilkeun paripolah anu teu kaduga pikeun dijalankeun dina mesin pamekar, CI/CD sistem, atanapi dipasangkeun kana parangkat lunak organisasi korban, supados diteruskeun ka klien organisasi. Kami ngabedah dina episode #2 serangan anu nganggo pendaptaran umum pikeun nganteurkeun malware sareng naon anu urang parantos diajar saatos ningali kumaha aktor jahat beroperasi, sareng dina sateuacanna episode #3 Kontrol anu tiasa dianggo (sareng anu gagal) ngalawan ancaman ieu parantos ditalungtik.
Ayeuna waktuna pikeun ningali pendekatan urang kana masalah ieu. Dina épisode ieu, urang nampilkeun strategi anu urang turutan di Xygeni pikeun urang Peringatan Dini Malware Sistem (MEW). Kumaha sistem multi-tahap ieu jalan sacara real time nalika vérsi pakét anyar dileupaskeun, kumaha bukti dicandak tina sumber anu béda, kumaha triage dilakukeun, kriteria klasifikasi mana anu urang turutan, sareng kunaon sababaraha analisis manual masih diperyogikeun pikeun mastikeun sifat calon pakét jahat. Kami ogé bakal ngajelaskeun kumaha kami ngabantosan NPM, GitHub, PyPI, sareng infrastruktur konci sanés dina ékosistem sumber terbuka pikeun ngirangan waktos cicing pikeun malware.
nu pipeline
Xygeni Malware Early Warning (MEW) terus-terusan ngolah komponén, boh tarball pakét pikeun perpustakaan sareng kerangka pikeun ékosistem pamrograman anu dirojong sapertos JavaScript/Node atanapi Python, gambar wadah Docker/OCI, atanapi éksténsi sareng plugin pikeun alat sapertos IDE atanapi CI/CD sistem. Komponén sapertos kitu dipedalkeun dina pendaptaran umum kalayan tingkat pamariksaan pangguna anu béda-béda.
Di handap ieu mangrupikeun tampilan skematis ngeunaan kumaha sistem ieu beroperasi:
nu nu manggihan Prosésna kéngingkeun eupan tina acara penerbitan. Acara penerbitan nyaéta nyiptakeun vérsi énggal tina komponén énggal atanapi anu tos aya. Kusabab pendaptaran anu populér henteu nyayogikeun mékanisme pub-sub pikeun konsumen anu kabetot, ieu sering dilakukeun ku cara polling pendaptaran pikeun acara-acara anyar. Proyék anu saé pisan ti OSSF, eupan pakét, ngadukung pendaptaran populér sapertos PyPI atanapi Maven Central, sareng nyayogikeun antarmuka berbasis feed anu ngahijikeun. Dina MEW kami nambihan sababaraha implementasi khusus anu ngirangan waktos ngantosan, contona nganggo réplika database CouchDB anu dianggo ku NPM anu sinkron sareng database pendaptaran umum.
Di Xygeni, urang gaduh inventaris[1] tina sadaya komponén (langsung atanapi teu langsung) anu dianggo ku parangkat lunak konsumén kami. Koordinat komponén konsumén dipasihkeun sacara rutin ka MEW pikeun ngutamakeun analisis: komponén anu dianggo ku konsumén kami diprosés langkung awal. Prioritas ogé dumasar kana reputasi penerbit sareng kritisitas komponén, janten komponén anu asalna ti penerbit anu reputasina handap ogé diprioritaskeun.
nu analyzers teras meakeun komponén anu nuju ngantosan dina antrian prioritas. Nalika vérsi komponén dipilih pikeun dianalisis, tarball-na diunduh tina pendaptaran. Catet yén komponén binér anu parantos dibungkus dianalisis: Kaseueuran komponén sumber terbuka biasana asalna tina repositori sumber terbuka, seringna di github.com, anu dianggo pikeun kontéks hungkul, sareng malware sok dipilarian dina tarball komponén sabab aktor ancaman sacara sistematis bohong ngeunaan sumber anu aranjeunna klaim parantos dianggo pikeun ngawangun tarball komponén anu aranjeunna leupaskeun.
Tina sudut pandang pangguna
Kuring ngadéngé anjeun mikir: Kumaha carana kuring bisa meunang mangpaat tina nyaho ngeunaan vérsi pakét jahat ti mimiti? Dina épisode éta "Anatomi Paket Jahat: Naon Trenna?" urang ningali yén total waktos cicing aya dina kisaran dinten, sedengkeun bewara munggaran ti MEW ka konsumén anu nganggo komponén anu kapangaruhan aya dina kisaran menit. Kalayan pager pager anu saderhana[2] Anjeun tiasa ngahalangan pangwangunan éta (aya dua tingkat waspada, hiji otomatis nalika mesin nyimpulkeun yén aya poténsi malware sareng bewara engké nalika tim kaamanan kami mastikeun ku pamariksaan manual ayana malware). Ngantosan dugi ka pendaptaran mastikeun malware sareng ngahapusna tina pendaptaran biasana telat kusabab jandela paparan anu panjang.
Organisasi éta tiasa nganggo pager anu mariksa naha aya komponén anu poténsial ngandung malware (dina salah sahiji tina dua tingkat waspada) atanapi, ngalangkungan API, gancang terang naha aya katergantungan langsung atanapi teu langsung dina proyék parangkat lunak anu nganggo komponén jahat.
Kumaha MEW Gawéna: Rincian Jero
Inti: Mesin Deteksi Malware
Alat panganalisis ngagunakeun rupa-rupa detektor pikeun nangkep bukti kalakuan salah. Detektor ngagabungkeun analisis statis, analisis kamampuan, sareng analisis kontéks.[3], sakumaha anu dijelaskeun dina tulisan sateuacana dina séri ieu.
Di Xygeni, urang gaduh tim rékayasa anu gaduh pangalaman anu panjang dina analisis statis, sareng ieu bédana utama sareng solusi anti-malware anu sanés. Catet yén pikeun sababaraha ékosistem, tarball anu dibungkus ngandung kode sumber (contona kode JavaScript atanapi TypeScript pikeun paket NPM, sumber Python pikeun paket PyPI), atanapi kode anu dikompilasi anu cukup caket kana kode sumber pikeun analisis statis (contona bytecode dina file JAR pikeun Maven). Pikeun anu sanés, sapertos gambar wadah, file anu tiasa dieksekusi binér umum, janten inferensi kamampuan mangrupikeun téknik anu dianggo, sareng deteksi malware konvensional dumasar kana aturan YARA sareng tanda tangan malware.
Punten perhatoskeun yén téknologi saderhana sapertos éksprési biasa atanapi tanda tangan henteu cocog pikeun ngadeteksi paripolah jahat. Bayangkeun ngadeteksi dropper atanapi downloader: Sababaraha kode atanapi binér aya dina pakét atanapi diunduh tina domain éksternal, anu henteu aya hubunganana sareng komponén (tiasa waé salah sahiji tina daptar ageung domain anu dipésér ku aktor ancaman[4], Atawa domain anu sah pikeun nyingkahan deteksi). Kode éta teras dieksekusi nganggo salah sahiji fungsi pikeun éta. Kode éta tiasa dirobih pikeun nyumputkeun URL unduhan atanapi fungsi anu dianggo pikeun ngajalankeun kode anu diunduh. Analisis aliran data lengkep diperyogikeun pikeun ngadeteksi éta, nganggo mesin lengkep analisis statis, atanapi palaksanaan sandboxed (upami kaayaan pikeun paripolah jahat pikeun dijalankeun leres-leres dicumponan) tiasa ngadeteksi ieu dina kasus umum.
Para aktor ancaman nuturkeun téknik sareng detektor anu sami pikeun aranjeunna dirancang sareng diimplementasikeun. Aya ogé sababaraha léngkah pra-pamrosésan, contona pikeun ngaleungitkeun obfuscation, anu sering diperyogikeun pikeun ngungkabkeun paripolah anu disumputkeun.
Nambahkeun Kontéks
Sababaraha detektor nganggo inpormasi kontéks. Salaku conto, teu cocogna antara vérsi dina pendaptaran komponén sareng tag/rilis dina gudang GitHub anu aya hubunganana mangrupikeun bukti anu kuat yén panginten aktor anu goréng kéngingkeun kredensial penerbitan pikeun pendaptaran tapi sanés pikeun gudang GitHub. Serangan sapertos anu mangaruhan vendor dompét crypto. Ledger bisa gampang dideteksi ku ayana ketidakcocokan ieu.
A skor kajahatan (MS) diitung tina papanggihan detektor anu dijalankeun, dumasar kana kakuatan bukti anu dicandak. Teu sadaya papanggihan sami, sareng urutan palaksanaanana relevan.
Réputasi Pamaké sareng Komponen
Teu sadaya pamekar sumber terbuka diciptakeun sami!
Pamekar anu bereputasi saé tiasa waé akun NPM-na dibajak (ieu kajadian sanajan ka jalma anu sadar kaamanan), sareng malware dipedalkeun nganggo akun éta. Tangtosna reputasi kedahna murag ujug-ujug, sareng ngan ukur pulih deui kana kamulyaan baheula nalika akun anu dibajak pulih sareng pamekar ngalereskeun kaayaan anu nyababkeun akuisisi akun éta. Réputasi hésé dihontal tapi tiasa leungit dina sakedap.
Di MEW, kami parantos nerapkeun sistem manajemen reputasi anu komprehensif pikeun masihan ganjaran kana paripolah anu positif sareng ngahukum kagiatan anu curiga. Sistem ieu dimimitian ku pangguna énggal dina posisi nétral sareng nyaluyukeun reputasi na dumasar kana kagiatan anu lumangsung.
Réputasi pangguna ningkat ngaliwatan tindakan positip sapertos ngajaga akun média sosial anu aktip, ngaktipkeun auténtikasi multi-faktor, nyumbang sacara rutin kana proyék, sareng nandatanganan commits kalayan konci anu tiasa diverifikasi. Sabalikna, reputasi turun kusabab tindakan anu musuhan sapertos nyebarkeun malware, nganggo alamat email anu tiasa dianggo sakali, henteu nandatangan commits, atanapi némbongkeun pola anu teu biasa dina kontribusi.
Tujuan utama sistem kami nyaéta pikeun mastikeun lingkungan anu aman sareng tiasa dipercaya. Ieu kahontal ku cara nyaluyukeun reputasi pangguna sacara dinamis dumasar kana sababaraha faktor, bari ogé ngahormatan masalah privasi sareng watesan pendaptaran anu béda-béda.
Skor reputasi internal diitung pikeun pangguna (ngagabung ka pendaptaran sareng akun github upami tiasa), sareng sareng skor jahat anu dianggo nalika klasifikasi komponén anu dianalisis, sareng pikeun kualifikasi anu langkung saé saha anu aya dina publikasi komponén.
Bukti Paripolah Jahat Kapanggih. Kumaha Terus? Prosés Tinjauan Manual
Klasifikasi ayeuna netepkeun vérsi komponén anu dianalisis kana salah sahiji kategori "dikonfirmasi jahat", "kamungkinan jahat", "résiko tinggi", "résiko rendah" atanapi "henteu jahat" dumasar kana ambang skor anu ngindeks panemuan sareng reputasi pangguna/komponén. Klasifikasi kana kategori "résiko tinggi" atanapi "kamungkinan jahat" micu tinjauan manual sareng bewara munggaran. Kategori "dikonfirmasi jahat" disetel saatos tinjauan manual atanapi nalika bukti cocog sareng bukti anu sami pikeun vérsi sateuacana anu dikonfirmasi jahat.
Nalika aya cukup bukti pikeun poténsi paripolah jahat, bewara munggaran (waspada karantina) bakal dikaluarkeun ka organisasi anu kapangaruhan. Sakumaha anu parantos disebatkeun sateuacanna, éta tiasa ngahalangan pamasangan atanapi pangwangunan parangkat lunak anu gumantung kana komponén anu dikarantina.
Éta nyiptakeun masalah dina internal MEW dashboard janten analis kaamanan tiasa ngamimitian prosés tinjauan manual pikeun komponén éta. Tim ieu gaduh alat khusus (sandbox, deobfuscators, distribusi pikeun panalungtikan malware, alat ngalaporkeun malware) pikeun gancang meunteun sifat vérsi komponén anu ditalungtik. Kaseueuran malware ("ikan teri" atanapi komponén jahat anu teu canggih) ditinjau.
Hasil tina ulasan ieu nyimpulkeun boh dina tengtrem, janten mesin analisis otomatis mendakan positip palsu anu dianggo salaku eupan balik ka klasifikasi pembelajaran mesin pikeun diajar pola éta; atanapi dikonfirmasi jahat, janten komponén éta diungkabkeun sacara tanggung jawab salaku jahat ka pendaptaran umum, saatos prosés pelaporan. Bewara kadua dikirim ka organisasi anu kapangaruhan, anu antukna tiasa ngabatalkeun karantina komponénna, atanapi pasti meungpeuk éta tina prosés pamutahiran vérsi atanapi firewall komponén anu dianggo dina pendaptaran internalna.
Setelan ieu ngamungkinkeun urang nganalisis puluhan rébu vérsi anyar unggal dintenna sareng ngaidentipikasi puluhan anu sigana jahat, anu teras urang tinjau sacara manual. Inget tina épisode sateuacana yén hiji ti sapuluh rébu nyaéta tingkat komponén jahat anu ayeuna urang tingali di alam liar.
Ngalaporkeun ka Registri
Kami mendakan yén kalolobaan pendaptaran umum, salah sahiji tulang tonggong infrastruktur sumber terbuka, nyayogikeun mékanisme anu kawates pikeun ngalaporkeun masalah kaamanan, sareng komponén jahat khususna. Kami berjuang pikeun ningkatkeun organisasi anu mendasari prosés pelaporan. Biasana kami nampi paling seueur email eupan balik ti tim kaamanan dina pendaptaran anu mastikeun yén komponén éta parantos dihapus tina pendaptaran.
Kadang-kadang registri disalahgunakeun, ngalanggar sarat panggunaanana, tapi henteu nyababkeun paripolah jahat dina parangkat lunak anu dikirimkeun. Ieu ogé dilaporkeun ka registri, tapi henteu dibéjaan ka organisasi pikeun ngawatesan gangguan.
Padamelan ka hareup
Seueur perbaikan anu ayeuna aya dina roadmap. Anu mimiti sareng anu paling penting, a portal umum pikeun kasehatan komponén OS, khususna anu aya hubunganana sareng bukti anu kapendak pikeun poténsi niat jahat, ayeuna nuju dikembangkeun. Ieu dimaksudkeun salaku kontribusi anu sederhana pikeun komunitas sumber terbuka. Teraskeun diantos.
Pangwangunan anu sanésna nyaéta paningkatan pangklasifikasi pembelajaran mesin. MEW bakal diajar tina klasifikasi anu kapungkur. Vektor panemuan tina detektor mesin, ditambah skor jahat sareng skor reputasi anu diturunkeun pikeun komponén sareng penerbit ("bukti anu kapendak") dianggo salaku input kana sistem pembelajaran mesin anu ngapdet modél klasifikasi. Variabel kaluaran nyaéta upami pendaptaran mastikeun upami komponén éta jahat. Ieu dingaranan kode "Oracle" sareng bakal ngabantosan langkung seueur pra-ciskualifikasi e, dirancang sangkan alus (pangélingan anu luhur nyaéta ulah sono kana komponén jahat) tapi kalayan positip palsu anu langkung sakedik (ulah ngalaporkeun komponén anu aman salaku jahat).
A skor kritisitas bakal ditambahkeun pikeun kriteria prioritas, sajaba ti kagolong kana sakumpulan katergantungan konsumén, sareng reputasi penerbit anu handap. Jelas yén proyék anu langkung mangaruhan sareng penting kedah dipertimbangkeun langkung awal pikeun dianalisis. Kami moal mendakan deui roda di dieu, sareng nuturkeun Skor Kritisitas Proyék Sumber Terbuka.
Pangrojong pikeun ékosistem tambahan keur dikembangkeun. Téhnologi sareng alat anu lega sapertos plugin PHP atanapi Jenkins aya dina roadmap.
Kami ogé nuju nalungtik naha prosés tinjauan manual tiasa dibantuan ku AI pikeun ngagampangkeun analisis pikeun sababaraha komponén jahat anu langkung canggih.
Dina cicilan salajengna sareng pamungkas tina séri ieu, "Ngamangpaatkeun Sumber Terbuka: Naon anu Dipiharep Ti Jalmi Jahat", urang bakal fokus kana cara-cara panganyarna anu dilakukeun ku musuh pikeun ngajantenkeun serangan langkung siluman, langkung sesah dideteksi, langkung ditujukeun ka industri khusus, sareng langkung nguntungkeun. Naha serangan ransomware bakal dikirimkeun nganggo kendaraan ieu? Kumaha penjahat ngamangpaatkeun alat AI pikeun nganteurkeun malware anu langkung canggih? Naha proyék-proyék populér luhur aya dina résiko? Ieu pikeun masihan pamiarsa rasa balapan senjata ieu, sareng naon anu diarepkeun dina jangka pondok (satengah kadua taun 2024) sareng jangka sedeng (2025).
Urang bakal nyimpulkeun ku sababaraha pamikiran ngeunaan léngkah-léngkah leutik anu tiasa dilakukeun ku komunitas tanpa ngarobih teuing kabukaan dunya sumber terbuka. Salaku conto, mékanisme anu langkung efisien pikeun ngalaporkeun malware ka pendaptaran umum, sareng ngabagi bukti komponén anu berpotensi jahat ka pendaptaran sareng komunitas bakal janten léngkah leutik dina arah anu leres pikeun tujuan nutup panto ka aktor ancaman.
Malware dina komponén sumber terbuka teu kedah ngaganggu kauntungan anu ageung anu parantos dibawa ku komunitas sumber terbuka ka masarakat urang.
- [1] Pamindai kami ngadeteksi komponén sumber terbuka anu dirujuk ku proyék parangkat lunak anu dianalisis, janten grafik katergantungan anu lengkep sareng mutahir dipikanyaho, sahenteuna pikeun proyék anu di-scan sacara rutin. Xygeni OSS ngalaan API anu ogé tiasa dianggo ku konsumén nalika ngabodaskeun komponén anu dipikaresep, kalebet inpormasi pikeun kerentanan sareng bukti jahat.
- [2] Pagar pembatas tiasa ngaruksak wangunan upami aya masalah kaamanan anu cocog sareng kaayaan anu dideteksi. Panemuan kaamanan sapertos kerentanan anu kritis sareng tiasa dihontal atanapi panggunaan komponén anu dikarantina tiasa dianggap cukup parah pikeun ngaruksak wangunan pikeun parangkat lunak anu kapangaruhan.
- [3]Analis kaamanan kami ngajalankeun komponén atanapi skrip pamasanganna dina lingkungan sandbox nalika diperyogikeun. Nanging, MEW henteu ngalaksanakeun analisis dinamis, utamina kusabab paripolah jahat henteu salawasna dilakukeun dina serangan anu dituju sareng kusabab logika nyingkahan anu dianggo ku aktor ancaman pikeun nyingkahan analisis dinamis.
- [4] Téhnik ieu dibéré ngaran, Registered Domain Generation Algorithms atawa RDGA, sarta aktor ancaman anyar kawas anu disebut Revolver Rabbit investasi nepi ka 1 juta dolar dina 500 rébu domain, nunjukkeun kumaha nguntungkeunna industri kajahatan siber.




