ʻO ka hoʻomohala ʻana o ka Pākuhi Pūnaewele Pūnaewele: mai nā pā ahi a i nā ʻōnaehana pale kapuaʻi me ka aʻo mīkini

Ma kā mākou mea mua e pili ana i nā kumuhana ao, mākou haʻiʻia, pehea e pale ai i nā kumuwaiwai IT ma ke ao ākea a no ke aha i kūpono ʻole ai nā antiviruses kahiko no kēia mau kumu. Ma kēia pou, e hoʻomau mākou i ke kumuhana o ka palekana ao a kamaʻilio e pili ana i ka ulu ʻana o WAF a me ka mea ʻoi aku ka maikaʻi e koho: ʻenehana, lako polokalamu a i ʻole ke ao. 

ʻO ka hoʻomohala ʻana o ka Pākuhi Pūnaewele Pūnaewele: mai nā pā ahi a i nā ʻōnaehana pale kapuaʻi me ka aʻo mīkini

He aha ka WAF

ʻOi aku ma mua o 75% o ka hoʻouka kaua hacker e pili ana i nā nāwaliwali o nā noi pūnaewele a me nā pūnaewele: ʻaʻole ʻike pinepine ʻia kēlā mau hoʻouka ʻana i nā ʻōnaehana palekana ʻike a me nā lawelawe palekana ʻike. ʻO nā vulnerabilities i loko o nā polokalamu pūnaewele e lawe i nā pilikia o ka hoʻololi a me ka hoʻopunipuni o nā moʻokāki mea hoʻohana a me nā ʻikepili pilikino, nā ʻōlelo huna, a me nā helu kāleka hōʻaiʻē. Eia kekahi, ʻo nā nāwaliwali o ka pūnaewele e lilo i wahi komo no nā mea hoʻouka i loko o ka ʻoihana hui.

Web Application Firewall (WAF) he pale pale e ālai ana i nā hoʻouka kaua ma nā polokalamu pūnaewele: SQL injection, cross-site scripting, remote code execution, brute force and authorization bypass. Me nā hoʻouka kaua e hoʻohana i nā nāwaliwali o ka lā ʻole. Hāʻawi nā pā ahi noi i ka pale ma ka nānā ʻana i ka ʻike o ka ʻaoʻao pūnaewele, me ka HTML, DHTML, a me CSS, a me ka kānana ʻana i nā noi HTTP/HTTPS.

He aha nā hoʻoholo mua?

Ua hana hou ʻia nā hoʻāʻo mua e hana i kahi Pākuhi Pūnaewele Pūnaewele i nā makahiki 90 mua. Ma kahi o ʻekolu mau ʻenekinia i ʻike ʻia i hana ma kēia kahua. ʻO ka mea mua, ʻo ke kaukaʻi ʻepekema kamepiula ʻo Gene Spafford mai ke Kulanui ʻo Purdue. Ua wehewehe ʻo ia i ka hoʻolālā ʻana o kahi pā ahi noi proxy a paʻi ʻia ma 1991 ma ka puke "Hoʻomaʻamaʻa ka palekana UNIX".

ʻO ka lua a me ke kolu, ʻo ia nā loea palekana ʻike ʻo William Cheswick lāua ʻo Marcus Ranum mai Bell Labs. Ua kūkulu lākou i kekahi o nā prototypes firewall noi mua. Ua hoʻolaha ʻia e DEC - ua hoʻokuʻu ʻia ka huahana ma lalo o ka inoa SEAL (Secure External Access Link).

