امروزه که تکنولوژی و ارزهای دیجیتال به سرعت در حال رشد هستند، حمله تکرار (Replay Attack) به یک چالش بزرگ امنیتی تبدیل شده‌ است. این مدل از حملات که در آنها تراکنش‌های مالی یا داده‌های معتبر دوباره مورد استفاده واقع می‌شوند، می‌توانند به امنیت داده‌ها و معاملات مالی آسیب وارد کنند. در این مقاله به بررسی چگونگی کارکرد حمله تکرار (Replay Attack)، نمونه‌هایی از انواع آن و روش‌های مختلف برای مقابله با این نوع حملات می‌پردازیم. درک این مسائل نه تنها برای فناوران و توسعه‌دهندگان بلاکچین، بلکه برای کاربران عادی و سازمان‌هایی که به دنبال حفظ امنیت دارایی‌های دیجیتال خود هستند نیز از اهمیت قابل توجهی برخوردار می‌باشد.

حمله تکرار (Replay Attack) نوعی حمله سایبری است که در آن مهاجم یک پیام یا تراکنش معتبر را که قبلاً بین دو طرف مبادله شده است، رهگیری کرده و سپس آن را مجدداً ارسال می‌کند. هدف از این کار می‌تواند دستیابی به اهداف مختلفی از جمله انجام تراکنش‌های تکراری، دسترسی غیرمجاز به اطلاعات و ایجاد اختلال در سیستم باشد.

حمله تکرار یا حمله بازپخش چیست؟ تعریف ریپلای اتک Replay) Attack)

در حمله تکرار، مهاجم ابتدا یک ارتباط یا تراکنش قانونی را رهگیری می‌کند. سپس داده‌های این ارتباط را در زمانی دیگر بازپخش می‌کند. این عمل می‌تواند باعث شود که سیستم مقصد تصور کند که یک ارتباط یا تراکنش جدید و قانونی در حال انجام است. برای مثال، در یک تراکنش بانکی، مهاجم می‌تواند پیام درخواست انتقال وجه را رهگیری کرده و مجدداً ارسال کند تا انتقال وجه دوباره انجام شود.

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

یک مثال کاربردی در مورد ریپلای اتک Replay Attack

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

انواع حمله تکرار یا ریپلای اتک Replay Attack

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

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

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

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

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

حمله تکرار انتخابی (Selective Replay Attack)

در دنیای ارز دیجیتال، امنیت تراکنش‌ها و اطلاعات از اهمیت بالایی برخوردار است. حملات تکرار می‌توانند به شدت به سیستم‌های ارز دیجیتال آسیب برسانند و باعث از دست رفتن سرمایه کاربران شوند. از آنجایی که تراکنش‌های ارز دیجیتال به صورت دیجیتالی انجام می‌شوند، حملات تکرار می‌توانند به راحتی باعث انجام تراکنش‌های تکراری و غیرمجاز شوند. در این راستا می‌توان به موارد زیر هم اشاره داشت:

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

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

در سال ۲۰۱۷، بیت ‌کوین کش از بیت‌ کوین جدا شد. در این فرایند، برخی از کاربران با مشکل حملات تکرار مواجه شدند. مهاجمان می‌توانستند تراکنش‌های انجام شده در شبکه بیت ‌کوین را در شبکه بیت ‌کوین کش بازپخش کنند و بالعکس که این امر باعث ایجاد مشکلات جدی در امنیت تراکنش‌ها شد.

پس از هک DAO در سال ۲۰۱۶، اتریوم به دو شبکه اتریوم و اتریوم کلاسیک تقسیم شد. در این هارد فورک نیز برخی از کاربران با حملات تکرار مواجه شدند. مهاجمان می‌توانستند تراکنش‌های انجام شده در شبکه اتریوم را در شبکه اتریوم کلاسیک بازپخش کنند و بالعکس که این موضوع منجر به ایجاد موارد جدی در امنیت تراکنش‌ها شد.

هارد فورک اتریوم کلاسیک (ETC)

