বাফার ওভারফ্লো আক্রমণ কিভাবে কাজ করে? হ্যাকার হিসেবে পর্দার আড়ালে যাওয়া

বাফার ওভারফ্লো আক্রমণ কিভাবে কাজ করে? হ্যাকার হিসেবে পর্দার আড়ালে যাওয়া
আপনার মত পাঠকরা MUO সমর্থন করতে সাহায্য করে। আপনি যখন আমাদের সাইটে লিঙ্ক ব্যবহার করে একটি ক্রয় করেন, আমরা একটি অনুমোদিত কমিশন উপার্জন করতে পারি। আরও পড়ুন

কিভাবে হ্যাকাররা ভাইরাস এবং ম্যালওয়্যার ব্যবহার করে সিস্টেম আক্রমণ করে? কখনও কখনও, এটি ransomware হতে পারে; কখনও কখনও, এটি একটি আক্রমণ হতে পারে যা আপনার সিস্টেম প্রয়োজনীয়তা গ্রাস করে। বাফার ওভারফ্লো এই আক্রমণ পদ্ধতিগুলির মধ্যে একটি - কিন্তু আসলে এটি কী? এই আক্রমণ কিভাবে কাজ করে?





দিনের মেকইউজের ভিডিও কন্টেন্টের সাথে চালিয়ে যেতে স্ক্রোল করুন

একটি বাফার ওভারফ্লো কি?

তাই আসলে কি একটি বাফার এবং স্ট্যাক? বাফার হল এমন একটি ক্ষেত্র যেখানে আপনি আপনার কম্পিউটারে কিছু ইনপুট তথ্য দেন যা মেমরিতে পৌঁছানোর আগে অপেক্ষা করে। মেমরি থেকে ডেটা প্রত্যাহার করা একটি সিস্টেম-ক্লান্তকারী অপারেশন। তাই যখন বাফার এলাকায় পর্যাপ্ত জায়গা থাকে, আপনি সরাসরি এখান থেকে ডেটা কল করেন। এর মানে হল আপনার ডিভাইসের কর্মক্ষমতা বৃদ্ধি। অবশ্যই, যখন বাফারের জন্য উপলব্ধ স্থান পূর্ণ হয়, তখন এটি মেমরিতে লেখার প্রয়োজন হয়।





স্ট্যাক মূলত একটি ডাটা স্ট্রাকচার যেখানে ডাটা পুশ (যোগ) এবং পপ (রিমুভ) অপারেশন হয়। বাফার এবং স্ট্যাকের ধারণাগুলি বেশ একই রকম; যাইহোক, বাফার একটি স্ট্যাকের মতো কাজ করে যা অস্থায়ীভাবে ইনকামিং ডেটা সঞ্চয় করে।





বাফার ওভারফ্লো একটি চ্যালেঞ্জিং বিষয় হতে পারে, কিন্তু নাম থেকে বোঝা যায়, ডেটার ওভারলোড থাকলে এটি ঘটে। উদাহরণস্বরূপ, আপনি একটি সিস্টেমে লগ ইন করতে চান। বিকাশকারীরা ব্যবহারকারীর নামের জন্য 250 বাইট স্থান বরাদ্দ করতে পারে। আপনি যদি 300 বাইট ডেটা প্রবেশ করেন, বাফার ওভারফ্লো হয়। এই ওভারফ্লো মেমরির অন্যান্য ডেটাকে প্রভাবিত করতে পারে, ক্ষতির কারণ হতে পারে।

এটি হ্যাকারদের জন্য দুর্দান্ত। সাইবার অপরাধীরা এই জগাখিচুড়িকে বিভিন্ন আক্রমণ ভেক্টরের সাথে একত্রিত করতে পারে, উদাহরণস্বরূপ, সিস্টেম হ্যাক করতে এবং প্রশাসক হিসাবে লগ ইন করতে।



