Apakah Masa Depan Sumber Terbuka Terancam?

Diterbitkan: 2023-01-24

Open Source Software (OSS) adalah tulang punggung arsitektur aplikasi saat ini. Dengan mempercepat waktu untuk memasarkan dan mengurangi beban pengembang yang sering bekerja terlalu keras, open source telah mengukuhkan posisi revolusionernya dalam lanskap DevOps. Meskipun sangat transformatif untuk pengembangan aplikasi modern, salin dan tempel sumber terbuka terus menghadirkan risiko keamanan utama bagi organisasi dan individu. Memerangi hal ini menuntut daftar hitam total kode sumber terbuka, atau penerapan tindakan pencegahan proaktif seperti solusi WAF generasi berikutnya .

Kode Pihak Ketiga Sangat Penting Untuk Pengembangan Aplikasi

Perpustakaan adalah simpanan kode sumber yang sangat berguna untuk komponen aplikasi web atau seluler. Pustaka ini dapat berupa sumber terbuka – tersedia untuk semua orang tanpa biaya – atau berpemilik, yang mengunci kode di belakang pembayaran. Meskipun open source mengklaim banyak kemuliaan, kode hak milik juga berperan dalam kelangsungan fungsi aplikasi perusahaan.

Perangkat lunak pihak ketiga ini, jika digunakan secara bertanggung jawab, mencegah pengembang untuk terus-menerus menemukan kembali kemudi. Ini secara drastis meningkatkan efisiensi proses pengembangan, sekaligus membantu produksi produk akhir berkualitas tinggi. Pada akhirnya, penggunaan kode sumber terbuka yang bebas dan liberal menciptakan putaran umpan balik positif, memungkinkan pengembang untuk merilis produk minimum mereka yang layak lebih cepat, yang membuka jalan untuk pengumpulan dan penerapan umpan balik dan evaluasi pengguna yang cepat. Meskipun pengembang sangat menyadari posisi kritis sumber terbuka dalam proses DevOps, para eksekutif sering kali terkejut saat mengetahui bahwa 80% kode yang mendukung aplikasi modern berasal dari kode yang sudah ada sebelumnya.

Bahaya Bayangan dari Ketergantungan Transitif

Bukan berita bahwa kode sumber terbuka memiliki risiko. Kelemahan luas baru-baru ini seperti Log4j dan HeartBleed menempatkan risiko open source pada peta. Apa yang tetap menjadi area pemahaman yang terus berkembang adalah frekuensi penggunaan open source, dan kerahasiaan yang dengannya kerentanan dapat menyelinap ke dalam proyek aktif. Terlepas dari risiko berkelanjutan yang disajikan oleh proyek open source, sangat sedikit penelitian yang telah dilakukan mengenai jenis risiko spesifik yang disajikan oleh open source. Para peneliti dari Endor Labs mulai mengubah ini dengan mengklarifikasi asal-usul ancaman OSS utama.

Di dalam perangkat lunak, dependensi transitif menggambarkan hubungan tidak langsung yang unik antara dua komponen. Misalnya, tim pengembang Anda menambahkan paket B ke proyek yang sedang berjalan. Paket B, pada gilirannya, secara otomatis mengunduh paket C. Dalam skenario ini, sementara perangkat lunak yang sedang berkembang menikmati hubungan langsung dengan paket B, paket C tetap bersembunyi di latar belakang – integral tetapi sebagian besar tidak terlihat. Frustrasi setiap upaya praktik pengembangan yang lebih aman adalah kenyataan bahwa hanya 5% dari ketergantungan perangkat lunak open source yang dipilih secara manual untuk implementasi dalam proses DevOps. Dengan cara ini, sebagian besar dependensi secara otomatis ditarik ke dalam basis kode. Ini menjelaskan sumber kerentanan transitif. Sebuah laporan baru-baru ini oleh Endor Labs menemukan bahwa 95% kerentanan open source yang mencengangkan berasal dari dependensi transitif .

