تسکا ارائه دهنده راهکارهای فناورانه
  • صفحه اصلی
  • راهکارها و خدمات
  • درباره‌ما
  • ارتباط‌با‌ما
  • بلاگ
  • صفحه اصلی
  • راهکارها و خدمات
  • درباره‌ما
  • ارتباط‌با‌ما
  • بلاگ
buffer overflow چیست؟ همه‌چیز درباره سرریز بافر

Buffer Overflow چیست؟| ۶ روش پیشگیری از آن

تسکا2022-11-20T17:12:52+03:30

هکرها هر روز در سراسر دنیا در حال کشف و سوءاستفاده از آسیب‌پذیری‌های وب‌سایت‌ها، برنامه‌ها و معماری سیستم‌ها هستند. آنها خوب می‌دانند برنامه‌هایی اجرایی در کامپیوترهای جدید یا قدیمی، در حافظه ذخیره می‌شوند. همین دانش یک جمله‌ای کافی است تا این آسیب‌پذیری را هدف قرار دهند و حمله‌ای به‌نام سرریز بافر یا buffer overflow را ترتیب دهند. این حملات جدید نیستند و تاکنون بسیاری از سازمان‌ها را در فضای سایبری ویران کرده‌اند. اما buffer overflow چیست؟ این حملات چطور رخ می‌دهند؟ چطور باید از وقوع آنها جلوگیری یا با آنها مقابله کرد؟ همراه ما باشید تا راه و چاهش را نشانتان دهیم.

بافر چیست؟

بافر ناحیه‌ای از حافظه است که برای ذخیره داده‌ها در حافظه رم کامپیوتر استفاده می‌شود. یک بخش متوالی از حافظه با ظرفیت محدود که به هر چیزی، از یک رشته کاراکتری گرفته تا آرایه‌ای از اعداد صحیح اختصاص داده می‌شود. این داده‌ها معمولا برنامه‌هایی هستند که باید اجرا شوند.

سرریز بافر چیست؟

buffer overflow چیست؟ تعریف سرریز بافر

گفتیم که بافر ظرفیت و توان مشخصی دارد. سرریز بافر (buffer overflow) زمانی اتفاق می‌افتد که حجم داده‌های بافر با طول ثابت از ظرفیت آن بیشتر می‌شود. این اطلاعات اضافی که باید جایی ذخیره شوند، در فضای حافظه مجاور سرریز می‌شوند و داده‌هایی که آنجا نگهداری می‌شوند را خراب یا بازنویسی می‌کنند. این سرریز معمولا منجر به خرابی سیستم می‌شود و فرصتی برای مهاجم پدید می‌آورد تا کد دلخواه را اجرا کند یا با دستکاری کدها، اقدامات مخربی روی سیستم اجرا نماید.

سرریز بافر ممکن است تصادفی یا عمدی باشد:

  • تصادفی. زمانی که خود کاربر با اجرای چند فعالیت در یک برنامه، از فضایی که برنامه در اختیار او قرار داده فراتر می‌رود. در این حالت رفتارهای نامنظم از برنامه سر می‌زند و حتی ممکن است برنامه از کار بیفتد.
  • عامدانه و از قصد. در این حالت مهاجم داده‌هایی به سمت کامپیوتر کاربر ارسال می‌کند که بیش از ظرفیت تحمل اوست. این مجموعه داده حاوی کدهایی است که می‌تواند جایگزین کدهای اصلی و معتبر سیستم شود. با اجرای کد جدید، رفتارهای برنامه طبق انتظار شما پیش نخواهد رفت.

حمله بافر اورفلو یا buffer overflow چیست؟

اما ببینیم حمله buffer overflow چیست و چطور رخ می‌دهد.

حملات سرریز بافر زمانی اتفاق می‌افتند که هکر کنترل آدرس بازگشتی یا EIP را در دست بگیرد. وقتی مهاجم اندازه حافظه یک سیستم را بداند، می‌تواند عامدانه داده‌هایی روی سیستم بنویسد که از ظرفیت بافر خارج بوده و آن را سرریز کند. سپس مطمئن می‌شود که EIP یا آدرس برگشتی به برنامه‌ای اشاره می‌کند که کلید دسترسی به سیستم یا اطلاعات حساس ذخیره‌شده در آن است.

