Bagaimana memilih software patching kernel Linux secara real-time

Halo! Pada bulan September, OTUS membuka satu set untuk aliran baru kursus Keamanan Linux . Dalam hal ini, kami secara tradisional telah menyiapkan terjemahan materi yang bermanfaat untuk Anda.








Pada tahun 1991, terjadi dua peristiwa yang tidak terkait, yang masing-masing menandai dua kebebasan yang sangat berbeda: akhir Perang Dingin dan lahirnya Linux.



Kemungkinan untuk menambal kernel secara real-time datang pada tahun 2008, ketika Linux masih remaja. Sekarang kernel Linux akan mencapai 30, tambalan waktu-nyata juga matang, dan siap untuk meremehkan reputasinya sebagai tambahan opsional yang hanya "bagus untuk dimiliki di dalam kotak."



Ada dua alasan untuk ini. Pertama adalah dominasi Linux sebagai platform pilihan untuk web hosting ekonomis dan serbaguna: lebih dari setengahnyasemua situs web yang dikenal saat ini berjalan di Linux. Kedua, pengakuan bahwa penambalan waktu nyata lebih dari sekadar kenyamanan; ini juga merupakan cara yang efektif dan murah untuk meningkatkan keamanan sistem Linux Anda.



Ksplice, solusi penambalan kernel Linux real-time pertama, dengan mudah memperoleh status menguntungkan setelah peluncuran, hanya memperkuat kepemimpinannya ketika raksasa teknologi Oracle membelinya pada tahun 2011. Sekarang ini adalah yang paling terkenal dari lima organisasi yang menawarkan layanan patch keamanan otomatis untuk Linux. Dalam urutan abjad, ini adalah:



  • Layanan Tangkapan Langsung Kanonis untuk Ubuntu.
  • KernelCare untuk Ubuntu, Red Hat Enterprise Linux, Oracle Linux, Amazon Linux, dan lainnya.
  • Kpatch untuk Red Hat Enterprise Linux.
  • Ksplice untuk Oracle Linux.
  • SUSE Linux Enterprise Live Patching untuk SUSE Linux Enterprise.


Setiap perusahaan mempromosikan layanannya menggunakan kata kunci boilerplate yang sama, frasa standar yang sama, ad infinitum berulang. Saya akan memberi Anda yang paling populer dan bagaimana Anda harus memahaminya.



  • Rebootless : Menyegarkan kernel Linux tanpa melakukan boot ulang.
  • Otomatis: Memeriksa dan menginstal pembaruan keamanan kernel tanpa pengamat.
  • Pemasangan mudah: Pemasangan dan penyiapan sangat sederhana atau tidak perlu.
  • Didukung penuh: Anda tidak perlu menulis tambalan sendiri. (Lihatlah Panduan Penulisan Patch Kpatch untuk melihat mengapa ini penting)


Abaikan nilai jual yang sangat menyilaukan ini dan Anda akan menemukan fitur lain untuk dipertimbangkan, faktor lain yang dapat Anda gunakan untuk membandingkan satu layanan dengan layanan lainnya. Artikel ini membahas beberapa di antaranya, sedikit dibumbui dengan penegasan dan peneguhan. Tapi pertama-tama, mari kita ingat apa itu live patching.



Apa itu patch kernel Linux real-time?



Kernel Linux berisi lebih dari 20 juta baris kode yang sebagian besar ditulis (mungkin) oleh pemrogram manusia. Seperti semua perangkat lunak, ada bug. Di era peningkatan fokus pada keamanan siber, bug menyiratkan kerentanan . Untuk mengatasi masalah ini, vendor Linux mencoba merilis pembaruan ke kernel mereka sesegera mungkin. Sysadmin Linux juga mencoba bereaksi cepat dengan menginstal pembaruan ini, membuat penjadwalan lebih sulit. Ini karena tidak ada pola untuk mendeteksi kerentanan. Berikut beberapa alasannya:



  • Ada banyak versi berbeda dari kernel Linux yang digunakan pada waktu tertentu. Beberapa perlu diperbaiki; beberapa tidak.
  • , .
  • Linux , .
  • Linux . , , — .


