Keamanan Pembaruan Perangkat Lunak

Dari seorang penerjemah: Saya menemukan TheUpdateFramework ketika mencari perpustakaan yang mengimplementasikan pembaruan perangkat lunak otomatis pada desktop. Di satu sisi, deskripsi aspek keamanan sistem pembaruan perangkat lunak yang disajikan di bawah ini menarik dan terperinci bagi saya; di sisi lain - pasti, selain studi akademis, meskipun di bawah naungan LinuxFoundation, Anda dapat menemukan banyak solusi yang sesuai. Anda dapat menyarankan opsi dalam komentar.


PembaruanFramework


Keamanan


Kami dapat mempertimbangkan sistem pembaruan perangkat lunak "aman" jika:


  • dia akan mencari tahu tentang pembaruan terbaru yang tersedia secara tepat waktu
  • file apa pun yang diunduh oleh sistem pembaruan sudah benar, dan
  • tidak ada konsekuensi berbahaya dari memeriksa atau mengunduh file.

Untuk mencapai ini, diperlukan strategi pencegahan yang bisa diterapkan terhadap banyak serangan potensial.


Serangan dan kelemahan


Di bawah ini tercantum beberapa serangan yang dikenal pada sistem pembaruan perangkat lunak, termasuk kelemahan yang memungkinkan serangan ini. Untuk merancang kerangka kerja pembaruan perangkat lunak yang aman, Anda perlu memahami serangan ini dan mengembangkan strategi perlindungan. Beberapa kekurangan ini mungkin terkait satu sama lain, tergantung pada arsitektur dan implementasi sistem pembaruan perangkat lunak tertentu.


  • Instal perangkat lunak khusus . Seorang penyerang dapat mengganti file sewenang-wenang dalam menanggapi permintaan untuk mengunduh dan menginstal apa pun yang dia inginkan ke dalam sistem klien, bahkan tanpa menentukan ilegalitas dari tindakan tersebut.
  • Serang pembaruan rollback . Penyerang menyediakan sistem pembaruan perangkat lunak dengan file-file dari versi yang lebih lama daripada yang saat ini diinstal pada klien. Pengguna menginstal versi yang mungkin mengandung kerentanan, tanpa kemampuan untuk mengetahui bahwa versi ini sudah usang. Nantinya, kerentanan bisa dimanfaatkan oleh penyerang.
  • Mundur serangan . Penyerang sewenang-wenang meningkatkan nomor versi, membuatnya jauh lebih tinggi dari nilai saat ini, sehingga menipu sistem pembaruan perangkat lunak dan memaksanya untuk percaya bahwa setiap pembaruan yang berurutan benar-benar mencoba untuk memutar kembali versi perangkat lunak ke klien, ke versi sebelumnya yang sudah usang. Dalam beberapa situasi, misalnya, jika ada nomor versi maksimum yang mungkin, penjahat dapat menggunakan maksimum ini sehingga sistem pembaruan tidak pernah dapat menginstal pembaruan baru.
  • Serangan pembekuan tak terbatas . Penyerang terus mengembalikan file yang sudah dilihat klien ke sistem pembaruan perangkat lunak. Akibatnya, klien tetap berada dalam kegelapan tentang versi perangkat lunak baru.
  • Serangan data tak berujung . Menanggapi permintaan pengunduhan, penyerang mengembalikan aliran data tanpa akhir, secara langsung menyebabkan kerusakan pada klien (misalnya, mengisi disk atau RAM).
  • Menyerang respons yang lambat . Penyerang merespons klien dengan aliran data yang sangat lambat, yang akhirnya mengarah pada fakta bahwa klien tidak dapat menyelesaikan proses pembaruan.
  • Serangan ketergantungan berlebih . Penyerang memberi tahu klien bahwa pemasangan perangkat lunak yang diperlukan juga memerlukan instalasi perangkat lunak pihak ketiga ( hi, mail.ru - kira-kira Per. ). Perangkat lunak pihak ketiga ini mungkin berasal dari sumber yang dapat diandalkan, namun demikian telah diketahui kerentanan yang dapat dieksploitasi penyerang.
  • Serangan kombinasi campuran . Penyerang mengembalikan snapshot repositori ke klien yang berisi file yang tidak pernah ada dalam revisi yang sama pada saat yang sama. Hal ini dapat menyebabkan pemasangan versi ketergantungan yang lama dan konsekuensi lain yang lebih kompleks.
  • Menginstal perangkat lunak lain . Penyerang mengembalikan file tepercaya ke klien, yang sebenarnya bukan yang ingin dipasang oleh klien.
  • Cermin berbahaya yang mencegah pembaruan . Penyerang mengontrol salah satu mirror repositori dan dapat menggunakannya untuk mencegah klien menerima pembaruan dari mirror lain, bukan yang terinfeksi.
  • Kerentanan Kunci Kompromi . Penyerang yang dapat mengkompromikan satu kunci dalam sistem (atau beberapa kunci, yang jumlahnya tidak lebih dari ambang yang ditentukan), dapat membahayakan klien. Serangan-serangan ini dapat terjadi baik dalam hal mempercayai kunci online tunggal (misalnya, ketika melindungi pembaruan hanya dengan enkripsi SSL), dan dalam kasus kunci offline tunggal (untuk sebagian besar sistem pembaruan perangkat lunak yang menggunakan kunci untuk menandatangani).