حتی مهاجم می‌تواند داده‌هایی حاوی کد مخرب بنویسد و از این طریق باعث سرریز بافر شوند. سپس هکر کنترل سیستم را در اختیار می‌گیرد.

حملات buffer overflow در چند مرحله اجرا می‌شوند. ابتدا هکر بخشی از حافظه برنامه که در برابر سرریز بافر آسیب‌پذیر است را پیدا می‌کند. سپس کاراکترهایی به سمت برنامه می‌فرستد تا از آسیب‌پذیر بودن آن اطمینان حاصل کند. در مرحله بعدی آفست را پیدا می‌کند تا اندازه بافر و آدرس برگشتی را بفهمد. در مرحله آخر حمله یک کد پوسته مخرب وارد می‌کند تا برنامه را از کار انداخته و سیستم را تحت کنترل خود درآورد.

انواع حملات buffer overflow چیست؟

حملات سرریز بافر مبتنی بر پشته

دو نوع حمله buffer overflow رایج که عوامل مخرب پیاده می‌کنند، عبارتند از:

حملات سرریز بافر مبتنی بر پشته

حملات مبتنی بر پشته (استک) رایج‌ترین نوع سرریز بافر محسوب می‌شوند. در این حملات برنامه داده‌های بیشتری در بافر مبتنی بر پشته می‌نویسد. به‌مراتب بیشتر از حجمی که در عمل به آن بافر تخصیص داده شده است. در نتیجه سرریز بافر اتفاق می‌افتد و داده‌های مجاور روی پشته تغییر می‌کنند.

حملات سرریز بافر مبتنی بر هیپ

این نوع سرریز بافر به روشی متفاوت در ناحیه هیپ داده اتفاق می‌افتد و اجرای آن دشوارتر از حملات مبتنی بر استک است. در این حملات فضای حافظه برنامه با داده‌هایی پر می‌شود که برای فرایندهای اجرایی فعلی مورد نیاز نیستند.

زبان‌های برنامه نویسی آسیب‌پذیر در برابر سرریز بافر

بیایید ببینیم تاثیر زبان برنامه نویسی بر حملات buffer overflow چیست؟

مسئله سرریز بافر یکی از قدیمی‌ترین و گسترده‌ترین مشکلات توسعه نرم افزار است که پیشینه‌اش به زمان معرفی ارتباطات رایانه‌ای برمی‌گردد و تقریبا تمام برنامه‌ها، سرورهای وب و محیط برنامه‌های وب را تحت تأثیر قرار می‌دهد.

بسیاری از زبان‌های برنامه نویسی مستعد حملات سرریز بافر هستند. با این حال، میزان چنین حملاتی بسته به زبان مورد استفاده متفاوت خواهد بود. برای مثال کدهای نوشته شده در زبان‌های برنامه‌نویسی پیشرفته مانند پرل و جاوا اسکریپت معمولا در معرض سرریز بافر نیستند. اما برنامه‌ای که به زبان‌های C، C++، Fortran یا Assembly نوشته شده، معمولا دست مهاجم را برای اجرای چنین حملاتی باز می‌گذارد. چون فاقد محافظت داخلی در برابر بازنویسی یا دسترسی به داده‌ها در حافظه هستند. جالب است بدانید سیستم عامل‌های Mac OSX، Windows و Linux همگی از کدهایی استفاده می‌کنند که به زبان های C و C++ نوشته شده‌اند.

در همین راستا این مقاله را بخوانید: چه بحران‌هایی منجر به از دست رفتن اطلاعات می‌شوند؟

روش‌های پیشگیری از حملات سرریز بافر

حملات سرریز بافر را می‌توان با حفاظت‌ از سیستم عامل در زمان اجرا، استفاده از زبان‌های برنامه‌نویسی امن، تصادفی‌سازی طرح‌بندی فضای آدرس و اطمینان از اقدامات امنیتی مناسب کاهش داد. در ادامه چند راهکار کاربردی برای پیشگیری از حملات سرریز بافر معرفی می‌کنیم.

1. استفاده از OS Runtime Protection

این راهکار تضمین می‌کند تمام برنامه‌های اجرایی صرفا در فضای بافر یا حافظه بمانند. به‌علاوه با بررسی و بازنویسی تمام داده‌های نوشته‌شده در حافظه سیستم، سوء استفاده از آسیب‌پذیری‌ها برای هکر دشوار می‌شود.

