Software Supply Chain Security (SSCS) adalah praktik penerapan langkah-langkah keamanan dan praktik terbaik di seluruh pengembangan perangkat lunak dan proses distribusi untuk memitigasi risiko dan kerentanan. Ini mencakup berbagai komponen, aktivitas, dan praktik yang terlibat dalam pembuatan dan penerapan perangkat lunak, termasuk kode kepemilikan dan pihak ketiga, infrastruktur pengembangan dan pengiriman, API, dan banyak lagi. SSCS sangat penting bagi organisasi, pelanggan, dan organisasi mana pun yang mengandalkan kontribusi sumber terbuka.

Rantai pasokan perangkat lunak adalah sistem yang besar, kompleks, dan saling berhubungan yang menghadirkan banyak titik serangan bagi pelaku kejahatan. Beberapa ancaman umum mencakup kerentanan infrastruktur, proses manajemen identitas dan akses (IAM) yang disusupi, dan masuknya kode berbahaya melalui kontribusi sumber terbuka atau komponen pihak ketiga.

Kebutuhan untuk meningkatkan keamanan dalam rantai pasokan perangkat lunak didorong oleh beberapa faktor:

  1. Kompleksitas: Meningkatnya kompleksitas rantai pasokan perangkat lunak, dengan banyaknya komponen pihak ketiga, menyulitkan tim operasi keamanan untuk mengelola dan mengawasi komponen-komponen ini.
  2. Kerentanan: Kerentanan yang tidak dapat dimitigasi dalam rantai pasokan perangkat lunak menimbulkan risiko yang signifikan bagi organisasi, dan merupakan tanggung jawab semua organisasi untuk menerapkan praktik keamanan rantai pasokan perangkat lunak untuk memitigasi risiko ini.
  3. Peraturan dan persyaratan: Pemerintah dan badan pengatur mengembangkan peraturan dan persyaratan untuk mengatasi risiko yang terkait dengan serangan rantai pasokan perangkat lunak, seperti desain yang aman, pengembangan perangkat lunak yang aman, tanggung jawab perangkat lunak, dan pengesahan mandiri.
  4. Manajemen Risiko Rantai Pasokan (SCRM): Perangkat lunak SCRM biasanya mencakup serangkaian fitur dan kemampuan, seperti penilaian kerentanan, pemodelan ancaman, dan manajemen risiko, untuk membantu organisasi mengelola dan memitigasi risiko yang terkait dengan rantai pasokan perangkat lunak mereka.

Untuk meningkatkan keamanan dalam rantai pasokan perangkat lunak, organisasi dapat mengikuti rekomendasi dan pedoman yang diberikan oleh berbagai otoritas dan organisasi, seperti Badan Keamanan Nasional (NSA) dan Enduring Security Framework (ESF). Rekomendasi ini sering kali mencakup tinjauan sistematis, perbaikan proses, dan standar keamanan bagi pemasok dan pengembang perangkat lunak, serta pelanggan. Dengan menerapkan praktik-praktik ini, organisasi dapat meningkatkan ketahanan dan keamanan rantai pasokan perangkat lunak mereka, mengurangi risiko serangan siber, dan melindungi infrastruktur penting mereka.

Apa saja kerentanan keamanan umum dalam Software Supply Chain

Ada beberapa kerentanan keamanan umum dalam rantai pasokan perangkat lunak, termasuk:

  1. Kerentanan dalam kode: Kerentanan dalam kode dapat dieksploitasi oleh penyerang untuk mendapatkan akses ke sistem dan data. Banyak aplikasi perangkat lunak bergantung pada pustaka dan kerangka kerja pihak ketiga, yang mungkin mengandung kerentanan yang dapat dieksploitasi oleh penyerang.
  2. Ketergantungan pihak ketiga: Ketergantungan pihak ketiga dapat menimbulkan kerentanan pada rantai pasokan perangkat lunak. Penyerang dapat mengeksploitasi kerentanan ini untuk mendapatkan akses ke sistem dan data.
  3. Sistem distribusi yang tidak aman: Sistem distribusi yang tidak aman dapat dieksploitasi oleh penyerang untuk memasukkan kode berbahaya ke dalam rantai pasokan perangkat lunak. Penyerang juga dapat menggunakan sistem ini untuk mendistribusikan malware kepada pengguna yang tidak menaruh curiga.
  4. Gambar kontainer yang tidak aman: Gambar kontainer yang tidak aman dapat dieksploitasi oleh penyerang untuk mendapatkan akses ke sistem dan data. Penyerang juga dapat menggunakan gambar-gambar ini untuk mendistribusikan malware kepada pengguna yang tidak menaruh curiga.
  5. Templat IaC Tidak Aman: Templat Infrastruktur Tidak Aman sebagai Kode (IaC) dapat dieksploitasi oleh penyerang untuk mendapatkan akses ke sistem dan data. Penyerang juga dapat menggunakan templat ini untuk mendistribusikan malware kepada pengguna yang tidak menaruh curiga.