Akā ʻaʻole ʻo SEAL kahi hoʻonā WAF piha. ʻO ia kahi pā ahi maʻamau me nā hana holomua - ka hiki ke pale i nā hoʻouka kaua ma FTP a me RSH. No kēia kumu, ʻo ka hopena WAF mua i kēia lā i manaʻo ʻia ʻo ia ka huahana o Perfecto Technologies (ma hope o Sanctum). I ka makahiki 1999 ʻo ia hōʻike ʻia Pūnaehana AppShield. I kēlā manawa, ke hoʻomohala nei ʻo Perfecto Technologies i nā hoʻonā palekana ʻike no ka e-commerce, a ua lilo nā hale kūʻai pūnaewele i ka poʻe i manaʻo ʻia no kā lākou huahana hou. Ua hiki iā AppShield ke kālailai i nā noi HTTP a ālai ʻia i nā hoʻouka kaua e pili ana i nā kulekele palekana ʻike.

Ma kahi o ka manawa like me AppShield (ma 2002), ua ʻike ʻia ka WAF kumu wehe mua. Ua lilo ʻo ia Palekana Mod. Ua hana ʻia me ka manaʻo e hoʻolaha i nā ʻenehana WAF a kākoʻo mau ʻia e ke kaiāulu IT (eia waihona ma GitHub). Hoʻopaʻa ʻo ModSecurity i ka hoʻouka ʻana i nā noi e pili ana i kahi hoʻonohonoho maʻamau o nā hōʻike maʻamau (kaulima) - nā mea hana no ka nānā ʻana i nā noi e pili ana i nā kumu - Hoʻonohonoho ʻia ʻo OWASP Core Rula.

ʻO ka hopena, ua hoʻokō nā mea hoʻomohala i kā lākou pahuhopu - ua hoʻomaka nā hoʻonā WAF hou i ka mākeke, me nā mea i kūkulu ʻia ma ke kumu o ModSecurity.

ʻEkolu hanauna he moʻolelo

He mea maʻamau ka hoʻokaʻawale ʻana i ʻekolu mau hanauna o nā ʻōnaehana WAF, i ulu me ka hoʻomohala ʻana o ka ʻenehana.

ʻO ka hanauna mua. Hana pū me nā ʻōlelo maʻamau (a i ʻole nā ​​huaʻōlelo). Aia kēia me ModSecurity. Ke aʻo nei ka mea hoʻolako pūnaewele i nā ʻano o ka hoʻouka ʻana i nā noi a hoʻopuka i nā ʻano hoʻohālike e wehewehe ana i nā noi kūpono a hiki ke hōʻino ʻia. Nānā ʻo WAF i kēia mau papa inoa a hoʻoholo i ka mea e hana ai i kahi kūlana - e ālai i ke kaʻa a i ʻole.

ʻO kahi laʻana o ka ʻike ma muli o nā ʻōlelo maʻamau ka papahana i ʻōlelo ʻia Hoʻonohonoho Rula kumu puna hāmama. ʻO kekahi laʻana - Naxsi, he kumu hamama no hoi. ʻO nā ʻōnaehana me nā ʻōlelo maʻamau he nui nā hemahema, ʻo ia hoʻi, ke ʻike ʻia kahi nāwaliwali hou, pono ka luna hoʻomalu e hana i nā lula hou me ka lima. I ka hihia o kahi ʻōnaehana IT nui, aia paha he mau kaukani mau lula. He paʻakikī ka mālama ʻana i nā ʻōlelo maʻamau, ʻaʻole e haʻi i ka ʻoiaʻiʻo ʻo ka nānā ʻana iā lākou hiki ke hōʻemi i ka hana pūnaewele.

Loaʻa i nā ʻōlelo maʻamau ke kiʻekiʻe kiʻekiʻe o ka maikaʻi wahaheʻe. ʻO ka mea ʻōlelo kaulana ʻo Noam Chomsky i hāʻawi i ka hoʻokaʻawale ʻana i nā grammars kahi i hoʻokaʻawale ai iā lākou i ʻehā mau kūlana kūlana o ka paʻakikī. E like me kēia hoʻokaʻawale ʻana, hiki i nā ʻōlelo maʻamau ke wehewehe i nā lula o ka pā ahi ʻaʻole i komo i ka deviations mai ke kumu. ʻO ia ke ʻano hiki i nā mea hoʻouka ke "hoʻopunipuni" i ka WAF mua. ʻO kahi ala e pale aku ai i kēia, ʻo ia ka hoʻohui ʻana i nā huaʻōlelo kūikawā i nā noi noi ʻaʻole e hoʻopilikia i ka loiloi o ka ʻikepili ʻino, akā e uhaki i ke kānāwai pūlima.

