Cara baru untuk mensertifikasi perangkat lunak sumber terbuka. Tantangan proyek AssureMOSS

(Untuk Matius Mauri)
04/08/21

Eropa sangat bergantung pada perangkat lunak open-source terutama dirancang di luar negeri. Di Pasar Tunggal Digital Eropa, sebagian besar perangkat lunak dirakit secara online dan lebih dari setengahnya berasal dari perangkat lunak (repositori) open-source dibuat melintasi perbatasan.

Beberapa universitas, perusahaan kecil, menengah dan besar, kelompok minat khusus dan dewan penasihat dengan kompetensi utama di bidang perangkat lunak open-source, telah bersatu dalam kemitraan strategis untuk menciptakan metode dan pendekatan baru untuk mempercepat pengembangan perangkat lunak yang lebih efisien dan aman.

Dalam artikel ini kita akan melihat secara singkat upaya proyek AssureMOSS (Jaminan dan sertifikasi dalam Perangkat Lunak dan Layanan Terbuka Multi-pihak yang aman - https://assuremoss.eu) untuk menghadapi tantangan perangkat lunak open-source "Dirancang di mana-mana, tetapi dijamin di Eropa". Proyek tiga tahun (Oktober 2020 - September 2023) didanai oleh Komisi Eropa di bawah program HORIZON 2020 [1].

Terburu-buru untuk merakit perangkat lunak dan paradigma MOSS

Dalam dekade terakhir, di antara banyak inovasi, dua karakteristik utama khususnya telah secara radikal mengubah dan mengkondisikan proyek pengembangan perangkat lunak [2]. Pertama, pemendekan loop umpan balik antara tim pengembangan dan respons terhadap produk yang dirilis tim ini (misalnya, pengujian A / B, DevOps) telah menyebabkan pengembangan yang panik dengan perubahan produk yang lebih cepat. Kedua, pengembang semakin fokus pada pembedaan fitur dalam produk akhir mereka, tetapi semakin bergantung pada pihak ketiga untuk segala hal lainnya (implementasi cloud, penggunaan kerangka kerja terbuka yang ekstensif seperti OpenSSL [3] atau Node .js [4], atau penggunaan lebih banyak produk terbatas tetapi dengan protokol, prosedur, perpustakaan, dan API [5] tetap open-source). Semua ini mengarah pada perkembangan yang melibatkan berbagai pihak (disebut multi-stakeholder, dari bahasa Inggris: multi-interested party): hasilnya adalah pertemuan yang dioperasikan oleh aktor yang berbeda, masing-masing dengan praktik / kebijakan keamanan dan privasi mereka sendiri.

Kami sudah dapat memperkenalkan akronim di sini yang akan kami gunakan di sisa artikel. Perangkat lunak modern didasarkan pada paradigma yang disebut Multi-party Open Software and Services (MOSS). Oleh karena itu, perusahaan perangkat lunak yang mengembangkan produk hanya mewakili salah satu protagonis yang terlibat dalam proses penjaminan keamanan perangkat lunak pada produk yang sama.

Pihak-pihak yang terlibat ini termasuk komunitas pengembangan OS, misalnya, dalam pembuatan pembaruan keamanan, atau perusahaan yang menyediakan layanan keamanan baru atau pembaruan antarmuka yang ada. Paradigma MOSS tentu berlaku untuk kasus perusahaan besar, sementara perusahaan kecil, seperti UKM dan start-up, mungkin memiliki rantai pasokan yang lebih pendek yang terutama didasarkan pada perangkat lunak bebas dan sumber terbuka (FOSS - Perangkat Lunak Bebas dan Sumber Terbuka).

Yang terakhir adalah tulang punggung industri perangkat lunak: hampir 80% produk komersial saat ini mengandung setidaknya satu komponen FOSS hingga Parlemen Eropa secara resmi mengakui peran kuncinya. Menarik juga untuk dicatat tren progresif untuk mengurangi porsi kode yang diproduksi secara internal oleh perusahaan pengembang perangkat lunak. Pada akhir 90-an, lebih dari 95% tumpukan perangkat lunak terdiri dari kode yang dikembangkan sendiri. Hanya Basis Data dan Sistem Operasi yang berasal dari vendor sumber tertutup berlisensi. Mencermati tren saat ini, dapat dilihat bahwa pada tahun 2019, di sisi lain, porsi kode yang diproduksi secara internal telah menurun drastis hingga hanya mewakili 5% dari kue: browser, kerangka UI, pengelola paket, server aplikasi, platform layanan mikro, container, sistem yang beroperasi dalam container, semuanya umumnya merupakan komponen perangkat lunak pihak ketiga (kebanyakan open-source) yang digunakan perusahaan perangkat lunak setiap hari [6-7-8].

Sertifikasi dan sertifikasi ulang perangkat lunak

Evolusi proses pengembangan perangkat lunak dalam siklus yang cepat dan terfragmentasi ini akan menyiratkan banyak proses / siklus sertifikasi dan jaminan keamanan perangkat lunak karena banyak perubahan yang memiliki konsekuensi pada keamanan dan privasi (kerentanan baru misalnya dapat diperkenalkan oleh penggunaan perpustakaan baru yang mampu mengakses data pribadi dan mungkin mentransmisikannya). Oleh karena itu, paradigma baru untuk menjamin keamanan harus "ringan dan berkelanjutan" dibandingkan dengan paradigma "kaku dan tetap" sebelumnya. Oleh karena itu, kita tidak boleh berbicara tentang sertifikasi melainkan sertifikasi, sertifikasi ulang, dan penilaian risiko.

Fakta bahwa pengembangan perangkat lunak, pada kenyataannya, merupakan aktivitas multi-pemangku kepentingan (di mana beberapa pemangku kepentingan disembunyikan di sub-sub-ketergantungan pada perpustakaan pihak ketiga) berarti bahwa teknik jaminan harus bekerja dalam ekosistem yang terfragmentasi dengan berbagai sumber artefak (mis. dari komunitas open-source), teknologi dan bahasa yang berbeda serta domain keputusan yang berbeda. Akibatnya, paradigma baru untuk jaminan keamanan melibatkan pendekatan "cerdas dan fleksibel" - pendekatan yang mampu belajar, beradaptasi, dan meningkat seiring waktu dengan ketersediaan data baru dan umpan balik tambahan.

Kecuali jika teknik jaminan keamanan yang inovatif, ringan, dan cerdas diciptakan yang dapat berintegrasi dengan banyak pemangku kepentingan dan pengembang yang bergerak cepat, keamanan akan terus dikenakan sanksi [9] oleh perlombaan produktivitas tim pengembangan. .

Pengembangan multi-stakeholder yang cepat juga merupakan tantangan untuk mengamankan sertifikasi perangkat lunak. Skema sertifikasi keamanan yang ada, termasuk untuk proyek open-source, seperti Program Lencana Prakarsa Infrastruktur Inti (CII) [10], berfokus pada sertifikasi bahwa proyek perangkat lunak mengikuti praktik terbaik keamanan tertentu. Pada dasarnya, skema ini fokus pada proses pengembangan perangkat lunak. Namun, dalam proyek perangkat lunak modern, proses pengembangan menjadi lebih lancar dan terus-menerus diadaptasi oleh pengembang (berlawanan dengan kaku dan dipaksakan secara terpusat). Akibatnya, fasilitas yang terlibat dalam setiap fase mungkin tidak memiliki sumber daya yang diperlukan untuk memperoleh dan memelihara sertifikasi ini.

Tantangan proyek AssureMOSS

Dari apa yang telah dikatakan, kebutuhan akan perubahan cara pandang dari pihak Uni Eropa tentu akan dirasakan, yang telah mencoba untuk memicu pendekatan baru dengan mendanai proyek AssureMOSS. Proyek ini melibatkan tim yang terdiri dari 4 Universitas (Delft, Gotheborg, Trento, Wina), 3 UKM inovatif (Pluribus One, FrontEndArt, Search-Lab), 2 perusahaan besar (SAP, Thales), organisasi EU-VRi dan Penasehat Pengurus terdiri dari tokoh-tokoh strategis dari dunia industri dan Open Source Software (OSS).

Secara khusus, AssureMOSS mengusulkan untuk menerapkan transisi dari penilaian keamanan berbasis proses ke berbasis artefak (Model, Kode sumber, Gambar kontainer, Layanan), mendukung semua fase siklus hidup perangkat lunak berkelanjutan (desain, pengembangan, implementasi, evaluasi, dan pencadangan) .

Oleh karena itu AssureMOSS mengadopsi pendekatan komprehensif untuk jaminan keamanan dan sertifikasi ulang dan memiliki ambisi untuk berkontribusi pada setiap tahap proses pengembangan perangkat lunak, berkat serangkaian teknik otomatis dan ringan yang koheren yang memungkinkan perusahaan perangkat lunak untuk mengevaluasi, mengelola, dan mengesahkan ulang keamanan dan privasi risiko yang terkait dengan perkembangan pesat dan pengiriman berkelanjutan dari perangkat lunak dan layanan terbuka multi-pihak. Pada akhirnya, proyek ini bertujuan untuk mendukung pembuatan perangkat lunak MOSS yang lebih aman.

Ide utamanya adalah untuk mendukung mekanisme penyaringan yang ringan dan skalabel yang dapat diterapkan secara otomatis ke seluruh populasi komponen perangkat lunak dengan:

• penggunaan Pembelajaran Mesin untuk identifikasi cerdas masalah keamanan di antara artefak;

• analisis dan verifikasi perubahan melalui pelacakan efek samping yang berkelanjutan pada privasi dan keamanan;

• analisis risiko konstan dan penilaian keamanan perangkat lunak (dengan perhatian khusus pada potensi dampak pada bisnis yang disebabkan oleh produk yang berpotensi rentan).

Proyek ini tidak hanya akan menghasilkan sejumlah metode inovatif dan alat sumber terbuka, tetapi juga kumpulan data benchmark dengan ribuan kerentanan dan kode yang dapat digunakan oleh peneliti lain.

Alat AssureMOSS akan membantu, misalnya, untuk menghemat waktu dalam pencarian bug dan kerentanan melalui penyaringan semi-otomatis penambahan, penghapusan, dan perubahan dalam repositori kode (analisis komit [11]), sehingga juga mempercepat evaluasi dan proses analisis perangkat lunak.

Oleh karena itu, perubahan perspektif (artefak vs proses) dan konsep sertifikasi ulang berkelanjutan dari perangkat lunak yang dikembangkan merupakan dasar dari tantangan yang sangat ambisius: untuk menetapkan pedoman yang dapat digunakan, misalnya, oleh badan sertifikasi dan standardisasi untuk menemukan Skema sertifikasi yang berfokus pada artefak untuk perangkat lunak MOSS.

Intuisi dasar diringkas dengan baik oleh praktik terkenal di bidang kesehatan medis [12] dan yang kami adaptasikan di sini untuk tujuan: “Skrining didefinisikan sebagai identifikasi pencegahan penyakit pada populasi yang tampaknya sehat dan tanpa gejala dengan cara tes (dari komponen perangkat lunak), pemeriksaan atau prosedur lain yang dapat diterapkan dengan cepat dan mudah ke populasi sasaran. [...] Dalam mendukung program penyaringan, penting untuk menghindari pemaksaan model yang berasal dari lingkungan yang sangat efisien dengan sistem kesehatan yang canggih dan skema verifikasi (keselamatan) yang canggih dan mahal, pada perusahaan, proses, (pengembang dan pengguna) di negara-negara yang melakukannya tidak memiliki prasarana dan sumber daya yang diperlukan untuk memperoleh pencegahan yang memadai terhadap penduduk”.

1 Proyek AssureMOSS diatur oleh Perjanjian Hibah n ° 952647, dan didanai dengan total 4.689.425 Euro, www.pluribus-one.it/it/ricerca/progetti/assuremoss

2 Jan Bosch, Kecepatan, Data, dan Ekosistem: Unggul dalam Dunia Berbasis Perangkat Lunak, CRC Press, 2016

3 OpenSSL adalah implementasi open source dari protokol SSL dan TLS, tersedia untuk sebagian besar sistem operasi mirip unix, termasuk GNU / Linux dan macOS, dan juga untuk Microsoft Windows, www.openssl.org

4 Node.js adalah sistem runtime open source lintas platform berorientasi acara untuk menjalankan kode JavaScript, dibangun di atas mesin JavaScript V8 Google Chrome. Banyak modul intinya ditulis dalam JavaScript, dan pengembang dapat menulis modul baru dalam JavaScript, https://nodejs.org/it/

5 API, singkatan dari Application Programming Interface, www.redhat.com/en/topics/api/what-are-application-programming-interfaces

6 Survei Sumber Terbuka Masa Depan Bebek Hitam, 2015

7 Holger Mack, Tom Schröer, Security Midlife Crisis, SAP Product Security Summit 2019

http://www.europarl.europa.eu/oeil/popups/ficheprocedure.do?lang=en&refe...

9 Menurut CVE Details, 2017 memecahkan rekor kerentanan tahun-tahun sebelumnya (14714 pada 2017 vs rekor sebelumnya 7946 pada 2014). Sayangnya, 2018 bahkan lebih buruk (kerentanan 16555). https://www.cvedetails.com/browse-by-date.php

10 https://www.coreinfrastructure.org

11 https://wiki.ubuntu-it.org/Programmazione/Git/Commit

12 https://www.who.int/cancer/prevention/diagnosis-screening/screening/en/

13 Eoin Woods, Demokratisasi Arsitektur Perangkat Lunak, Keynote di ICSA 2019, online di https://speakerdeck.com/eoinwoods/democratising-software-architecture

14 www.pluribus-one.it/it/chi-siamo/blog/88-cybersecomics/111-bug