Эвалюцыя Web Application Firewall: ад сеткавых экранаў да хмарных сістэм абароны з машынным навучаннем

У нашым мінулым матэрыяле па хмарнай тэматыцы мы расказвалі, як абараніць ІТ-рэсурсы ў публічным воблаку і чаму традыцыйныя антывірусы не зусім падыходзяць для гэтых мэт. У гэтым пасце мы працягнем тэму хмарнай бяспекі і пагаворым пра эвалюцыю WAF і пра тое, што лепш абраць: жалеза, ПЗ ці воблака. 

Эвалюцыя Web Application Firewall: ад сеткавых экранаў да хмарных сістэм абароны з машынным навучаннем

Што такое WAF

Больш за 75% нападаў хакераў накіраваныя на ўразлівасці вэб-прыкладанняў і сайтаў: такія напады, як правіла, незаўважныя для ИБ-інфраструктуры і ИБ-службаў. Уразлівасці вэб-прыкладанняў нясуць у сабе, у сваю чаргу, рызыкі кампраметацыі і фрода уліковых запісаў і персанальных дадзеных карыстачоў, пароляў, нумароў крэдытных карт. Акрамя таго, уразлівасці ў вэб-сайце служаць кропкай уваходу зламыснікаў у карпаратыўную сетку.

Web Application Firewall (WAF) уяўляе сабой ахоўны экран, які блакуе напады на вэб-прыкладанні: SQL-ін'екцыі, міжсайтавы скрыптынг, выдаленае выкананне кода, брутфорс і абыход аўтарызацыі (auth bypass). У тым ліку напады, якія выкарыстоўваюць zero-day уразлівасці. Файрвалы прыкладанняў забяспечваюць абарону, выконваючы маніторынг зместу вэб-старонак, уключаючы HTML, DHTML і CSS, і фільтруючы патэнцыйна шкоднасныя запыты па HTTP/HTTPS.

Якімі былі першыя рашэнні?

Першыя спробы стварыць Web Application Firewall рабіліся яшчэ ў пачатку 90-х гадоў. Вядома як мінімум аб трох інжынерах, якія працавалі ў гэтай галіне. Першы - прафесар кампутарных навук Джын Спаффорд з Універсітэта Перд'ю. Ён апісаў архітэктуру файрвала прыкладанняў з проксі і ў 1991 годзе апублікаваў яе ў кнізе. "Бяспека UNIX на практыцы".

Другім і трэцім - былі ИБ-спецыялісты Уільям Чэсвік і Маркус Ранум з Bell Labs. Яны распрацавалі адзін з першых прататыпаў файрвалаў прыкладанняў. Яго распаўсюджваннем займалася кампанія DEC – прадукт выпусцілі пад назвай SEAL (Secure External Access Link).

Але SEAL не з'яўляўся паўнавартасным WAF-рашэннем. Ён уяўляў сабой класічны сеткавы файрвол з пашыранай функцыянальнасцю - магчымасцю блакаваць напады на FTP і RSH. Па гэтай прычыне першым WAF-рашэннем сёння лічыцца прадукт кампаніі Perfecto Technologies (пазней Sanctum). У 1999 годзе яна прадставіла сістэму AppShield. У той час Perfecto Technologies займаліся распрацоўкай ИБ-рашэнняў для e-commerce, і мэтавай аўдыторыяй іх новага прадукта сталі анлайн-крамы. AppShield умеў аналізаваць HTTP-запыты і блакаваў напады на аснове дынамічных ИБ-палітык.

Прыкладна ў адзін час з AppShield (у 2002 году) з'явіўся першы WAF з адчыненым зыходным кодам. Ім стаў Мод бяспекі. Ён ствараўся з мэтай папулярызацыі WAF-тэхналогій і падтрымліваецца IT-супольнасцю да гэтага часу (вось яго рэпазітар на GitHub). ModSecurity блакуе напады на прыкладанні, засноўваючыся на стандартным наборы рэгулярных выразаў (сігнатур) - прылад для праверкі запытаў па шаблоне - Базавы набор правілаў OWASP.

У выніку распрацоўнікам атрымалася дамагчыся сваёй мэты – на рынку пачалі з'яўляцца новыя WAF-рашэнні, у тым ліку пабудаваныя на базе ModSecurity.

Тры пакаленні - ужо гісторыя

Прынята вылучаць тры пакаленні WAF-сістэм, якія эвалюцыянавалі па меры развіцця тэхналогій.

