एक Buffer जो है वह data को स्टोर करने का एक temporary area होता है buffer overflow तब होता है जब कोई program या प्रोसेस, buffer में उसकी fixed length से अधिक data को write करने की कोशिश करता है इससे जो extra डेटा होता है वह overflow कर जाता है यह एक vulnerability है जिससे system crash हो सकता है तथा इससे attacker सिस्टम के internal variables को modify कर सकता है buffer overflow attack में, जो extra data होता है वह attacker या hacker के द्वारा डाले गये specific instructions को store किये रहता है. ये instructions जो है वह files को damage, डेटा को change या private information को चुरा सकते है

Buffer-overflows दो प्रकार के होते है:- heap based और stack based

Heap based को execute कर पाना बहुत ही मुश्किल होता है इसलिए इसका प्रयोग इन दोनों में सबसे कम किया जाता है Stack based buffer overflows का प्रयोग attackers के द्वारा ज्यादा किया जाता है इसमें programs तथा applications को stack का प्रयोग करके exploit किया जाता है programming language जैसे:- C, C++ में buffer overflow attacks से बचने के लिए कोई built-in protection नहीं है जिससे इसमें attack होने का खतरा अधिक होता है

modern programming language जैसे:- C#, java तथा perl में coding के error की संभावना कम होती है इसलिए इनमे attack भी कम होते है एक अन्य प्रकार का buffer से सम्बन्धित attack होता है जिसे integer overflow कहते है अर्थात् जब कोई number किसी एक operation में प्रयोग किया जाता है तो हमें अधिक memory की जरूरत होती है

उदाहरण के लिए:- 192 संख्या को store करने के लिए हमें 8 bits memory की जरूरत होती है यदि process इसमें 64 को और जोड़ दे तो यह 256 हो जाएगा और 256 को हम allocated memory में स्टोर नहीं कर सकते क्योंकि इसे 9 bits की जरूरत होगी

आजकल ज्यादातर ऑपरेटिंग सिस्टम runtime protection का प्रयोग करते हैं जिससे कि overflow buffer attacks का होना मुश्किल होता है


Leave a Reply