Ada satu hal lagi yang jarang disebutkan: ini adalah rasa jijik naluriah dari administrator sistem karena menghentikan mesin, menyebabkan ketidaknyamanan fisik karena harus mengatakan: "Server sedang dalam pemeliharaan."



Mengapa menghentikan server? Karena pembaruan kernel tidak akan berpengaruh sampai reboot. Jika Anda tidak reboot - jika Anda meletakkannya di burner belakang atau melupakannya - Anda akan berada dalam kebingungan, karena server tanpa patch terbaru tidak aman . Kita akan membicarakan mantra ini secara lebih rinci nanti, tetapi intinya adalah ini:



Ketika kerentanan diketahui publik, hal yang sama terjadi pada eksploitasi mereka.



Atau, dengan kata lain, Anda memiliki kerentanan yang tidak Anda ketahui sebelumnya, tetapi sekarang Anda tahu. Dan semua orang juga.



Penyelamat dalam skenario ini adalah penambalan langsung . Ini adalah cara untuk memperbarui bukan seluruh kernel Linux, tetapi hanya bagiannya yang bermasalah. Dan ini dilakukan tanpa menghentikan proses atau mengganggu pekerjaan pengguna.



Namun, ada batasannya. Penambalan kernel waktu nyata tidak dapat memperbaiki semua jenis bug. Kompleksitas kode kernel yang luar biasa dan tantangan teknis dalam memodifikasi kode dengan cepat berarti bahwa teknik ini hanya digunakan untuk memecahkan masalah kritis yang biasanya terkait dengan keamanan.



Meskipun demikian, sistem dengan fasilitas penambalan waktu nyata lebih aman daripada sistem tanpa itu. Berikut beberapa pertanyaan untuk ditanyakan ketika mencari solusi tambalan waktu-nyata:



1. Apa yang ada di dalam tambalan (dan siapa di belakangnya)?



Saat Anda mendaftar untuk layanan tambalan langsung, Anda membayar lebih dari sekadar perangkat lunak itu sendiri. Ini menjadi jelas ketika Anda mulai menggali sumber kernel Linux dan menyadari bagaimana tambalan yang ditulis dengan buruk dapat membahayakan seluruh sistem Linux.



Saya sebutkan sebelumnya bahwa kernel adalah kumpulan besar pekerjaan yang tampaknya berkembang baik dalam aktivitas maupun volume. Perhatikan peningkatan jumlah baris kode di cabang master dari repositori kernel Linux. (Dihitung mulai 1 Januari setiap tahun. Hanya file dan header C / C ++, file Python dan Perl yang dihitung.)



Dengan begitu banyak kode, menulis tambalan untuk kernel Linux bukanlah tugas yang mudah. Pemahaman yang mendalam tentang arsitektur kernel dan struktur data diperlukan. Pengalaman dengan konvensi pengkodean komunitas Linux dan standar kualitas diperlukan. Dan dibutuhkan bakat khusus untuk menemukan solusi yang tidak memengaruhi fungsionalitas, kinerja, dan stabilitas.



Ada dua metode berlawanan yang digunakan vendor patch untuk mengembangkan dan mengirimkan patch kernel. Saya menyebutnya inkremental dan monolitik .



Tambalan tambahan, seperti bola permen karet, ditumpuk di atas satu sama lain, masing-masing mengubah perilaku sebelumnya. Sebagai pelanggan, Anda harus melacak tambalan mana yang Anda pasang dan mana yang tidak, dan urutan pemasangannya. Kegagalan untuk memperhatikan masalah ini dapat menyebabkan perubahan yang tidak terduga pada perilaku sistem Anda. Metode patch ini memungkinkan vendor untuk dengan cepat merilis patch kecil yang ditargetkan. Namun seiring waktu, sistem dapat menjadi tidak stabil hingga hanya pembaruan kernel lengkap yang dapat memulihkannya.



