Apabila pembangunan perisian berkembang sepanjang kitaran hayat rantaian bekalan perisian, peringkat pakej muncul sebagai titik penting, menukar kod sumber kepada artifak boleh laku yang disediakan untuk pengedaran. Walau bagaimanapun, peringkat kritikal ini tidak kebal daripada kelemahan, menjadikannya sasaran utama bagi pelaku jahat yang cuba menjejaskan integriti dan keselamatan perisian. Catatan blog ini mengkaji ancaman berleluasa yang boleh timbul semasa fasa ini dan menggariskan strategi yang berkesan untuk mengurangkannya. Kandungan ini berfungsi sebagai kesinambungan siri blog kami yang meneroka software supply chain security seluruh SDLC.
Peringkat Pakej dalam Kitaran Hayat Pembangunan Perisian
Peringkat pakej kitaran hayat rantaian bekalan perisian merangkumi proses pembungkusan dan penyediaan perisian untuk diedarkan kepada pengguna. Peringkat ini melibatkan penciptaan pakej pemasangan, pengurusan kebergantungan dan penjanaan metadata untuk perisian.
Ancaman integriti binaan merupakan kelemahan yang boleh membenarkan penyerang memperkenalkan perubahan tanpa kebenaran pada perisian semasa proses pembungkusan. Ancaman ini boleh diperkenalkan melalui pelbagai kaedah, seperti menjejaskan pendaftaran pakej, mengeksploitasi kelemahan dalam alat pembungkusan atau memanipulasi kebergantungan pihak ketiga.
Kebergantungan sepenuhnya pada komponen sumber terbuka dalam perisian moden menjadikan peringkat ini sebagai peringkat S yang paling kerapSCA sasaran. Memperkenalkan perisian hasad tersembunyi dalam komponen sumber terbuka yang popular merupakan impian bagi ramai penjenayah siber. Inilah sebabnya mengapa lebih daripada 245,000 pakej berniat jahat ditemui sepanjang tahun 2023.
Contoh-contoh Software Supply Chain Security Ancaman dalam Peringkat Pakej

