حمله دیکشنری (Dictionary Attack) چیست؟

حمله دیکشنری (Dictionary Attack) چیست؟

  • clock زمان مطالعه: 6.5:15 دقیقه
  • calendar انتشار: 14 شهریور 1402
آنچه در این مقاله میخوانید

    هنگامی که صحبت از بازارهای مالی و اکانت‌هایی که با صرافی‌های رمزارزی و دارایی‌های دیجیتالی ارتباط دارند به میان می‌آید، اولین چیزی که در فضای مجازی ذهن کاربران را به خود مشغول می‌سازد، به مسئله امنیت سایبری و حفاظت از اطلاعات و دارایی‌های خود در این حساب‌های کاربری مربوط می‌شود. امروزه هکرها و مهاجمان سایبری به منظور دستیابی به اهداف پلید خود از روش‌های مختلفی بهره می‌گیرند که یکی از آن‌ها تهاجمی است که به نام حمله دیکشنری (Dictionary Attack) معروف می‌شود. بهترین راه برای ارتقا سطح امنیت حساب‌های کاربری در برابر چنین حملاتی، به آشنایی کامل با آن‌ها ارتباط دارد. به طور کلی، حمله دیکشنری نوعی خاص از زیرمجموعه حملات Brute Force به شمار می‌رود و همچون حمله جدول رنگین کمانی (Rainbow Table)، تلاش مهاجم بر روی این مسئله متمرکز شده تا با توسل به یک بانک داده که در این روش همان دیکشنری یا لغت نامه است، رمز عبور اکانت شما را به دست آورده و دارایی‌های دیجیتالی موجود در حساب کاربری یا اطلاعات شخصی شما را به یغما ببرد!

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

    آشنایی با حمله دیکشنری (Dictionary Attack)

    حمله دیکشنری چیست

    قبل از آن که تعریفی از حمله دیکشنری ارائه کنیم، در قدم اول باید ریشه این نوع خاص از حملات هکری را مورد بررسی قرار دهیم. ریشه ساختاری حمله دیکشنری به حملات بروت فورس (Brute Force) باز می‌گردد. حملاتی که در آن تمرکز مهاجم بر روی امتحان ترکیب‌های ممکن برای یافتن گذرواژه قرار دارد که در نهایت با انجام آزمون و خطاهای مختلف اطلاعات مورد نیاز برای لاگین و وارد شدن به حساب‌های کاربری را به دست می‌آورد. عموما هکران و مهاجمان سایبری برای رسیدن به چنین اهدافی از بانک‌های اطلاعاتی مختلف کمک می‌گیرند تا روش کار را برای خود راحت‌تر کرده و مدت زمان مورد نیاز برای به دست آوردن رمز عبور را به حداقل برسانند. یکی از این بانک‌های اطلاعاتی، دیکشنری‌ها و لغت نامه‌ها هستند.
    احتمالا با شنیدن این جمله کمی متعجب شده باشید؛ اما واقعیت ماجرا از این قرار است که ما عموما عادت داریم از نام یکی از اعضای خانواده، نام حیوان مورد علاقه و حتی نام کشور یا شهر به عنوان رمزعبور در حساب‌های کاربری خود استفاده کنیم. وجود چنین تمایلی در انسان‌ها سبب شده تا هکران هوشمندانه عمل کرده و به سراغ دایرة‌المعارف‌ها بروند. قطعا در این لغت نامه‌ها اشاراتی به این کلمات ساده و معنی آن‌ها شده است. دقیقا به علت استفاده از لغت نامه‌ها و دایرة‌المعارف‌ها در این روش هک است که سبب شده به حمله دیکشنری معروف گردد. حمله دیکشنری به لحاظ سرعت در مقایسه با سایر روش‌های هک مثل حملات Sandwich Attack، سرعت خوبی دارد و علت آن به این مسئله مربوط می‌شود که حمله دیکشنری، احتمالات کوچک و بزرگ کردن حروف، بررسی احتمالات موجود یا استفاده همزمان چند کلمه در کنار هم را مورد بررسی قرار نمی‌دهد، بلکه عینا از کلماتی استفاده می‌کند که برای آن تعریف شده است.

    اگر حمله دیکشنری شامل احتمالات نیز می‌بود (مثل ترکیب حروف بزرگ و کوچک)، به آن حمله دیکشنری گفته نمی‌شد، بلکه حمله بروت فورس (Brute Force) نام می‌گرفت. البته لازم به ذکر است که در حمله دیکشنری الزاما از واژه‌های یک لغت نامه استفاده نمی‌شود و می‌توان به جای آن از مجموعه کلمات دیگری که احتمال دارد کاربران به عنوان پسورد از آن‌ها استفاده کنند نیز بهره گرفت. ناگفته نماند حمله دیکشنری صرفا برای رمزگشایی رمز عبورهای ساده کاربرد داشته و در صورتی که رمز انتخابی شما قدرتمند و پیچیده باشد، هکران نمی‌توانند با استفاده از حملات دیکشنری به رمزعبور شما دسترسی پیدا کنند.

    حمله دیکشنری چگونه انجام می‌شود؟

    نحوه حمله دیکشنری

    در حمله دیکشنری، مهاجم سایبری در قدم اول باید به تهیه یک لیست از پسوردها و رمزعبورهای محتمل دست پیدا کند که یا شخصا این لیست را تنظیم کرده و از رمزهای عبور ساده‌ای که در جدول رنگین کمانی استفاده می‌کند یا به سراغ لغت نامه‌ها و دایرة‌المعارف‌ها می‌رود. پس از دستیابی به چنین لیستی، مرحله چک کردن هش (Hash) آغاز می‌شود و هش کلمات موجود در این لیست با هش ذخیره شده در سیستم هدف چک می‌شود تا در نهایت هر دو این هش‌ها با هم برابر شوند که چنین مسئله‌ای به معنای مشابه بودن رمز عبور استفاده شده و شکستن حریم‌های امنیتی حساب‌ کاربری است. البته مجددا یادآوری می‌کنیم که در حمله دیکشنری، هکران صرفا به کلمات موجود در یک لغت نامه بسنده نمی‌کنند و رمزهای معمول و ساده موجود در دنیای فناوری اطلاعات نظیر 12345678، Password، 7654321، 122333 و غیره نیز در این لیست جای می‌گیرند.
    کلمات مورد استفاده در حمله دیکشنری از کشوری به کشور دیگر متفاوت بوده و اگر تارگت و هدف هکر یک کاربر ایرانی باشد، در انجام چنین حمله‌ای حتما به سراغ لیست اسامی که در ایران بسیار مورد استفاده قرار می‌گیرد، خواهد رفت. علاوه بر اسامی اشخاص، اسامی تیم‌های فوتبالی، آثار تاریخی مشهور، کلمات مرتبط با فرهنگ خاص یک کشور و مواردی از این دست گزینه‌های احتمالی بعدی این هکر خواهد بود. احتمالا با مطالعه این مطالب چنین تصور خواهید کرد که با توجه به وجود هزاران احتمال و واژه در این روش، چنین حمله‌ای روزها و ماه‌ها به طول خواهد انجامید. متاسفانه تصوری کاملا اشتباه دارید و هکران برای حمله دیکشنری از روش تست دستی کمک نمی‌گیرند، بلکه با استفاده از ابزارهای ویژه Brute Force این رمزهای احتمالی را مورد آزمون و خطا قرار می‌دهند.

    مروری بر هش (Hash)

    در لابه‌لای توضیحاتی که در ارتباط با چگونگی انجام حمله دیکشنری داشتیم از کلمه هش (Hash) استفاده شد. اگر یک تریدر علاقه‌مند به مطالعه در ارتباط با نحوه عملکرد شبکه‌های بلاک چینی باشید، حتما تاکنون مباحثی در ارتباط با هش ریت و به طور کلی هشینگ در بلاک چین شنیده‌اید؛ اما جالب است بدانید که هش صرفا به دنیای کریپتوکارنسی منحصر نبوده و سال‌ها قبل‌تر از ظهور دنیای ارز دیجیتال نیز از این واژه استفاده می‌شده است. هنگامی که ما یک رمز عبور برای حساب کاربری خود در شبکه‌های اجتماعی یا وب‌سایت‌ها انتخاب می‌کنیم، این رمز عبور انتخابی به همان شکل در پایگاه داده سیستم مورد نظر ذخیره نمی‌شود، بلکه با استفاده از فرمول‌های پیچیده ریاضی به صورت کدنگاری شده درآمده و این کد است که در سیستم ذخیره می‌شود. وب‌سایت‌ها و ایمیل‌ها برای اینکه رمزهایی با ابعاد و حجم‌های مختلف را به یک کد رشته عددی با اندازه ثابت تبدیل کنند، از توابع هش کمک می‌گیرند؛ به عنوان مثال هش ایجاد شده برای کلمه «Ehsan» بسیار متفاوت‌تر از هش کلمه «ehsan» یا «ehSan» خواهد بود.

    مقایسه حمله دیکشنری و حمله Brute Force

    مقایسه حمله دیکشنری و حمله Brute Force

    همان طور که گفته شد، حمله دیکشنری نوعی از حملات Brute Force به شمار می‌رود و این بدان معنا نیست که این دو حمله سایبری دارای ماهیت کاملا یکسانی هستند؛ بلکه حمله دیکشنری در حمله Brute Force خلاصه شده و صرفا جزئی از آن به شمار می‌رود. در حملات Brute force، آنچه که اهمیت دارد، قدرت محاسباتی رایانه فرد مهاجم است و در طول حمله، به طور کاملا خودکار و تصادفی ترکیبی از اعداد، حروف و نمادها وارد می‌شوند تا در نهایت رمزعبور حساب کاربری هدف را در هم شکند. جالب توجه است که حملات Brute force در دو حالت آفلاین و آنلاین انجام می‌گیرند. 

    با توجه به وجود میلیون‌ها احتمال و ترکیب، میزان موفقیت حملات اولیه بروت فورس در مقایسه با حمله دیکشنری بسیار کمتر است و در اصل حملات دیکشنری را می‌توان نوع کارآمدتر حملات بروت فورس به شمار آورد. طبیعتا بررسی خودکار 1022000 واژه موجود در لغت نامه (به صورت خودکار)، بسیار کارآمدتر از بررسی میلیون‌ها ترکیب احتمالی است؛ اما نقطه ضعف حملات دیکشنری در این مسئله خلاصه شده که حمله یاد شده صرفا برای رمزهای ساده کاربرد دارد و اگر کاربری از رمزهای پیچیده استفاده کرده باشد، استفاده از حملات بروت فورس بهترین گزینه برای مهاجم سایبری به شمار خواهد رفت.

    تقویت امنیت اکانت در برابر حمله دیکشنری

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

    •    انتخاب یک رمز قدرتمند: انتخاب یک رمز ساده و حاوی یک کلمه‌ دقیقا همان چیزی است که حساب کاربری شما را در معرض خطر انجام حمله دیکشنری قرار می‌دهد. به خاطر داشته باشید که طول یک کلمه چیزی نیست که آن را تبدیل به یک رمز قدرتمند می‌کند و به لحاظ زمانی هیچ تفاوتی میان یافتن رمز عبور «Car» با «Psychology» وجود ندارد! ترکیبی از اعداد، نمادها، حروف و همچنین تعویض حروف به کوچک و بزرگ از جمله راه‌حل‌هاییست که شما را به یک رمز عبور قوی می‌رساند.
    •    استفاده از احراز هویت دو مرحله‌ای: پس از انتخاب یک رمز قدرتمند، فعال نمودن احراز هویت چند عاملی بهترین کاریست که هر کاربر برای حفظ امنیت دارایی‌ها و اطلاعات خود به راحتی می‌تواند انجام دهد. وقتی احراز هویت دو مرحله‌ای را فعال می‌کنید، در واقع یک لایه امنیتی دیگر بعد از رمز عبور عادی خود قرار می‌دهید که برای عبور از این لایه امنیتی حتما باید کد منحصربه‌فرد ارسال شده به شماره تلفن و آدرس ایمیل را وارد کنید تا وارد حساب کاربری خود شوید. استفاده از سوالات امنیتی نیز می‌تواند گزینه خوبی برای ارتقا سطح امنیت حساب کاربری‌تان باشد.
    •    عدم استفاده از WiFi عمومی: استفاده از وای‌فای‌های عمومی غیرمعتبر دقیقا همان چیزی است که آسیب‌پذیری‌های امنیتی بسیار جدی را ایجاد می‌کنند و عملا فقدان فایروال و سایر ویژگی‌های امنیتی سبب می‌شود تا ردیابی IPها و فعالیت‌های انجام یافته از سوی کاربران برای مهاجمان سایبری بسیار راحت‌تر گردد. در صورت استفاده از وای فای عمومی، فعال کردن VPN می‌تواند بهترین راه‌حل برای پنهان نمودن IP شما باشد و به هنگام استفاده از ابزارهای تغییردهنده IP، کلیه داده‌های ارسالی و دریافتی شما رمزنگاری می‌شوند.
    •    استفاده از آنتی ویروس معتبر: نرم‌افزارهای آنتی ویروس نقش عمده‌ای در تقویت امنیت اطلاعات شخصی و همچنین داده‌های آنلاین ایفا می‌کنند. آنتی ویروس‌های معتبر با اعلان‌های مرتبط با احتمال انجام حملات دیکشنری و تهدیدات سایبری به شما هشدار می‌دهند.

    حمله دیکشنری؛ حمله‌ای مبتکرانه در برابر امنیت اطلاعات حساب‌های کاربری

    حمله‌ای مبتکرانه در برابر امنیت اطلاعات حساب‌های کاربری

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

    سوالات متداول

    منظور از حمله دیکشنری (Dictionary Attack) چیست؟

    در این روش، مجرمان سایبری از لغت‌نامه‌ها برای حدس زدن رمزعبور حساب‌های کاربری کمک می‌گیرند.

    فرآیند انجام یک حمله دیکشنری چقدر به طول می‌انجامد؟

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

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

    خیر، برای چنین کاری اصولا باید از حمله دیکشنری ترکیبی (که ترکیبی از حمله دیکشنری ساده و حمله Brute force است) کمک گرفت.