پایگاه دانش

حمله Session Hijacking چیست و چه انواعی دارد؟

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

Session Hijacking چیست؟

Session Hijacking یا سرقت نشست، یک نوع حمله سایبری است که در آن مهاجم با به‌دست آوردن شناسه نشست (Session ID) کاربر به حساب کاربری او دسترسی پیدا می‌کند. وقتی کاربر وارد یک وب‌سایت یا برنامه آنلاین می‌شود، یک نشست برای او ایجاد شده و اطلاعات احراز هویت در قالب یک شناسه نشست ذخیره می‌شود. این شناسه معمولاً در کوکی‌ها، URL یا حافظه مرورگر ذخیره می‌شود. اگر مهاجم بتواند به این شناسه دسترسی پیدا کند، می‌تواند خود را به‌جای کاربر جا بزند و به اطلاعات شخصی، پیام‌ها و حتی تراکنش‌های مالی او دسترسی یابد.

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

Session Hijacking

نحوه کارکرد حمله Session Hijacking

  1. جمع‌آوری اطلاعات (Reconnaissance):

در این مرحله مهاجم اطلاعات لازم درباره هدف و ساختار نشست‌ها را جمع‌آوری می‌کند. این شامل شناسایی وب‌سایت یا سرویس هدف، تحلیل Session IDها، کوکی‌ها و توکن‌ها و بررسی آسیب‌پذیری‌های احتمالی (مانند استفاده از HTTP به‌جای HTTPS) است. ابزارهایی مانند Nmap برای شناسایی پورت‌ها، Burp Suite برای تحلیل درخواست‌ها و پاسخ‌ها و Wireshark برای شنود ترافیک شبکه در این مرحله استفاده می‌شوند.

  1. شنود اطلاعات نشست (Sniffing):

مهاجم با استفاده از شنود شبکه، داده‌های نشست را از ترافیک شبکه استخراج می‌کند. این کار معمولاً در محیط‌های غیرامن مانند Wi-Fi عمومی انجام می‌شود. اگر داده‌ها رمزنگاری نشده باشند، Session ID یا کوکی‌های نشست به‌راحتی توسط مهاجم به‌دست می‌آید. ابزارهایی مانند Wireshark برای تحلیل بسته‌ها و Ettercap برای حملات Man-in-the-Middle استفاده می‌شوند.

  1. تحلیل نشست (Session Analysis):

در این مرحله مهاجم داده‌های به‌دست‌آمده از شنود را تحلیل می‌کند تا اطلاعات نشست مانند Session ID یا کوکی‌ها را شناسایی و بررسی کند. هدف از این تحلیل، شبیه‌سازی درخواست‌ها با استفاده از داده‌های سرقت‌شده و ارزیابی امکان سوءاستفاده از آن‌ها است. Burp Suite برای ویرایش و ارسال درخواست‌های HTTP و Postman برای شبیه‌سازی نشست‌ها به‌کار می‌روند.

  1. ربودن نشست (Hijacking the Session):

مهاجم پس از شناسایی Session ID، آن را در مرورگر خود جایگزین می‌کند تا به سیستم هدف دسترسی پیدا کند. این کار شامل ارسال درخواست‌های جعلی با استفاده از Session ID یا کوکی‌ها و گاهی تزریق اسکریپت‌های مخرب برای سرقت نشست (مانند حملات XSS) است. ابزارهایی مانند Cookie Editor برای ویرایش کوکی‌ها و OWASP ZAP برای اجرای حملات در این مرحله استفاده می‌شوند.

  1. دسترسی و سوءاستفاده (Exploitation):

پس از ربودن نشست، مهاجم به اطلاعات و منابع سیستم قربانی دسترسی پیدا می‌کند. این دسترسی می‌تواند شامل تغییر یا حذف داده‌ها، دسترسی به اطلاعات حساس و اجرای عملیات جعلی به‌جای قربانی باشد. برای این مرحله، ابزارهایی مانند Metasploit Framework برای بهره‌برداری از آسیب‌پذیری‌ها، SQLMap برای حملات ترکیبی با SQL Injection و BeEF برای کنترل مرورگر قربانی استفاده می‌شوند.

Exploitation

انواع روش‌های Session Hijacking

Application Level Hijacking