2. استفاده از زبان‌های برنامه نویسی امن

جلوگیری از حملات Buffer Overflow با زبان های برنامه نویسی امن

در بخش‌های قبلی تا حدی به اهمیت زبان برنامه‌نویسی در اجرای موفقیت‌آمیز این حملات آشنا شدیم. اکنون می‌دانیم در زبان‌های برنامه‌نویسی مانند C و ++C خبری از بررسی آرایه‌ها در زمان اجرا نیست. چون برای بررسی هر برنامه باید کد اضافه‌ای وارد سیستم شود که سرعت را کاهش می‌دهد. برای کم کردن احتمال این حملات بهتر است سراغ زبان‌های برنامه‌نویسی امن‌تر مانند سی‌شارپ، جاوا و پایتون بروید. این زبان‌ها خطر حملات سرریز بافر را کاهش می‌دهند.

3. استفاده از تصادفی‌سازی طرح‌بندی فضای آدرس (ASLR)

این معیار امنیتی آدرس برنامه‌ها و عملکردهای حافظه سیستم را به‌طور کاملا تصادفی به مناطق مختلف داده اختصاص می‌دهد تا پیمایش در عملکردهای حساس حافظه را برای مهاجم دشوار کند.

4. اجرای سیاست‌های امنیتی دقیق

منظور از اجرای سیاست‌های امنیتی، به‌روز نگه داشتن سیستم، اعتبارسنجی تمام داده‌های نوشته‌شده در سیستم و اختصاص حداقل امتیاز ممکن به کاربران است. با وجود سیاست‌های امنیتی مناسب، دیگر نگران حمله سرریز بافر نخواهید بود.

همچنین بخوانید: امنیت شبکه چیست + ۵ راهکار داشتن شبکه امن

۵. استفاده از سیستم‌عامل‌های جدیدتر

وقت آن است که برنامه‌های قدیمی با سیستم‌عامل‌های تاریخ مصرف گذشته را کنار بگذارید و سراغ نسخه‌های جدیدتر بروید. سیستم عامل‌های Mac OSX، Windows و Linux همگی از کدهایی استفاده می‌کنند که به زبان های C و C++ نوشته شده‌اند و در برابر حملات سرریز بافر آسیب‌پذیرند. در حالی که کدهای جدیدتر محافظت بیشتری به همراه دارند.

۶. اعمال فشار به توسعه‌دهندگان برنامه

مدیران سیستم اغلب شکایت دارند که توسعه‌دهندگان گزارشارت باگ برنامه را نادیده می‌گیرند و در صدد رفع آنها برنمی‌آیند. بنابراین انتظار می‌رود شما به‌عنوان مدیر سیستم زمانی که با مشکلی مواجه می‌شوید که می‌تواند احتمال سرریز بافر را تقویت کند، خودتان پیگیر مسئله باشید و توسعه‌دهنده را وادار به ارائه یک راه چاره کنید.

کلام آخر

تا زمانی که سیستمی با انسان در تعامل باشد، احتمال آسیب‌پذیری وجود دارد و شناسایی آسیب‌پذیری‌های buffer overflow، به‌ویژه در نرم‌افزارهای بزرگ و پیچیده، واقعا دشوار است. اما می‌توان با اطمینان از اقدامات امنیتی مناسب و رعایت آنها، احتمال حملات را کاهش داد. باید بدانید که برای مقابله با این ناامنی، صرف به‌کارگیری شیوه‌های کدگذاری امن کافی نیست و شرکت فورا باید اقدام به اصلاح نرم‌افزار آسیب‌دیده و اطمینان از دسترسی کاربران کند.

به یاد داشته باشید هکرها هر روز دنبال راه تازه‌ای برای سوءاستفاده از آسیب‌پذیری‌های این‌چنینی می‌گردند. این وظیفه شماست که با اطلاع از آخرین پیشرفت‌های امنیت سایبری، از آنها جلوتر بمانید.

شما چه اقداماتی برای مقابله با حملات buffer overflow انجام می‌دهید؟ منتظر شنیدن نظرات شما عزیزان هستیم.

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


The reCAPTCHA verification period has expired. Please reload the page.


نوشته‌های مرتبط

SOC چیست

SOC چیست و چه اهمیتی دارد؟

SOC مخفف واژه security operations center بوده که به معنای مرکز عملیات امنیتی است. ادامه مطلب

