SlideShare a Scribd company logo
1 of 39
ASLR‫لینوکس‬‫در‬
‫کارکردآن‬‫و‬‫ی‬‫ساز‬ ‫پیاده‬ ‫نحوه‬ ‫ی‬ ‫س‬‫ر‬‫بر‬
‫گلیانی‬ ‫محمد‬
‫خرداد‬1390
‫باش‬ ‫می‬ ‫نویسنده‬ ‫نام‬ ‫و‬‫منبع‬ ‫ذکر‬ ‫به‬ ‫منوط‬ ‫سند‬‫این‬ ‫از‬ ‫ی‬‫بردار‬ ‫کپی‬ ‫گونه‬ ‫هر‬‫د‬
-ASLR‫چیست؟‬
-‫قبل‬‫و‬‫بعد‬‫از‬ASLR.
-ASLR‫چگونه‬‫کار‬‫می‬‫کند؟‬
-‫ی‬ ‫س‬‫ر‬‫بر‬‫س‬‫ر‬‫سو‬‫فایلهای‬ASLR‫در‬‫لینوکس‬.
‫مطالب‬‫فهرست‬
-‫نحوه‬‫پیاده‬‫ی‬‫ساز‬ASLR‫در‬‫پشته‬
-‫ی‬ ‫س‬‫ر‬‫بر‬ASLR‫در‬Heap
-‫ی‬ ‫س‬‫ر‬‫بر‬ASLR‫در‬mmap.
-‫جمع‬‫بندی‬
ASLR
-ASLR‫یا‬‫تصادفی‬‫ی‬‫ساز‬‫فضای‬،‫س‬‫ر‬‫آد‬‫ی‬ ‫ش‬‫و‬‫ر‬‫است‬‫که‬‫در‬،‫آن‬‫فضاهای‬‫کلیدی‬‫نامه‬‫ر‬‫ب‬‫از‬‫حالت‬‫ث‬‫ابت‬‫و‬‫از‬
‫پیش‬‫تعیین‬،‫شده‬‫به‬‫حالت‬‫تصادفی‬‫تغییر‬‫پیدا‬‫می‬‫کند‬.
-‫با‬‫وجود‬ASLR،‫نفوذگر‬‫قادر‬‫به‬‫تعیین‬‫س‬‫ر‬‫آد‬‫برگشت‬‫مناسب‬(‫که‬‫به‬‫کد‬‫دلخواه‬‫او‬‫ه‬‫ر‬‫اشا‬‫کند‬)،‫نخواهد‬
‫بود‬.
-ASLR‫در‬‫لینوکس‬‫از‬‫نسخۀ‬2.6.12(May 2005)‫به‬‫ت‬‫ر‬‫صو‬‫پیش‬‫فرض‬‫در‬‫حد‬‫ضعیفی‬‫ار‬‫ر‬‫ق‬‫داده‬
‫شده‬‫است‬.
-PaX‫و‬exec-shield،‫پیاده‬‫ی‬‫ساز‬‫های‬‫ی‬‫قو‬‫ی‬‫تر‬‫از‬‫این‬‫ش‬‫و‬‫ر‬‫در‬‫لینوکس‬‫ائه‬‫ر‬‫ا‬‫کرده‬‫اند‬.
-‫اگرچه‬‫این‬‫تکنیک‬‫در‬‫کرنل‬‫لینوکس‬‫از‬‫سال‬2005‫به‬‫ت‬‫ر‬‫صو‬‫پیش‬‫فرض‬‫ار‬‫ر‬‫ق‬‫گرفت‬‫ولی‬PaX،‫در‬‫سال‬
2001‫یک‬‫پیاده‬‫ی‬‫ساز‬‫کامل‬‫از‬‫این‬‫تکنیک‬‫ا‬‫ر‬‫ائه‬‫ر‬‫ا‬‫کرده‬‫بود‬.
‫ـز‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ی‬‫ـرر‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫س‬
‫حافظه‬ ‫فضای‬ IP
(EIP)
‫آسیب‬ ‫بافر‬
‫پذیر‬
‫از‬‫قبل‬ASLR
‫شلکد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫بافر‬‫واقعی‬‫سایز‬
-‫ن‬‫بدو‬‫استفاده‬‫از‬‫تکنیک‬ASLR،‫س‬‫ر‬‫آد‬‫ع‬‫و‬‫شر‬‫پشته‬‫از‬‫قبل‬‫مشخص‬‫بوده‬‫و‬‫این‬‫ر‬‫بناب‬‫می‬‫توان‬‫س‬‫ر‬‫آد‬
‫ی‬‫ارگیر‬‫ر‬‫ق‬‫شلکد‬‫ا‬‫ر‬‫بدست‬‫د‬‫ر‬‫آو‬.
-‫در‬‫این‬،‫حالت‬‫تنها‬‫کافی‬‫است‬‫س‬‫ر‬‫آد‬‫ع‬‫و‬‫شر‬‫شلکد‬‫ا‬‫ر‬‫بر‬‫ی‬‫و‬‫ر‬EIP‫ی‬ ‫نویس‬‫ز‬‫با‬‫نماییم‬:
‫از‬‫قبل‬ASLR
-‫وضعیت‬‫فضای‬‫س‬‫ر‬‫آد‬‫یک‬‫برنامه‬(cat)‫در‬‫دو‬‫بار‬‫ای‬‫ر‬‫اج‬‫مختلف‬‫قبل‬‫از‬‫فعال‬‫ی‬‫ساز‬ASLR‫به‬‫ت‬‫ر‬‫صو‬
‫یر‬‫ز‬‫می‬‫باشد‬:
‫از‬‫قبل‬ASLR
‫از‬‫قبل‬ASLR
-‫وضعیت‬‫س‬‫ر‬‫آد‬‫ها‬‫در‬‫دو‬‫ا‬‫ر‬‫اج‬‫از‬‫ار‬‫ر‬‫ق‬‫یر‬‫ز‬‫است‬:
‫مکان‬‫حافظه‬‫یکم‬ ‫ای‬‫ر‬‫اج‬‫دوم‬ ‫ای‬‫ر‬‫اج‬
HEAP0x0804e0000x0804e000
Stack0xbffea0000xbffea000
Libc0x00b670000x00b67000
‫خود‬‫ایی‬‫ر‬‫اج‬ ‫فایل‬0x080480000x08048000
‫است‬ ‫یکسان‬ ‫اجرا‬‫دو‬‫هر‬‫در‬ ‫ها‬ ‫س‬‫ر‬‫آد‬
‫سرریز‬ ‫وجود‬‫با‬‫به‬ ،،‫شلکد‬ ‫آدرس‬ ‫نبودن‬ ‫مشخص‬ ‫دلیل‬
‫داد‬‫انتقال‬‫آن‬ ‫به‬ ‫ا‬‫ر‬ ‫ا‬‫ر‬‫اج‬ ‫ل‬‫کنتر‬‫توان‬ ‫نمی‬
‫حافظه‬ ‫فضای‬ IP
(EIP)
‫آسیب‬ ‫بافر‬
‫پذیر‬
‫از‬‫بعد‬ASLR
‫شلکد‬
‫نیست‬‫معلوم‬‫شلکد‬‫آدرس‬
‫نیست‬‫معلوم‬‫شلکد‬‫آدرس‬
‫نیست‬‫معلوم‬‫شلکد‬‫آدرس‬
‫نیست‬‫معلوم‬‫شلکد‬‫آدرس‬
‫نیست‬‫معلوم‬‫شلکد‬‫آدرس‬
‫نیست‬‫معلوم‬‫شلکد‬‫آدرس‬
‫بافر‬‫واقعی‬‫سایز‬
(????????)
-‫با‬‫استفاده‬‫از‬ASLR،‫س‬‫ر‬‫آد‬‫ار‬‫ر‬‫ق‬‫ی‬‫گیر‬،‫پشته‬‫از‬‫قبل‬‫نامشخص‬‫خواهد‬‫بود‬.
-‫به‬‫دلیل‬‫تصادفی‬‫بودن‬‫محل‬‫ار‬‫ر‬‫ق‬‫ی‬‫گیر‬،‫پشته‬‫نمی‬‫توان‬‫س‬‫ر‬‫آد‬‫شلکد‬‫ا‬‫ر‬‫به‬‫هنگام‬‫ی‬‫ار‬‫ز‬‫بارگ‬‫بدست‬‫د‬‫ر‬‫آو‬.
‫از‬‫بعد‬ASLR
-‫وضعیت‬‫فضای‬‫س‬‫ر‬‫آد‬‫یک‬‫برنامه‬(cat)‫در‬‫دو‬‫بار‬‫ای‬‫ر‬‫اج‬‫مختلف‬‫بعد‬‫از‬‫فعال‬‫ی‬‫ساز‬ASLR‫به‬‫ت‬‫ر‬‫صو‬
‫یر‬‫ز‬‫می‬‫باشد‬:
‫از‬‫بعد‬ASLR
‫از‬‫قبل‬ASLR
-‫وضعیت‬‫س‬‫ر‬‫آد‬‫ها‬‫در‬‫دو‬‫ا‬‫ر‬‫اج‬‫از‬‫ار‬‫ر‬‫ق‬‫یر‬‫ز‬‫است‬:
‫مکان‬‫حافظه‬‫یکم‬ ‫ای‬‫ر‬‫اج‬‫دوم‬ ‫ای‬‫ر‬‫اج‬
HEAP0x08dd00000x08606000
Stack0xbf8280000xbfe16000
Libc0x00b670000x00b67000
‫خود‬‫ایی‬‫ر‬‫اج‬ ‫فایل‬0x080480000x08048000
‫س‬‫ر‬‫آد‬HEAP‫و‬STACK‫در‬‫است‬‫متفاوت‬ ‫اجرا‬‫هر‬.
ASLR‫کند؟‬ ‫می‬‫کار‬ ‫چگونه‬
-ASLR،‫مکان‬‫های‬‫مختلف‬‫ار‬‫ر‬‫ق‬‫ی‬‫گیر‬‫یک‬‫برنامه‬‫در‬‫حافظه‬‫ا‬‫ر‬‫تصادفی‬‫می‬‫نماید‬.
-‫با‬‫هر‬‫بار‬‫ای‬‫ر‬‫اج‬،‫برنامه‬‫س‬‫ر‬‫آد‬‫این‬‫مکان‬‫های‬‫حافظه‬‫نسبت‬‫به‬‫ای‬‫ر‬‫اج‬‫قبلی‬‫متفاوت‬‫خواهد‬‫ب‬‫ود‬.
-ASLR،‫در‬‫لینوکس‬‫از‬‫نسخۀ‬2.6.12‫ن‬‫و‬‫در‬‫کرنل‬‫ار‬‫ر‬‫ق‬‫داده‬‫شد‬.
-‫قبل‬‫از‬2005(2.6.12)،ASLR‫توسط‬PaX‫در‬‫سال‬2001‫معرفی‬‫شده‬‫بود‬.
-ASLR‫در‬‫لینوکس‬‫عملیات‬‫تصادفی‬‫ی‬‫ساز‬‫ا‬‫ر‬‫ی‬‫و‬‫ر‬‫بر‬‫ی‬‫باینر‬‫های‬ELF‫انجام‬‫می‬‫دهد‬.‫این‬‫ر‬‫بناب‬‫می‬‫توان‬
‫این‬‫پیاده‬‫ی‬‫ساز‬‫ا‬‫ر‬‫در‬‫توابع‬‫کتابخانه‬‫ای‬ELF(‫و‬‫سایر‬‫توابع‬)‫جستجو‬‫نمود‬.
ASLR‫کند؟‬ ‫می‬‫کار‬ ‫چگونه‬
-‫با‬‫یک‬‫ی‬ ‫س‬‫ر‬‫بر‬‫ی‬
ّ
‫کل‬‫در‬‫فایلهای‬‫س‬‫ر‬‫سو‬،‫لینوکس‬‫می‬‫توان‬‫قسمتهایی‬‫که‬‫تحت‬‫تأثیر‬ASLR‫تصادفی‬
‫ی‬‫ساز‬‫شده‬‫اند‬‫ا‬‫ر‬‫یافت‬:
ASLR‫کند؟‬ ‫می‬‫کار‬ ‫چگونه‬
ASLR‫کند؟‬ ‫می‬‫کار‬ ‫چگونه‬
-‫با‬‫ی‬ ‫س‬‫ر‬‫بر‬‫دقیق‬‫تر‬‫این‬‫س‬‫ر‬‫سو‬‫ها‬‫می‬‫توان‬‫اطالعات‬‫ی‬‫بیشتر‬‫در‬‫د‬‫ر‬‫مو‬‫نحوۀ‬‫تصادفی‬‫ی‬‫ساز‬‫آ‬‫س‬‫ر‬‫د‬‫ها‬‫در‬
ASLR‫بدست‬‫د‬‫ر‬‫آو‬:
-‫در‬‫تی‬‫ر‬‫صو‬‫که‬‫سیستم‬‫فاقد‬MMU‫باشد‬(‫نظیر‬‫برخی‬‫سیستم‬‫های‬embedded)،‫تعریف‬
‫تصادفی‬‫ی‬‫ساز‬‫در‬‫فایل‬include/mm.h‫ت‬‫ر‬‫صو‬‫می‬‫پذیرد‬.
-MMU‫یک‬‫واحد‬‫سخت‬‫ی‬‫ار‬‫ز‬‫اف‬‫است‬‫که‬‫در‬‫اکثر‬‫سیستم‬‫ها‬‫وجود‬‫د‬‫ر‬‫دا‬.
-‫م‬‫ز‬‫ال‬‫به‬‫ذکر‬‫است‬‫که‬‫در‬‫سیستم‬‫های‬‫ی‬ ‫لینوکس‬(‫آخرین‬‫نسخه‬2.6.39)،‫قابلیت‬‫استفاده‬‫از‬MMU
‫به‬‫ت‬‫ر‬‫صو‬‫پیش‬‫فرض‬‫فعال‬‫می‬‫باشد‬.
-‫برد‬‫ر‬‫کا‬MMU‫یا‬‫واحد‬‫مدیریت‬‫حافظه‬‫در‬‫سیستم‬‫های‬،‫ی‬‫ز‬‫و‬‫امر‬‫ل‬‫کنتر‬‫ی‬ ‫دسترس‬CPU‫به‬‫واحد‬
‫حافظه‬‫است‬‫که‬‫این‬‫امر‬‫شامل‬‫تبدیل‬‫س‬‫ر‬‫آد‬‫ی‬‫مجاز‬‫به‬‫س‬‫ر‬‫آد‬‫فیزیکی‬‫و‬...‫می‬‫باشد‬.
ASLR‫کند؟‬ ‫می‬‫کار‬ ‫چگونه‬
ASLR‫کند؟‬ ‫می‬‫کار‬ ‫چگونه‬
-‫ی‬‫بسیار‬‫از‬‫تنظیمات‬،‫ق‬‫فو‬‫ل‬‫کنتر‬‫هایی‬‫است‬‫که‬‫بسته‬‫به‬‫نحوه‬‫کامپایل‬‫کرنل‬‫انجام‬‫می‬‫شود‬:
ASLR‫کند؟‬ ‫می‬‫کار‬ ‫چگونه‬
ASLR‫کند؟‬ ‫می‬‫کار‬ ‫چگونه‬
-‫یکی‬‫از‬‫این‬‫د‬‫ر‬‫موا‬‫در‬‫فایل‬personality.h‫قابل‬‫تنظیم‬‫است‬.
-‫این‬،‫مقدار‬‫امکان‬‫غیر‬‫فعال‬‫ی‬‫ساز‬‫عملیات‬‫تصادفی‬‫در‬‫د‬‫ر‬‫مو‬‫تابع‬mmap()‫ا‬‫ر‬‫اهم‬‫ر‬‫ف‬‫می‬‫نماید‬:
ASLR‫کند؟‬ ‫می‬‫کار‬ ‫چگونه‬
-‫فایل‬/include/linux/sysctl.h‫ی‬‫حاو‬‫اطالعات‬‫مربوط‬‫به‬‫اخوانی‬‫ر‬‫ف‬‫تابع‬sysctl()‫می‬‫باشد‬.
-‫این‬‫تابع‬‫قابلیت‬‫تنظیم‬‫یک‬‫ی‬‫سر‬‫امتر‬‫ر‬‫پا‬‫های‬‫فضای‬‫کرنل‬‫ا‬‫ر‬‫از‬‫فضای‬‫ی‬‫بر‬‫ر‬‫کا‬‫اهم‬‫ر‬‫ف‬‫می‬‫نم‬‫اید‬.
-‫از‬‫جمله‬‫این‬‫قابلیت‬،‫ها‬‫قابلیت‬KERN_RANDOMIZE‫می‬‫باشد‬‫که‬‫مربوط‬‫به‬‫تصادفی‬‫ی‬‫ساز‬‫فضای‬
‫حافظۀ‬‫ی‬‫مجاز‬‫سه‬‫و‬‫پر‬‫است‬.
-‫ای‬‫ر‬‫ب‬‫سیستم‬‫های‬ISA UniCore‫و‬SoCPKUnity،‫تصادفی‬‫ی‬‫ساز‬heap،‫در‬‫فایلهای‬
arch/unicore32/kernel/process.c‫و‬arch/unicore32/include/asm/elf.h
‫انجام‬‫می‬‫شود‬.
ASLR‫کند؟‬ ‫می‬‫کار‬ ‫چگونه‬
-‫این‬‫ر‬‫بناب‬‫با‬‫ی‬ ‫س‬‫ر‬‫بر‬‫فایلهایی‬‫که‬‫در‬‫آنها‬‫از‬‫توابع‬‫تصادفی‬‫ی‬‫ساز‬‫استفاده‬،‫شده‬‫می‬‫توان‬‫ب‬‫ه‬‫نحوه‬‫تصادفی‬
‫ی‬‫ساز‬‫در‬‫های‬‫ر‬‫ساختا‬‫مختلف‬‫ی‬ ‫لینوکس‬‫پی‬‫برد‬.
-‫نظر‬‫به‬‫اوانی‬‫ر‬‫ف‬‫استفاده‬‫از‬‫این‬‫نوع‬‫توابع‬‫و‬‫استفاده‬‫از‬‫آن‬‫در‬‫ی‬‫معمار‬‫های‬‫مختلف‬(ARM, Mips,
tile‫و‬...)‫به‬‫ی‬ ‫س‬‫ر‬‫بر‬‫فایلهای‬‫د‬‫ر‬‫مو‬‫توجه‬‫در‬x86‫بسنده‬‫می‬‫نماییم‬.
-‫بخش‬‫های‬‫مختلف‬‫عملیات‬‫تصادفی‬‫ی‬‫ساز‬‫در‬ASLR‫در‬‫لینوکس‬x86،‫از‬‫ار‬‫ر‬‫ق‬‫یر‬‫ز‬‫است‬:
-‫تصادفی‬‫ی‬‫ساز‬‫در‬‫پشته‬.
-‫تصادفی‬‫ی‬‫ساز‬‫در‬‫تابع‬mmap().
-‫تصادفی‬‫ی‬‫ساز‬‫در‬heap.
-‫بدین‬‫تیب‬‫ر‬‫ت‬‫هر‬‫بخش‬‫ی‬‫دیگر‬‫که‬‫از‬‫د‬‫ر‬‫موا‬‫ق‬‫فو‬‫استفاده‬‫نماید‬‫نیز‬‫تصادفی‬‫خواهد‬‫شد‬.
ASLR‫پشته‬‫در‬
-‫تصادفی‬‫ی‬‫ساز‬،‫پشته‬‫به‬‫هنگام‬‫ی‬‫ار‬‫ز‬‫بارگ‬‫فایل‬‫ها‬‫در‬‫حافظه‬‫ت‬‫ر‬‫صو‬‫می‬‫پذیرد‬.
-‫ی‬‫ار‬‫ز‬‫بارگ‬‫ی‬‫باینر‬‫ها‬‫توسط‬‫تابع‬load_elf_binary()‫ت‬‫ر‬‫صو‬‫می‬‫پذیرد‬‫که‬‫در‬‫فایل‬
fs/binfmt_elf.c‫تعریف‬‫شده‬.
ASLR‫پشته‬‫در‬
-‫در‬‫این‬،‫تابع‬‫پس‬‫از‬‫تنظیم‬‫نمودن‬‫یک‬‫ی‬‫سر‬‫فلگ‬،‫ها‬‫از‬‫توابع‬‫ی‬‫دیگر‬‫جهت‬‫تصادفی‬‫ی‬‫ساز‬‫پش‬‫ته‬‫استفاده‬
‫شده‬‫است‬:
Current:‫اشاره‬ ‫که‬ ‫است‬ ‫ماکرو‬ ‫یک‬
‫بر‬ ‫ی‬‫جار‬ ‫پروسۀ‬ ‫اکچر‬‫ر‬‫است‬ ‫به‬ ‫ی‬‫گر‬‫می‬
‫گرداند‬.
‫ی‬‫جار‬ ‫پروسۀ‬ ‫مشخصات‬ ‫در‬ ‫که‬ ‫صورتی‬ ‫در‬(include/linux/personality.h)‫مقدار‬،ADDR_NO_RANDOMIZE
‫متغیر‬ ‫و‬ ‫باشد‬ ‫نشده‬ ‫تنظیم‬randomize_va_space‫ی‬‫ساز‬‫تصادفی‬ ‫فلگ‬ ‫آنگاه‬،‫نباشد‬ ‫صفر‬ ‫نیز‬(PF_RANDOMIZE)‫نیز‬
‫شد‬‫خواهد‬ ‫ست‬ ‫پروسه‬ ‫این‬ ‫مورد‬ ‫در‬‫ها‬ ‫فلگ‬ ‫سایر‬‫بر‬ ‫عالوه‬.
‫و‬ ‫باشد‬ ‫نداشته‬‫ثابت‬ ‫های‬ ‫آدرس‬ ‫به‬ ‫ی‬‫نیاز‬ ‫پروسه‬ ‫اگر‬،‫تر‬ ‫ساده‬‫عبارت‬ ‫به‬ASLR‫می‬ ‫ی‬‫ساز‬‫تصادفی‬ ،‫پروسه‬ ‫آدرس‬‫فضای‬ ،‫باشد‬ ‫فعال‬
‫شود‬.
ASLR‫پشته‬‫در‬
-‫سپس‬‫با‬‫اخوانی‬‫ر‬‫ف‬‫تابع‬setup_arg_pages()‫و‬‫پاس‬‫دادن‬‫س‬‫ر‬‫آد‬ToS‫به‬،‫آن‬‫فلگ‬‫ها‬‫و‬‫ز‬‫مجو‬،‫ها‬
‫به‬‫ز‬‫و‬‫ر‬‫سانی‬‫ر‬،‫شده‬‫پشته‬‫به‬‫دلخواه‬‫ی‬‫ار‬‫ز‬‫جایگ‬‫مجدد‬‫شده‬‫و‬‫ی‬‫مقدار‬‫فضای‬‫اضافه‬‫به‬‫آن‬‫د‬‫و‬‫افز‬‫ه‬‫می‬
‫شود‬.
-‫در‬‫همین‬‫مرحله‬‫از‬‫تابع‬randomize_stack_top()‫استفاده‬‫می‬‫شود‬‫تا‬‫محل‬‫ار‬‫ر‬‫ق‬‫ی‬‫گیر‬‫پشته‬‫به‬
‫ت‬‫ر‬‫صو‬‫تصادفی‬‫انتخاب‬‫شود‬.
ASLR‫پشته‬‫در‬
-‫عملیات‬‫تصادفی‬‫ی‬‫ساز‬‫در‬‫تابع‬randomize_stack_top()(‫که‬‫در‬‫همین‬‫فایل‬‫یف‬‫ر‬‫تع‬‫شده‬‫است‬)
‫انجام‬‫می‬‫شود‬.
-‫مقدار‬‫برگشتی‬‫توسط‬‫این‬،‫تابع‬‫ت‬‫ر‬‫عبا‬‫است‬‫از‬‫یک‬‫س‬‫ر‬‫آد‬‫که‬‫این‬‫س‬‫ر‬‫آد‬‫س‬‫ر‬‫آد‬‫ار‬‫ر‬‫ق‬‫ی‬‫گیر‬‫پشته‬‫قل‬‫مداد‬‫خواهد‬
‫شد‬.
-‫در‬‫این‬،‫تابع‬‫محل‬‫ار‬‫ر‬‫ق‬‫ی‬‫گیر‬،‫پشته‬‫به‬‫ت‬‫ر‬‫صو‬‫تصادفی‬‫به‬‫ۀ‬‫ز‬‫اندا‬random_variable‫جابجا‬‫می‬‫شود‬.
‫ها‬ ‫آدرس‬ ‫با‬‫جهت‬ ‫هم‬ ‫پشته‬ ‫اگر‬‫ی‬‫مقدار‬ ،‫کند‬ ‫رشد‬‫حافظه‬random_variable‫ی‬ ‫آدرس‬ ‫به‬
‫توسط‬ ‫که‬PAGE_ALIGN‫شود‬‫می‬ ‫اضافه‬ ،‫شود‬‫می‬ ‫برگردانده‬.‫این‬ ‫صورت‬ ‫این‬ ‫غیر‬ ‫در‬ ‫و‬
‫آدرس‬ ‫از‬‫مقدار‬PAGE_ALIGN‫شود‬‫می‬ ‫کم‬(‫های‬ ‫ی‬‫معمار‬ ‫برخی‬ ‫نظیر‬RISC.)
PAGE_ALIGN‫به‬ ‫ا‬‫ر‬‫گر‬‫اشاره‬ ،
‫ابتدای‬PAGE‫نمای‬‫می‬ ‫تنظیم‬‫بعدی‬‫د‬
ASLR‫پشته‬‫در‬
-‫نحوه‬‫تخصیص‬‫مقدار‬‫به‬‫متغیر‬random_variable‫در‬‫این‬،‫تابع‬‫با‬‫استفاده‬‫از‬‫تابع‬‫کمکی‬
get_random_int()‫و‬‫سپس‬‫شیفت‬‫دادن‬‫این‬‫س‬‫ر‬‫آد‬‫به‬‫ان‬‫ز‬‫می‬PAGE_SHIFT‫انجام‬‫می‬‫شود‬.
-PAGE_SHIFT‫د‬‫ر‬‫مو‬‫در‬x86‫ابر‬‫ر‬‫ب‬12‫است‬‫مشاهد‬‫قابل‬‫یر‬‫ز‬ ‫فایل‬‫در‬‫که‬ ‫است‬‫شده‬ ‫تعریف‬:
(arch/x86/include/asm/page_types.h.)
‫از‬ ‫آمده‬ ‫بدست‬‫مقدار‬get_random_int()‫مقدار‬ ‫با‬STACK_RND_MASK‫جمع‬
‫اولیۀ‬‫مقدار‬ ‫نتیجه‬ ‫و‬ ‫شده‬‫منطقی‬random_variable‫دهد‬‫می‬ ‫تشکیل‬ ‫ا‬‫ر‬(‫شیفت‬‫از‬ ‫قبل‬.)
STACK_RND_MASK‫شده‬ ‫دهی‬‫مقدار‬ ‫تابع‬ ‫تعریف‬ ‫از‬ ‫قبل‬ ‫نیز‬(‫ثابت‬ ‫مقدار‬)‫مشخص‬ ‫و‬
‫باشد‬ ‫می‬ ‫ی‬‫ساز‬‫تصادفی‬ ‫در‬ ‫ارزشمند‬ ‫های‬ ‫بیت‬ ‫کنندۀ‬.
PAGE_SHIFT‫چیست؟‬
-‫س‬‫ر‬‫آد‬‫های‬‫حافظه‬‫ای‬‫که‬‫در‬‫سطح‬‫کرنل‬‫د‬‫ر‬‫مو‬‫استفاده‬‫ار‬‫ر‬‫ق‬‫می‬،‫گیرد‬‫نظر‬‫به‬‫استفاده‬‫از‬‫ویژگ‬‫ی‬
PAGING،‫بی‬‫ر‬‫مضا‬‫از‬‫حجم‬PAGE‫ها‬‫می‬‫باشد‬.
-‫حجم‬PAGE‫ها‬‫در‬asm/page.h‫قابل‬‫تنظیم‬‫است‬(‫متغیر‬PAGE_SIZE).
-‫س‬‫ر‬‫آد‬‫های‬‫د‬‫ر‬‫مو‬‫استفاده‬‫در‬،‫کرنل‬‫شامل‬‫دو‬‫قسمت‬‫پر‬‫ش‬‫ز‬‫ار‬‫و‬‫کم‬‫ش‬‫ز‬‫ار‬‫می‬‫باشد‬.
-‫قسمت‬‫پر‬،‫ش‬‫ز‬‫ار‬‫به‬‫س‬‫ر‬‫آد‬PAGE‫و‬‫قسمت‬‫کم‬‫ش‬‫ز‬‫ار‬‫به‬‫آفست‬‫ن‬‫و‬‫در‬PAGE‫تخصیص‬‫می‬‫یابد‬.
-‫با‬‫شیفت‬‫دادن‬‫این‬‫س‬‫ر‬‫آد‬‫ها‬‫و‬‫ن‬‫و‬‫بر‬‫ی‬‫یز‬‫ر‬‫آفست‬PAGE،‫ی‬‫مقدار‬‫که‬‫باقی‬‫خواهد‬،‫ماند‬‫ه‬‫ر‬‫اشا‬‫ی‬‫گر‬‫به‬
PAGE‫می‬‫باشد‬.
-PAGE_SHIFT،‫ان‬‫ز‬‫می‬‫این‬‫شیفت‬‫ا‬‫ر‬‫در‬‫سیستم‬‫مشخص‬‫می‬‫کند‬.
PAGE_SHIFT‫چیست؟‬
B C D E F G H I J K L M N O P QA
PAGE_SIZE = 4096 = 212‫با‬12‫بیت‬‫می‬‫توان‬‫ن‬‫و‬‫در‬PAGE‫ا‬‫ر‬‫س‬‫ر‬‫آد‬‫دهی‬‫نمود‬.
‫ی‬ ‫س‬‫ر‬‫آد‬‫که‬‫به‬‫خود‬PAGE‫ه‬‫ر‬‫اشا‬‫می‬‫کند‬ ‫س‬‫ر‬‫آد‬‫محتویات‬‫ن‬‫و‬‫در‬PAGE
0 0 0 0 0 0 0 0 0 0 0 A B C D E0
‫با‬12‫آدرس‬ ،‫است‬‫ر‬‫سمت‬ ‫به‬‫شیفت‬‫بیت‬PAGE‫آورد‬‫خواهیم‬ ‫بدست‬‫ا‬‫ر‬
PAGE_SHIFT‫ابر‬‫ر‬‫ب‬12‫باشد‬ ‫می‬.
ASLR‫پشته‬‫در‬
-‫تابع‬‫در‬‫ی‬‫ساز‬‫تصادفی‬‫نحوه‬get_random_int()‫فایل‬ ‫در‬‫که‬drivers/char/random.c
‫است‬‫یر‬‫ز‬‫ار‬‫ر‬‫ق‬ ‫از‬‫شده‬ ‫تعریف‬:
‫ایۀ‬‫ر‬‫آ‬‫تعریف‬ ‫از‬‫پس‬HASH‫آن‬‫آدرس‬ ‫تنظیم‬ ‫و‬(‫ایۀ‬‫ر‬‫آ‬‫آدرس‬
CPU)‫تابع‬ ‫از‬ ‫استفاده‬ ‫با‬ ،get_keyptr()‫متغیر‬ ،keyptr
‫از‬ ‫استفاده‬ ‫با‬‫سپس‬ ‫و‬‫شده‬ ‫اولیه‬ ‫دهی‬‫مقدار‬‫آریۀ‬‫آدرس‬HASH
‫اه‬‫ر‬‫هم‬‫به‬PID‫ی‬‫جار‬‫پروسه‬‫و‬‫پردازنده‬‫های‬‫سیکل‬ ‫تعداد‬‫و‬
‫سیستم‬ ‫بودن‬‫فعال‬‫زمان‬‫مدت‬‫خانه‬‫در‬ ‫تصادفی‬‫مقدار‬ ‫یک‬،‫ل‬‫او‬
‫ایۀ‬‫ر‬‫آ‬HASH‫تابع‬ ‫از‬ ‫استفاده‬ ‫با‬‫سپس‬ ‫و‬‫شده‬ ‫داده‬‫ار‬‫ر‬‫ق‬
half_md4_transform()‫تر‬ ‫تصادفی‬‫هم‬‫باز‬‫مقدار‬ ‫این‬
‫شود‬ ‫می‬ ‫بازگردانده‬‫و‬ ‫شده‬
ASLR‫پشته‬‫در‬
-‫تابع‬half_md4_transform()‫فایل‬ ‫در‬‫که‬lib/halfmd4.c‫پیاده‬ ‫یک‬ ،‫است‬ ‫شده‬ ‫یف‬‫ر‬‫تع‬
‫یتم‬‫ر‬‫الگو‬‫از‬‫مختصر‬‫ی‬‫ساز‬MD4‫ر‬‫دو‬‫سه‬ ‫در‬‫که‬‫باشد‬‫می‬8‫های‬‫عملگر‬ ‫از‬‫استفاده‬ ‫با‬ ‫و‬ ‫تایی‬XOR‫و‬
AND‫نماید‬‫می‬‫اعمال‬‫خود‬‫ودی‬‫ر‬‫و‬ ‫ی‬‫و‬‫ر‬‫بر‬‫ا‬‫ر‬‫یتم‬‫ر‬‫الگو‬ ‫این‬.
ASLR‫پشته‬‫در‬
-‫تیب‬‫ر‬‫ت‬ ‫بدین‬ASLR‫از‬‫استفاده‬ ‫با‬ ‫پشته‬ ‫در‬4‫تابع‬ ‫از‬‫استفاده‬ ‫با‬‫و‬‫اصلی‬ ‫مقدار‬MD4(‫ی‬‫ساز‬ ‫پیاده‬ ‫یک‬
‫تابع‬ ‫این‬ ‫از‬‫مختصر‬)‫شود‬ ‫می‬‫انجام‬.
-‫از‬‫تند‬‫ر‬‫عبا‬‫اصلی‬‫مقادیر‬ ‫این‬:
-‫شده‬ ‫ا‬‫ر‬‫اج‬‫سۀ‬‫و‬‫پر‬‫ه‬‫ر‬‫شما‬.
-‫نده‬‫ز‬‫پردا‬‫های‬‫سیکل‬ ‫تعداد‬.
-‫سیستم‬ ‫بودن‬‫شن‬‫و‬‫ر‬‫مان‬‫ز‬ ‫مدت‬.
-‫ابتدایی‬‫ی‬‫ساز‬ ‫پیاده‬ ‫این‬ASLR‫نسخۀ‬ ‫از‬ ‫لینوکس‬‫کرنل‬ ‫در‬2.6.12‫شد‬ ‫داده‬‫ار‬‫ر‬‫ق‬.
-‫گرفتن‬‫نظر‬‫ر‬‫د‬‫با‬ ‫این‬‫ر‬‫بناب‬STACK_RND_MASK‫د‬‫ر‬‫موا‬‫از‬‫شده‬ ‫تولید‬‫تصادفی‬‫مقدار‬‫جی‬‫و‬‫خر‬‫با‬‫که‬
‫شود‬ ‫می‬‫ماسک‬،‫ق‬‫فو‬(‫ر‬.‫ک‬.Binfmt_elf.c)‫پشته‬‫ی‬‫ساز‬‫تصادفی‬‫که‬‫گرفت‬‫نتیجه‬‫چنین‬ ‫توان‬‫می‬ ،‫در‬
ASLR‫ی‬‫و‬‫ر‬‫بر‬،‫لینوکس‬‫فرض‬ ‫پیش‬ِ11‫و‬ ‫شده‬ ‫انجام‬‫بیت‬2047‫ی‬‫گیر‬‫ار‬‫ر‬‫ق‬ ‫جهت‬‫مختلف‬‫تصادفی‬‫س‬‫ر‬‫آد‬
‫شود‬ ‫می‬ ‫تولید‬‫پشته‬.
ASLR‫در‬heap
-‫این‬‫پیاده‬‫ی‬‫ساز‬‫نیز‬‫هنگام‬‫ی‬‫ار‬‫ز‬‫بارگ‬‫فایلهای‬‫ی‬‫باینر‬‫انجام‬‫می‬‫شود‬‫که‬‫در‬‫فایل‬fs/binfmt_elf.c
‫می‬‫توان‬‫جزئیات‬‫آن‬‫ا‬‫ر‬‫مشاهده‬‫نمود‬.
‫ی‬ ‫بررس‬ ‫و‬‫پروسه‬ ‫های‬‫فلگ‬‫کردن‬‫چک‬ ‫از‬‫پس‬
PF_RANDOMIZE‫گزینۀ‬‫که‬‫صورتی‬ ‫در‬،
randomize_va_space،‫باشد‬ ‫شده‬ ‫تنظیم‬‫نیز‬
‫شروع‬‫آدرس‬heap‫تابع‬‫از‬ ‫استفاده‬ ‫با‬ ،
arch_randomize_brk()‫شد‬‫خواهد‬ ‫داده‬‫تخصیص‬.
ASLR‫در‬heap
-‫تصادفی‬‫ی‬‫ساز‬heap‫در‬‫تابع‬arch_randomize_brk()‫که‬‫در‬‫فایل‬
arch/x86/kernel/process.c‫تعریف‬،‫شده‬‫انجام‬‫می‬‫پذیرد‬:
‫تابع‬‫از‬ ‫تابع‬‫این‬ ‫در‬randomize_range‫شروع‬‫آدرس‬‫ی‬‫ساز‬ ‫تصادفی‬‫منظور‬ ‫به‬heap‫شود‬‫می‬ ‫استفاده‬.
ASLR‫در‬heap
-‫تابع‬randomize_range()‫در‬‫فایل‬drivers/char/random.c‫یف‬‫ر‬‫تع‬‫شده‬‫و‬‫یک‬
‫س‬‫ر‬‫آد‬‫تصادفی‬‫ی‬‫ساز‬‫شده‬‫ا‬‫ر‬‫بر‬‫می‬‫گرداند‬.
‫از‬ ،‫پشته‬‫های‬‫آدرس‬‫ی‬‫ساز‬ ‫تصادفی‬ ‫همانند‬‫نیز‬ ‫تابع‬‫این‬ ‫در‬PAGE_ALIGN‫و‬get_random_int()‫نتیجه‬ ‫در‬‫که‬ ‫شده‬ ‫استفاده‬
‫گردد‬‫می‬ ‫بر‬ ‫تصادفی‬‫آدرس‬‫یک‬.
ASLR‫در‬mmap()
-‫تنظیمات‬‫تصادفی‬‫ی‬‫ساز‬mmap‫در‬ASLR،‫بسته‬‫به‬‫نده‬‫ز‬‫پردا‬‫د‬‫ر‬‫مو‬،‫استفاده‬‫در‬‫یرشاخۀ‬‫ز‬
‫مربوطه‬‫در‬‫شاخۀ‬arch‫ار‬‫ر‬‫ق‬‫خواهد‬‫گرفت‬.
‫تابع‬arch_pick_mmap_layout()‫پروسه‬ ‫هر‬‫ای‬‫ر‬‫ب‬‫ی‬‫مجاز‬ ‫حافظۀ‬‫ایجاد‬‫محض‬‫به‬
‫دهد‬‫می‬ ‫انجام‬‫ا‬‫ر‬‫مربوطه‬ ‫تنظیمات‬ ‫و‬ ‫شده‬ ‫زده‬‫صدا‬
‫پروس‬ ‫های‬‫امتر‬‫ر‬‫پا‬ ‫و‬ ‫ها‬‫فلگ‬ ‫برخی‬‫به‬ ‫بسته‬‫ۀ‬
،‫تابع‬‫این‬ ،‫شده‬ ‫اخوانده‬‫ر‬‫ف‬
mmap_legacy_base()‫یا‬‫و‬
mmap_base()‫نماید‬‫می‬ ‫اخوانی‬‫ر‬‫ف‬‫ا‬‫ر‬.
ASLR‫در‬mmap()
‫ب‬ ‫نشده‬‫تعریف‬‫پروسه‬‫این‬ ‫ای‬‫ر‬‫ب‬‫منابع‬‫از‬ ‫استفاده‬ ‫در‬‫محدودیتی‬ ‫که‬‫صورتی‬ ‫در‬‫همچنین‬ ‫و‬ ‫پروسه‬‫مورد‬ ‫در‬‫ی‬‫سازگار‬ ‫فلگ‬‫ی‬ ‫بررس‬ ‫با‬ ،‫ق‬‫فو‬‫تابع‬،‫اشد‬‫ا‬‫ر‬‫ی‬‫جار‬ ‫پروسۀ‬
‫ی‬‫سازگار‬‫پیش‬‫رعایت‬ ‫به‬‫ی‬‫نیاز‬ ‫که‬‫گیرد‬‫می‬ ‫نظر‬ ‫در‬ ‫جدید‬‫های‬ ‫پروسه‬ ‫جزو‬(‫ی‬‫ساز‬ ‫تصادفی‬‫جهت‬)‫داشت‬‫نخواهد‬.
ASLR‫در‬mmap()
‫که‬‫صورتی‬ ‫در‬،‫توابع‬‫این‬‫از‬‫هریک‬ ‫اخوانی‬‫ر‬‫ف‬‫صورت‬ ‫در‬‫بنا‬
‫تابع‬‫از‬ ،‫باشد‬‫ها‬‫آدرس‬‫ی‬‫ساز‬ ‫تصادفی‬‫به‬mmap_rnd()
‫شد‬ ‫خواهد‬ ‫استفاده‬‫منظور‬ ‫این‬‫ای‬‫ر‬‫ب‬.
ASLR‫در‬mmap()
‫ی‬‫ساز‬ ‫تصادفی‬mmap‫تابع‬ ‫در‬ ،mmap_rnd()‫ی‬‫ساز‬ ‫تصادفی‬‫در‬ ‫استفاده‬‫مورد‬ ‫تکنیک‬‫همان‬ ‫با‬ ‫و‬Stack(‫تکنیک‬get_random_int())‫شود‬‫می‬‫انجام‬.
‫های‬‫سیستم‬‫ای‬‫ر‬‫ب‬32،‫بیتی‬8‫های‬‫سیستم‬‫ای‬‫ر‬‫ب‬ ‫و‬‫شده‬ ‫تصادفی‬‫بیت‬64،‫بیتی‬28‫بیت‬.
‫بندی‬‫جمع‬ASLR
-ASLR‫در‬‫لینوکس‬‫پیاده‬‫ی‬‫ساز‬‫های‬‫مختلفی‬‫د‬‫ر‬‫دا‬‫که‬‫در‬‫کلیه‬‫پیاده‬‫ی‬‫ساز‬،‫ها‬‫فضای‬‫س‬‫ر‬‫آد‬‫برنا‬‫مه‬‫ها‬‫به‬
‫ت‬‫ر‬‫صو‬‫تصادفی‬‫انتخاب‬‫می‬‫شود‬.
-‫در‬‫تی‬‫ر‬‫صو‬‫که‬‫ل‬‫مسئو‬‫سیستم‬‫قصد‬‫استفاده‬‫از‬‫پیاده‬‫ی‬‫ساز‬‫های‬‫کامل‬‫تر‬ASLR‫ا‬‫ر‬‫داشته‬،‫باشد‬‫می‬
‫بایست‬‫وصله‬‫های‬‫امنیتی‬‫ائه‬‫ر‬‫ا‬‫شده‬‫توسط‬‫شرکت‬‫هایی‬‫نظیر‬PaX‫ا‬‫ر‬‫نصب‬‫نماید‬(‫که‬‫در‬‫اکثر‬‫مواقع‬‫این‬
‫چنین‬‫نیست‬).
-‫در‬ASLR‫پیش‬‫فرض‬،‫لینوکس‬‫س‬‫ر‬‫آد‬‫ی‬‫ار‬‫ز‬‫بارگ‬،‫پشته‬heap‫و‬mmap‫تصادفی‬‫ی‬‫ساز‬‫می‬‫شود‬.
-‫تصادفی‬‫ی‬‫ساز‬‫بر‬‫مبنای‬‫س‬‫ر‬‫آد‬،‫اولیه‬‫مان‬‫ز‬‫شن‬‫و‬‫ر‬‫بودن‬،‫سیستم‬‫تعداد‬‫سیکل‬‫های‬‫نده‬‫ز‬‫پردا‬‫و‬PID‫سه‬‫و‬‫پر‬
‫ی‬‫جار‬‫انجام‬‫می‬‫شود‬.
-‫ای‬‫ر‬‫ب‬‫اینکه‬‫اطالعات‬‫به‬‫ان‬‫ز‬‫می‬‫ی‬‫بیشتر‬‫غیر‬‫قابل‬‫پیش‬‫بینی‬،‫باشد‬‫از‬‫یک‬‫یتم‬‫ر‬‫الگو‬‫مختص‬‫ر‬MD4‫نیز‬
‫استفاده‬‫می‬‫شود‬.

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

ASLR