বাফার ওভারফ্লো বোঝার জন্য, প্রধান বিষয়গুলি আপনাকে চিনতে হবে CPU এর অভ্যন্তরীণ আর্কিটেকচার , মেমরি রেজিস্টার, এবং কিভাবে মেমরি ডেটা প্রক্রিয়া করে। এখানে সিপিইউ সম্পর্কে কিছু শর্ত রয়েছে যা আপনাকে জানতে হবে।





সমাবেশ কোড





একটি নিম্ন স্তরের প্রোগ্রামিং ভাষা , অর্থাৎ মেশিন ভাষার কাছাকাছি।

বাফার

একটি নির্দিষ্ট আকার বরাদ্দ মেমরি স্থান .

বাইট কোড

একটি উচ্চ-স্তরের ভাষায় লেখা কোডের একটি সংকলনযোগ্য মধ্যবর্তী ভাষা ফর্ম।

কম্পাইলার

একটি প্রোগ্রাম যা প্রোগ্রামিং ভাষাকে মেশিন কোডে রূপান্তর করে।

গাদা

গতিশীল, পরিবর্তনশীল মেমরি স্থান.

মেমরি তত্ত্বের মৌলিক বিষয়

মেমরি তত্ত্ব না বুঝে, অনুশীলনে বাফার ওভারফ্লো সমস্যাগুলি সমাধান করা কঠিন হতে পারে। আপনি এটি একটি প্রাচীর কিভাবে না জেনে একটি ঘর নির্মাণ করার চেষ্টা করার মত মনে করতে পারেন.

কল্পনা করুন যে আপনি হ্যাকারের দৃষ্টিকোণ থেকে একটি বাফার ওভারফ্লো চালাতে চান। এর জন্য, আপনাকে মেমরি ম্যানিপুলেট করতে হবে এবং সিপিইউকে আপনার কোড চালাতে হবে। আপনি যদি দূষিত অভিপ্রায় সহ কেউ হন, তাহলে এখানে আপনার লক্ষ্য হবে মেমরিকে ওভারলোড করা এবং সংলগ্ন মেমরি ক্ষেত্রগুলিকে কাজে লাগানো।

  ডায়াগ্রামে স্ট্যাক নিচের দিকে বাড়ছে এবং গাদা বড় হচ্ছে

কিন্তু সবার আগে, আপনাকে হিপ, স্ট্যাক এবং টেক্সট সেগমেন্টের ধারণার উপর ফোকাস করতে হবে।

স্ট্যাক তৈরি করার সময়, মেমরি উচ্চ মেমরি ঠিকানা ব্যবহার করে। উচ্চ মেমরির ঠিকানা বলতে বর্ধিত মেমরি এলাকা বোঝায়। তারপর ঠিকানার মান কমতে শুরু করে। মেমরি স্ট্যাক মেমরি ব্যবহারের সময় LIFO (লাস্ট ইন, ফার্স্ট আউট) নামে একটি পদ্ধতি ব্যবহার করে। স্ট্যাক মেমরির ভেরিয়েবলগুলি শুধুমাত্র সেই সুযোগের মধ্যেই বৈধ যেখানে তারা সংজ্ঞায়িত করা হয়েছে। যদি তারা এই সুযোগের বাইরে থাকে তবে একটি ত্রুটি ঘটবে।

স্ট্যাক মেমরি, অন্যদিকে, গতিশীলভাবে কাজ করে এবং উচ্চ ঠিকানায় শুরু করতে হবে না। গাদা মেমরির কোন সেট সীমা নেই; সমস্ত সীমা অপারেটিং সিস্টেম দ্বারা সেট করা হয়। হিপ মেমরিকে গতিশীলভাবে পরিবর্তন করা সম্ভব এবং এই সীমাগুলি হিপ ব্যবহারের সময় ব্যবহারকারীর প্রয়োজন অনুসারে পরিবর্তিত হতে পারে। হিপ মেমরির সীমা অপারেটিং সিস্টেম এবং হার্ডওয়্যার দ্বারা নির্ধারিত কারণের উপর নির্ভর করে। অন্য কথায়, এটি এই সীমার মধ্যে একটি গতিশীল ব্যবহার অফার করে।

