Stateful inspection که به عنوان فیلترینگ بسته پویا نیز شناخته میشود، یک فناوری فایروال است که بر وضعیت اتصالات فعال نظارت کرده و از این اطلاعات برای تعیین اینکه کدام بستههای شبکه اجازه عبور از فایروال را دارند استفاده میکند.
Stateful inspection معمولاً به جای بازرسی بدون حالت (یا فیلتر استاتیک بسته) استفاده میشود و برای پروتکل TCP (کنترل انتقال) و پروتکلهای مشابه مناسب است، اگرچه میتواند از پروتکلهایی مانند پروتکل UDP (دیتاگرام کاربر) نیز پشتیبانی کند.
Stateful inspection یک فناوری فایروال شبکه است که برای فیلتر کردن بستههای داده براساس وضعیت و محتوا استفاده میشود.
تکنولوژیهای نرم افزار نقطه بازرسی، این تکنیک را در اوایل دهه 1990 برای رسیدگی به محدودیتهای بازرسی مستقل از وضعیت، توسعه داد. از آن زمان Stateful inspection به عنوان یک استاندارد صنعتی معرفی شد و اکنون یکی از رایجترین فناوریهای فایروال مورد استفاده است.
Stateful inspection عمدتاً در لایههای انتقال و شبکه مدل OSI، برای نحوه ارتباط برنامهها از طریق شبکه عمل میکند، اگرچه میتواند ترافیک لایه برنامه را البته اگر فقط در حد محدودی باشد نیز بررسی کند.
فیلتر کردن بستهها بر اساس اطلاعات وضعیت و محتوایی است که فایروال از بستههای یک Session به دست میآورد:
- State یا وضعیت اتصال، همانطور که در بستههای Session مشخص شده است. به عنوان مثال، در TCP، وضعیت توسط پرچمهای خاصی مانند SYN، ACK و FIN نشان داده میشود. فایروال اطلاعات وضعیت را در یک جدول ذخیره کرده و اطلاعات را به طور منظم بهروز میکند.
- Context اطلاعاتی مانند آدرسها و پورتهای پروتکل اینترنت مبدا و مقصد، تعداد دنبالهها و انواع دیگر متادادهها. فایروال همچنین اطلاعات محتوا را ذخیره کرده و مرتباً آن را بهروز میکند.
با ردیابی اطلاعات وضعیت و محتوا، Stateful inspection میتواند نسبت به روشهای قبلی ایمنسازی اطلاعات، امنیت بیشتری را ارائه کند.
فایروال Stateful ترافیک ورودی را در چندین لایه پشته شبکه بررسی کرده و کنترل دقیقتری بر نحوه فیلتر کردن ترافیک دارد. همچنین فایروال میتواند بستههای ورودی و خروجی را با دادههای Session ذخیره شده، مقایسه نماید تا بتواند تلاشهای ارتباطی را شناسایی کند.
بازرسی Stateful و Stateless چیست؟
بازرسی Stateful تا حد زیادی جایگزین بازرسی Stateless که یک فناوری قدیمی بود و فقط هدرهای بسته را بررسی میکرد، شده است.
فایروال Stateless از قوانین از پیش تعریف شده برای تعیین اینکه آیا یک بسته مجاز است یا باید رد شود استفاده میکند. و تنها به اطلاعات پایهای مانند آدرسهای IP مبدا و مقصد و شماره پورت متکی است و هرگز پیشینه هدر بسته را نگاه نمیکند، و در نتیجه نفوذ مهاجمان به محیط را آسانتر میکند.
به عنوان مثال، یک مهاجم میتواند دادههای مخرب را از طریق فایروال به سادگی و با نشان دادن “Reply” در هدر ارسال کند.
بازرسی Stateful میتواند اطلاعات بسیار بیشتری را در مورد بستههای شبکه کنترل کند و تشخیص تهدیدهایی که توسط فایروال Stateless امکانپذیر نیست را ممکن سازد.
فایروال Stateful به جای اینکه هر بسته را به عنوان یک موجودیت مجزا در نظر بگیرد (مانند کاری که فایروال Stateless انجام میدهد)، محتوا را در تمام جلسات جاری خود حفظ میکند. با این حال، یک فایروال Stateful به منابع پردازش و حافظه بیشتری برای حفظ دادههای جلسه نیاز دارد و در برابر انواع خاصی از حملات، از جمله حملات DoS، مستعدتر است.
با بازرسی Stateless، عملیات جستجو تأثیر بسیار کمتری بر منابع پردازنده و حافظه دارد و در نتیجه حتی با وجود ترافیک سنگین عملکرد سریعتری خواهد داشت.
گفته میشود یک فایروال Stateless بیشتر به طبقهبندی بستههای داده علاقهمند است تا بازرسی آنها، و با هر بسته بهصورت مجزا و بدون محتوای جلسه که با بازرسی Stateful همراه است، رفتار میکند. این مساله باعث کاهش قابلیت فیلترینگ و آسیبپذیری بیشتر در برابر انواع دیگر حملات شبکه میشود.
بازرسی Stateful چگونه کار میکند؟
بازرسی Stateful روی بستههای ارتباطی در یک بازه زمانی نظارت کرده و بستههای ورودی و خروجی را بررسی میکند.
فایروال، بستههای خروجی که انواع خاصی از بستههای ورودی را درخواست میکنند، ردیابیکرده و تنها به آن بستههای ورودی اجازه عبور میدهد که پاسخ مناسبی داشته باشند.
یک فایروال Stateful بر تمام Sessionها نظارت کرده و همه بستهها را تأیید میکند، اگرچه فرآیند مورد استفاده بسته به فناوری فایروال و پروتکل ارتباطی مورد استفاده، میتواند متفاوت باشد.
به عنوان مثال، هنگامی که پروتکل TCP است، فایروال اطلاعات وضعیت و محتوای یک بسته را گرفته و آن را با دادههای Session موجود مقایسه میکند. اگر یک ورودی منطبق از قبل وجود داشته باشد، بسته مجاز است از فایروال عبور کند. اگر مطابقت پیدا نشد، بسته باید تحت بررسی خاصی قرار گیرد.
در آن مرحله، اگر بسته الزامات خط مشی را برآورده کند، فایروال فرض میکند که آن متعلق به یک اتصال جدید است و دادههای Session را در جداول مناسب ذخیره کرده و سپس به بسته اجازه عبور میدهد. اگر بسته الزامات خط مشی را برآورده نکند، رد خواهد شد.
این فرآیند برای UDP و پروتکلهای مشابه کمی متفاوت خواهد بود. برخلاف TCP، پروتکل UDP یک پروتکل بدون اتصال است، بنابراین فایروال نمیتواند از پرچمهای حالتی TCP استفاده کند.
در عوض، باید از اطلاعات محتوا، مانند آدرسهای IP و شماره پورت، به همراه دیگر دادهها استفاده کند. در واقع، فایروال یک رویکرد شبه Stateful برای تقریب آنچه میتواند با TCP به دست آورد، اتخاذ میکند.
در فایروالی که از بازرسی Stateful استفاده میکند، مدیر شبکه میتواند پارامترها را برای رفع نیازهای خاص تنظیم کند. به عنوان مثال، یک مدیر ممکن است ورود به سیستم را فعال ، انواع خاصی از ترافیک IP را مسدود و یا تعداد اتصالات به یا از یک رایانه را محدود کند.
در یک شبکه معمولی، پورتها بسته میشوند، زمانی که یک بسته ورودی درخواست اتصال به یک پورت خاص را داشته باشد آن پورت باز میشود. این عمل، از اسکن پورت (یک تکنیک معروف هک) جلوگیری میکند.