این نوع حمله در لایه نرم‌افزار و برنامه‌های کاربردی اتفاق می‌افتد. مهاجم با استفاده از روش‌هایی مانند سرقت کوکی‌ها (Cookie Hijacking) یا دسترسی به توکن‌های احراز هویت، کنترل نشست کاربر را به‌دست می‌گیرد. یکی از روش‌های رایج این حمله، استفاده از Cross-Site Scripting (XSS) است که مهاجم با تزریق کد مخرب، کوکی‌های کاربر را سرقت می‌کند. همچنین در برنامه‌های مبتنی بر API، مهاجم می‌تواند به توکن‌های احراز هویت دسترسی پیدا کند و از آن‌ها برای جعل هویت استفاده کند.

Network Level Hijacking

در این نوع حمله مهاجم از شنود ترافیک شبکه برای سرقت شناسه نشست کاربر استفاده می‌کند. این حملات معمولاً در شبکه‌های ناامن یا رمزنگاری‌نشده رخ می‌دهند. روش‌های متداول شامل Packet Sniffing و Man-in-the-Middle (MITM) است. در Packet Sniffing مهاجم با استفاده از ابزارهایی مانند Wireshark بسته‌های داده را شنود می‌کند. در حمله MITM، مهاجم بین کاربر و سرور قرار می‌گیرد و اطلاعات نشست را سرقت می‌کند. همچنین در Session Sidejacking مهاجم اطلاعات نشست را از طریق شنود شبکه به‌دست می‌آورد.

Cross-Site Scripted Session Hijacking

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

XSS

Session Fixation

در این نوع حمله مهاجم یک شناسه نشست (Session ID) مشخص را به قربانی اختصاص می‌دهد. سپس، قربانی با استفاده از همان شناسه نشست وارد سیستم می‌شود و مهاجم می‌تواند از همان نشست برای دسترسی به حساب کاربری قربانی استفاده کند. مهاجم ابتدا یک شناسه نشست ایجاد کرده و آن را از طریق یک لینک آلوده یا URL برای قربانی ارسال می‌کند. سپس، قربانی از همان شناسه استفاده می‌کند و مهاجم به‌راحتی نشست را تصاحب می‌کند.

Browser Session Hijacking

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

Physical Session Hijacking

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

Physical Session Hijacking

Session Replay Attacks

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

Cross-Site Request Forgery (CSRF)

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

Cross-Site Request Forgery (CSRF)

اقدامات پس از حمله Session Hijacking

  • خروج اضطراری از حساب‌ها

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

  • اطلاع‌رسانی به مسئولان امنیتی

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

  • بررسی و تحلیل نشست‌ها

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

  • ابطال شناسه‌های نشست (Session IDs)

شناسه‌های نشست جاری باید به‌سرعت ابطال شوند تا دسترسی مهاجم به سیستم قطع شود. این کار معمولاً از طریق تنظیمات سرور یا بازنشانی نشست‌ها انجام می‌شود.

Session IDs

  • اسکن و حذف بدافزارها

برای اطمینان از اینکه بدافزار یا ابزارهای جاسوسی در سیستم باقی نمانده‌اند، باید از نرم‌افزارهای ضدبدافزار استفاده کرد. اسکن کامل دستگاه‌ها و حذف هرگونه فایل مخرب ضروری است.

  • تقویت امنیت و بازنگری سیاست‌ها

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

چگونه از Session Hijacking پیشگیری کنیم؟

  1. استفاده از HTTPS

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

  1. اعتبارسنجی و احراز هویت قوی

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

  1. استفاده از شناسه‌های نشست امن (Secure Session IDs)

تولید شناسه‌های نشست به‌صورت تصادفی و پیچیده باعث می‌شود که پیش‌بینی یا جعل آن‌ها توسط مهاجمان دشوارتر شود. همچنین استفاده از کوکی‌های امن (HttpOnly و Secure) مانع از دسترسی اسکریپت‌های مخرب به این شناسه‌ها می‌شود.

Secure Session IDs

  1. محدودیت زمانی برای نشست‌ها

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

  1. جلوگیری از حملات XSS و CSRF

با استفاده از فیلترها و تنظیمات امنیتی مناسب، می‌توان از حملات Cross-Site Scripting (XSS) و Cross-Site Request Forgery (CSRF) که به سرقت نشست‌ها منجر می‌شوند، پیشگیری کرد. این شامل پاک‌سازی ورودی‌های کاربر و استفاده از توکن‌های CSRF است.

  1. مانیتورینگ و تحلیل نشست‌ها

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

جمع‌بندی…

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دیدگاه