1 पॉइंट द्वारा GN⁺ 2024-03-27 | 1 टिप्पणियां | WhatsApp पर शेयर करें

0. पढ़ने से पहले

  • यह ब्लॉग पोस्ट Linux kernel भेद्यता अनुसंधान करना चाहने वाले भविष्य के समय-यात्रियों के लिए है, ताकि शुरुआती लोग research workflow सीख सकें और अनुभवी शोधकर्ता नई तकनीकें सीख सकें.
  • ब्लॉग पोस्ट को research paper के रूप में संरचित किया गया है, ताकि इसके बड़े आकार के बावजूद इसे आसानी से स्कैन कर ज्ञान निकाला जा सके.
  • ब्लॉग पोस्ट को प्रभावी ढंग से पढ़ने के लिए सुझाव दिया गया है कि overview section पढ़ें, split-screen में पढ़ें और खोजें, bug section पर जाकर bug के काम करने का तरीका समझें, और proof-of-concept section के जरिए exploit को देखें.

1. अवलोकन

  • इस ब्लॉग पोस्ट में nf_tables में मिले 0-day double-free bug का उपयोग करके hardened Linux kernel (जैसे KernelCTF mitigation instance) को 93%-99% की सफलता दर के साथ exploit करने की नई तकनीक प्रस्तुत की गई है.
  • यह exploit केवल तब काम करता है जब nf_tables enabled हो और unprivileged user namespaces enabled हों, और यह user space से kernel space को आईने की तरह प्रतिबिंबित करने वाला KSMA (kernel-space mirroring attack) करता है.
  • Dirty Pagedirectory तकनीक का उपयोग करके physical address पर असीमित read/write अधिकार प्राप्त किए जा सकते हैं, और यह page table confusion के जरिए संभव होता है.

2. पृष्ठभूमि जानकारी

  • nf_tables Linux kernel के in-tree modules में से एक है, और हाल के versions में iptables के backend के रूप में उपयोग किया जाता है.
  • iptables एक firewall tool है, जो state machine और user-specified rules का उपयोग करके तय करता है कि packet firewall से गुजर पाएगा या नहीं.
  • Netfilter verdict किसी विशेष packet के firewall से गुजरने को लेकर Netfilter rule set का निर्णय होता है, जैसे packet को drop करना या accept करना.
  • sk_buff structure का उपयोग network data (जैसे IP packet, Ethernet frame आदि) का वर्णन करने के लिए किया जाता है, और sk_buff->head object में वास्तविक packet content होता है.
  • IPv4 की packet fragmentation सुविधा packet को कई IP fragments के रूप में भेजने देती है, और Linux kernel सभी fragments को एक ही red-black tree में संग्रहीत करता है.

GN⁺ की राय

  • यह ब्लॉग पोस्ट Linux kernel की भेद्यताओं का अध्ययन करना चाहने वालों के लिए बहुत उपयोगी जानकारी प्रदान करती है. विशेष रूप से, nf_tables से जुड़ी भेद्यताओं को समझने और उनका exploit करना सीखने में मदद मिल सकती है.
  • प्रस्तुत exploit तकनीक वास्तविक वातावरण में security research के लिए महत्वपूर्ण योगदान दे सकती है, और ऐसी तकनीकों के माध्यम से security professionals सिस्टम की कमजोरियों को बेहतर समझ और defend कर सकते हैं.
  • हालांकि, इन exploit तकनीकों के दुर्भावनापूर्ण उद्देश्यों के लिए उपयोग होने की संभावना भी है, इसलिए इन्हें साझा करने से उत्पन्न होने वाले ethical मुद्दों पर विचार करना चाहिए.
  • Linux kernel की सुरक्षा को मजबूत करने के लिए community को लगातार भेद्यताओं की खोज और patching का काम जारी रखना चाहिए, और यह ब्लॉग पोस्ट ऐसे प्रयासों का एक हिस्सा मानी जा सकती है.
  • यदि इस तकनीक या इसी तरह की तकनीकों का उपयोग करके security research किया जाता है, तो शोधकर्ताओं को responsible disclosure policy का पालन करना चाहिए और यह सुनिश्चित करने में सहयोग करना चाहिए कि भेद्यता के व्यापक दुरुपयोग से पहले patch वितरित हो सके.

1 टिप्पणियां

 
GN⁺ 2024-03-27
Hacker News टिप्पणियाँ
  • CVE-2024-1086 के लिए proof-of-concept exploit सार्वजनिक कर दिया गया है। Linux kernel v5.14 से v6.6 तक के versions प्रभावित हैं, जबकि v6.4 से v6.6 तक CONFIG_INIT_ON_ALLOC_DEFAULT_ON kernel configuration variable पर निर्भर करता है। अधिक जानकारी के लिए README.md देखें। इस bug को फ़रवरी 2024 में patch कर दिया गया था, और Linux devices को अपडेट करने की सिफारिश की जाती है।
  • patch में एक पुराना commit revert करने वाला हिस्सा है, और यह स्पष्ट नहीं है कि वह commit मूल रूप से क्यों किया गया था। सोच रहा हूँ कि क्या किसी ने इसका इतिहास खंगाला है।
  • यह exploit unprivileged user namespaces की access पर आधारित है: sysctl kernel.unprivileged_userns_clone = 1। यह setting Debian/Ubuntu और Arch Linux kernel में default है। अगर आपको इसकी ज़रूरत नहीं है, तो इसे disable करना बेहतर होगा।
  • security blog posts लिखते समय यह लगातार सोचना पड़ता है कि पाठकों के background knowledge के बारे में कितना assume किया जाए। target audience तय करना और पर्याप्त background information देना आसान नहीं होता। यह लेख research शुरू करने वालों के लिए उपयोगी मार्गदर्शन होगा।
  • यह सवाल उठता है कि default रूप से unprivileged user namespaces enabled क्यों हैं, और users को iptables जैसी चीज़ें चलाने की क्षमता by default क्यों दी जाती है।
  • यह भी सवाल है कि ASLR जैसी modern security measures होने के बावजूद ऐसे exploit कैसे संभव हैं। विश्वविद्यालय के coursework में कई bug वाले binaries के साथ practice के जरिए यह अनुभव हुआ कि वास्तविक environments में exploit development कितना कठिन होता है।
  • एक vulnerable Debian system पर exploit चलाकर देखा, लेकिन privilege escalation नहीं हुआ, और दूसरी बार चलाने पर system पूरी तरह freeze हो गया। patch करना महत्वपूर्ण है।
  • मौजूदा kernel configuration को /boot/config या /proc/config.gz फ़ाइल में जांचा जा सकता है।
  • Ubuntu के अनुसार, सभी LTS releases प्रभावित हैं, और patched latest kernels में इसे ठीक कर दिया गया है। Xenial और Bionic extended support पाने वाले users के लिए जानकारी हैं।
  • CONFIG_INIT_ON_FREE_DEFAULT_ON exploit को रोकता है, लेकिन distributions इसे default रूप से build नहीं करते। यह दिखाने के लिए एक अच्छा उदाहरण है कि kernel hardening कितना महत्वपूर्ण है।