ʻO ka hoʻomohala ʻana o ka Pākuhi Pūnaewele Pūnaewele: mai nā pā ahi a i nā ʻōnaehana pale kapuaʻi me ka aʻo mīkini

ʻO ka lua o ka hanauna. No ka pale ʻana i ka hana a me ka pololei o nā pilikia o WAF, ua hoʻomohala ʻia nā pā ahi no nā hanauna lua. Loaʻa iā lākou nā parser i kuleana no ka ʻike ʻana i nā ʻano hoʻouka i wehewehe ʻia (ma HTML, JS, etc.). Ke hana nei kēia mau parser me nā hōʻailona kūikawā e wehewehe ana i nā nīnau (e laʻa, loli, string, ʻike ʻole, helu). Hoʻokomo ʻia nā ʻōkuhi hōʻailona hōʻino i loko o kahi papa inoa ʻokoʻa, kahi e nānā mau ai ka ʻōnaehana WAF. Ua hōʻike mua ʻia kēia ala ma ka hālāwai Black Hat 2012 ma ke ʻano o C / C ++ hale waihona puke libinjection, hiki iā ʻoe ke ʻike i nā injections SQL.

Ke hoʻohālikelike ʻia me nā WAF mua, hiki i nā parser kūikawā ke wikiwiki. Akā naʻe, ʻaʻole lākou i hoʻoponopono i nā pilikia e pili ana i ka hoʻonohonoho lima ʻana i ka ʻōnaehana i ka wā e kū mai ai nā hoʻouka kaua hou.

ʻO ka hoʻomohala ʻana o ka Pākuhi Pūnaewele Pūnaewele: mai nā pā ahi a i nā ʻōnaehana pale kapuaʻi me ka aʻo mīkini

ʻO ke kolu o nā hanauna. ʻO ka evolution i loko o ke kolu o nā hanauna ʻike loiloi ʻo ia ka hoʻohana ʻana i nā ʻano aʻo mīkini e hiki ai ke lawe i ka grammar ʻike i kahi kokoke loa i ka grammar SQL/HTML/JS maoli o nā ʻōnaehana pale. Hiki i kēia loiloi ʻike ke hoʻololi i kahi mīkini Turing e uhi i nā grammar recursively enumerable. Eia kekahi, ma mua o ka hana ʻana i kahi mīkini Turing hiki ke hoʻololi ʻia a hiki i ka paʻi ʻia ʻana o nā haʻawina mua o nā mīkini Turing neural.

Hāʻawi ke aʻo ʻana i ka mīkini i ka mana kūʻokoʻa e hoʻololi i kekahi grammar e uhi i kēlā me kēia ʻano o ka hoʻouka ʻana me ka ʻole o ka hana lima ʻana i nā papa inoa inoa e like me ka mea i koi ʻia i ka ʻike ʻana o ka hanauna mua, a me ka ʻole o ka hoʻomohala ʻana i nā tokenizers / parsers hou no nā ʻano hoʻouka hou e like me Memcached, Redis, Cassandra, SSRF injections. , e like me ka mea i koi ʻia e ke ʻano o ka hanauna lua.

Ma ka hoʻohui ʻana i nā hanauna ʻekolu o ka loiloi ʻike, hiki iā mākou ke kahakiʻi i kahi kiʻi hou kahi i hōʻike ʻia ai ke kolu o ka ʻike ʻana e ka outline ʻulaʻula (Figure 3). Aia i kēia hanauna kekahi o nā hoʻonā a mākou e hoʻokō nei i ke ao me Onsek, ka mea nāna i hoʻomohala i ka paepae no ka pale ʻana i nā noi pūnaewele a me ka Wallarm API.

