memory safety कमजोरियों की जड़ समाप्त करना
विरोधाभासी परिणाम
- जब memory-unsafe भाषाओं में लिखे गए codebase बढ़ते हैं, तब नए features को memory-safe भाषाओं में शिफ्ट करने से memory safety कमजोरियां काफी कम हो जाती हैं
- इसका कारण यह है कि समय के साथ कमजोरियां घातीय रूप से घटती हैं
गणितीय व्याख्या
- कमजोरियों का जीवनकाल exponential distribution का पालन करता है
- कमजोरियां मुख्य रूप से नए code में उत्पन्न होती हैं, और समय के साथ code अधिक सुरक्षित होता जाता है
- 5 साल पुराने code की vulnerability density नए code की तुलना में 3.4 गुना से 7.4 गुना कम होती है
Android में वास्तविक उदाहरण
- 2019 से Android टीम ने नए development को memory-safe भाषाओं में शिफ्ट करना शुरू किया
- 2024 तक memory safety कमजोरियां 76% से घटकर 24% रह गईं
- memory safety कमजोरियां घटने के साथ कुल security risk भी कम हुआ
memory safety रणनीति का विकास
- पहली पीढ़ी: reactive patching - कमजोरियों को खोजकर ठीक करने का तरीका
- दूसरी पीढ़ी: proactive mitigation - कमजोरियों के exploit को कठिन बनाने का तरीका
- तीसरी पीढ़ी: proactive vulnerability discovery - कमजोरियों को पहले से खोज निकालने का तरीका
- चौथी पीढ़ी: high-assurance prevention - memory-safe भाषाओं में शिफ्ट करके कमजोरियों के पैदा होने को ही रोकने का तरीका
high-assurance prevention के फायदे
- defender और attacker के बीच की अंतहीन प्रतिस्पर्धा को तोड़ता है
- memory-safe भाषाओं के जरिए security बढ़ती है और लागत घटती है
- code की correctness और developer productivity बढ़ती है
सीख से अमल तक
- मौजूदा memory-unsafe code को पूरी तरह छोड़ने या फिर से लिखने की जरूरत नहीं है
- interoperability बेहतर बनाकर memory-safe भाषाओं की ओर बदलाव को तेज किया जा सकता है
- Rust और C++, तथा Rust और Kotlin के बीच interoperability बेहतर बनाने वाले tools विकसित किए जा रहे हैं
पिछली पीढ़ियों की भूमिका
- proactive mitigation और detection का चयनात्मक उपयोग
- memory-safe code की ओर शिफ्ट होने के साथ mitigation और detection की जरूरत कम होती जाती है
निष्कर्ष
- नए code में memory-safe भाषाओं का उपयोग करने से कमजोरियां घातीय रूप से घटती हैं
- Android में 6 साल से अधिक के लगातार परिणाम इस approach की प्रभावशीलता साबित करते हैं
GN⁺ का सार
- memory safety कमजोरियों को कम करने के लिए memory-safe भाषाओं की ओर शिफ्ट करना महत्वपूर्ण है
- Android टीम के उदाहरण से पुष्टि होती है कि memory safety कमजोरियां काफी कम हुईं
- मौजूदा code को पूरी तरह फिर से लिखने के बजाय interoperability सुधारना अधिक व्यावहारिक है
- Rust जैसी memory-safe भाषाओं का उपयोग security और productivity दोनों को एक साथ बढ़ा सकता है
1 टिप्पणियां
Hacker News टिप्पणियाँ