Kartu Keamanan Kernel Linux

Perlindungan kernel Linux adalah area subjek yang sangat kompleks. Ini mencakup sejumlah besar konsep yang saling terkait secara rumit, dan akan bermanfaat jika memiliki representasi grafiknya. Oleh karena itu, saya mengembangkan peta pelindung kernel Linux . Inilah legenda:



Jadi, peta berisi objek-objek berikut:

  • Kelas kerentanan
  • teknik operasi mereka untuk melakukan serangan;
  • mekanisme deteksi kesalahan;
  • teknologi perlindungan.

Pada gilirannya, teknologi perlindungan inti bersifat heterogen. Beberapa adalah bagian dari kernel Linux vanilla, yang lain dikirim secara terpisah karena berbagai alasan (misalnya, ada fitur keamanan komersial). Ada mekanisme perlindungan kernel yang membutuhkan dukungan perangkat keras.

Dengan demikian, topik keamanan kernel Linux cukup luas, dan peta yang dikembangkan membantu dalam studi dan analisisnya. Setiap garis yang menghubungkan benda-benda di peta menunjukkan pengaruh timbal baliknya, esensi yang harus diklarifikasi dalam dokumentasi. Prinsip ini dapat diilustrasikan pada sebuah fragmen dari peta umum. Gambar 1 menunjukkan fitur keamanan teknologi STACKLEAK.



Diagram 1. Fitur keamanan teknologi STACKLEAK

PAX_MEMORY_STACKLEAK adalah teknologi perlindungan kernel Linux komersial yang menangkal eksploitasi jenis kerentanan berikut: tumpukan berlebihan, penggunaan variabel tidak diinisialisasi, dan kebocoran informasi ke dalam ruang pengguna. Peta berisi pengidentifikasi untuk kelas kerentanan ini (CWE, Common Weakness Enumeration).

Teknologi STACKLEAK diperkenalkan ke kernel Linux vanilla, yang tercermin dalam diagram. Ada juga mekanisme debug KMSAN yang memungkinkan Anda mendeteksi ketika menguji kernel penggunaan variabel yang tidak diinisialisasi dan kebocoran informasi ke dalam ruang pengguna.

Perlu dicatat bahwa kartu ini tidak membahas masalah mengurangi serangan perimeter untuk inti. Bahkan, menonaktifkan hampir semua fungsi yang mengurangi ukuran executable juga mengurangi serangan perimeter. Dan dalam proyek ini, fokus utamanya adalah pada alat keamanan yang menyediakan pertahanan diri dari kernel Linux terhadap eksploitasi kerentanan.

Gambar 2 menunjukkan peta lengkap untuk kernel versi 5.1 (dengan mengklik gambar ukuran penuh akan terbuka).


Diagram 2. Peta fitur keamanan kernel Linux v5.1

Peta ini terus berkembang, perlu diperbarui setidaknya setiap rilis kernel. Oleh karena itu, mudah untuk memiliki sumber dalam bentuk teks dan memeliharanya dalam sistem kontrol versi. Selain itu, agar tidak harus mengatur objek secara manual dengan jumlah minimum persimpangan koneksi, bahasa DOT dipilih untuk membuat peta, dan skema secara otomatis dihasilkan oleh paket GraphViz menggunakan perintah berikut:

dot -Tsvg linux-kernel-defence-map.dot -o linux-kernel-defence-map.svg 

Kartu Keamanan Kernel Linux adalah proyek sumber terbuka yang dilisensikan di bawah GPL v3.0. Repositori terletak di GitHub . Proyek ini sangat berguna untuk:

  • memantau keadaan keamanan kernel saat ini,
  • mengembangkan model ancaman IP berdasarkan GNU / Linux,
  • pemilihan solusi yang tepat.

Selain itu, peta fitur keamanan kernel Linux dirancang untuk membantu Anda mempelajari tentang kode sumber, dokumentasi, dan sumber informasi lain tentang topik ini:


Dan untuk mengotomatiskan verifikasi opsi keamanan dalam file konfigurasi kernel Linux, saya membuat proyek kconfig-hardened-check , yang secara aktif berkembang berkat kerja kolaboratif terbuka. Utilitas ini mendukung arsitektur x86_64, arm64, x86_32 dan arm.

Saya mengundang Anda untuk berpartisipasi dalam pengembangan peta fitur keamanan kernel Linux dan utilitas kconfig-hardened-check .

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


All Articles