خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

حمله سرریز بافر چیست و چگونه می توان از آن جلوگیری کرد؟

هکرها سال ها از آسیب پذیری سرریز بافر سوء استفاده کرده اند. در اینجا نحوه ایمن ماندن آورده شده است.

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

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

آشنایی با بافرها و حافظه سیستم

رم لپ تاپ تاریک روی میز از نزدیک

برای درک اینکه حمله سرریز بافر چیست و چگونه کار می کند، باید بدانید بافر چیست و حافظه کامپیوتر چگونه کار می کند.

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

پشته که از مفهوم Last-in, First-out (LIFO) استفاده می کند، در RAM (حافظه دسترسی تصادفی) برای ذخیره موقت اجرای برنامه ها استفاده می شود، در حالی که heap حافظه را با استفاده از تخصیص پویا به متغیرهای سراسری اختصاص می دهد. اما وجه مشترک آنها یک بافر است.

بافر چیست؟

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

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

سرریز بافر زمانی اتفاق می افتد که بافر داده های بیشتری از ظرفیت ذخیره سازی خود دریافت کند. چون قادر به پردازش آن مقدار داده نیست، سرریز می شود.

مطلب مرتبط:   کلاهبرداری خانواده کلون صوتی هوش مصنوعی چیست؟ چگونه آن را تشخیص دهیم

اکنون، در حافظه یک کامپیوتر، درست بعد از یک بافر یا یک فضای بافر، یک آدرس برگشتی است. این آدرس برگشتی در واقع یک نشانگر دستورالعمل توسعه یافته (EIP) نامیده می شود. عملکرد آن این است که کامپیوتر را در هنگام پر شدن به یک برنامه مشخص نشان دهد. هنگامی که یک بافر داده های بیشتری نسبت به آن دارد و سرریز می شود، به آدرس برگشتی سرریز می شود.

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

حمله سرریز بافر چیست و چگونه کار می کند؟

تصویری از کد حمله

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

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

مطلب مرتبط:   اسنپ ​​چت چه داده هایی را از کاربران خود جمع آوری می کند؟

پنج مرحله اصلی در حملات سرریز بافر وجود دارد:

  1. اسپک زدن
  2. مبهم
  3. یافتن افست
  4. رونویسی EIP یا آدرس برگشت
  5. بهره برداری از آسیب پذیری

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

انواع حملات سرریز بافر چیست؟

دو نوع اصلی حملات سرریز بافر وجود دارد: حملات مبتنی بر پشته و حملات مبتنی بر پشته.

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

حملات سرریز بافر مبتنی بر پشته محبوب ترین نوع حملات سرریز بافر هستند. آنها زمانی رخ می دهند که حافظه پشته سیستم بیش از حد و سوء استفاده شود. همچنین به عنوان شکستن پشته نیز شناخته می شود.

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

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

چگونه می توانید از حملات سرریز بافر جلوگیری کنید؟

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

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

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

مطلب مرتبط:   چگونه افشای آسیب‌پذیری به شما کمک می‌کند از حملات سایبری جلوتر بمانید

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

صفحه نمایش خطوطی از کد React.

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

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

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

4. از سیاست های امنیتی دقیق اطمینان حاصل کنید

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

محکم نگه داشتن امنیت برای مبارزه با حملات سرریز بافر ضروری است

طبق یک ضرب المثل رایج در امنیت، “تا زمانی که یک سیستم توسط انسان استفاده می شود، یک آسیب پذیری وجود دارد” که درست و اجتناب ناپذیر است. با این حال، همیشه می توان با اطمینان از اینکه اقدامات امنیتی مناسب وجود دارد و به شدت رعایت می شود، شانس حمله را کاهش داد.

به یاد داشته باشید که هکرها دائماً در حال یافتن راه های جدیدی برای سوء استفاده از آسیب پذیری هایی مانند این هستند. بنابراین، بر شماست که با چشم‌داشتن به آخرین پیشرفت‌ها در زمینه امنیت سایبری، از آنها جلوتر بمانید.