چرا SafeLine بهتر از WAF سنتی است؟

معایب WAF های سنتی
WAF های سنتی معمولاً از عبارات منظم برای تعریف الگوهای حمله استفاده می کنند. با در نظر گرفتن موتور معروف ModSecurity به عنوان مثال، 80٪ از WAF ها در جهان توسط آن کار می کنند. بیایید تحلیل کنیم که قوانین او چگونه است.
-
union[\w\s]?select
: این قانون یک را تعریف کرد تزریق SQL الگوی حمله در حالی که ترافیک شامل کلمات “union” و “select” است. -
\balert\s(
:این قانون یک را تعریف می کند حمله XSS الگوی در حالی که ترافیک شامل – کلمه “هشدار” به دنبال پرانتز سمت چپ “(“.
مهاجمان واقعی به راحتی می توانند این کلمات کلیدی را دور بزنند، بنابراین حفاظت از WAF را دور می زنند. با استفاده از قوانین ذکر شده در بالا، اجازه دهید به چند نمونه از منفی های کاذب نگاه کنیم:
-
union /**/ select
: با قرار دادن کاراکتر نظر بین “union” و “select” الگوی کلمه کلیدی مختل می شود. حمله را غیرقابل شناسایی می کند. -
window'\x61lert'
: با جایگزینی حرف “a” با “\x61” الگوی کلمه کلیدی مختل می شود. حمله را غیرقابل شناسایی می کند.
از این مثالها، میتوان نتیجه گرفت که WAFهای مبتنی بر regex سنتی نمیتوانند به طور موثر از حملات جلوگیری کنند، زیرا همیشه میتوانند توسط هکرها دور شوند.
علاوه بر این، عبارات منظم همچنین باعث نرخ بالای مثبت کاذب می شود که در نتیجه کاربران واقعی وب سایت تحت تأثیر قرار می گیرند. بیایید به چند نمونه از مثبت کاذب نگاه کنیم:
-
The union select members from each department to form a committee
: قانون فوق الذکر را راه اندازی می کند و به اشتباه به عنوان an شناسایی می شود تزریق SQL حمله کنید، در حالی که فقط یک جمله انگلیسی ساده است. -
Her down on the alert(for the man) and walked into a world of rivers
: قانون فوق الذکر را راه اندازی می کند و به اشتباه به عنوان an شناسایی می شود XSS حمله کنید، در حالی که فقط یک جمله انگلیسی ساده است.
در اینجا، دو مطالعه را به اشتراک می گذاریم تا ببینیم چگونه استادان کنفرانس کلاه سیاه دور زدن حفاظت های WAF مبتنی بر regex را خودکار می کنند:
نحوه استفاده از تجزیه و تحلیل نحو در WAF
الگوریتم تحلیل نحوی قابلیت اصلی SafeLine WAF است. به جای استفاده از الگوهای regex ساده برای مطابقت با ترافیک حمله، ورودیهای کاربر را در ترافیک درک میکند و رفتارهای حمله احتمالی را عمیقاً تحلیل میکند.
با در نظر گرفتن تزریق SQL به عنوان مثال، مهاجمان برای انجام موفقیت آمیز حملات تزریق SQL باید دو شرط را رعایت کنند:
- ترافیک حاوی یک دستور SQL است و باید یک قطعه دستور SQL معتبر از نظر نحوی باشد.
-
union select xxx from xxx where
یک قطعه دستور SQL معتبر از لحاظ نحوی است. -
union select xxx from xxx xxx xxx xxx xxx where
است نه یک قطعه دستور SQL معتبر از نظر نحوی. -
1 + 1 = 2
یک قطعه دستور SQL معتبر از لحاظ نحوی است. -
1 + 1 is 2
است نه یک قطعه دستور SQL معتبر از نظر نحوی.
-
- دستورات SQL لزوماً دارای رفتار مخرب هستند، نه فقط عبارات بی معنی.
-
union select xxx from xxx where
پتانسیل رفتارهای مخرب را دارد. -
1 + 1 = 2
معنای عملی ندارد
-
SafeLine WAF تشخیص حمله را بر اساس ماهیت حملات تزریق SQL انجام می دهد و فرآیندی شبیه به زیر انجام می دهد:
- تجزیه ترافیک HTTP برای یافتن موقعیت هایی با ورودی های بالقوه.
- رمزگشایی عمیق بازگشتی پارامترها، که ابتدایی ترین ورودی کاربر را در بر می گیرد.
- بررسی اینکه آیا ورودی کاربر با نحو SQL مطابقت دارد یا خیر.
- شناسایی مقاصد احتمالی در پشت دستور SQL.
- به ثمر رساندن اهداف مخرب و تصمیم گیری در مورد رهگیری.
SafeLine WAF دارای کامپایلرهای داخلی است که زبان های برنامه نویسی رایج را پوشش می دهند. با رمزگشایی عمیق محتوای payload HTTP، کامپایلر نحوی مربوطه را بر اساس نوع زبان مطابقت میدهد و سپس با مدل تهدید مطابقت میدهد تا رتبه تهدید را به دست آورد، درخواستهای دسترسی را مجاز یا مسدود میکند.
چرا تحلیل معنایی قدرتمندتر است؟
دانشجویان رشته علوم کامپیوتر اصول کامپایلر را مطالعه کرده اند که در آن به سیستم دستور زبان چامسکی اشاره شده است. او زبان های رسمی در دنیای کامپیوتر را به چهار نوع تقسیم می کند:
- گرامر نوع 0 (گرامر نامحدود): قابل تشخیص توسط ماشین های تورینگ
- گرامر نوع 1 (گرامر حساس به متن): قابل تشخیص با خودکارهای محدود خطی
- گرامر نوع 2 (گرامر بدون زمینه): قابل تشخیص توسط Pushdown Automata
- گرامر نوع 3 (گرامر منظم): با خودکار حالت محدود قابل تشخیص است
قدرت بیان این چهار گرامر از سطح 0 به سطح 3 ضعیف می شود. زبان های برنامه نویسی که ما معمولاً استفاده می کنیم، مانند SQL، HTML و JavaScript، معمولاً گرامرهای نوع 2 هستند (حتی شامل برخی از عناصر گرامرهای نوع 1). از سوی دیگر، عبارات منظم با ضعیف ترین قدرت بیانی گرامرهای نوع 3 مطابقت دارد.
قدرت بیان عبارات منظم تا چه حد ضعیف است؟ یک مثال کلاسیک این است که عبارات منظم نمی توانند حساب شوند. شما حتی نمی توانید از یک عبارت منظم برای تشخیص یک رشته معتبر از پرانتزهای منطبق استفاده کنید.
استفاده از قدرت بیان ضعیف گرامرهای نوع 3 برای تطبیق بارهای حمله به صورت پویا در حال تغییر غیرممکن است. دلیل آن در محدودیتهای ذاتی روشهای تشخیص حمله مبتنی بر قانون نهفته است. از مقایسه قدرت بیان گرامری، گرامرهای نوع 3 در گرامرهای نوع 2 گنجانده شده است. توضیحات مبتنی بر قوانین مبتنی بر عبارات منظم نمیتوانند به طور کامل بارهای حمله را بر اساس زبانهای برنامهنویسی پوشش دهند. این دلیل اساسی است که چرا تشخیص حمله مبتنی بر قانون در WAF ها اثربخشی حفاظتی کمتری نسبت به انتظار دارد.
بنابراین، در مقایسه با روشهای تشخیص تهدید تطبیق الگوی regex، تحلیل نحوی دارای ویژگیهای دقت بالا و نرخ مثبت کاذب پایین است.
در آخر توصیه می کنم https://waf.chaitin.com/ را امتحان کنید
اختلاف نظر
GitHub