1 poin oleh GN⁺ 2024-08-10 | Belum ada komentar. | Bagikan ke WhatsApp

CVE-2023-2163: Menemukan dan Memperbaiki Kerentanan Kernel Linux eBPF

Latar belakang

  • eBPF adalah teknologi yang memungkinkan perluasan fungsi kernel Linux saat runtime tanpa harus menulis modul kernel yang kompleks.
  • Program eBPF dijalankan ketika peristiwa tertentu terjadi, dan harus diverifikasi keamanannya sebelum dimuat.
  • Verifier terdiri dari kode yang kompleks, dan banyak kerentanan telah ditemukan.
  • Google mengembangkan Buzzer, sebuah fuzzer yang mengaudit verifier eBPF secara otomatis.

Strategi aritmetika pointer Buzzer

  • Buzzer adalah fuzzer baru untuk eBPF yang menggunakan strategi untuk memicu bug logis.
  • Strategi aritmetika pointer terdiri dari langkah-langkah berikut:
    1. Membuat header yang menginisialisasi register dengan nilai acak
    2. Menghasilkan instruksi aritmetika dan lompatan secara acak
    3. Memilih register secara acak lalu melakukan operasi penjumlahan dengan pointer ke elemen map eBPF
    4. Menulis nilai magic ke elemen tersebut

Pemangkasan jalur eBPF

  • Verifier eBPF bertugas memastikan program dapat dijalankan dengan aman.
  • Ketika ada pernyataan kondisional, verifier mensimulasikan semua status yang mungkin.
  • Jika ada banyak lompatan kondisional, strategi pemangkasan jalur digunakan untuk meningkatkan performa.

Bug

  • CVE-2023-2163 memperkenalkan konsep "pelacakan presisi" untuk membuat pemangkasan jalur lebih efisien.
  • Bug terjadi karena kontribusi register r9 terhadap presisi r6 terlewatkan.

Eksploitasi

  • CVE-2023-2163 dapat dieksploitasi untuk mencapai pembacaan/penulisan arbitrer, serta melakukan LPE dan pelarian kontainer.
  • Langkah-langkah utama:
    1. Mencapai pembacaan/penulisan arbitrer
    2. Menemukan kredensial proses dan meningkatkan hak akses

Perbaikan

  • Untuk memperbaiki CVE-2023-2163, register yang tidak presisi ditandai sebagai presisi dalam operasi yang memengaruhi register presisi.
  • Dampaknya terhadap performa belum jelas, tetapi tidak ditemukan masalah tambahan.

Ide ke depan

  • Menjamin keamanan program eBPF itu sulit karena kompleksitas proses verifikasi.
  • Google menangani masalah ini melalui Buzzer dan menyambut kontribusi dari komunitas open source.

Ringkasan GN⁺

  • Artikel ini menjelaskan proses menemukan dan memperbaiki kerentanan pada verifier eBPF.
  • eBPF adalah teknologi penting dalam riset keamanan kernel, dan menjamin keamanannya merupakan hal yang sulit.
  • Google mengembangkan fuzzer bernama Buzzer untuk mengaudit kerentanan pada verifier eBPF secara otomatis.
  • Artikel ini bermanfaat bagi peneliti keamanan dan pengembang, serta membantu dalam memastikan keamanan sistem kompleks seperti eBPF.
  • Proyek dengan fungsi serupa mencakup alat fuzzer lain yang berkaitan dengan eBPF.

Belum ada komentar.

Belum ada komentar.