Ke hoʻohana nei ka loiloi ʻike i ka manaʻo mai ka noi e hoʻokani ponoʻī iā ia iho. Ma ke aʻo ʻana i ka mīkini, ua kapa ʻia kēia ʻōlelo hoʻopuka "hoʻoikaika." ʻO ka maʻamau, aia hoʻokahi a ʻoi aku paha nā ʻano o ia hoʻoikaika:

  • Ka nānā 'ana i ka hana pane noi (passive)
  • ʻO ka nānā ʻana/fuzzer (ʻeleu)
  • E hōʻike i nā faila / nā kaʻina hana interceptor / nā pahele (ma hope o ka ʻoiaʻiʻo)
  • Manual (i wehewehe ʻia e ka luna hoʻomalu)

ʻO ka hopena, ʻike pū ka loiloi ʻike ʻekolu o nā hanauna i ka pilikia koʻikoʻi o ka pololei. ʻAʻole hiki i kēia manawa ke pale wale i nā hopena maikaʻi ʻole a me nā hewa hewa ʻole, akā e ʻike pū kekahi i nā ʻoiaʻiʻo ʻoiaʻiʻo, e like me ka ʻike ʻana i ka hoʻohana ʻana i ka mea kauoha SQL ma Control Panel, ka hoʻouka ʻana i ka ʻaoʻao pūnaewele, nā noi AJAX e pili ana i nā hewa JavaScript, a me nā mea ʻē aʻe.

ʻO ka hoʻomohala ʻana o ka Pākuhi Pūnaewele Pūnaewele: mai nā pā ahi a i nā ʻōnaehana pale kapuaʻi me ka aʻo mīkini

ʻO ka hoʻomohala ʻana o ka Pākuhi Pūnaewele Pūnaewele: mai nā pā ahi a i nā ʻōnaehana pale kapuaʻi me ka aʻo mīkini

ʻO ka hoʻomohala ʻana o ka Pākuhi Pūnaewele Pūnaewele: mai nā pā ahi a i nā ʻōnaehana pale kapuaʻi me ka aʻo mīkini

A laila, e noʻonoʻo mākou i nā mana ʻenehana o nā koho hoʻokō WAF like ʻole.

Paʻa, lako polokalamu a i ʻole ke ao - he aha kāu e koho ai?

ʻO kekahi o nā koho no ka hoʻokō ʻana i nā pā ahi noi he ʻōnaehana hāmeʻa. ʻO ia mau ʻōnaehana he mau mea hoʻopili helu kūikawā i hoʻokomo ʻia e kahi hui ma ka ʻāina i kāna kikowaena data. Akā i kēia hihia, pono ʻoe e kūʻai i kāu mau lako ponoʻī a uku i ke kālā i nā integrators no ka hoʻonohonoho ʻana a me ka debugging iā ia (inā ʻaʻole i loaʻa i ka hui kāna ʻoihana IT ponoʻī). I ka manawa like, pau nā mea hana a lilo i mea hiki ʻole ke hoʻohana ʻia, no laila koi ʻia nā mea kūʻai aku e hoʻolilo kālā no ka hoʻonui ʻana i nā lako.

ʻO kahi koho ʻē aʻe no ka lawe ʻana i kahi WAF he hoʻokō polokalamu. Hoʻokomo ʻia ka hopena ma ke ʻano he add-on no kekahi polokalamu (no ka laʻana, ua hoʻonohonoho ʻia ʻo ModSecurity ma luna o Apache) a holo ma ka server like me ia. Ma ke ʻano maʻamau, hiki ke kau ʻia kēlā mau hoʻonā ma kahi kikowaena kino a ma ke ao. ʻO kā lākou hemahema ka scalability a me ke kākoʻo o ka mea kūʻai aku.