першае пакаленне. Працуе з рэгулярнымі выразамі (ці граматыкамі). Да яго адносіцца ModSecurity. Пастаўшчык сістэмы вывучае тыпы нападаў на прыкладанні і фармуе патэрны, якія апісваюць легітымныя і патэнцыйна шкоднасныя запыты. WAF спраўджваецца з гэтымі спісамі і вырашае, што рабіць у канкрэтнай сітуацыі, - блакаваць трафік ці не.

Прыкладам выяўлення на аснове рэгулярных выразаў з'яўляецца ўжо згаданы праект Core Rule Set з адкрытым зыходным кодам. Яшчэ прыклад - Naxsi, Які таксама з'яўляецца апенсорным. Сістэмы з рэгулярнымі выразамі маюць шэраг недахопаў, у прыватнасці, пры выяўленні новай уразлівасці адміністратару даводзіцца ствараць дадатковыя правілы ўручную. У выпадку з маштабнай ІТ-інфраструктурай правілаў можа быць некалькі тысяч. Кіраваць такой колькасцю рэгулярных выразаў даволі складана, не кажучы аб тым, што іх праверка можа змяншаць прадукцыйнасць сеткі.

Таксама рэгулярныя выразы маюць даволі высокі ўзровень ілжывых спрацоўванняў. Знакаміты лінгвіст Ноам Хомскі прапанаваў класіфікацыю граматык, у якой падзяліў іх на чатыры ўмоўныя ўзроўні складанасці. Паводле гэтай класіфікацыі, рэгулярнымі выразамі можна апісаць толькі правілы файрвола, якія не мяркуюць адхіленняў ад шаблону. Гэта азначае, што зламыснікі могуць лёгка "падмануць" WAF першага пакалення. Адзін з метадаў барацьбы з гэтым - дадаць у запыты да прыкладанняў спецыяльныя сімвалы, якія не ўплываюць на логіку шкоднасных дадзеных, але парушаюць сігнатурнае правіла.

Эвалюцыя Web Application Firewall: ад сеткавых экранаў да хмарных сістэм абароны з машынным навучаннем

другое пакаленне. Каб абысці праблемы, звязаныя з прадукцыйнасцю і дакладнасцю WAF, былі распрацаваны файрвалы дадаткаў другога пакалення. У іх з'явіліся парсеры, якія адказваюць за выяўленне строга вызначаных тыпаў нападаў (на HTML, JS і т. д.). Гэтыя парсеры працуюць са спецыяльнымі токена, якія апісваюць запыты (напрыклад, variable, string, unknown, number). Патэнцыйна шкоднасныя паслядоўнасці токенаў выносяцца ў асобны спіс, з якім рэгулярна звяраецца WAF-сістэма. Упершыню гэты падыход паказалі на канферэнцыі Black Hat 2012 у выглядзе C/C++ бібліятэкі libinjection, Якая дазваляе выяўляць SQL-ін'екцыі.

У параўнанні з WAF першага пакалення, спецыялізаваныя персеры могуць працаваць хутчэй. Аднак яны не вырашылі цяжкасці, злучаныя з ручной наладай сістэмы пры з'яўленні новых шкоднасных нападаў.

Эвалюцыя Web Application Firewall: ад сеткавых экранаў да хмарных сістэм абароны з машынным навучаннем

трэцяе пакаленне. Эвалюцыя ў логіцы выяўлення трэцяга пакалення складаецца ва ўжыванні метадаў машыннага навучання, якія дазваляюць максімальна наблізіць граматыку выяўлення да рэальнай граматыкі SQL/HTML/JS якія абараняюцца сістэм. Дадзеная логіка выяўлення ў стане адаптаваць машыну Цьюрынга для ахопу рэкурсіўна пералічаных граматык. Прычым раней задача стварэння якая адаптуецца машыны Цьюрынга была невырашальнай, пакуль не былі апублікаваныя першыя даследаванні нейронавых машын Цьюрынга.

Машыннае навучанне дае ўнікальную магчымасць адаптаваць любую граматыку для ахопу любога тыпу нападаў без стварэння спісаў сігнатур уручную, як гэта патрабавалася пры выяўленні першага пакалення, і без распрацоўкі новых такенізатараў/парсераў для новых тыпаў нападаў, такіх як укараненні Memcached, Redis, Cassandra, SSRF, як таго патрабавала метадалогія другога пакалення.

Аб'ядноўваючы ўсе тры пакаленні логікі выяўлення, мы можам намаляваць новую дыяграму, на якой чырвоным контурам прадстаўлена трэцяе пакаленне выяўлення (мал. 3). Да гэтага пакалення ставіцца адно з рашэнняў, якое мы рэалізуем у воблаку сумесна з "Онсек", распрацоўшчыкам платформы адаптыўнай абароны вэб-прыкладанняў і API Валарм.