Tambalan monolitik adalah tambalan yang mencakup semua tambalan sebelumnya. Pada dasarnya, hanya ada satu master patch yang menggantikan yang aktif daripada ditambahkan ke dalamnya. Pendekatan ini membuat platform lebih stabil, meningkatkan waktu aktif server secara signifikan, yang sering kali diukur dalam ribuan hari.



2. Berapa lama menunggu patch berikutnya?



Pasti ada penundaan antara melaporkan kerentanan dan memperbaikinya. Perlu waktu untuk menganalisis kesalahan kernel dan waktu untuk menilai dampaknya. Dibutuhkan kecerdikan dan keterampilan untuk menemukan solusi, dan banyak tes untuk memastikannya berhasil. Ini kemudian tunduk pada tinjauan dan persetujuan wajib sebagai bagian dari proses pengembangan Linux.



Penundaan yang dapat dihindari terjadi saat vendor Linux mengganti peringkat keparahan komunitas dengan miliknya sendiri. Artinya, vendor dapat memperbaiki beberapa kerentanan dengan tambalan yang lebih sedikit, tetapi karena itu, pelanggan rata-rata menunggu lebih lama untuk memperbaiki masalah tertentu.



Administrator Linux yang memahami alasan dari sifat rilis patch yang tidak menentu tidak mendapatkan keuntungan lebih dari mereka yang tidak. Tak satu pun dari mereka merasa nyaman dengan pengetahuan bahwa sementara mereka menunggu tambalan, sistem mereka bahkan lebih rentan terhadap eksploitasi daripada sebelum ditemukan.



Inilah alasannya: Anggota komunitas riset keamanan siber senang mengumumkan kerentanan bersama dengan kasus penggunaan visual. Mereka biasanya berbentuk bukti konsep, deskripsi teknis terperinci tentang cara mereproduksi bug atau menggunakan exploit. Deskripsi ini dengan itikad baik untuk membantu pengembang kernel menemukan dan menambal lubang tersebut. Tapi mereka juga menghemat banyak waktu dan usaha para peretas dengan memberi mereka jalan pintas ke resep literal bencana dalam perlombaan mereka untuk mengeksploitasi kerentanan sebagai senjata.



3. Seberapa serius seharusnya kesalahan tersebut?



Hampir semua kerentanan yang baru ditemukan diberi pengenal CVE. Kemudian, setelah pemeriksaan lebih dekat oleh peneliti keamanan, kerentanan dinilai sebagai tingkat keparahan, yaitu ukuran dampaknya.



Skema penilaian penting adalah sistem umum Penilaian Kerentanan (CVSS - Sistem Penilaian Kerentanan Umum) . Ini mewakili kerentanan sebagai sekumpulan angka, yang masing-masing merupakan skor untuk suatu karakteristik, misalnya:



  • Seberapa mudah untuk mereproduksi (menggunakan).
  • Betapa sulitnya memperbaikinya.
  • Skala dampaknya pada ketersediaan server dan layanan.
  • Pentingnya atau kerahasiaan data terbuka.


Set lengkap mencakup lebih banyak penilaian serupa. Algoritme menggabungkan ini menjadi skor dasar , satu angka rapi yang mewakili tingkat keparahan kerentanan, mulai dari 0 (rendah) hingga 10 (tinggi). CVSS versi kedua membagi rentang angka tersebut menjadi kata kunci RENDAH, SEDANG, dan TINGGI. Versi baru CVSS 3 menambahkan dua lagi: NONE dan CRITICAL.



Jadi, jumlah kerentanan tidak hanya bervariasi menurut bulan dan tahun, tetapi juga menurut tingkat keparahan.



Skema peringkat kerentanan seperti CVSS memungkinkan vendor Linux menilai cara menanggapi kerentanan kernel tertentu. Misalnya, mereka mungkin ingin menulis patch untuk kerentanan dengan skor kumulatif 7 atau lebih tinggi. Ini berarti TINGGI di CVSS v2, TINGGI atau KRITIS di CVSS v3. Vendor yang mengklaim menargetkan kerentanan kritis hanya dapat merujuk ke kerentanan dengan peringkat tingkat keparahan 9 dan 10 saat menggunakan CVSS v3.