Dengan memahami kerentanan umum ini, organisasi dapat mengambil langkah-langkah untuk memitigasi risiko yang terkait dengan rantai pasokan perangkat lunak. Hal ini termasuk penggunaan praktik pengkodean yang aman, mengelola ketergantungan pihak ketiga, dan menerapkan sistem distribusi yang aman.

Bagaimana organisasi dapat memitigasi risiko yang terkait dengan ketergantungan pihak ketiga dalam Software Supply Chain

Untuk memitigasi risiko yang terkait dengan ketergantungan pihak ketiga dalam rantai pasokan perangkat lunak, organisasi dapat menerapkan langkah-langkah berikut:

  1. Kesadaran, Kebijakan yang Baik, dan Otomatisasi: Organisasi dapat mengurangi risiko melalui kesadaran, kebijakan yang baik, dan otomatisasi. Dengan memahami potensi ancaman dari ketergantungan dan menerapkan praktik terbaik serta mitigasi umum, organisasi dapat secara proaktif memitigasi risiko rantai pasokan perangkat lunak.
  2. Melakukan Inventarisasi dan Meminimalkan Dampak: Penting untuk melakukan inventarisasi rantai pasokan perangkat lunak dan mengambil tindakan untuk meminimalkan dampak ancaman. Hal ini mencakup pemahaman sumber komponen perangkat lunak, hubungan antar komponen, dan penerapan langkah-langkah untuk mencegah dan memulihkan risiko rantai pasokan perangkat lunak.
  3. Perbarui dan Audit Komponen Pihak Ketiga Secara Teratur: Banyak proyek perangkat lunak bergantung pada perpustakaan, kerangka kerja, dan komponen sumber terbuka pihak ketiga. Memperbarui dan mengaudit komponen-komponen ini secara berkala untuk mengetahui masalah keamanan sangat penting untuk mencegah masuknya kerentanan ke dalam rantai pasokan perangkat lunak.

Apa saja contoh komponen aplikasi yang tidak aman di Software Supply Chains

Beberapa contoh komponen aplikasi yang tidak aman dalam rantai pasokan perangkat lunak meliputi:

  1. Komponen Aplikasi yang Tidak Aman: Kerentanan pada kode pihak ketiga atau komponen perangkat lunak sumber terbuka dapat dimasukkan ke dalam aplikasi, sehingga menyebabkan serangan rantai pasokan.
  2. Gambar Kontainer Tidak Aman: Perangkat lunak berbahaya yang menyamar sebagai paket asli dapat ditemukan dalam gambar kontainer, sehingga menimbulkan risiko pada rantai pasokan perangkat lunak.
  3. Templat IaC yang Tidak Aman: Templat Infrastruktur yang Tidak Aman sebagai Kode (IaC) dapat menimbulkan kerentanan pada rantai pasokan perangkat lunak.

Contoh-contoh ini menyoroti pentingnya memastikan integritas, keaslian, dan keamanan semua komponen perangkat lunak dalam rantai pasokan.

Apa saja konsekuensi jika tidak memitigasi risiko yang terkait dengan ketergantungan pihak ketiga dalam Software Supply Chains?

Tidak memitigasi risiko yang terkait dengan ketergantungan pihak ketiga dalam rantai pasokan perangkat lunak dapat menimbulkan beberapa konsekuensi:

  1. Injeksi Kode Berbahaya: Penyerang dapat memasukkan kode berbahaya ke dalam perangkat lunak, yang kemudian dapat membahayakan sistem yang terkena dampak dan berpotensi menyebabkan akses tidak sah, pelanggaran data, atau gangguan sistem.
  2. Kebingungan Ketergantungan: Kebingungan antara ketergantungan yang sah dan berbahaya dapat menyebabkan masuknya perangkat lunak berbahaya secara tidak sengaja ke dalam rantai pasokan, sehingga meningkatkan risiko pelanggaran keamanan.
  3. Typosquatting: Penyerang dapat mengeksploitasi kesalahan ketik pada nama paket atau komponen untuk mengganti ketergantungan yang sah dengan yang berbahaya, sehingga menyebabkan masuknya malware dalam rantai pasokan perangkat lunak.
  4. Serangan Rantai Pasokan Perangkat Lunak: Serangan ini dilakukan oleh pelaku ancaman yang mengeksploitasi kerentanan pada komponen perangkat lunak pihak ketiga, yang menyebabkan akses tidak sah, pelanggaran data, atau gangguan sistem.
  5. Kerentanan Akses Istimewa: Banyak produk perangkat lunak pihak ketiga memerlukan akses istimewa, sehingga rentan terhadap serangan yang membahayakan sistem yang terkena dampak.
  6. Kerentanan Komunikasi yang Sering Terjadi: Banyak produk perangkat lunak pihak ketiga memerlukan komunikasi yang sering antara jaringan vendor dan produk perangkat lunak vendor yang terletak di jaringan pelanggan, yang dapat menimbulkan kerentanan.