Gunakan pakej yang dikompromi
Ini merujuk kepada tindakan menggunakan atau menggunakan pakej perisian yang telah diusik atau diubah suai oleh musuh.
Ini boleh berlaku selepas pakej telah meninggalkan pendaftaran pakej rasmi, sama ada melalui akses langsung kepada sistem pengguna atau melalui taktik kejuruteraan sosial yang memperdaya pengguna untuk memuat turun atau memasang pakej berniat jahat. Satu contoh vektor ini ialah Browserify typosquatting Serang.
Seorang penyerang, yang cuba menjejaskan sistem Linux dan Mac, menyusup masuk ke dalam proses pembangunan pustaka Node.js yang popular yang dipanggil Browserify. Penyerang itu menyelitkan kod berniat jahat ke dalam kod sumber projek, dengan niat untuk mengedarkannya melalui pendaftaran pakej NPM. Sebaik sahaja pakej Browserify yang tercemar dimuat naik ke NPM, pembangun yang tidak curiga akan memuat turun dan memasangnya, mempercayai bahawa ia adalah versi yang sah. Kod berniat jahat, yang terbenam dalam pakej, akan berjalan secara senyap, menjejaskan integriti sistem yang dijangkitinya. Ini boleh menyebabkan kecurian data, ketidakstabilan sistem, atau akses jauh untuk penyerang.
Pendaftaran pakej kompromi
Daftar pakej yang dikompromi ialah repositori perisian yang telah disusupi oleh musuh yang telah mendapat akses tanpa kebenaran kepada antara muka atau infrastruktur pentadbiran daftar.
Ini membolehkan pihak musuh mengubah suai atau menggantikan pakej perisian yang sah dengan pakej perisian yang berniat jahat, yang kemudiannya boleh diedarkan kepada pengguna yang dipasang secara tidak curiga. Satu contoh ancaman jenis ini ialah Serangan ke atas Cermin Pakej: Seorang penyelidik, dengan niat untuk mempromosikan perisian sumber terbuka, telah menjejaskan beberapa daftar pakej yang popular, termasuk Maven Central, NPM dan RubyGems. Dengan mendapatkan akses kepada daftar ini, penyelidik dapat mencipta cermin dan replika repositori asal, yang menyediakan alternatif yang mudah untuk pembangun memuat turun pakej.
Walau bagaimanapun, cermin ini mempunyai tujuan yang jahat. Cermin yang dikompromi berfungsi sebagai saluran untuk penyelidik mengedarkan pakej berniat jahat. Pakej ini menggantikan pakej yang sah, tidak dikesan oleh pendaftaran utama, dan pembangun yang tidak curiga tanpa disedari memuat turun dan memasangnya. Setelah dipasang, pakej berniat jahat ini melepaskan muatannya, melaksanakan kod sewenang-wenangnya, mencuri data sensitif atau mengganggu operasi.
Muat Naik Pakej yang Diubah Suai
Musuh memuat naik pakej yang diubah suai ke repositori atau saluran pengedaran yang mengandungi kod atau muatan berniat jahat. Ini boleh dilakukan dengan mengubah suai kod sumber, pembungkusan atau metadata pakej.
Salah satu ancaman jenis ini yang paling terkenal ialah Serangan CodeCov pada tahun 2021. Seorang penyerang, yang cuba menjejaskan projek perisian menggunakan CodeCov, integrasi berterusan dan penghantaran berterusan yang popular (CI/CD) menggunakan kelayakan yang bocor untuk mendapatkan akses tanpa kebenaran kepada baldi Google Cloud Storage (GCS) projek. Sebaik sahaja penyerang mendapat akses kepada baldi GCS, mereka memuat naik artifak berniat jahat, versi pakej CodeCov yang diubah suai, yang kemudiannya diedarkan kepada pengguna melalui perkhidmatan CodeCov. Pembangun yang tidak curiga, yang bergantung pada ciri kemas kini automatik, akan memuat turun dan memasang pakej berniat jahat tersebut, dengan mempercayai ia adalah pakej yang sah. Setelah dipasang, kod berniat jahat akan berjalan secara senyap, menjejaskan integriti sistem yang dijangkitinya. Ini boleh menyebabkan kecurian data, ketidakstabilan sistem atau akses jauh untuk penyerang.
Serangan ke atas daftar pakej adalah sangat biasa sehingga beberapa corak serangan menerima nama:
In Typosquatting, pelaku jahat memuat naik ke daftar beberapa pakej berniat jahat dengan sedikit ralat taip atau nama yang serupa dengan pakej yang sah dan popular, dengan harapan pembangun akan salah mengeja nama pakej yang dimaksudkan dengan pakej yang berniat jahat. Selalunya pakej berniat jahat menyamar sebagai pakej yang sah untuk dilepaskan tanpa dikesan, meningkatkan kebarangkalian terkena pemerhatian bintang.
Kekeliruan Kebergantungan memanfaatkan cara sesetengah pengurus pakej menyelesaikan pakej yang diminta daripada berbilang pendaftaran. Apabila sesebuah organisasi menggunakan komponen dalaman yang diterbitkan dalam pendaftaran dalaman, penyerang yang mengetahui fakta tersebut boleh menerbitkan komponen berniat jahat dengan nama yang sama dalam pendaftaran awam. Jika nama yang digunakan untuk komponen dalaman tidak diskopkan, sesetengah pengurus pakej akan mengambil komponen berniat jahat dan bukannya komponen dalaman.
Dengan Pakej Troyan, penjenayah siber menyamarkan perisian hasad di antara kod sah yang berguna. Ini boleh digunakan oleh pengarang sebenar atau oleh penyumbang yang menawarkan dirinya untuk menyelenggara pakej tersebut. Ini juga dikenali sebagai Rampasan PakejPenyerang menggunakan pelbagai teknik untuk merampas pakej sedia ada, seperti Pengambilalihan Domain di mana domain yang telah luput tempoh telah diambil oleh penyerang yang mencipta semula e-mel penyelenggara lama dan melakukan pemulihan kata laluan untuk mengambil alih akaun penyelenggara.
Pernyataan Akhir
Memandangkan organisasi semakin menerima pakai metodologi pembangunan perisian yang mengutamakan automasi dan penyampaian berterusan, kepentingan mengamankan peringkat pakej perisian tidak pernah sepenting ini. Dengan melaksanakan langkah-langkah keselamatan yang mantap sepanjang fasa kritikal ini, organisasi dapat mengurangkan risiko tunduk kepada serangan berniat jahat yang boleh menjejaskan integriti dan keselamatan perisian mereka dengan ketara.
Strategi yang digariskan dalam catatan blog ini, berserta contoh yang diberikan, berfungsi sebagai peringatan jelas bahawa peringkat pakej mewakili titik terdedah dalam rantaian bekalan perisian. Organisasi mesti mengambil kira ancaman ini dan melaksanakan langkah keselamatan yang diperlukan untuk melindungi perisian mereka daripada serangan. Dengan berbuat demikian, mereka dapat menjamin integriti, keselamatan dan kebolehpercayaan perisian mereka untuk pengguna dan pelanggan mereka.
Sertai Perjalanan Kami Ke Arah Ekosistem Perisian yang Selamat
Jangan lepaskan peluang untuk kekal selangkah ke hadapan dalam bidang software supply chain securityLanggan blog kami hari ini dan jadilah antara yang pertama menerima pandangan terkini kami, bagi memastikan organisasi anda kekal berdaya tahan dan selamat di tengah-tengah ancaman yang sentiasa berubah. Bersama-sama, kita dapat membina ekosistem perisian yang lebih mantap dan selamat untuk semua orang.
Ingat, software supply chain security merupakan satu perjalanan yang berterusan, bukan destinasi. Dengan menilai dan menyesuaikan amalan keselamatan secara berterusan untuk menangani ancaman yang muncul, organisasi boleh melindungi rantaian bekalan perisian mereka dan menyampaikan perisian yang dipercayai kepada pengguna mereka.
Tonton Demo Video kami







