GNU/Linux >> Belajar Linux >  >> Linux

Deteksi Pustaka Bersama yang Kedaluwarsa Dalam Memori Dengan UChecker

Tutorial ini menjelaskan apa itu UChecker dan cara mendeteksi pustaka bersama yang kedaluwarsa di memori dengan UChecker di sistem operasi Linux.

Pengantar

Organisasi TI yang mengandalkan Perangkat Lunak Bebas dan Sumber Terbuka (FOSS) menghadapi perjuangan terus-menerus dalam memproses perpustakaan bersama yang belum ditambal. Ini bukan masalah sepele, karena perpustakaan bersama adalah permukaan serangan yang ditargetkan secara luas. Misalnya, penelitian menunjukkan bahwa OpenSSL adalah perangkat lunak yang paling ditargetkan di dunia, terhitung 19% dari aktivitas bermusuhan secara global .

Jika Anda bertanggung jawab atas pustaka OpenSSL dan GNU C (glibc), di antara banyak kumpulan kode sumber terbuka yang sebanding, Anda wajib melakukan pembaruan tepat waktu dan manajemen tambalan. Pendekatan tradisional untuk memperbarui perpustakaan melibatkan me-reboot seluruh server atau memulai kembali semua proses jika tidak ada cara untuk mengidentifikasi proses mana yang masih menggunakan perpustakaan usang. Reboot sistem menyebabkan komplikasi dan risikonya sendiri. Terima kasih kepada KernelCare tim, kami dapat dengan mudah menyelesaikan masalah ini dengan skrip sederhana bernama UCercher .

Apa itu UChecker

UChecker, kependekan dari Userspace Checker , adalah pemindai sumber terbuka dan gratis yang mengidentifikasi proses mana yang masih menggunakan pustaka usang dan perlu dimulai ulang. Itu dibuat selama pengembangan tambalan langsung untuk pustaka bersama oleh KernelCare. Dengan Uchecker, Anda dapat mengidentifikasi pustaka FOSS yang rentan dan menambalnya. Anda harus mem-boot ulang proses yang terpengaruh (kecuali jika Anda menggunakan layanan pembaruan perpustakaan tanpa boot ulang), tetapi dengan memindai kerentanan, Anda dapat menentukan proses mana yang perlu diperhatikan dan mana yang tidak.

Akibatnya, Anda menghindari reboot server yang tidak perlu yang mengakibatkan penurunan layanan dan/atau pemadaman serta pembuatan jendela kerentanan karena library tetap tidak ditambal hingga reboot dapat dijadwalkan. Memang, Anda bahkan mungkin tidak tahu layanan mana yang menggunakan perpustakaan mana, jadi tergoda untuk me-reboot seluruh server untuk memperbarui semuanya atau memulai ulang layanan utama. Praktik ini juga dapat mengganggu seperti memulai ulang.

Cara kerja UChecker

Uchecker bekerja dengan semua Distribusi Linux modern, mulai dari versi ke-6. Ini adalah perangkat lunak gratis, dibangun dengan JSON dan terbuka untuk redistribusi dan/atau modifikasi di bawah ketentuan Lisensi Publik Umum GNU. Uchecker mendeteksi proses yang menggunakan pustaka bersama lama (yaitu tidak ditambal). Ini mendeteksi dan melaporkan pustaka bersama yang tidak mutakhir yang sedang digunakan oleh proses yang sedang berjalan. Kemampuan deteksinya didasarkan pada perbandingan BuildID. Akibatnya, mereka mengetahui file yang dihapus atau diganti.

Ilustrasi grafis berikut menunjukkan cara kerja Uchecker.

Alat Uchecker dapat mendeteksi ID &Nama Proses serta nama perpustakaan bersama yang tidak ditambal, beserta build-idnya. Uchecker mendapatkan BuildID terbaru dari sumber daya KC. Kemudian dibutuhkan proses yang berjalan dengan mengulangi /proc/ dan mendapatkan pustaka berbagi tertaut dari /proc/<pid>/maps . Pada saat itu, Uchecker bertanya apakah perpustakaan bersama belum diganti atau dihapus. Bergantung pada jawabannya, perangkat lunak akan mem-parsing ELF dari sistem file atau mem-parsing ELF dari memori yang dipetakan. Kemudian, Uchecker mengumpulkan BuildID dari .note.gnu.build-id .

Deteksi pustaka bersama yang kedaluwarsa di memori dengan UChecker

Tidak diperlukan instalasi! Jalankan saja skrip Uchecker untuk menemukan pustaka yang belum ditambal di server Linux Anda:

# curl -s -L https://kernelcare.com/checker | python

Perintah di atas memindai sistem server Linux Anda untuk menemukan pustaka bersama usang yang ditautkan ke python proses dan daftar mereka dalam output standar.

Anda kemudian dapat memperbarui pustaka yang belum ditambal menggunakan manajer paket default sistem Anda.

Tonton demonstrasi visual cara kerja Uchecker dalam video berikut:

Kesimpulan

Uchecker memungkinkan Anda untuk menjaga perpustakaan FOSS Anda ditambal dan up to date. Anda dapat menghindari kerumitan umum karena harus me-reboot server karena Anda tidak tahu proses mana yang perlu dimulai ulang. Ini relevan untuk perpustakaan OpenSSL dan GNU C (glibc), antara lain. Dengan teknologi seperti KernelCare+, sekarang bahkan memungkinkan untuk melakukan patch kerentanan langsung di perpustakaan ruang pengguna yang penting selain yang ada di kernel Linux. Anda dapat memperbarui aplikasi tanpa memengaruhi status operasionalnya. Tidak diperlukan restart atau reboot.


Linux
  1. Kesalahan memuat pustaka bersama libcrypto.so.1.1 – OpenSSL [Perbaiki]

  2. Pengantar Pustaka Bersama Linux (Cara Membuat Pustaka Bersama)

  3. Contoh Perintah ipcs di Linux

  1. Rekomendasi Komunikasi Antar Proses

  2. Memori bersama Linux:shmget() vs mmap()?

  3. Deteksi apakah koneksi saat ini diukur dengan NetworkManager

  1. Perintah Linux:menjelajahi memori virtual dengan vmstat

  2. Setara dengan “yang mana” untuk Pustaka Bersama?

  3. Perintah Gratis di Linux Dijelaskan Dengan Contoh