Strategi Rantai Pasokan Perangkat Lunak untuk Mencegah Serangan Kebingungan Ketergantungan

Strategi Rantai Pasokan Perangkat Lunak untuk Mencegah Serangan Kebingungan Ketergantungan

Strategi Rantai Pasokan Perangkat Lunak untuk Mencegah Kebingungan Serangan Kecerdasan Data PlatoBlockchain. Pencarian Vertikal. Ai.

โ€œApalah arti sebuah nama? Yang kita namakan mawar dengan nama lain pasti berbau harum.โ€ Ketika Shakespeare menulis kata-kata ini (Romeo dan Juliet, Babak 2, Adegan 2) pada tahun 1596, dia mengatakan bahwa nama hanyalah sebuah konvensi. Itu tidak memiliki makna intrinsik. Juliet mencintai Romeo karena siapa dia, bukan karena namanya.

Namun tanpa menyadarinya, Shakespeare juga menggambarkan serangan kebingungan ketergantungan.

Kebingungan ketergantungan terjadi ketika paket yang Anda gunakan dalam kode Anda bukan milik Anda. Mereka memiliki nama yang sama, tetapi bukan kode Anda yang berjalan dalam produksi. Namanya sama, tapi satu bungkusnya berbau mawar dan yang lainnyaโ€ฆ bau.

Laporan penelitian terbaru memperkirakan bahwa 41% hingga 49% organisasi berisiko mengalami serangan kebingungan ketergantungan. Penelitian baru dari OX Security menunjukkan bahwa ketika sebuah organisasi berisiko terkena serangan kebingungan ketergantungan, 73% asetnya rentan. Penelitian ini berfokus pada organisasi menengah dan besar (1K+, 8K+, 80K+ karyawan) di berbagai sektor โ€“ keuangan, game, teknologi, dan media โ€“ dan menemukan risiko di setiap sektor di semua ukuran organisasi. Penelitian tersebut juga menemukan bahwa hampir semua aplikasi dengan lebih dari 1 miliar pengguna menggunakan dependensi yang rentan terhadap kebingungan ketergantungan.

Artikel ini bertujuan untuk membantu Anda memahami kebingungan ketergantungan dan cara mencegahnya.

Ganda, Ganda

Dependensi (juga disebut paket) adalah elemen penyusun perangkat lunak Anda. Biasanya perangkat lunak ini, baik yang dikembangkan oleh seluruh komunitas atau di dalam perusahaan, melakukan tugas yang umum dan diperlukan.

Manajer paket sering kali digunakan untuk menginstal dependensi dan terus memperbaruinya. Mereka memindai registri publik dan swasta untuk mencari nama paket dan, jika semua hal lain sama, memilih nomor versi tertinggi. Penyerang mengambil keuntungan dari ini dengan menempatkan paket โ€œdummyโ€ pada registri publik dengan nama yang sama tetapi versi yang lebih tinggi.

Ketika manajer paket menemukan dua paket yang identik, satu di registri publik dan satu lagi di registri pribadi, hal ini menyebabkan kebingungan โ€” oleh karena itu dinamakan โ€œkebingungan ketergantunganโ€. Karena kedua paket tersebut identik, pengelola secara otomatis akan memilih untuk menginstal paket dengan versi yang lebih tinggi - dalam hal ini, paket jahat penyerang.

Hal ini memberikan pembajak pintu belakang ke perangkat lunak Anda. Dari titik ini, mereka dapat melakukan pelanggaran data, melakukan pencurian kekayaan intelektual, dan membahayakan rantai kepercayaan pasokan perangkat lunak. Mereka juga dapat menyebabkan pelanggaran kepatuhan yang akan memicu sanksi peraturan yang berat.

Kerja keras dan Masalah