ʻO ka koho ʻekolu ke hoʻonohonoho i kahi WAF mai ke ao. Hāʻawi ʻia ia ʻano hoʻonā e nā mea hoʻolako kapua ma ke ʻano he lawelawe kau inoa. ʻAʻole pono ka ʻoihana e kūʻai a hoʻonohonoho i nā lako kūikawā; hāʻule kēia mau hana ma nā poʻohiwi o ka mea lawelawe. ʻO kahi mea koʻikoʻi, ʻaʻole i hōʻike ʻia kahi kapuaʻi WAF hou i ka neʻe ʻana o nā kumuwaiwai i ke kahua o ka mea hoʻolako. Hiki ke kau ʻia ka pūnaewele ma nā wahi a pau, ʻoiai ma ka hale.

E wehewehe hou mākou i ke kumu e nānā nui ai ka poʻe i ke ao WAF.

He aha ka WAF hiki ke hana ma ke ao

Ma ke ʻano o nā mana ʻenehana:

  • Na ka mea hoʻolako ke kuleana no nā mea hou. Hāʻawi ʻia ʻo WAF ma ke kau inoa, no laila e nānā ka mea lawelawe i ka pili o nā mea hou a me nā laikini. ʻAʻole pili nā mea hou i ka lako polokalamu wale nō, akā i ka lako lako pū kekahi. Hoʻonui ka mea hoʻolako i ka paka server a mālama iā ia. ʻO ia hoʻi ke kuleana no ka hoʻohālikelike ʻana i ka ukana a me ka redundancy. Inā hāʻule ke kikowaena WAF, hoʻohuli koke ʻia ke kaʻa i kahi mīkini ʻē aʻe. Hiki iā ʻoe ke pale i nā kūlana i ka wā e komo ai ka pā ahi i ke ʻano hāmama - ʻaʻole hiki ke hoʻokō i ka ukana a hoʻōki i nā noi kānana.
  • Hoʻopili pono. Hoʻopaʻa ʻia nā ʻāpana ʻokoʻa i ke komo ʻana i nā ʻāpana ʻae ʻia o ka noi a hiki i ka mea hoʻomohala e pani ai i ka nāwaliwali. ʻO ka hopena, loaʻa i ka mea kūʻai aku o ka mea hāʻawi kapua ka manawa e kali mālie a hiki i ka mea hoʻolako o kēia a i ʻole ia polokalamu e hoʻopuka i nā "patches" mana. ʻO ka hana ʻana i kēia me ka hikiwawe he mea nui ia no ka mea hoʻolako lako polokalamu. No ka laʻana, i loko o ke kahua ʻo Wallarm, aia kahi ʻāpana polokalamu ʻokoʻa ke kuleana no ka patching virtual. Hiki i ka luna hoʻomalu ke hoʻohui i nā ʻōlelo maʻamau maʻamau e ālai i nā noi ʻino. Hiki i ka ʻōnaehana ke hōʻailona i kekahi mau noi me ka hae "Confidential data". A laila uhi ʻia kā lākou mau palena, a ʻaʻole i hoʻouna ʻia lākou ma waho o ka wahi hana ahi.
  • ʻO ke anapuni i kūkulu ʻia a me ka mea hoʻonāwaliwali. ʻAe kēia iā ʻoe e hoʻoholo kūʻokoʻa i nā palena pūnaewele o ka ʻenehana IT me ka hoʻohana ʻana i ka ʻikepili mai nā nīnau DNS a me ka protocol WHOIS. Ma hope, hoʻopaʻa ʻokoʻa ʻo WAF i nā lawelawe e holo ana i loko o ka perimeter (hana i ka scan port). Hiki i ka pā ahi ke ʻike i nā ʻano haʻahaʻa maʻamau - SQLi, XSS, XXE, a me nā mea ʻē aʻe - a me ka ʻike ʻana i nā hewa i ka hoʻonohonoho polokalamu, no ka laʻana, ke komo ʻole ʻia i nā waihona Git a me BitBucket a me nā kelepona inoa ʻole iā Elasticsearch, Redis, MongoDB.
  • Mālama ʻia nā hoʻouka ʻana e nā kumu ao. E like me ke kānāwai, loaʻa i nā mea hāʻawi kapua ka mana helu nui. Hiki iā ʻoe ke kālailai i nā mea hoʻoweliweli me ka pololei a me ka wikiwiki. Hoʻokomo ʻia kahi pūʻulu o nā kānana i loko o ke ao, kahi e hele ai nā kaʻa a pau. Hoʻopaʻa kēia mau nodes i ka hoʻouka ʻana i nā noi pūnaewele a hoʻouna i nā helu i ka Analytics Center. Hoʻohana ʻo ia i nā algorithm aʻo mīkini e hoʻonui i nā lula pale no nā noi āpau i pale ʻia. Hōʻike ʻia ka hoʻokō ʻana o ia ʻano papahana ma Fig. 4. ʻO ia mau lula palekana i hoʻopaʻa ʻia e hōʻemi i ka helu o nā puʻupuʻu ahi hoʻopunipuni.