Зараз у логіцы выяўлення выкарыстоўваецца зваротная сувязь ад прыкладання для саманаладкі. У рамках машыннага навучання гэты цыкл зваротнай сувязі называецца "падмацаванне". Як правіла, існуе адзін ці некалькі тыпаў такога падмацавання:

  • Аналіз паводзін адказу дадатку (пасіўнае)
  • Сканіраванне/фаззер (актыўнае)
  • Файлы справаздач/працэдуры-перахопнікі/пасткі (пост фактум)
  • Ручное (вызначаецца супервізарам)

У выніку логіка выяўлення трэцяга пакалення таксама рашае важную праблему дакладнасці. Цяпер магчыма не толькі пазбегнуць ілжывых спрацоўванняў і ілжывых адмаўленняў, але і выявіць дапушчальныя праўдзіва адмоўныя вынікі, такія як выяўленне выкарыстання каманднага элемента SQL у панэлі кіравання, загрузка шаблонаў вэб-старонак, запыты AJAX, злучаныя з памылкамі JavaScript, і іншыя.

Эвалюцыя Web Application Firewall: ад сеткавых экранаў да хмарных сістэм абароны з машынным навучаннем

Эвалюцыя Web Application Firewall: ад сеткавых экранаў да хмарных сістэм абароны з машынным навучаннем

Эвалюцыя Web Application Firewall: ад сеткавых экранаў да хмарных сістэм абароны з машынным навучаннем

Далей разгледзім тэхналагічныя магчымасці розных варыянтаў рэалізацыі WAF.

Жалеза, ПЗ ці воблака - што абраць?

Адзін з варыянтаў рэалізацыі файрвалаў прыкладанняў - "жалезнае" рашэнне. Такія сістэмы ўяўляюць сабой спецыялізаваныя вылічальныя прылады, якія кампанія устанаўлівае лакальна ў сваім дата-цэнтры. Але ў гэтым выпадку даводзіцца закупляць уласнае абсталяванне і плаціць грошы інтэгратарам за яго наладу і адладку (калі ў кампаніі няма ўласнага ІТ-аддзела). Пры гэтым любое абсталяванне састарваецца і прыходзіць у непрыдатнасць, таму заказчыкі вымушаны закладваць бюджэт для абнаўлення апаратнага забеспячэння.

Іншы варыянт разгортвання WAF – праграмная рэалізацыя. Рашэнне ўсталёўваецца ў якасці дадатку для якога-небудзь ПА (напрыклад, ModSecurity наладжваецца па-над Apache) і працуе на адным серверы з ім. Як правіла, падобныя рашэнні можна разгарнуць як на фізічным серверы, так і ў воблаку. Іх мінус - гэта абмежаваныя магчымасці маштабаванасці і падтрымкі з боку вендара.

Трэці варыянт - настройка WAF з аблокі. Такія рашэнні прадастаўляюцца хмарнымі правайдэрамі ў якасці сэрвісу па падпісцы. Кампаніі не трэба набываць і наладжваць спецыялізаванае жалеза, гэтыя задачы кладуцца на плечы пастаўшчыка паслугі. Важны момант - сучасны хмарны WAF не мае на ўвазе міграцыю рэсурсаў на платформу правайдэра. Сайт можа быць разгорнуты ў любым месцы, нават on-premise.

Чаму зараз усё часцей глядзяць у бок хмарнага WAF, раскажам далей.

Што можа WAF у воблаку