برای جلوگیری از حملات تکرار، می‌توان از روش‌های مختلفی استفاده کرد که در بخش زیر به این موارد پرداخته‌ایم:

  • استفاده از nonce :nonce یک عدد تصادفی است که در هر تراکنش به صورت یکبار مصرف استفاده می‌شود. با افزودن nonce به هر تراکنش، مهاجم نمی‌تواند تراکنش قبلی را به سادگی تکرار کند، چرا که nonce جدیدی برای هر تراکنش تولید می‌شود.
  • مهر زمانی: اضافه کردن مهر زمانی به هر تراکنش، امکان تشخیص تراکنش‌های تکراری را فراهم می‌کند. با مقایسه زمان انجام تراکنش با زمان فعلی، می‌توان تراکنش‌های قدیمی را شناسایی و رد کرد.
  • امضای دیجیتال: استفاده از امضای دیجیتال برای تأیید اصالت تراکنش‌ها ضروری است. با استفاده از امضای دیجیتال، می‌توان اطمینان حاصل کرد که تراکنش توسط فرستنده واقعی ارسال شده و در طول مسیر دستکاری نشده است.
  • مکانیزم‌های اجماع: مکانیزم‌های اجماع مانند اثبات کار (Proof of Work) و اثبات سهام (Proof of Stake) با ایجاد یک توافق جمعی در مورد وضعیت بلاکچین، به جلوگیری از حملات تکرار کمک می‌کنند.
  • استفاده از توکن‌های یکبار مصرف: در برخی سیستم‌ها، از توکن‌های یکبار مصرف برای احراز هویت استفاده می‌شود. این توکن‌ها پس از استفاده و مصرف باطل می‌شوند و از این طریق از تکرار آنها جلوگیری می‌شود.
  • سیستم‌های تشخیص نفوذ: استفاده از سیستم‌های تشخیص نفوذ (IDS) می‌تواند به شناسایی تلاش‌های مهاجمان برای انجام حملات تکرار کمک کند. این سیستم‌ها با تحلیل ترافیک شبکه، الگوهای غیرعادی را شناسایی کرده و هشدار می‌دهند.
  • بروزرسانی‌های نرم‌افزاری: همیشه از آخرین نسخه نرم‌افزارهای کیف پول و صرافی‌های خود استفاده کنید. توسعه‌دهندگان به طور مداوم در حال بهبود امنیت نرم‌افزارهای خود هستند و با نصب آخرین نسخه، از آخرین ویژگی‌های امنیتی خود اطمینان حاصل کنید.
  • آموزش کاربران: آگاهی کاربران از حملات تکرار و روش‌های جلوگیری از آنها بسیار مهم است. با آموزش کاربران در مورد خطرات این نوع حملات، می‌توان از وقوع بسیاری از آنها جلوگیری کرد.

پیامدهای حملات تکرار در دنیای ارز دیجیتال می‌تواند بسیار شدید باشد. این حملات می‌توانند باعث از دست رفتن سرمایه کاربران، کاهش اعتماد به سیستم‌های ارز دیجیتال و ایجاد مشکلات جدی در امنیت تراکنش‌ها شوند. همچنین، این حملات می‌توانند به افزایش هزینه‌های امنیتی برای توسعه‌دهندگان و مدیران سیستم‌ها منجر گردند. مثلاً:

  • از دست دادن دارایی‌ها: بزرگ‌ترین خطر حمله تکرار، از دست دادن دارایی‌های کاربران است.
  • کاهش اعتماد: حملات تکرار می‌توانند به اعتماد کاربران به یک ارز دیجیتال یا پلتفرم بلاکچین آسیب بزنند.
  • اختلال در عملکرد شبکه: حملات تکرار می‌توانند باعث اختلال در عملکرد شبکه و کاهش سرعت تراکنش‌ها شوند.
پیامدهای حمله تکرار یا حمله بازپخش Replay Attack در دنیای ارز دیجیتال چیست؟

حمله تکرار یا بازپخش (Replay Attack) یکی از تهدیدات جدی در دنیای دیجیتال و به ویژه در ارزهای دیجیتال است. این حمله می‌تواند باعث از دست رفتن سرمایه و ایجاد مشکلات جدی در امنیت تراکنش‌ها شود. با این حال، با استفاده از روش‌های امنیتی مناسب می‌توان از وقوع این حملات جلوگیری کرد و امنیت سیستم‌ها را افزایش داد.