টেক্সট সেগমেন্টে প্রোগ্রাম কোড থাকে এবং ডাটা সেগমেন্টে গ্লোবাল ডাটা থাকে। উচ্চ ঠিকানা শেয়ার স্ট্যাক এবং হিপ মেমরি তাঁদের মাঝে. সিস্টেম রানটাইমে উভয় মেমরি বরাদ্দ করে।

বাফার ওভারফ্লোকে আরও ভালভাবে বোঝার জন্য, আপনার সাধারণ-উদ্দেশ্যের ডেটা রেজিস্টারগুলি পরীক্ষা করা উচিত যা আপনার কম্পিউটার আর্কিটেকচার ডেটা সঞ্চয় করতে ব্যবহার করে। প্রতিটি রেকর্ডকে পৃথকভাবে বিশ্লেষণ করার পরিবর্তে, প্রয়োজনীয় বিষয়গুলিতে ফোকাস করুন।

আপনার নিজস্ব অ্যান্ড্রয়েড টিভি বক্স তৈরি করুন
  • ESP (বর্ধিত স্ট্যাক পয়েন্টার): এই রেজিস্টার স্ট্যাকের শীর্ষে ঠিকানা ধারণ করে।
  • EBP (বর্ধিত বেস পয়েন্টার): এই বেস পয়েন্টার ঝুলিতে.
  • EIP (এক্সটেন্ডেড ইনস্ট্রাকশন পয়েন্টার): এবং এই রেজিস্টারে পরবর্তী নির্দেশ কার্যকর করার ঠিকানা রয়েছে।

এই প্রযুক্তিগত পদগুলি কিছুটা বিভ্রান্তিকর শোনাতে পারে, তবে এগুলিকে মেমরিতে ছোট পার্টিশন হিসাবে কল্পনা করুন।

বাফার ওভারফ্লো আক্রমণ কিভাবে কাজ করে?

আপনি যখন কোনও স্ট্যাকে নতুন ডেটা যোগ করেন, তখন এই ডেটা শীর্ষে স্লট করা হবে। সমস্ত নতুন তথ্য তারপর নিচে সরানো হয়. ইএসপি স্ট্যাকের শীর্ষে রয়েছে। সুতরাং এই ক্ষেত্রে ESP একটি নিম্ন মেমরি ঠিকানা যায়. কল্পনা করুন যে উপরে যোগ করা ডেটা ESP কে নিচে ঠেলে দিচ্ছে।

  ইএসপি এবং ইবিপির মধ্যে কোথাও বাফার স্পেস দেখানো চিত্র

যখন একটি প্রোগ্রাম চলতে শুরু করে, সিস্টেম স্থানীয় ভেরিয়েবল সহ একটি স্ট্যাক ফ্রেম তৈরি করে। বাফার ওভারফ্লো আক্রমণের মূল উদ্দেশ্য হল EIP বা রিটার্ন ঠিকানায় অ্যাক্সেস লাভ করা। এই ঠিকানায় অ্যাক্সেস সহ একজন হ্যাকার এটিকে নির্দেশ দিতে পারে যে তারা যে কোনও দূষিত কোডের দিকে নির্দেশ করতে পারে, যা তারপরে বৃহত্তর সিস্টেমকে প্রভাবিত করবে।

  রিটার্ন ঠিকানা লক্ষ্য করে ESP-তে ডেটা দেখানো একটি চিত্র