4. Dapatkah saya mengembalikan patch?



Menginstal tambalan secara otomatis tanpa pengawasan adalah ide yang buruk bagi banyak sysadmin. Mereka tahu bahwa bahkan perbaikan yang telah diuji dengan baik dapat mengubah perilaku sistem, memengaruhi kinerja atau fungsinya secara halus dan tidak sepenuhnya jelas. Ketika ini terjadi, ketika server berperilaku aneh setelah menginstal tambalan, cara tercepat untuk menanganinya adalah dengan menghapus tambalan.



Beberapa layanan penambalan waktu nyata dapat menghapus tambalan. Ini membuatnya lebih mudah untuk menentukan apakah pembaruan terkini menyebabkan perubahan dalam perilaku sistem.



5. Dapatkah saya meng-host server patch saya sendiri?



Agen perangkat lunak patching memeriksa secara real time untuk patch yang tersedia di server ptach jarak jauh. Ini dilakukan secara teratur, interval yang dapat dikonfigurasi, biasanya dengan kemampuan untuk melakukan pemeriksaan khusus. Jika tambalan tersedia, perangkat lunak agen akan mengunduh dan menginstalnya. Tetapi jika agen penambal tidak dapat berkomunikasi dengan server tambalan tempat layanan penambalan vendor menyimpan tambalan, penambalan waktu nyata tidak akan terjadi.



Untuk mengatasi masalah ini, Anda perlu membuat server patch Anda sendiri. Server lokal seperti itu menyiarkan tambalan ke semua komputer di perusahaan Anda di bawah firewall Anda. Salin Aman mengunduh tambalan dan kemudian mendistribusikannya melalui firewall setelah memeriksa integritas file tambalan. Anda dapat mengelola dan mengaudit proses ini sesuai keinginan Anda dengan membuat dewan direksi perusahaan Anda sedikit lebih santai.



Ada manfaat lain juga:



  • Anda memiliki kontrol yang lebih baik atas patch mana yang diterima server Anda dan kapan.
  • Anda dapat memblokir sejumlah besar server untuk level patch yang diketahui.
  • Lebih mudah untuk memisahkan cluster server untuk pengembangan, pengujian, staging, dan produksi.


Patch dinamis membutuhkan agen lokal dan server patch jarak jauh. Mengontrol keduanya sangat penting untuk penerapan perusahaan.



Kesimpulan



Sebelum bangun, berikut adalah tiga pertanyaan tambahan untuk ditanyakan kepada penyedia solusi patching potensial:



  • Bisakah saya membatalkan perpanjangan otomatis? Ada kalanya Anda tidak ingin memperbarui kernel secara otomatis.
  • Platform apa yang berfungsi? Meskipun lingkungan server Anda mungkin menghalangi fleksibilitas apa pun dalam memilih solusi tambalan waktu-nyata, yang terbaik adalah jika langganan Anda ke layanan tidak membatasi opsi Linux mana yang perlu Anda gunakan.
  • ? , Linux. . , .


Fakta bahwa mereka kurang menonjol dalam menambal deskripsi produk vendor tidak membuat fitur yang dijelaskan dalam artikel ini menjadi kurang penting. Semua ini dapat memengaruhi keputusan Anda untuk menghubungi pemasok tertentu. Masing-masing dapat secara langsung memengaruhi keefektifan dan relevansi solusi untuk lingkungan Anda. Karena biaya langganan server berkisar dari beberapa lusin per bulan hingga ribuan dolar AS per tahun, sangat membantu untuk berhati-hati saat memilih solusi penambalan kernel Linux.





Baca lebih banyak:



Instal dan Konfigurasikan

praktik terbaik AlienVault SIEM (OSSIM) 10 untuk mengamankan image Docker. Bagian 1

10 praktik terbaik untuk mengamankan image Docker. Bagian 2




All Articles