Ada berbagai pendekatan terhadap serangan kebingungan ketergantungan.

  • Spasi nama. Dengan mengunggah perpustakaan perangkat lunak berbahaya ke registri publik โ€” seperti Indeks Paket Python (PyPI) atau JavaScript registri npm - itu adalah diberi nama serupa ke perpustakaan tepercaya yang digunakan secara internal, sistem yang menghilangkan pemeriksaan namespace/URL atau tidak memaksa pengambilan dari registri pribadi mungkin secara keliru menarik kode berbahaya. Itu insiden kebingungan ketergantungan PyTorch baru-baru ini adalah salah satu contohnya.
  • pemalsuan DNS. Dengan menggunakan teknik seperti spoofing DNS, sistem dapat diarahkan untuk menarik dependensi dari repositori berbahaya sambil menampilkan URL/jalur internal yang sah.
  • Skrip. Dengan memodifikasi skrip build/install atau integrasi berkelanjutan/pengiriman berkelanjutan (CI/CD) konfigurasi pipeline, sistem dapat tertipu untuk mengunduh dependensi perangkat lunak dari sumber berbahaya dan bukan dari repositori lokal.

Segalanya Dilakukan dengan Baik dan Dengan Hati-hati

Untuk melindungi dari kebingungan ketergantungan, terapkan praktik-praktik ini.

  • Tetapkan kebijakan di manajer paket. Larang pengelola paket memprioritaskan paket publik dibandingkan paket pribadi.
  • Selalu sertakan file .npmrc. Jika Anda menggunakan NPM populer sebagai pengelola paket, selalu sertakan file .npmrc yang menentukan tempat mengambil paket dalam lingkup organisasi tertentu.
  • Cadangan nama paket di registri publik. Cara lain untuk melindungi terhadap serangan kebingungan ketergantungan adalah dengan mencadangkan nama paket di registri publik sehingga pembajak tidak dapat menggunakannya dan, oleh karena itu, tidak dapat โ€œmenipuโ€ manajer paket agar menginstal paket berbahaya.

Untuk sepenuhnya melindungi terhadap serangan kebingungan ketergantungan, organisasi harus selalu menggunakan cakupan organisasi untuk semua paket internal, bahkan saat memublikasikan ke registri internal Anda. Ruang lingkup organisasi juga harus didaftarkan pada pencatatan publik NPM, sehingga mencegah siapa pun membajak ruang lingkup tersebut dan mengambil keuntungan dari kebingungan ini.

Nama paket juga harus didaftarkan secara publik. Jika suatu organisasi menggunakan PIP populer sebagai manajer paket untuk dependensi Python, misalnya, organisasi tersebut harus membuat paket internal dengan akhiran ketat yang dapat dikenali dan akan berfungsi di semua proyek. Unggah paket kosong dengan nama yang sama ke registri publik PyPI sebagai pengganti.

Alasan lain untuk mencadangkan nama paket di registri publik adalah karena jika orang lain mencadangkannya (dengan sengaja atau tidak), pengembang harus mengubah semua nama paket di registri pribadi menjadi nama yang belum dicadangkan di registri publik. Ini bisa menjadi proses yang panjang dan membosankan.

Penting untuk dicatat bahwa tidak semua pendaftar paket mengizinkan pengguna untuk memesan nama paket, jadi pastikan Anda menemukan yang mengizinkannya.

Keluar, Dikejar Beruang

Serangan kebingungan ketergantungan menimbulkan ancaman keamanan siber yang serius dan segera terjadi terhadap organisasi secara global. Sekitar setengah dari seluruh organisasi berada dalam risiko, dan 73% aset organisasi tersebut terekspos. Untuk melawan ancaman yang semakin besar ini, organisasi harus menerapkan langkah-langkah pencegahan yang kuat dan menerapkan praktik terbaik keamanan siber.

Bunga mawar Shakespeare mungkin telah menunjukkan risiko serangan kebingungan ketergantungan selama ratusan tahun, namun kutipan lain dari Bard mungkin mengandung beberapa kebijaksanaan untuk melindungi diri dari serangan tersebut: โ€œBiarkan setiap mata bernegosiasi sendiri dan tidak mempercayai agen.โ€ (Banyak Keributan Tentang Ketiadaan, Babak 2, Adegan 1)

Stempel Waktu:

Lebih dari Bacaan gelap