ASLR چیست و چگونه کامپیوتر شما را امن نگاه می‌دارد؟

۴۶۶ بازديد
طراحی سایت در مشهد Address Space Layout Randomization یا این که به اختصار ASLR یک تکنیک امنیتی میباشد که در سیستم‌برهان‌ها استعمال می شود و اولی توشه در سال 2001 پیاده‌سازی شد. ورژن‌های کنونی همگیٔ سیستم‌دلیل‌های اصلی همچون iOS ،Android ،Windows ،macOS و Linux این خصوصیت را دارا‌هستند؛ ولی در عین اکنون به حیث می رسد ASLR آن‌قدرها هم که می پنداریم امن وجود ندارد (ASLR قادر است برای افرادی که دانشی در قضیهٔ برنامه‌نویسی سطح تحت ندارند حیران‌کننده باشد. برای شعور آن در آغاز می بایست مضمون‌ یادٔ مجازی را فهم فرمایید).

او‌لین کسی باشید که بدین سؤال جواب می‌دهید
به کار گیری از laraveluim sitemap در لاراول به طور کاربردی
Virtual Memory چه می‌باشد؟
Virtual Memory (یادٔ مجازی) یک تکنیک رئیس خاطر با مزایای بسیار میباشد که در بالا برای سهل‌خیس کردن برنامه‌نویسی تولید شد. فکر کنید در یک کامپیوتر با حافظه موقت 4 گیگابایتی برنامه‌های ورد، گوگل کروم و برنامه‌های زیاد دیگری گشوده باشند. به صورت کلی، برنامه‌های این کامپیوتر طولانی تر از 4 گیگابایت حافظه موقت به کار گیری می‌نمایند البته کلیهٔ این برنامه‌ها یا این که مدام فعال نیستند و یا این که نیاز به دسترسی به طور همزمان به حافظه موقت ندارند.

سیستم‌برهان تکه‌هایی از یاد را به اسم Page به برنامه‌ها اختصاص میدهد؛ در حالتی‌که در حافظه موقت فضای کافی برای ذخیرهٔ تمامیٔ پبج‌ها با هم وجود نداشته باشد، پیج‌هایی که احتمالاً کمتر ما یحتاج قرار می گیرند در یک فضای کندتر (البته با حجم اضافه) ذخیره می شوند. وقتی که نیاز به دسترسی بدین پیج‌های ذخیره گردیده باشد، جای آنان با پیج‌هایی که در آن دوره در حافظه موقت کمتر مایحتاج میباشند عوض می‌گردد که‌این پروسه Paging اسم دارااست (قابل ذکر میباشد که اسم پوشه pagefile.sys در ویندوز نیز از آن گرفته شده‌است).

خاطرٔ مجازی به برنامه‌ها این قابلیت و امکان را می دهد تا یادٔ خویش را سهل و آسان‌خیس رئیس نمایند و همینطور آنها را امن‌خیس نیز میکند. لزومی ندارد برنامه‌ها نگران این باشند که بقیه برنامه‌ها داده‌های خویش را کجا ذخیره مینمایند و یا این که چقدر از حجم حافظه موقت مانده میباشد؛ تنها بایستی در چهره نیاز از سیستم‌دلیل درخواست خاطرٔ طولانی تر و یا این که بازگرداندن یادٔ بلااستفاده را نمایند. تمامیٔ آن چیزی که یک برنامه می‌بیند یک تکه از نشانی‌های پشت سر هم یاد برای استعمالٔ انحصاری میباشد که Virtual Addresse (نشانی مجازی) اسم دارا‌هستند.

وقتی که یک برنامه نیاز به دسترسی به یاد دارااست، یک نشانی مجازی به سیستم‌برهان می دهد؛ سیستم‌ادله با واحد رئیس یادٔ CPU (یا این که به اختصار MMU) رابطه برقرار می کند. MMU نشانی‌های مجازی را متساوی‌های فیزیکی‌شان ترجمه می‌نماید و این داده ها را به سیستم‌دلیل گشوده می‌گرداند؛ به این ترتیب از یک سو در هیچ هنگامی برنامه مستقیماً با حافظه موقت تعامل ندارد و از سوی دیگر یک برنامه اذنٔ دسترسی به یادٔ برنامهٔ دیگری را ندارد.

ASLR چه می باشد؟
اصطلاح ASLR در بالا برای حفاظت در قبال جراحت‌پذیری Buffer Overflow استعمال می شد. در‌این دسته هجوم ها، مهاجمان به یک سیستم تا حدی که گنجایش دارااست داده‌های ناخواسته ارسال می کند بعد از آن یک Payload مُخرب می‌فرستند که بر روی داده‌هایی که برنامه قصد دسترسی به آنان‌را دارااست، ویرایش می شود. به عنوان مثال، طرز متداول JailbreakMe یکی شیوه‌های Jailbreaking در iOS 4 از زخم‌پذیری بافر اورفلو به کار گیری می کرد که در غایت اپل را وادار به اضافه کردن ASLR به iOS 4.3 کرد.

