حمله جدول رنگین کمان یا Rainbow Table Attack روشی برای شکستن رمز عبور است که از یک جدول خاص (یک Rainbow Table) برای شکستن هش رمز عبور در پایگاه داده استفاده می کند.
شیوع حملات Rainbow Table به دلیل تکنیکی به نام “salting” بطور چشمگیری کاهش یافته است.
اصولا برنامهها، رمزهای عبور را در یک فایل متنی ساده ذخیره نمیکنند بلکه با استفاده از هش رمزگذاری میکنند. پس از اینکه کاربر رمز عبور خود را وارد کرد به هش تبدیل می شود و نتیجه با هش های ذخیره شده در سرور مقایسه می شود تا مطابقت پیدا کند. اگر مطابقت داشته باشند، کاربر احراز هویت می شود و می تواند به برنامه وارد شود.
خود Rainbow Table به یک جدول از پیش تعیین شده اشاره دارد که حاوی مقداری هش رمز عبور برای هر کاراکتر متن ساده استفاده شده در فرآیند احراز هویت است. اگر هکرها به لیست هش رمزهای عبور دسترسی پیدا کنند، می توانند خیلی سریع با یک Rainbow Table همه رمزهای عبور را بشکنند.
شیوع حملات Rainbow Table به دلیل تکنیکی به نام “salting” بطور چشمگیری کاهش یافته است. salting یک تکنیک مدرن است که برای خنثی کردن حملات Rainbow Table استفاده می شود. این تکنیک شامل اضافه کردن یک مقدار تصادفی اضافی به هر رمز عبور هش شده برای ایجاد یک مقدار هش متفاوت جدید است.
اکثر سیستمهای مدرن امروزی احراز هویت رمز عبور شامل salting هستند که این امر تعداد حملات موفقیتآمیز Rainbow Table را به میزان قابل توجهی کاهش داده است.
اگرچه تکنیک salting رایج است اما برخی از توسعهدهندگان هنوز از آن استفاده نمیکنند و این امر آنها را در معرض خطر حمله Rainbow Table قرار میدهد.
حمله Rainbow Table چگونه کار می کند
هکرها ابتدا باید به هش ها دسترسی پیدا کنند تا حملات جدول رنگین کمانی(Rainbow Table) را انجام دهند. خود پایگاه داده ی رمزهای عبور ممکن است امنیت ضعیفی داشته باشد یا ممکن است هکرها بتوانند به Active Directory دسترسی پیدا کنند. برخی هم ممکن است از طریق تکنیک های فیشینگ به پایگاه داده ی رمزهای عبور دسترسی داشته باشند. علاوه بر همه این تکنیکها، میلیونها و میلیونها هش رمز عبور فاش شده در دارک وب وجود دارد که در دسترس هکرها است.
هنگامی که هکرها هش رمز عبور را دارند، Rainbow Table برای کمک به رمزگشایی آن ها استفاده می شود. البته تا زمانی که هش رمز عبور شامل تکنیک “salting” نباشد (در بالا توضیح داده شد) می توانند رمزهای عبور رمزگذاری شده را به راحتی به متن ساده ترجمه کنند.
نمونه هایی از حملات Rainbow Table
در زیر دو نمونه از نحوه وقوع حملات جدول رنگین کمان(Rainbow Table) را فهرست کردهایم:
-هکر یک برنامه تحت وب را با تکنیک هش رمز عبور منسوخ شده و امنیت ضعیف شناسایی می کند. هکر هش رمز عبور را می دزدد و با استفاده از Rainbow Table رمز عبور کاربر برنامه را رمزگشایی می کند.
-هکر یک آسیب پذیری را در Active Directory یک شرکت شناسایی و به هش رمز عبور دسترسی پیدا می کند. و هنگامی که لیستی از هش ها را داشت یک حمله Rainbow Table را برای رمزگشایی آنها اجرا می کند.
نحوه محافظت در برابر حمله Rainbow Table
اگر از این دستورالعمل ها پیروی کنید، محافظت از خود در برابر حملات Rainbow Table نسبتاً ساده است:
-حذف رمزهای عبور: ساده ترین راه اطمینان برای جلوگیری از حملات مبتنی بر رمز عبور، حذف رمزهای عبور است. بدون داشتن لیستی از هش های رمزهای عبور، هیچ راهی برای اجرای حملات Rainbow Table وجود ندارد. درباره احراز هویت بدون رمز عبور بیشتر بدانید و مهم ترین برنامه هایتان را با آن ایمن نگه دارید.
-از تکنیک salting استفاده کنید: رمزهای عبور هش شده هرگز نباید بدون استفاده از این روش ذخیره شوند. این امر رمزگشایی رمز عبور را دشوارتر می کند. با این حال، توصیه می کنیم رمز عبور الفبایی و عددی را به طور کلی حذف کنید.
-از روش های بیومتریک استفاده کنید: استفاده از روش بیومتریک احراز هویت، انجام حمله Rainbow Table را برای مهاجم دشوار و حتی غیرممکن می کند. حملات Rainbow Table در برابر رمزهای عبور بیومتریک کار نمی کنند.
-بر روی سرورهای خود نظارت کنید: اکثر نرمافزارهای امنیتی تحت سرور، در برابر حملات به اطلاعات حساس نظارت میکنند. به طور خودکار میتوانند مزاحمان را قبل از اینکه بتوانند پایگاه داده رمز عبور را پیدا کنند شناسایی نموده و به دام بیاندازند.
-از الگوریتم های هش منسوخ شده استفاده نکنید: هکرها به دنبال برنامه ها و سرورهایی می گردند که از الگوریتم های هش رمز عبور منسوخ شده مانند MD5 و SHA1 استفاده می کنند. اگر برنامه شما از هر یک از این الگوریتم ها استفاده کند، خطر حملات Rainbow Table به میزان قابل توجهی افزایش می یابد.
منابع:
beyondidentity.com
cyberhoot.com
medium.com