Jika risiko-risiko ini tidak diatasi, organisasi dapat menghadapi konsekuensi yang signifikan, termasuk kerugian finansial, kerusakan reputasi, dan potensi tanggung jawab hukum. Untuk memitigasi risiko ini, organisasi harus melakukan inventarisasi rantai pasokan perangkat lunak mereka, menerapkan praktik terbaik keamanan, dan menggunakan alat seperti Analisis Komposisi Perangkat Lunak (SCA) untuk mengidentifikasi dan memulihkan ketergantungan yang rentan.

Bagaimana mencegah komponen aplikasi yang tidak aman di Software Supply Chains

Berikut adalah beberapa praktik terbaik untuk mengamankan rantai pasokan perangkat lunak:

  1. Bill of Materials Perangkat Lunak (SBOM): Menghasilkan SBOM yang mencantumkan semua komponen pihak ketiga dan ketergantungannya dapat memberikan visibilitas ke dalam komponen yang digunakan dalam rantai pasokan perangkat lunak.
  2. Software Composition Analysis (SCA): Menggunakan alat AppSec seperti SCA dapat membantu mendeteksi komponen pihak ketiga yang rentan dalam kode sumber, sehingga memungkinkan identifikasi komponen aplikasi yang tidak aman.
  3. Keamanan Manajer Paket: Pengembang harus menekankan keamanan manajer paket, menerapkan praktik audit dan pengujian yang ketat, menerapkan mekanisme verifikasi, dan mendidik tim pengembangan mereka tentang praktik terbaik keamanan rantai pasokan.
  4. Mempertahankan SBOM yang Akurat: Mempertahankan SBOM yang akurat dapat membantu organisasi melacak komponen yang digunakan dalam rantai pasokan perangkat lunak mereka, sehingga memungkinkan mereka mengidentifikasi dan memulihkan kerentanan.
  5. Menerapkan Kebijakan RBAC: Menerapkan kebijakan Kontrol Akses Berbasis Peran (RBAC) yang komprehensif dapat membantu organisasi mengontrol akses ke komponen sensitif dan mengurangi risiko akses tidak sah.
  6. Memprioritaskan Pendidikan dan Pelatihan Tim: Memprioritaskan pendidikan dan pelatihan tim dapat membantu organisasi membangun budaya kesadaran keamanan dan memastikan bahwa semua anggota tim dibekali dengan pengetahuan dan keterampilan yang diperlukan untuk mengidentifikasi dan memitigasi risiko rantai pasokan.

Dengan menerapkan praktik terbaik ini, organisasi dapat meningkatkan kemampuan mereka untuk mengamankan rantai pasokan perangkat lunak mereka dan mengurangi risiko pelanggaran keamanan dan insiden terkait rantai pasokan lainnya.

Sumber:
https://www.cisa.gov/sites/default/files/publications/ESF_SECURING_THE_SOFTWARE_SUPPLY_CHAIN_DEVELOPERS.PDF
https://snyk.io/series/software-supply-chain-security/supply-chain-risks-and-best-practice/
https://circleci.com/blog/secure-software-supply-chain/
https://www.veracode.com/blog/intro-appsec/securing-software-supply-chain-protecting-against-insecure-code-downloads
https://www.cisa.gov/resources-tools/resources/securing-software-supply-chain-recommended-practices-guide-customers-and
https://scribesecurity.com/software-supply-chain-security/supply-chain-risks/
https://www.truesec.com/hub/blog/secure-your-software-supply-chain-trusting-3rd-parties
https://www.redhat.com/en/topics/security/what-is-software-supply-chain-security
https://www.rand.org/pubs/commentary/2023/01/software-supply-chain-risk-is-growing-but-mitigation.html
https://www.cisa.gov/sites/default/files/publications/defending_against_software_supply_chain_attacks_508_1.pdf
https://www.paloaltonetworks.com/blog/prisma-cloud/common-software-supply-chain-weaknesses/
https://www.docker.com/blog/the-impacts-of-an-insecure-software-supply-chain/
https://www.wiz.io/academy/software-supply-chain-security-best-practices
https://www.armosec.io/blog/software-supply-chain-security/
https://snyk.io/series/software-supply-chain-security/
https://www.simpplr.com/blog/2023/supply-chain-security-strategies/
https://spectralops.io/blog/top-10-most-common-software-supply-chain-risk-factors/
https://cloud.google.com/software-supply-chain-security/docs/attack-vectors
https://www.synopsys.com/glossary/what-is-software-supply-chain-security.html
https://media.defense.gov/2023/Dec/11/2003355557/-1/-1/0/ESF_SECURING_THE_SOFTWARE_SUPPLY_CHAIN%20RECOMMENDED%20PRACTICES%20FOR%20MANAGING%20OPEN%20SOURCE%20SOFTWARE%20AND%20SOFTWARE%20BILL%20OF%20MATERIALS.PDF