CVE-2023-2163: eBPF Linux kernel की कमजोरी की खोज और सुधार

पृष्ठभूमि

  • eBPF एक ऐसी तकनीक है जो जटिल kernel module लिखे बिना runtime पर Linux kernel की कार्यक्षमता को बढ़ा सकती है।
  • eBPF प्रोग्राम किसी विशेष event के होने पर चलते हैं, और load होने से पहले उनकी सुरक्षा की जाँच होना ज़रूरी है।
  • verifier जटिल कोड से बना होता है, और इसमें कई कमजोरियाँ पाई गई हैं।
  • Google ने eBPF verifier का automated audit करने के लिए Buzzer नाम का एक fuzzer विकसित किया।

Buzzer की pointer arithmetic रणनीति

  • Buzzer, eBPF के लिए एक नया fuzzer है, जो logical bug पैदा करने की रणनीति का उपयोग करता है।
  • pointer arithmetic रणनीति निम्न चरणों से बनी है:
    1. registers को random values से initialize करने वाला header बनाना
    2. random arithmetic और jump instructions बनाना
    3. किसी random register को चुनना और eBPF map element के pointer के साथ addition करना
    4. उस element में magic value लिखना

eBPF path pruning

  • eBPF verifier यह सुनिश्चित करता है कि प्रोग्राम सुरक्षित रूप से चल सकता है या नहीं।
  • condition statement होने पर यह सभी संभावित states का simulation करता है।
  • जब बहुत सारे conditional jumps हों, तो performance बेहतर करने के लिए path pruning रणनीति का उपयोग किया जाता है।

bug

  • CVE-2023-2163 ने "precise tracking" की अवधारणा पेश की, जिससे path pruning अधिक efficient हुआ।
  • bug इसलिए हुआ क्योंकि यह नज़रअंदाज़ कर दिया गया कि r9 register, r6 की precision में योगदान देता है।

exploit

  • CVE-2023-2163 का दुरुपयोग करके arbitrary read/write हासिल किया गया, और LPE तथा container escape किए गए।
  • मुख्य चरण:
    1. arbitrary read/write हासिल करना
    2. process credentials ढूँढना और privilege escalation करना

सुधार

  • CVE-2023-2163 को ठीक करने के लिए, precise registers को प्रभावित करने वाले operations में imprecise registers को भी precise के रूप में mark किया गया।
  • performance पर इसका असर स्पष्ट नहीं है, लेकिन कोई अतिरिक्त समस्या नहीं मिली।

आगे के विचार

  • verification process की जटिलता के कारण eBPF प्रोग्रामों की सुरक्षा सुनिश्चित करना कठिन है।
  • Google, Buzzer के माध्यम से इस समस्या को हल करने पर काम कर रहा है, और open source community के योगदान का स्वागत करता है।

GN⁺ का सार

  • यह लेख eBPF verifier की कमजोरी को खोजने और उसे ठीक करने की प्रक्रिया समझाता है।
  • eBPF kernel security research में एक महत्वपूर्ण तकनीक है, और इसकी सुरक्षा सुनिश्चित करना कठिन है।
  • Google ने Buzzer नाम का एक fuzzer विकसित किया है, जो eBPF verifier की कमजोरियों का automated audit करता है।
  • यह लेख security researchers और developers के लिए उपयोगी है, और eBPF जैसे जटिल systems की सुरक्षा सुनिश्चित करने में मदद करता है।
  • इसी तरह की कार्यक्षमता वाले प्रोजेक्ट्स में eBPF से जुड़े अन्य fuzzer tools शामिल हैं।

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.