مکانیابی خطاها از طریق ایجاد سیاستها در فایروال - XNET | اخبار مقالات امنیت سایبری
فایروالها از جمله عناصر بسیار مهم در تأمین امنیت سازمانها محسوب شده و جزو پرکاربردترین فناوریهای حفاظت از شبکهها هستند. ایجاد اطمینان از درست بودن سیاستهای فایروالها از طریق آزمون و ارزیابی، اهمیت بسیار زیادی دارد. در فرایند ارزیابی سیاستهای فایروال، بس…
خلاصه تحلیلی خبر
فایروالها از جمله عناصر بسیار مهم در تأمین امنیت سازمانها محسوب شده و جزو پرکاربردترین فناوریهای حفاظت از شبکهها هستند. ایجاد اطمینان از درست بودن سیاستهای فایروالها از طریق آزمون و ارزیابی، اهمیت بسیار زیادی دارد. در فرایند ارزیابی سیاستهای فایروال، بس…
موضوعات اصلی: پشتیبانی شبکه، فایروال، امنیت سایبری، قانون، قوانین، بسته
فایروالها از جمله عناصر بسیار مهم در تأمین امنیت سازمانها محسوب شده و جزو پرکاربردترین فناوریهای حفاظت از شبکهها هستند. ایجاد اطمینان از درست بودن سیاستهای فایروالها از طریق آزمون و ارزیابی، اهمیت بسیار زیادی دارد. در فرایند ارزیابی سیاستهای فایروال، بستههایی که قصد ورود به شبکه خصوصی مدنظر را دارند ورودیها و تصمیمی که برای پذیرش یا عدم پذیرش هر بسته گرفته میشود، خروجی این فرایند هستند.
بستههایی که تصمیمگیری صورت گرفته برای آنها پذیرش (یا عدم پذیرش) باشد، در این ارزیابی پذیرفته (یا رد) میشوند. آزمونگرهای سیاست باید با توجه به بستههای رد یا پذیرفته شده، سیاستها را تحلیل نموده و خطاهای تصمیمگیری (مثل نقص در قوانین فایروال) را شناسایی کنند. چنین فرایندی معمولاً زمانبر است.
از این رو در این مطلب از XNET برای کمک به کمتر شدن تلاش مورد نیاز جهت تشخیص مکانهای خطا روشی پیشنهاد میدهیم که تعداد قوانین مورد بررسی را بر اساس اطلاعات جمعآوری شده در طول فرایند ارزیابی بستههای رد شده کاهش میدهد. روش پیشنهادی ما این قوانین کاهش یافته را رتبهبندی میکند تا مشخص شود کدام قوانین باید زودتر بررسی شوند. در نهایت نیز آزمایشهایی را بر روی روش پیشنهادی اجرا کردیم که نشان میدهند این روش، 56 درصد از قوانین مورد بررسی برای مکانیابی خطا را کاهش میدهد.
مقدمه ای بر فایروالها
فایروالها که نقش اولین خط دفاعی را در برابر حملات مخرب و ترافیک غیرمجاز دارند، از جمله عناصر بسیار مهم برای امنسازی شبکههای خصوصی کسبوکارها، سازمان ها و شبکههای خانگی هستند. فایروال معمولاً در نقطه ورودی و محل تلاقی بین یک شبکه خصوصی و شبکه بیرونی (اینترنت) نصب میشود به صورتی که کل ترافیک ورودی به شبکه خصوصی و خروجی از آن باید از فایروال عبور کند.
از آنجا که عملکرد فایروال وابستگی زیادی به کیفیت سیاستهای تعریف شده برای آن در زمینه فیلتر کردن بستهها دارد، معمولاً خطاهای فایروال ناشی از خطاهایی (پیکربندیهای نادرست) هستند که در قوانین این سیاستها به وجود آمدهاند. کارشناسان امنیتی تعداد بسیار زیادی از فایروالها را بررسی نموده و متوجه شدهاند که در قوانین بیش از 90 درصد این فایروالها خطای پیکربندی وجود دارد!
ابزارهای مختلفی برای ارزیابی قوانین پیشنهاد شدهاند تا مشکلات امنیتی این سیاستها را مشخص کنند. در فرایند ارزیابی سیاستهای فایروال، ورودیها و خروجیها به ترتیب بستههای شبکه و تصمیمهای انجام شده (بر اساس سیاست مورد آزمایش) برای هر بسته هستند. آزمونگرهای سیاستهای فایروال، بستهها و تصمیمهای صورت گرفته برای آنها را ارزیابی نموده تا مشخص کنند آیا تصمیم صورت گرفته طبق انتظار بوده است یا خیر.
این ابزارها جفتهای «ورودی، خروجی» یا همان «بسته، تصمیم» را به دو گروه قبول و رد شده تقسیم میکنند. بستههایی که تصمیمگیری صورت گرفته برای آنها طبق انتظار بوده، در ارزیابی قبول میشوند. بستههایی نیز که تصمیم صورت گرفته برای آنها برخلاف انتظار باشد (به دلیل خطاهای موجود در قوانین یک سیاست) به عنوان بستههای رد شده در آزمون ارزیابی دستهبندی میشوند. بستههای رد شده نشان میدهند که میزان خطا در سیاست مورد ارزیابی چقدر است.
این ابزارها معمولاً با در اختیار داشتن مجموعهای از بستههای رد شده و قبول شده، سیاستهای فایروال را تحلیل و سعی میکنند خطاهای آن را رفع کنند. فرض کنید فایروالی به دلیل وجود یک نقص در سیاستهایش قادر نباشد بسته ای را که شامل بدافزار است فیلتر نموده و مانع از ورود آن به شبکه خصوصی شود. ابزارهای ارزیابی، سیاست فایروال مدنظر را با تحلیل شکست، پیدا کردن خطا و اصلاح خطا عیبیابی میکنند.
در بین این سه مرحله، پیدا کردن خطا (یا مکانیابی خطا) برای تشخیص محل خطا (یعنی علت ریشهای) مثل قوانینی که منجر به ایجاد خطا شدهاند به بررسیهای زمانبر و عمدتاً دستی سیاستها نیاز دارد. هنگامی که یک سیاست فایروال شامل تعداد زیادی قانون باشد، پیدا کردن قوانین معیوب کاری پرزحمت، زمانبر و با احتمال خطای بالا است. بنابراین طراحی روشی کارآمد برای خطایابی میتواند به آزمونگرهای سیاستها جهت کاهش هزینههای عیبیابی کمک کند.
- تغییر تصمیم قانون (RDC[1])این خطا زمانی رخ میدهد که تصمیم یک قانون نادرست باشد.
- تغییر بازه فیلد قانون (RFC[2])خطای RFC بیانگر نادرست بودن محدوده مقادیر در یک فیلد است (مثل آدرس آیپی سیستم مبدأ یا مقصد).
وقتی سیاستی حاوی چنین خطاهایی باشد برای بعضی از بستهها تصمیمهای نادرستی گرفته میشود. در روش پیشنهادی ما ابتدا سیاست معیوب و آزمونهای رد شده آن ارزیابی میشوند. در این روش قوانین موجود در آزمونهای شکست خورده مورد بررسی قرار گرفته تا مشخص شود آیا این قوانین شامل خطاهایی مثل RDC و RFC هستند یا خیر.
اگر قوانین مورد بررسی فاقد چنین خطاهایی باشند، روش ما سایر خطاها را بررسی میکند. در این روش برای کاهش تلاش لازم جهت شناسایی محل خطا، تعداد قوانین مورد بررسی بر اساس رفتارهای اشتباه ناشی از خطا کاهش پیدا میکند. همچنین روش ما برای کاهش هر چه بیشتر تلاش مورد نیاز، قوانین کاهشیافته را رتبهبندی میکند تا بر اساس پوشش ساختاری در طول ارزیابی بستههای شکست خورده، مشخص شود کدام قوانین زودتر باید بررسی و تحلیل شوند.
سیاستهای فایروالی
هر سیاست فایروال متشکل از مجموعهای از قوانین است که مشخص میکند بستههایی که بین یک شبکه خصوصی و دنیای اینترنت در جریان هستند، تحت چه شرایطی قبول یا رد شوند. به عبارت دیگر این قوانین درباره قبول شدن (یعنی مجاز بودن) یا رد شدن (یعنی غیرمجاز بودن) بستهها تصمیمگیری میکنند.
هر قانونی که در این سیاست قرار دارد متشکل از یک مجموعه فیلد است. این فیلدها معمولاً شامل آیپی مبدأ/مقصد، شماره پورتهای مبدأ/مقصد، نوع پروتکل و یک تصمیم هستند. هر فیلد همچنین مجموعهای از مقادیر ممکن را نشان میدهد (که با مقادیر مربوط در فیلدهای یک بسته تطبیق داده میشوند). مقادیر فیلدهای هر قانون یا دارای مقدار واحدی بوده یا بازهای متناهی از اعداد صحیح غیرمنفی را شامل میشوند.
هر بسته متشکل از مقادیر مختلفی است که هر کدام از آنها به یک فیلد مربوط هستند. یک بسته فقط در صورتی با یک قانون منطبق میشود که مقدار فیلدهای آن بسته معادل با مقادیر متناظر آن در یک قانون باشد. پس از تطبیق بسته با یک قانون، با توجه به تصمیم قانون، تصمیمگیری مربوط به بسته مربوطه انجام میشود. هنگام ارزیابی هر بسته، سیاست فایروال از روش اولین تطبیق استفاده میکند. در این روش، تصمیم مربوط به اولین قانون تطبیق یافته با یک بسته، تصمیمی است که برای آن بسته در نظر گرفته میشود.
| قانون | آیپی مبدأ | پورت مبدأ | آیپی مقصد | پورت مقصد | پروتکل | تصمیم |
| r1 | * | * | 192.168.*.* | * | * | Accept |
| r2 | 1.2.3.* | * | * | [128− 1] | TCP | Discard |
| r3 | * | * | * | * | * | Discard |
جدول بالا مثالی از یک قانون فایروال را نشان میدهد. علامت * نشان دهنده محدوده دامنه مربوطه است (مثلاً دامنه فیلد آیپی از 0.0.0.0 تا 255.255.255.255 میباشد). در این مثال سیاست فایروال شامل سه قانونr2r1وr3است. قانونr1هر بستهای را که آدرس آیپی مقصد آن برابر با 192.168.∗.∗ باشد (یعنی بازه [192.168.0.0 , .255]) میپذیرد. قانونr2هر بستهای که مقدار آدرس آیپی مبدأ آن برابر با عدد 1.2.3.∗ (یعنی محدوده [1.2.3.0, 1.2.3.255]) و محدوده پورت آن [128− 1] و پروتکل بسته نیز از نوع TCP باشد رد میکند. قانونr3همه بستهها را نادیده میگیرد (به این قانون همانگویی[3]هم میگویند).
فرض کنید k بستهای باشد که آدرس آیپی مقصد آن 192.168.0.0 و پروتکلش از نوع UDP است. هنگام ارزیابی k متوجه میشویم که این قانون با هر دو قانونr1وr3مطابقت دارد. از بین این دو قانون، تصمیم مربوط بهr1اعمال میشود چون اولین قانون تطبیق یافته با بسته k است و در سیاست این فایروال در رتبه بالاتری قرار دارد. در نتیجه (بر اساس تصمیمr1که پذیرش است) k پذیرفته میشود.
مدل سیاست فایروال
ما در این مطلب از یک مدل سیاست فایروال بر اساس ویژگیهای مشترک عمومی استفاده میکنیم. یک سیاست فایروال، متشکل از مجموعهای قوانین است که الگوریتم کلی هر کدام از آنها به صورت زیر می باشد
در عبارت بالا predicate یا گزاره برای هر بسته شامل تعداد متناهی فیلدF1…Fnاست. مقدار Decision یا تصمیم یک قانون میتواند پذیرش (Accept) یا عدم پذیرش (Discard) باشد که در صورت درست بودن گزاره، به عنوان نتیجه ارزیابی برای بسته مدنظر ایجاد میشود.
هر بسته k را میتوان به شکل یک چندتایی (fv1…fvn) بر روی یک مجموعه فیلد متناهیF1…Fnدر نظر گرفت که در اینجاfviمتغیری است که مقادیر آن در دامنهای که باD(Fi) نمایش میدهیم قرار دارد. در این مدل برای ساده شدن فرمت بازنمایی، مقادیر فیلدها به اعداد صحیح متناظر تبدیل میشود (مثلاً آدرس آیپی .255 به 232−1 تبدیل میشود). فرض کنیدSiزیرمجموعهای از دامنهD(Fi) باشد. در این صورت میتوان predicate را به صورت زیر نمایش داد
(F1∈S1) ∧…∧ (Fn∈Sn)
به هرFi∈Siیک Clause یا عبارت میگوییم. توجه داشته باشید که سیاست فایروال از روش اولین تطبیق پیروی میکند. با داشتن مجموعهای از قوانین، زمانی که بستهای به فایروال میرسد فرایند زیر تکرار میشود تا جایی که به آخرین قانون برسیم
if a
اگر
مدل خطا
در این بخش، خطاهای احتمالی در سیاستهای فایروال را بررسی میکنیم. فرض کنید خطایی در یک سیاست فایروال وجود داشته باشد. بر اساس مدلهای خطا بر روی دو نوع خطا تمرکز میکنیم
- تغییر تصمیم قانون (RDC)خطاهای گروه RDC نشان میدهند که تصمیم قانونriنادرست است. مثلاً نویسندههای سیاست درriبه جای Accept از Discard استفاده کردهاند یا برعکس.
- تغییر بازه فیلد قانون (RFC)خطاهای این گروه در صورتی ایجاد میشوند که بازه یک فیلدFiدر قانونriنادرست باشد. مثلاً نویسندههای سیاست در فیلد آدرس آیپی مبدأ قانونriبه جای یک بازه مشخص مثل [0, 50] (که فرض شده درست است) از * استفاده کردند.
این خطاها نشان میدهند که یک قانون خاص میتواند شامل یک خطای واحد در یکی از موجودیتهای ساختاری باشد (مثل تصمیم یا بخش گزاره). هر خطایی در یک موجودیت ساختاری میتواند درستی رفتار سیاست را دچار مخاطره کند.
مکانیابی خطا
برای مکانیابی خطا ابتدا قوانین سیاست فایروال را کاهش داده سپس قوانین کاهشیافته را رتبهبندی کردیم تا مشخص نماییم کدام یک از قوانین کاهش یافته باید زودتر مورد بررسی قرار گیرند.
مکانیابی خطای قانون پوشش یافته
در این بخش راهکاری را توضیح میدهیم که هدف آن پیدا کردن قوانینی است که توسط بستههای رد شده شناسایی میشوند و احتمال اینکه دارای خطا باشند زیاد است. این رویکرد، قانون خطادار را در یک سیاست با پیشنهاد بررسی اولین قانون اعمال شده برای بستههای رد شده پیدا میکند. بر اساس این رویکرد اگر بیش از یک قانون در سیاست فایروال وجود داشته که یک بسته رد شده را پوشش داده باشد، اولویت بررسی با اولین قانونی میباشد که بالاتر از سایر قوانین قرار گرفته است. در این رویکردrSشامل تمام قوانین سیاست فایروال وrpشامل قوانینی است که یک بسته رد شده را پوشش دادهاند.
فرض کنید سیاستpمتشکل از مجموعهای از قوانین (r1r2…rn) باشد. قانونriبه قانون مشکلدار درpگفته میشود. توجه داشته باشید که قوانینriوrjبه ترتیب بستههایkiوkjرا که پذیرفته نشدهاند پوشش میدهند. اگر قانونriدر پایینrjقرار گرفته باشد (i>j) مهم نیست که گزاره یا تصمیمriرا چگونه تغییر دهیم چون همچنان بستهkjباrjتطبیق یافته و رد میشود. بنابراین قانونriباید در بالایrjقرار بگیرد (i ≤ j). از این رو مکان این قانون در سیاست فایروال باید اصلاح شده و در بین قوانینriوrjriدر مرتبه بالاتری قرار گیرد.
شکل 2 سیاست یک فایروال را نشان میدهد که شامل یک خطا است. اعداد ستونهای 2 و 3 نشان میدهند که هر قانون توسط چه تعداد بسته رد یا پذرفته شده است. در این مثال از 10 بسته استفاده شده که 8 بسته پذیرفته و 2 بسته رد شدهاند. ما با تغییر تصمیمR4از Discard به Accept یک خطای RDC به آن تزریق میکنیم. بر اساس رویکرد پیشنهادی ما از آنجا کهR4بالاتر قرار داشته و بستههایی را شامل میشود که توسط قوانین بالاتر پوشش داده نشدهاند، پس احتمالاًR4یک خطا دارد که باید مورد بررسی قرار گیرد.
کاهش قوانین
اگر اولین قانونی که بستههای رد شده را پوشش میدهد فاقد مشکل باشد، طی دو مرحله تعداد سایر قوانین سیاست فایروال را کاهش داده و فقط قوانینی را بررسی میکنیم که احتمال وجود خطا در آنها بیشتر است.
در گام اول، قانون خطادار اولین قانونی است که بستههای رد شده را پوشش میدهد. در این روش قوانینی که احتمالاً منجر به ایجاد خطا شدهاند (یعنی قوانینی که زودتر از سایر قوانین، بستههای رد شده را پوشش میدهند) مشخص میشوند. فرض کنیدpنشاندهنده یک مجموعه قانونr1r2…rnباشد.riاولین قانونی است که در زمان ارزیابی بستههای رد شده، آنها را پوشش داده و اعمال میشود.
اگرrjقانونی باشد که دچار خطا است چون نسبت بهriدر مرتبه پایینتری قرار گرفته (j>i) مورد بررسی و ارزیابی قرار نخواهد گرفت. در این حالت، مهم نیست که چقدر گزاره یا تصمیمrjرا تغییر دهیم چون همچنان تصمیم نادرستی برای بستهkiکه توسطriپوشش داده میشود، در نظر گرفته میشود. بنابراین قانون خطادارrjباید هم ردیف با قانونriبوده یا در رتبه بالاتری نسبت به آن قرار گرفته باشد(j ≤ i) تا بررسی و ارزیابی شود.
مرحله دوم بر این اساس است که تصمیم یک قانون خطادار (decj) باید با تصمیم قوانین پوششدهنده بستههای رد شده (deci) متفاوت باشد. این روش از بین قوانینی که توسط رویکرد اول انتخاب شدهاند قوانینی را برای بررسی انتخاب میکند که تصمیمشان با تصمیم قوانین پوششدهنده بستههای رد شده تفاوت داشته باشد؛ زیرا احتمال اینکه این قوانین دچار خطا باشند بسیار زیاد است.
فرض کنید که یک بسته رد شده، مشمول قانونriبا تصمیمdeciمیشود و یک قانونrjبا تصمیمdecjخطادار است (شامل یک عبارت خطادار). پس از اینکه عبارت مشکلدارrjرا اصلاح کردیم، بسته رد شده توسطrjپوشش داده میشود. از آنجا کهdeciتصمیم مورد انتظار برای بسته رد شده نیستdeciوdecjباید متفاوت باشند؛ در غیر این صورت اصلاح عبارت مشکلدار منجر به انجام تصمیمگیری مورد انتظار برای بسته نمیشود.
رتبهبندی قوانین
در این بخش روشی معرفی میشود که قوانین کاهش یافته در مرحله قبل را رتبهبندی میکند. منطقی که در پشت این رویکرد قرار دارد به این صورت است که در بین قوانین کاهش یافته، تعداد فیلدهایی که در یک قانون، خطادار «غلط» (False) ارزیابی میشوند حداقل برابر یا کمتر از سایر قوانین است. بنابراین این روش پوشش فیلدها را بررسی نموده و قوانین را بر اساس نسبت فیلدهای غلط به کل فیلدهای ارزیابی شده برای تمام بستههای رد شده، رتبهبندی میکند.
فرض کنید قانونrjشامل یک خطای RFC باشد.kنیز یک بسته است که به جای قانونrjقانونriرا شامل میشود (j<i) و بر اساس تصمیم این قانون رد میشود. وقتی یک بسته رد شده، قانونrjرا ارزیابی میکند فقط یک فیلد درrjمقدار بسته k را False در نظر میگیرد اما سایر عبارتهایrjTrue بوده و با مقادیر متناظرشان در بستهKمطابقت دارند.
به عبارت دیگر، یک عبارت خاص درrj(که نادرست است)kرا False در نظر میگیرد. وقتی بسته k سایر قوانین بالایriرا ارزیابی میکند، هر قانون حداقل شامل یک فیلد است که با مقدار متناظرش در بسته K تطبیق ندارد. بنابراین تعداد عبارتهایی که درrjبا مقادیر متناظرشان در بسته K مطابقت نداشتند باید کوچکتر از فیلدهای سایر قوانینی باشند که با مقادیر متناظرشان در K مطابقت نیافتهاند.
معادلهای به نام“Suspicions“را برای ارزیابی میزان مشکوک بودن قوانین و بر اساس پوشش عبارتها طراحی کرده ایم.Suspicionsبرای هر قانون، با تقسیم تعداد عبارتهای غلط در زمان ارزیابی بستههای رد شده بر تعداد عبارتهای درست پوشش یافته توسط بستههای رده شده محاسبه میشود. هر چقدر میزان Suspicionsبرای قانونrبیشتر باشد، احتمال اینکه این قانون خطا داشته باشد کمتر است. روش پیشنهادی ما قوانین را برحسب میزان مشکوک بودن و به ترتیب نزولی مرتب میکند. برای هر قانونrفرض کنیدFF(r)(FT(r)) تعداد عبارتهای غلط (درست) در زمان ارزیابی بستههای رد شده باشد. ما برای هر قانون rsuspicion (r)را با استفاده از معادله زیر ارزیابی میکنیم
شکل 3 سیاست یک فایروال را نشان میدهد که شامل یک قانون خطادار است. ستونهای 2 تا 3 تعداد دفعات پوشش هر قانون به ترتیب توسط بستههای رد و قبول شده را نشان میدهند. ستونهای 4 تا 8 به ترتیب تعداد دفعات پوشش فیلدهای درست و غلط توسط بستههای رد شده، موارد مشکوک بر اساس پوشش عبارت (ستون Susp)، قوانین انتخابی (برای بررسی) و رتبه هر قانون برای تصمیمگیری درباره اولویت بررسی قوانین را نشان میدهند. در این سیاستR1یک قانون خطادار است (با تغییر مقادیر فیلد سوم آن از [3,5] به [3,3] یک خطای RFC به قانون تزریق شده است).
در این مثال، 12 بسته برای ارزیابی این سیاست فایروال ایجاد شدند. در بین این بستهها 9 بسته توسط سیاست فایروال پذیرفته و 3 بسته رد شدند. در این مثال قوانینR4وR5توسط بستههای رد شده پوشش یافتند. ابتداR4که اولین قانون پوشش یافته توسط بستههای رد شده است را مشخص نموده و بررسی میکنیم آیا این قانون، خطایی را شامل میشود یا خیر.
اگر ثابت کنیمR4دچار هیچ خطایی نیست رویکرد پیشنهادیمان برای کاهش قوانین که در بخش 4.2 معرفی کردیم اعمال میکنیم. ابتدا قوانینR1R2R3را که در رتبه بالاتری نسبت بهR4قرار گرفتهاند در نظر میگیریم. این قوانین در زمان ارزیابی نسبت بهR4اولویت بیشتری داشته و وجود حداق یک خطا در یکی از آنها میتواند برR4تأثیرگذار بوده و منجر به ایجاد رفتار غلط توسط سیاست فایروال شود. در بین این سه قانونR1وR3به عنوان قوانینی که احتمال نقص در آنها وجود دارد انتخاب میشوند چون تصمیمات آنها (accept) نسبت به تصمیمR4(discard) متفاوت است.
با توجه بهR1وR3در شکل 3، مقدارsuspicion(R1) برابر با 0.66 (1 – 3/9 = 0.66) وsuspicion(R3) برابر با (1 – 5/9 = 0.44)است. بنابراین احتمال اینکهR1خطادار باشد نسبت بهR3بیشتر است.
[1]Rule Decision Change
[2]Rule Field interval Change
[3]Tautology
برای ارزیابی پایداری، امنیت و نگهداری این زیرساخت، راهنمای پشتیبانی شبکه را نیز مطالعه کنید.