در هجوم ها Buffer Overflow تعرضآمیز بایستی محل ذخیره‌سازی هر بخش از برنامه در خاطر را بداند که پی بردن این قضیه معمولاً مستلزم یک پروسه پیچیدهٔ امتحان و غلط میباشد که بعد از معلوم شدن، تهاجمی می بایست یک Payload تولید کرده و محل مطلوب برای اینجکت آن را بیابد. در کل، سوء‌به کارگیری از یک برنامه می تواند طاقت فرسا و یا این که غیر ممکن باشد در‌صورتی‌که تهاجمی محل ذخیره‌سازی کد انگیزه را نداند.

ASLR هم پا با مدیر خاطرٔ مجازی برای تصادفی گزینش کردن محل‌‌های ذخیره‌سازی نصیب‌های متفاوت برنامه در خاطر عمل می‌نماید. هر عصر که برنامه در اکنون اجرا میباشد، اجزاء آن (دربرگیرنده استک، هیپ و بعضی دیگر لایبرری‌ها) به یک نشانی متعدد در یادٔ مجازی غیروابسته دارای ارتباط میشوند و در‌این‌صورت میباشد که مهاجمان دیگر قوی به دانستن محل ذخیره‌سازی کد انگیزه از روش امتحان و غلط نیستند چون نشانی آن هر توشه مختلف میباشد. عموماً برنامه‌ها بایستی با پشتیبانی ASLR کامپایل شوند و این زمینه در اکنون تبدیل شدن به یک پیش‌فرض برای برنامه‌ها میباشد (حتی‌در ورژنٔ 5 و فراتر اندروید نیز به یک بایستی تبدیل شده‌است).

آیا ASLR شما‌را در قبال هجوم ها حفظ می کند؟
چند روز قبل، دانشمندان SUNY Binghamton و University of California، نوشته‌ی‌علمی‌ای به عنوان Jump Over ASLR: Attacking Branch Predictors to Bypass ASLR ارائه کردند. این نوشته ی علمی دربرگیرنده راهی برای حمله به Branch Target Buffer یا این که به اختصار BTB میباشد که تحت عنوان بخشی از پردازشگر میباشد که چنانچه امرها پیش‌بینی فیض صحیح باشند، عملیات را تسریع می نماید. با استعمال از طریق نقل شده به وسیله تالیف کنندهٔ این نوشته‌ی علمی، معلوم کردن محل‌ اوامر شناخته گردیده در یک برنامهٔ در هم اکنون اجرا قابلیت و امکان‌پذیر میباشد. این حمله بر روی یک سیستم لینوکسی با پردازشگر Intel Haswell (که اولیه توشه در سال 2013 منتشر شد) اجرا شد ولی احتمالاً میتواند بر روی هر سیستم‌دلیل و پردازشگر امروزی دیگری قابل‌اجرا باشد.

با این حالا نباید ناامید بود. این نوشته‌علمی چند نحوه سفارش داده میباشد که دولوپرهای دشوار‌افزار و سیستم‌استدلال می توانند با استعمال از آن ها احتمال وقوع این حمله را کاهش دهند. اخیرا، تکنیک‌های تازه و هوشمندانهٔ ASLR سعی بیشتری را از مهاجمان می‌طلبد و همینطور ارتقاء تعداد آنتروپی (تصادفی‌سازی) میتواند حملهٔ Jump Over را غیر ممکن سازد و به احتمال خیلی زیاد، سیستم‌ادله‌ها و پردازشگرهای جدیدتر در قبال این حمله ایمن خواهند بود.

طرز Jump Over نو میباشد و هنوز به کارگیری از آن در بین هکرها و مهاجمان بکر میباشد. هنگامی که مهاجمان از این شیوه سوء‌استعمال نمایند، این نقص منجر ارتقا آسیبی احتمالی می‌گردد که یک تعرضآمیز میتواند برای دستگاه شما ساخت نماید. این سطح از دسترسی بی‌سوابق وجود ندارد؛ مایکروسافت و اپل ASLR را در سیستم‌دلیل‌‌هایی که در سال 2007 و بعد به بازار عرضه کردند پیاده‌سازی کردند. حتی در‌صورتی‌که این سبک از حمله رایج شود، شرایط شما بدتر از وقتی که از ویندوز XP به کار گیری می‌کردید نخواهد بود!

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

overflow

overflow چیست؟

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

چگونه می توان overflow را تشخیص داد؟

قسمت مهم حل مشکل این است که بتوانیم آن را تشخیص دهیم. یعنی اگر بدانیم چه زمانی و کجا اتفاق می افتد، می توانیم در آن قسمت از صفحه قرار بگیریم. روش های مختلفی برای تشخیص سرریز وجود دارد، مانند: پیمایش دستی صفحه به چپ یا راست یا استفاده از جاوا اسکریپت (JavaScript) و ….

بیایید راه های تشخیص overflow را بررسی کنیم.

ارسال نظر آزاد است، اما اگر قبلا در فارسی بلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.