Prinsip keamanan


Untuk memastikan bahwa sistem dilindungi dari semua serangan yang dijelaskan di atas, arsitektur dan implementasi Kerangka Pembaruan (TUF) bergantung pada beberapa konsep dasar. Detail tentang bagaimana TUF mentransmisikan informasi yang dijelaskan di atas dapat ditemukan dalam dokumentasi metadata .


Kepercayaan


Memercayai file yang diunduh sebenarnya berarti mengasumsikan bahwa file tersebut disediakan oleh pihak tanpa solusi arsitektur yang rentan. Dua aspek kepercayaan yang sering sulit dipahami dalam sistem pembaruan perangkat lunak adalah:


  • Kepercayaan seharusnya tidak diberikan selamanya. Kepercayaan harus dicabut jika tidak diperbarui.
  • Kepercayaan seharusnya tidak diberikan secara merata untuk semua peserta. Jenis kepercayaan bersama ini berarti bahwa Anda hanya bisa mempercayai file-file anggota yang ketentuannya oleh anggota ini ditentukan oleh peran root.

Pengurangan risiko utama (resistensi terhadap kompromi)


Tanda tangan kriptografi adalah komponen penting dari keamanan dalam sistem pembaruan perangkat lunak. Keamanan kunci yang digunakan dalam tanda tangan ini secara langsung mempengaruhi keamanan klien yang dilindungi sistem. Alih-alih secara naif meyakini bahwa kunci privat tidak pernah dapat dikompromikan, sistem pembaruan perangkat lunak yang aman harus meramalkan bagaimana melindungi klien dari kemungkinan kompromi kunci-kunci ini. Ini adalah prinsip dasar resistensi terhadap kompromi.


Mengamankan klien saat kunci dikompromikan meliputi:


  • Penggantian dan penarikan kembali kunci yang cepat dan aman.
  • Kepercayaan minimal pada kunci dengan risiko kompromi yang tinggi. Kunci yang disimpan online atau digunakan dalam sistem otomasi tidak boleh menimbulkan ancaman instan bagi pelanggan jika terjadi kompromi.
  • Menggunakan beberapa kunci dan tanda tangan / tanda tangan kuorum.

Integritas


Memastikan integritas dalam Kerangka Pembaruan (TUF) berlaku tidak hanya untuk file individual, tetapi juga untuk repositori secara keseluruhan. Sangat jelas bahwa klien harus memverifikasi bahwa file individual sudah benar. Sudah tidak begitu jelas, tetapi masih sangat penting bagi klien untuk memastikan bahwa audit repositori secara keseluruhan sudah benar. Misalnya, jika sumber tepercaya menyediakan dua file, sistem pembaruan perangkat lunak akan melihat versi terbaru dari kedua file (bukan hanya satu), dan hanya versi dari dua file yang ada di repositori pada suatu waktu.


Relevansi


Karena pembaruan perangkat lunak sering memperbaiki kerentanan, penting bagi sistem pembaruan perangkat lunak untuk mendapatkan versi terbaru yang tersedia. Penyerang dapat mencoba memaksa klien untuk menginstal versi lama dari perangkat lunak, atau hanya meyakinkan klien bahwa tidak ada pembaruan baru.


Memastikan relevansi berarti:


  • Jangan pernah menerima file yang lebih lama dari yang sudah diinstal.
  • Identifikasi kemungkinan masalah dengan menerima pembaruan.

Perlu dicatat bahwa jika penyerang merespons permintaan klien, tidak selalu memungkinkan untuk melakukan pembaruan yang berhasil. Namun, klien harus dapat menentukan kemungkinan pembaruan yang tidak dapat diterima.


Keamanan Implementasi


Selain arsitektur yang aman, TUF juga berfungsi melawan kerentanan implementasi, termasuk kerentanan umum untuk sistem pembaruan perangkat lunak. Dalam beberapa kasus, penyertaan informasi tambahan dalam metadata pembaruan digunakan untuk ini. Misalnya, mengetahui ukuran yang diharapkan dari file yang diunduh memungkinkan TUF untuk membatasi jumlah data yang diunduh. Akibatnya, TUF dilindungi terhadap serangan data tak terbatas yang dibahas di atas.

Source: https://habr.com/ru/post/id464171/


All Articles