প্রতিটি নতুন বিট ডেটার সাথে, স্ট্যাকটি EBP এর দিকে বৃদ্ধি পায়। এখানে আসল প্রশ্ন হল, যদি আমরা খুব বেশি ডেটা প্রবেশ করি, আমরা কি EBP কে EIP এর দিকে ঠেলে দিতে পারি? এইভাবে, আপনি যে ডেটা বা কোড চান তা EIP-তে অবস্থিত এবং আপনি যে ফলাফল চান তা দেখতে পারেন। যা বাকি আছে তা চালাতে হবে। আপনি যখন প্রোগ্রামটি চালান, তখন এটি আপনার EIP কোড নির্দেশ করে এবং এক্সিকিউশন শুরু করে। ফলস্বরূপ, আপনি যদি একজন হ্যাকার হন, তাহলে আপনি আপনার প্রথম বাফার ওভারফ্লো আক্রমণটি সম্পন্ন করতে পারবেন।

একটি ভিন্ন কোণ থেকে উদাহরণ নিতে, আপনি একটি পাত্রে ESP, EBP এবং EIP নামক বিভিন্ন ঘনত্বের তরল বিবেচনা করতে পারেন। কল্পনা করুন যে ESP কন্টেইনারের শীর্ষে অবস্থিত কারণ এর ঘনত্ব কম। জলপাই তেল এবং জলের মত, তারা মিশ্রিত করা উচিত নয়। তারপরে, দূষিত কোডটি হল আরেকটি তরল—যখন আপনি এটিকে কন্টেইনারে যোগ করেন, তখন এটি এই ভারসাম্য নষ্ট করে, কিছু তরল স্থানচ্যুত করে এবং EIP-এর সাথে মিশে যায়। এটি একটি বাফার ওভারফ্লো নির্দেশ করবে।

বাফার ওভারফ্লো আক্রমণের বিরুদ্ধে কীভাবে রক্ষা করবেন

তাহলে আপনি কিভাবে এই ঘটতে থামাবেন?

প্রথমত, নিরাপত্তার দুর্বলতা কমাতে সফটওয়্যার ডেভেলপমেন্ট প্রক্রিয়া জুড়ে ভাল কোডিং অনুশীলন গ্রহণ করা গুরুত্বপূর্ণ। সাবধানে লেখা কোড বাফার ওভারফ্লো হওয়ার সম্ভাবনা কমাতে পারে।

আরেকটি পদক্ষেপ হল প্রতিরক্ষা ব্যবস্থা ব্যবহার করা যাতে মেমরি অঞ্চলগুলি পর্যবেক্ষণ করা যায়, বাফারের সীমা পরীক্ষা করা যায় এবং আক্রমণ সনাক্ত করা যায়। অবশেষে, আপনাকে নিয়মিত সিস্টেম আপডেট করতে হবে এবং প্যাচ প্রয়োগ করতে হবে। আপডেটগুলি যেগুলি দুর্বলতাগুলিকে ঠিক করে তা আক্রমণকারীদের জন্য পরিচিত দুর্বলতাগুলিকে কাজে লাগাতে কঠিন করে তোলে৷ এছাড়াও, সফ্টওয়্যার এবং ফায়ারওয়ালের মতো প্রতিরক্ষা সরঞ্জামগুলি ব্যবহার করে সুরক্ষার একটি অতিরিক্ত স্তর সরবরাহ করে।

বাফার ওভারফ্লো এর বিরুদ্ধে ব্যবস্থা নিন

বাফার ওভারফ্লো আক্রমণগুলি আপনার সাইবার নিরাপত্তার জন্য একটি উল্লেখযোগ্য হুমকি সৃষ্টি করে এবং তাদের বিরুদ্ধে সতর্কতা অবলম্বন করা স্বাভাবিকভাবেই গুরুত্বপূর্ণ। সৌভাগ্যক্রমে, এই আক্রমণগুলিকে আটকানো এবং প্রতিরক্ষা ব্যবস্থাকে শক্তিশালী করা সম্ভব। অনেক ভালো নিরাপত্তা অনুশীলন, যেমন প্যাচ ঠিক করার জন্য সফ্টওয়্যার আপডেট রাখা, এই ধরনের আক্রমণের পাশাপাশি অন্যান্য দুর্বলতা থেকে রক্ষা করতে সাহায্য করে।