З пункту гледжання тэхналагічных магчымасцей:

  • За абнаўленні адказвае правайдэр. WAF прадастаўляецца па падпісцы, таму за актуальнасцю абнаўленняў і ліцэнзій сочыць пастаўшчык сэрвісу. Абнаўленні датычацца не толькі праграмнага, але і апаратнага забеспячэння. Правайдэр апгрэйдзіць серверны парк і займаецца яго абслугоўваннем. Ён таксама адказвае за балансаванне нагрузкі і рэзерваванне. Калі адбываецца адмова ў працы сервера WAF, трафік неадкладна перанакіроўваецца на іншую машыну. Рацыянальнае размеркаванне трафіку дазваляе пазбегнуць сітуацый, калі файрвол уваходзіць у рэжым fail open - не спраўляецца з нагрузкай і перастае фільтраваць запыты.
  • Віртуальны патчынг. Віртуальныя патчы абмяжоўваюць доступ да скампраметаваных частак прыкладання да закрыцця ўразлівасці распрацоўшчыкам. У выніку заказчык хмарнага правайдэра атрымлівае магчымасць спакойна дачакацца пакуль пастаўшчык таго ці іншага праграмнага забеспячэння апублікуе афіцыйныя "латкі". Зрабіць гэта максімальна аператыўна - прыярытэт для пастаўшчыка ПЗ. Да прыкладу, у платформе "Валарм" за віртуальны патчынг адказвае асобны праграмны модуль. Адміністратар можа дадаваць кастомныя рэгулярныя выразы для блакавання шкоднасных запытаў. Сістэма дае магчымасць адзначаць некаторыя запыты сцягам "Канфідэнцыйныя дадзеныя". Тады іх параметры маскіруюцца, а самі яны ні пры якіх умовах не перадаюцца за межы працоўнай зоны файрвала.
  • Убудаваны сканер перыметра і ўразлівасцяў. Гэта дазваляе самастойна вызначаць сеткавыя межы ІТ-інфраструктуры, выкарыстоўваючы дадзеныя DNS-запытаў і пратаколу WHOIS. Пасля WAF аўтаматычна аналізуе якія працуюць усярэдзіне перыметра службы і сэрвісы (выконвае сканаванне портаў). Файрвол здольны выяўляць усе распаўсюджаныя тыпы ўразлівасцяў – SQLi, XSS, XXE і інш. – і выяўляць памылкі ў канфігурацыі ПА, напрыклад, несанкцыянаваны доступ да рэпазітараў Git і BitBucket і ананімныя звароты да Elasticsearch, Redis, MongoDB.
  • Напады маніторыцца рэсурсамі аблокі. Як правіла, хмарныя правайдэры валодаюць вялікімі аб'ёмамі вылічальных магутнасцяў. Гэта дазваляе праводзіць аналіз пагроз з высокай дакладнасцю і хуткасцю. У воблаку разгортваецца кластар з якія фільтруюць вузлоў, праз якія праходзіць увесь трафік. Гэтыя вузлы блакуюць напады на вэб-прыкладанні і адпраўляюць статыстыку ў Цэнтр аналітыкі. Ён выкарыстоўвае алгарытмы машыннага навучання, каб абнавіць правілы блакіроўкі для ўсіх якія абараняюцца прыкладанняў. Рэалізацыя падобнай схемы пазначана на мал. 4. Падобныя адаптаваныя правілы бяспекі мінімізуюць колькасць ілжывых спрацоўванняў файрвала.

Эвалюцыя Web Application Firewall: ад сеткавых экранаў да хмарных сістэм абароны з машынным навучаннем

Цяпер крыху пра асаблівасці хмарных WAF з пункту гледжання арганізацыйных момантаў і кіравання:

  • Пераход да OpEx. У выпадку з хмарнымі WAF кошт укаранення будзе раўняцца нулю, так як усе жалеза і ліцэнзіі ўжо аплаціў правайдэр, аплата сэрвісу ажыццяўляецца па падпісцы.
  • Розныя тарыфныя планы. Карыстальнік хмарнага сэрвісу можа аператыўна падключыць ці адключыць дадатковыя опцыі. Кіраванне функцыямі рэалізуецца з адзінай панэлі кіравання, якая таксама абаронена. Доступ да яе ажыццяўляецца па HTTPS, плюс маецца механізм двухфактарнай аўтэнтыфікацыі на базе пратакола TOTP (Time-based One-Time Password Algorithm).
  • Падключэнне па DNS. Можна самастойна змяніць DNS і наладзіць маршрутызацыю ў сетцы. Для рашэння гэтых задач не трэба набіраць і навучаць асобных адмыслоўцаў. Як правіла, з настройкай можа дапамагчы тэхнічная падтрымка правайдэра.

WAF-тэхналогіі прайшлі эвалюцыю ад простых сеткавых экранаў з эмпірычнымі правіламі да комплексных сістэм абароны з алгарытмамі машыннага навучання. Цяпер файрвалы прыкладанняў валодаюць шырокім спектрам функцый, якія былі цяжкарэалізаваны ў 90-х. Шмат у чым з'яўленне новай функцыянальнасці стала магчыма дзякуючы хмарным тэхналогіям. WAF-рашэнні і іх кампаненты працягваюць развівацца. Гэтак жа, як і іншыя сферы ИБ.

Тэкст падрыхтаваў Аляксандр Карпузікаў, менеджэр па развіцці прадуктаў ИБ хмарнага правайдэра #CloudMTS.

Крыніца: habr.com

Дадаць каментар