ربودن نشست در عمل: چگونه مهاجمان نشست شما را میدزدند
این یک تئوری نیست؛ در واقعیت اتفاق میافتد pipelines، buildها و جلسات مرورگر. مهاجمان از تاکتیکهای مختلف دنیای واقعی برای انجام ربودن جلسه استفاده میکنند، از جمله:
- شنود کوکیهای ارسالی از طریق HTTP (بدون TLS)
- دزدیدن توکنهای دسترسی یا JWT ها در لاگها ذخیره میشود
- استفاده مجدد از توکنها یا کوکیها از محیطهای آزمایشی قدیمی
مثال: کوکی از طریق HTTP ارسال میشود
⚠️هشدار: این مثال انتقال ناامن کوکی را نشان میدهد.
بدون HTTPS، یک مهاجم MITM میتواند نشست را بدزدد و خود را به جای کاربر جا بزند.
مثال: توکن در لاگها نمایش داده میشود
⚠️توکنها را ثبت نکنید؛ مهاجمانی که به لاگهای CI دسترسی دارند میتوانند فوراً یک سرقت نشست انجام دهند.
خطاهای سطح کد که باعث ربودن جلسه میشوند
بیشتر حملات ربودن نشست با سوءاستفاده شروع نمیشوند؛ بلکه با کد بد شروع میشوند. در اینجا به مواردی که در را باز میکنند اشاره میکنیم:
اسرار هاردکد شده
⚠️رمزهای کدگذاریشده، تولید توکن را قابل پیشبینی میکنند.
نبود پرچمهای امن روی کوکیها
⚠️نه فقط HTTP، نه امن، نه همان سایتاین یک حملهی سرقت نشست (session hijack) است که در شرف وقوع است.
نسخه امنتر:
استفاده مجدد از توکن در محیطهای مختلف
- توکنهای ایجاد شده در محیطهای آزمایشی، در محیطهای آمادهسازی یا حتی تولید کپی میشوند.
- هیچ محدوده یا محیطی برای توکنها الزامآور نیست.
- جلسات منقضی نمیشوند و تغییر نمیکنند.
همه این الگوها مستقیماً امکان ربودن را فراهم میکنند.
CI/CD و Pipeline شکافهایی که خطر را تشدید میکنند
CI/CD اغلب آنچه را که توسعهدهندگان در کد محلی از دست میدهند، تقویت میکند. Pipelineبردارهای ربودن نشست مرتبط عبارتند از:
- به بیرون درز اجازه هدرها در لاگهای ساخت
- کلیدهای جلسه استاتیک ذخیره شده در .NS فایل ها commitتد به گیت
- استفاده مجدد از توکن بین pipeline مراحل
ریسک واقعی: توکن در لاگ CI چاپ شده است
⚠️توکنهای جلسه هرگز نباید چاپ یا تکرار شوند.
مدیریت ریسکپذیر .env
⚠️اگر این فایل لو برود، ممکن است تمام جلسات گذشته به خطر بیفتد.
ربودن نشست در برنامه متوقف نمیشود؛ بلکه از همه جا عبور میکند pipelineها و محیط ها.
جلوگیری از سرقت نشست (Session Hijacking) در گردشهای کاری توسعهدهندگان تعبیه شده است
برای جلوگیری از آدمربایی، پیشگیری باید در جریانهای کاری توسعه و ارائه گنجانده شود.
چک لیست پیشگیری:
- همیشه پرچمهای کوکی را تنظیم کنید: HttpOnly، Secure و SameSite
- هرگز توکنها یا شناسههای جلسه را ثبت نکنید
- استفاده از HTTPS در تمام محیطها (محلی، آزمایشی، عملیاتی)
- رمزها و کلیدهای جلسه را مرتباً تغییر دهید
- اطمینان حاصل کنید که توکنها به سرعت منقضی میشوند و نمیتوان دوباره از آنها استفاده کرد
- اتصال جلسات به ویژگیهای کلاینت (IP، User-Agent)
- توکنهای محدوده به ازای هر محیط (از توکنهای تولید در تست دوباره استفاده نکنید)
- از توکنهای دسترسی کوتاهمدت با مکانیسمهای بهروزرسانی استفاده کنید
- از رمزها یا کلیدهای رمزگذاری شده در کد منبع خودداری کنید
- اعتبارسنجی تمام منطقهای مربوط به جلسه در طول CI/CD pipelines
مثال CI امنتر:
جلوگیری از سرقت نشست به این معنی است که CI باید به خط دفاعی دوم شما تبدیل شود.
از باگ محلی تا تهدید زنجیره تأمین: تغییر به چپ با Xygeni
چیزی که به عنوان یک پیکربندی کوکی بد شروع میشود، در صورت عدم بررسی میتواند به یک نقض کامل تبدیل شود. ابزارهایی مانند شیگنی امکان پذیر ساختن:
- ردیابی جریان توکن جلسه از کد تا محیط عملیاتی
- تشخیص ویژگیهای کوکی از دست رفته در منبع
- برای یافتن اسرار اسکن کنید .NS، پیکربندیها یا گزارشها
- نظارت بر شیوههای ناامن جلسات در بستههای شخص ثالث
Xygeni به جلوگیری از تبدیل شدن مشکلات جلسات محلی به بردارهای حمله ربایش در سراسر زنجیره تأمین کمک میکند.
بستن در به روی هواپیماربایی
اگر به طور فعال از آن جلوگیری نکنید، دری را باز میگذارید. هر نشانه کوکی ناامن، توکن فاش شده و جلسه قدیمی، جای پایی برای مهاجمان است.
قابلیت جلوگیری از ربودن نشست (session hijacking) را در کدبیس خود جاسازی کنید و CI/CDجریانهای نشست را در محیطهای مختلف رصد کنید. از ابزارهایی مانند Xygeni برای تغییر مسیر به چپ و متوقف کردن مسیرهای ربودن نشست قبل از رسیدن به مرحله تولید استفاده کنید. جلسه را ایمن کنید، در غیر این صورت مهاجمان از آن علیه شما استفاده خواهند کرد.