بد افزار چیست

بدافزار چیست و معرفی ۱۲ بدافزار (malware) + روش پیشگیری

بدافزار یا malware هر نوع نرم‌افزار مخربی است که توسط یک خرابکار و یا همان هکر طراحی و توسعه داده... ادامه مطلب

SQL Injection چیست

سیر تا پیاز حملات SQL injection

Sql injection یکی از معروف‌ترین حملات برای هک و نفوذ به دیتابیس بوده. ادامه مطلب

حملات dos و ddos

حملات DOS و DDoS چیست و بررسی جامع آنها

حملات DoS و DDoS تهدیدهای جدی دنیای دیجیتال هستند. ادامه مطلب

همه چیز درباره پروتکل پوسته امن؛ ssh چیست؟

ssh چیست و چه کاربردی دارد؟

پوسته امن یک پروتکل رمزنگاری است که ارتباطی امن را روی شبکه‌ای ناامن ممکن می‌کند و باعث افزایش امنیت... ادامه مطلب

دیوار آتش چیست

فایروال چیست و چگونه کار می کند؟ | بررسی انواع آن

فایروال‌ها نقش محافظت  از سیستم ‌عامل را دارند و می‌توان انواع فایروال‌ها را در سیستم عامل گوشی تلفن همراه لپ‌تاپ... ادامه مطلب

spyware چیست

Spyware چیست؟ هر آن چیزی که لازم است در باره آن بدانید

نرم‌افزار جاسوسی یا spyware نوعی برنامه طراحی شده با اهداف خبیثانه است که خرابکار با استفاده از روش‌هایی آن را... ادامه مطلب

بات نت چیست؟

بات نت چیست| تعریف + روشهای پیشگیری

بات نت چیست؟ شبکه‌ا‌ی از کامپیوترهاست که توسط بدافزارها تصرف شده‌اند. مهاجم از کامپیوترهای بات نت برای هدف قراردادن شبکه... ادامه مطلب

SOAR چیست و چه اهمیتی دارد؟

SOAR چیست؟

SOAR به اجرا، هماهنگی و اتوماسیون وظایف افراد و ابزارها کمک می‌کند. ادامه مطلب

bitlocker چیست و چه کاربردی دارد؟

bitlocker چیست و چرا از آن استفاده می‌کنیم؟

همین الان This PC سیستم را باز کنید و روی یکی از درایوها کلیک کنید. «Turn On Bitlocker» را می‌بینید؟... ادامه مطلب

دسته بندی مطالب

  • امنیت شبکه
  • پرداخت الکترونیک
  • پشتیبانی و مانیتورینگ شبکه
  • تجهیزات شبکه
  • تکنولوژی
  • خبرها و رویدادهای تسکا
  • خدمات اکتیو شبکه
  • ذخیره سازی اطلاعات
  • راه اندازی انواع شبکه
  • رایانش ابری
  • شبکه اینترنت
  • مجازی سازی
  • مفاهیم اولیه شبکه

آخرین نوشته ها

  • تسکا دانش‌بنیان شد و به جمع شرکت‌های دانش بنیان پیوست!
  • کارخانه نوآوری تسکا افتتاح شد.
  • latency چیست؟ همه چیز درباره تاخیر شبکه
  • خدمات و پشتیبانی هیتاچی VSP
  • ذخیره‌ساز مجازی هیتاچی؛ Hitachi VSP سری E
  • ذخیره‌ساز مجازی هیتاچی؛ Hitachi VSP سری G
  • ذخیره‌ساز مجازی هیتاچی؛ Hitachi VSP سری F
  • همه‌چیز درباره Hitachi VSP؛ پلتفرم ذخیره‌سازی مجازی هیتاچی
  • رهنمودهای خدمات پرداخت در اتحادیه اروپا با همکاری تسکا منتشر شد.
  • هرآنچه باید درباره تجهیزات امنیتی شبکه بدانید

فناوری‌های نوین

  • پولام
  • پرداخت الکترونیک
  • تسکا کلود

لینک‌های مفید

  • محصولات
  • خدمات گارانتی
  • صدای مشتری
  • فرصت‌های شغلی
  • تسکا در ایران‌تلنت

© تمامی حقوق این وب‌سایت برای شرکت توسعه سامانه تسکا محفوظ است.