Data dikumpulkan dari laporan Sensus II Infrastruktur Inti, yang mencantumkan perangkat lunak sumber terbuka gratis paling populer. Data ini kemudian diperkaya dengan sumber lain yang memungkinkan peneliti Endor memindai manajer paket populer dan pustaka OSS. Para peneliti menemukan bahwa – dari 254 paket yang disebutkan dalam data Sensus II – sebagian besar mengalami rata-rata 14 ketergantungan transitif. Dalam ruang hampa, 14 mungkin tidak terlalu tinggi, tetapi sebagian besar aplikasi bergantung pada lusinan – jika bukan ratusan – dependensi langsung; skala mitra transitif mereka secara eksponensial.

Kekhawatiran utama yang disuarakan oleh para peneliti didasarkan pada penilaian industri yang terlalu meremehkan masalah ini. Eksekutif terus meremehkan jumlah kode sumber yang digunakan dalam proses pengembangan – ketergantungan transitif bahkan belum ada di radar. Kedalaman masalah keamanan terus mengintai di bawah permukaan, meningkatkan radius ledakan serangan kesalahan ketik dan eksekusi kode jarak jauh. Jika penggunaan ulang terus-menerus dari kode sumber terbuka untuk sepenuhnya memenuhi potensinya, keamanan perlu menjadi prioritas yang lebih tinggi dalam proses DevOps.

Bagaimana Melindungi Terhadap Kerentanan yang Mengintai

Proses memelihara tumpukan teknologi yang aman tidak pernah sekompleks ini. Dengan peringatan tambalan yang dengan cepat menjadi berlebihan, inilah saatnya keamanan perusahaan memprioritaskan perlindungan otomatis tanpa tambalan. Tindakan tradisional yang memprioritaskan keamanan perimeter bersama analisis statis dan dinamis bergantung pada pembaruan manual, yang berarti tidak ada perlindungan terhadap zero-days. Kode pintu belakang yang digunakan penyerang dalam serangan SolarWinds yang terkenal tidak terdeteksi oleh analisis statis apa pun, karena secara teknis tidak ada kesalahan.

Mengidentifikasi dan memblokir upaya eksploitasi memerlukan rangkaian kecil perangkat lunak yang saling terkait. Untuk pertama-tama membantu menentukan dan melindungi perimeter aplikasi, Firewall Aplikasi Web (WAF) generasi berikutnya dapat digunakan. Duduk di batas antara eksternal dan internal, WAF memantau semua lalu lintas yang mengalir ke dan dari aplikasi. Aspek next-gen memungkinkan WAF ini secara otomatis mengadaptasi dan menerapkan kebijakan baru. Penyebaran otomatis dari evolusi konstan ini membebaskan waktu dan energi yang signifikan untuk tim keamanan yang akan dikuras oleh WAF jadul.

Sementara WAF terus menangani setiap upaya eksternal untuk mengeksekusi kode, Perlindungan Diri Aplikasi Runtime (RASP) melindungi dari kelemahan internal dan injeksi kode. Tingkat perlindungan ini mengevaluasi semua muatan (seperti kueri SQL dan perintah sistem operasi) secara waktu nyata. Proses ini tidak memerlukan tanda tangan atau fase pembelajaran, dan berlangsung sepenuhnya dalam konteks aplikasi. Karena ini beroperasi di dalam aplikasi, ini mencakup hampir semua konteks. Ini berarti bahwa, meskipun eksploit memungkinkan untuk menembus perimeter, penyerang dicegah untuk bergerak secara lateral, karena setiap perilaku aplikasi yang mencurigakan memicu penonaktifan RASP. Ini menghentikan aktivitas mencurigakan dan mengingatkan tim keamanan. Dengan cara ini, RASP melengkapi WAF generasi berikutnya; sementara WAF membantu mencegah lalu lintas yang buruk, risiko yang ditimbulkan oleh eksploitasi transitif yang mengintai dikurangi oleh RASP. Dengan komponen-komponen ini yang melindungi kumpulan teknologi, beban yang saat ini ditempatkan OSS pada keamanan berkurang secara signifikan.