ʻO ka hoʻomohala ʻana o ka Pākuhi Pūnaewele Pūnaewele: mai nā pā ahi a i nā ʻōnaehana pale kapuaʻi me ka aʻo mīkini

I kēia manawa e pili ana i nā hiʻohiʻona o ke ao WAF e pili ana i nā pilikia hoʻonohonoho a me ka hoʻokele:

  • Hoʻololi i ka OpEx. I ka hihia o cloud WAFs, ʻo ke kumukūʻai o ka hoʻokō ʻana he zero, no ka mea, ua uku ʻia nā lako āpau a me nā laikini e ka mea hāʻawi; uku ʻia ka lawelawe ma ke kau inoa.
  • Nā hoʻolālā uku like ʻole. Hiki i ka mea hoʻohana lawelawe kapua ke hoʻā a hoʻopau i nā koho hou aʻe. Hoʻokele ʻia nā hana mai kahi papa mana hoʻokahi, a paʻa pū kekahi. Loaʻa iā ia ma o HTTPS, a aia kahi ʻano hōʻoia ʻelua-factor e pili ana i ka protocol TOTP (Time-based One-Time Password Algorithm).
  • Hoʻohui ma o DNS. Hiki iā ʻoe ke hoʻololi iā DNS iā ʻoe iho a hoʻonohonoho i ka hoʻokele pūnaewele. No ka hoʻoponopono ʻana i kēia mau pilikia ʻaʻole pono e hoʻomaʻamaʻa a hoʻomaʻamaʻa i nā loea kūikawā. E like me ke kānāwai, hiki i ke kākoʻo ʻenehana o ka mea hāʻawi ke kōkua i ka hoʻonohonoho.

Ua ulu nā ʻenehana WAF mai nā pā ahi maʻalahi me nā lula o ka manamana lima i nā ʻōnaehana pale paʻakikī me nā algorithm aʻo mīkini. Hāʻawi ʻia nā pā ahi noi i kahi ākea o nā hiʻohiʻona i paʻakikī ke hoʻokō i nā makahiki 90. Ma nā ʻano he nui, hiki i ka puka ʻana mai o nā hana hou ke hoʻomaikaʻi i nā ʻenehana kapua. Ke hoʻomau nei nā hoʻonā WAF a me kā lākou mau ʻāpana. E like me nā wahi ʻē aʻe o ka palekana ʻike.

Ua hoʻomākaukau ʻia ka kikokikona e Alexander Karpuzikov, ka luna hoʻomohala huahana palekana ʻike ma ka mea hāʻawi kapua #CloudMTS.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka