Stateful Inspection به معنای بازرسی وابسته به وضعیت است که به عنوان فیلترینگ پویای بستهها (dynamic packet filtering) نیز شناخته میشود. بازرسی وابسته به وضعیت یک فناوری فایروال است که وضعیت اتصالات فعال را بررسی میکند و از این اطلاعات برای تعیین بستههای مجاز شبکه برای عبور از فایروال استفاده میکند. Stateful Inspection معمولا به جای Stateless Inspection یا بازرسی بدون حالت یا فیلتر استاتیک بستهها استفاده میشود و برای TCP و پروتکلهای مشابه مناسب است، اگرچه میتواند از پروتکلهایی مانند UDP نیز پشتیبانی کند.
Stateful Inspection در واقع یک فناوری فایروال شبکه است که برای فیلتر کردن بستههای داده بر اساس وضعیت (State) و زمینه (Context) استفاده میشود. Check Point Software Technologies این تکنیک را در اوایل دهه ۱۹۹۰ برای رسیدگی به محدودیتهای Stateless Inspection توسعه داد. Stateful Inspection از آن زمان به عنوان یک استاندارد صنعتی ظاهر شد و اکنون یکی از رایجترین فن آوریهای فایروال است که امروزه مورد استفاده قرار میگیرد.
Stateful Inspection عمدتا در لایههای انتقال و شبکه مدل اتصال سیستمهای باز (OSI) برای نظارت و بازرسی نحوه ارتباط برنامهها از طریق شبکه عمل میکند، اگرچه میتواند به صورت محدود ترافیک لایه برنامه را نیز بررسی کند. فیلتر کردن بستهها بر اساس وضعیت و اطلاعات زمینهای است که فایروال از بستههای یک جلسه استخراج میکند:
- وضعیت. وضعیت اتصال، همانطور که در بستههای جلسه مشخص شده است. به عنوان مثال، در TCP، وضعیت در پرچمهای خاصی مانند SYN، ACK و FIN منعکس میشود. فایروال اطلاعات وضعیت را در یک جدول ذخیره میکند و اطلاعات را به طور منظم به روز میکند.
- زمینه. اطلاعاتی مانند آدرسها و پورتهای پروتکل اینترنت مبدا و مقصد، شمارههای دنبالهای و دیگر انواع ابردادهها. فایروال همچنین اطلاعات زمینه را ذخیره میکند و مرتبا آن را به روز میکند.
با ردیابی اطلاعات وضعیت و زمینه، Stateful Inspection میتواند نسبت به روشهای پیشین حفاظت از فایروال، امنیت بیشتری را ارائه دهد. فایروال stateful ترافیک ورودی را در چندین لایه در پشته شبکه بررسی میکند، در حالی که کنترل دقیقتری بر نحوه فیلتر کردن ترافیک ارائه میدهد. فایروال همچنین میتواند بستههای ورودی و خروجی را با دادههای جلسه ذخیره شده مقایسه کند تا تلاشهای ارتباطی را ارزیابی کند.
Stateful Inspection و Stateless Inspection
Stateful Inspection تا حد زیادی جایگزین Stateless Inspection شده که یک فناوری قدیمی است و فقط سرصفحههای (headers) بسته را بررسی میکند. فایروال stateless از قوانین از پیش تعریف شده برای تعیین اینکه آیا یک بسته باید مجاز یا رد شود، استفاده میکند. در این حالت تنها به ابتداییترین اطلاعات، مانند آدرسهای IP مبدا و مقصد و شماره پورت متکی است و هرگز به اطلاعاتی بیشتر از آنچه در هدر بسته وجود دارد، نگاه نمیکند و نفوذ مهاجمان را به محیط آسانتر میکند. به عنوان مثال، یک مهاجم میتواند دادههای مخرب را از طریق فایروال به سادگی با قرار دادن عبارت reply در هدر ارسال کند.
Stateful Inspection میتواند اطلاعات بسیار بیشتری را در مورد بستههای شبکه کنترل کند و تشخیص تهدیدهایی را که یک فایروال stateless از دست میدهد، ممکن میسازد. یک فایروال stateful به جای اینکه با هر بسته به عنوان یک موجودیت مجزا رفتار کند، زمینه را در تمام جلسات جاری خود حفظ میکند. با این حال، یک فایروال stateful به منابع پردازش و حافظه بیشتری برای حفظ دادههای جلسه نیاز دارد و در برابر انواع خاصی از حملات، از جمله denial of service، مستعدتر است.
با stateless inspection، عملیات جستجو تأثیر بسیار کمتری بر منابع پردازنده و حافظه دارد و در نتیجه عملکرد سریعتری حتی با ترافیک سنگین باشد، خواهد داشت. گفته میشود، یک فایروال بدون حالت بیشتر به طبقهبندی بستههای دادهای علاقهمند است تا بازرسی آنها و با هر بسته بهصورت مجزا و بدون بافت جلسهای که همراه با Stateful Inspection است، رفتار میکند. این نوع بازرسی باعث کاهش قابلیت فیلتر و آسیب پذیری بیشتر در برابر انواع دیگر حملات شبکه میشود.
Stateful Inspection چگونه کار میکند؟
Stateful Inspection بستههای ارتباطی را در یک دوره زمانی نظارت میکند و بستههای ورودی و خروجی را بررسی میکند. فایروال بستههای خروجی را که انواع خاصی از بستههای ورودی را درخواست میکنند، ردیابی میکند و به بستههای ورودی تنها در صورتی اجازه عبور میدهد که پاسخ مناسبی داشته باشند.
یک فایروال stateful تمام جلسات را نظارت میکند و همه بستهها را تأیید میکند، اگرچه فرآیندی که استفاده میکند بسته به فناوری فایروال و پروتکل ارتباطی مورد استفاده میتواند متفاوت باشد. به عنوان مثال، هنگامی که پروتکل TCP است، فایروال اطلاعات وضعیت و زمینه یک بسته را گرفته و آن را با دادههای جلسه موجود مقایسه میکند. اگر یک ورودی منطبق از قبل وجود داشته باشد، بسته مجاز است از فایروال عبور کند. اگر مطابقت پیدا نشد، بسته باید تحت بررسیهای سیاست خاصی قرار گیرد. در آن مرحله، اگر بسته الزامات خط مشی را برآورده کند، فایروال فرض میکند که برای اتصال جدید است و دادههای جلسه را در جداول مناسب ذخیره میکند. سپس به بسته اجازه عبور میدهد. اگر بسته الزامات خط مشی را برآورده نکند، بسته رد میشود.
مقاله پیشنهادی“NVMe over Fabric یا NVMe-oF چیست و چه مزایایی دارد؟”
این فرآیند برای UDP و پروتکلهای مشابه کمی متفاوت عمل میکند. برخلاف TCP، UDP یک پروتکل بدون اتصال (connectionless) است، بنابراین فایروال نمیتواند به انواع پرچمهای حالت ذاتی TCP تکیه کند. در عوض، باید از اطلاعات زمینه، مانند آدرسهای IP و شماره پورت، همراه با انواع دیگر دادهها استفاده کند. در واقع، فایروال یک رویکرد شبه stateful برای تقریب آنچه میتواند با TCP به دست آورد، اتخاذ میکند.
در فایروالی که از Stateful Inspection استفاده میکند، مدیر شبکه میتواند پارامترها را برای رفع نیازهای خاص تنظیم کند. به عنوان مثال، یک مدیر ممکن است ورود به سیستم را فعال کند، انواع خاصی از ترافیک IP را مسدود کند یا تعداد اتصالات به یا از یک رایانه را محدود کند. در یک شبکه معمولی، پورتها بسته میشوند، مگر اینکه یک بسته ورودی درخواست اتصال به یک پورت خاص را داشته باشد و سپس تنها آن پورت باز شود. این عمل از اسکن پورت، یک تکنیک معروف هک، جلوگیری میکند.
جمع بندی
در Stateful Inspection فایروالها میتوانند به طور موثرتری تلاشهای افراد غیرمجاز برای دسترسی به شبکه را شناسایی کنند و همچنین دادههای درون بستهها را تجزیه و تحلیل کنند تا ببینند آیا آنها حاوی کد مخرب هستند یا خیر. بر خلاف Stateless Inspection که با بررسی دادههای موجود در هدر هر بسته، اجازه عبور صادر میشود، فایروالهای Stateful با بررسی اطلاعات ورای هدرها به جلوگیری از حملات شبکه کمک میکنند.