Mūsu kiberaizsardzības centrs ir atbildīgs par klienta tīmekļa infrastruktūras drošību un atvaira uzbrukumus klientu vietnēm. Lai aizsargātu pret uzbrukumiem, mēs izmantojam FortiWeb tīmekļa lietojumprogrammu ugunsmūrus (WAF). Bet pat stilīgākais WAF nav panaceja un nepasargā "no kastes" no mērķtiecīgiem uzbrukumiem.
Tāpēc papildus WAF izmantojam . Tas palīdz apkopot visus notikumus vienuviet, uzkrāj statistiku, vizualizē to un ļauj laikus redzēt mērķtiecīgu uzbrukumu.
Šodien es jums pastāstīšu sīkāk, kā mēs šķērsojām Ziemassvētku eglīti ar WAF un kas no tā sanāca.

Stāsts par vienu uzbrukumu: kā viss darbojās pirms pārejas uz ELK
Mūsu mākonī klients ir izvietojis lietojumprogrammu aiz mūsu WAF. No 10 000 līdz 100 000 lietotāju dienā pieslēdzās vietnei, pieslēgumu skaits sasniedza 20 miljonus dienā. No tiem 3-5 lietotāji bija iebrucēji un mēģināja uzlauzt vietni.
FortiWeb diezgan viegli bloķēja parasto brutālo spēku no vienas IP adreses. Vietnes apmeklējumu skaits minūtē bija lielāks nekā likumīgo lietotāju skaits. Mēs vienkārši iestatījām aktivitātes sliekšņus no vienas adreses un atvairām uzbrukumu.
Daudz grūtāk ir tikt galā ar "lēnajiem uzbrukumiem", kad uzbrucēji rīkojas lēni un maskējas par parastiem klientiem. Viņi izmanto daudzas unikālas IP adreses. Šāda darbība WAF nešķita pēc milzīga brutāla spēka, to bija grūtāk izsekot automātiski. Un pastāvēja arī risks bloķēt parastos lietotājus. Mēs meklējām citas uzbrukuma pazīmes un izveidojām politiku automātiskai IP adrešu bloķēšanai, pamatojoties uz šo zīmi. Piemēram, daudzām nelikumīgām sesijām http pieprasījuma galvenēs bija kopīgi lauki. Šādi lauki bieži bija jāmeklē manuāli FortiWeb notikumu žurnālos.
Tas kļuva garš un neērti. FortiWeb standarta funkcionalitātē notikumi tiek ierakstīti tekstā 3 dažādos žurnālos: atklātie uzbrukumi, informācija par pieprasījumiem un sistēmas ziņojumi par WAF darbību. Vienā minūtē var notikt desmitiem vai pat simtiem uzbrukumu.
Ne tik daudz, bet jums ir manuāli jākāpj cauri vairākiem žurnāliem un jāatkārto daudzās rindās:

Uzbrukuma žurnālā mēs redzam lietotāju adreses un darbības veidu.
Nepietiek vienkārši skenēt žurnāla tabulu. Lai atrastu visinteresantāko un noderīgāko par uzbrukuma būtību, jums jāielūkojas konkrētā notikumā:

Izceltie lauki palīdz noteikt "lēnu uzbrukumu". Avots: ekrānuzņēmums no .
Galvenā problēma ir tā, ka to var izdomāt tikai FortiWeb speciālists. Ja darba laikā vēl varētu izsekot aizdomīgām darbībām reāllaikā, tad nakts incidentu izmeklēšana varētu aizkavēties. Kad FortiWeb politikas kaut kādu iemeslu dēļ nedarbojās, dežurējošie nakts maiņas inženieri nevarēja novērtēt situāciju bez piekļuves WAF un pamodināja FortiWeb speciālistu. Vairākas stundas skatījāmies baļķus un atradām uzbrukuma brīdi.
Ar šādu informācijas apjomu ir grūti īsumā saprast kopējo ainu un rīkoties proaktīvi. Tad mēs nolēmām apkopot datus vienuviet, lai visu analizētu vizuālā veidā, atrastu uzbrukuma sākumu, noteiktu tā virzienu un bloķēšanas metodi.
Kas tika izvēlēts
Pirmkārt, mēs apskatījām jau izmantotos risinājumus, lai nevajadzīgi nepavairotos entītijas.
Viens no pirmajiem variantiem bija Nagiosko izmantojam, lai uzraudzītu , , ārkārtas brīdinājumi. Apsargi to izmanto arī, lai aizdomīgas satiksmes gadījumā paziņotu dežurantiem, taču tas neprot savākt atšķirīgus baļķus un tāpēc pazūd.
Bija iespēja visu apvienot ar MySQL un PostgreSQL vai cita relāciju datu bāze. Bet, lai izvilktu datus, bija nepieciešams noformēt savu pieteikumu.
Kā baļķu savācējs mūsu uzņēmumā viņi arī izmanto FortiAnalyzer no Fortinet. Bet šajā gadījumā viņš arī neiederējās. Pirmkārt, tas ir vairāk asināts darbam ar ugunsmūri FortiGate. Otrkārt, trūka daudzu iestatījumu, un mijiedarbībai ar to bija nepieciešamas lieliskas zināšanas par SQL vaicājumiem. Un, treškārt, tā izmantošana palielinātu pakalpojuma izmaksas klientam.
Tā mēs nonācām pie atvērtā avota sejā ELK.
Kāpēc izvēlēties ELK
ELK ir atvērtā pirmkoda programmu kopums:
- Elastikas meklēšana - laikrindu datu bāze, kas tikko izveidota darbam ar lielu teksta apjomu;
- Logstash – datu vākšanas mehānisms, kas var pārvērst žurnālus vēlamajā formātā;
- Kibana - labs vizualizētājs, kā arī diezgan draudzīgs interfeiss Elasticsearch pārvaldībai. Varat to izmantot, lai izveidotu grafikus, kurus dežurējošie inženieri var uzraudzīt naktī.
ELK uzņemšanas slieksnis ir zems. Visas pamatfunkcijas ir bezmaksas. Kas vēl vajadzīgs laimei.
Kā jūs to visu apvienojāt vienā sistēmā?
Izveidoja indeksus un atstāja tikai nepieciešamo informāciju. Mēs ielādējām visus trīs FortiWEB žurnālus ELK - izvade bija indeksi. Tie ir faili ar visiem savāktajiem žurnāliem par periodu, piemēram, dienu. Ja mēs tos uzreiz vizualizētu, tad redzētu tikai uzbrukumu dinamiku. Lai iegūtu sīkāku informāciju, jums ir jāiekļaujas katrā uzbrukumā un jāaplūko konkrēti lauki.

Mēs sapratām, ka vispirms ir jāiestata nestrukturētas informācijas parsēšana. Mēs izmantojām garus laukus kā virknes, piemēram, “Ziņojums” un “URL”, un analizējām tos, lai iegūtu vairāk informācijas lēmumu pieņemšanai.
Piemēram, izmantojot parsēšanu, mēs atsevišķi izņēmām lietotāja atrašanās vietu. Tas palīdzēja nekavējoties izcelt uzbrukumus no ārvalstīm Krievijas lietotāju vietnēm. Bloķējot visus savienojumus no citām valstīm, mēs samazinājām uzbrukumu skaitu 2 reizes un varējām viegli tikt galā ar uzbrukumiem Krievijas iekšienē.
Pēc parsēšanas viņi sāka meklēt, kādu informāciju uzglabāt un vizualizēt. Visu atstāt žurnālā bija nepiemēroti: viena indeksa izmērs bija liels - 7 GB. ELK faila apstrāde prasīja ilgu laiku. Tomēr ne visa informācija bija noderīga. Kaut kas tika dublēts un aizņēma papildu vietu - bija nepieciešams optimizēt.
Sākumā mēs vienkārši izskatījām indeksu un noņēmām nevajadzīgos notikumus. Tas izrādījās vēl neērtāks un ilgāks nekā darbs ar žurnāliem pašā FortiWeb. Vienīgais pluss no "Ziemassvētku eglītes" šajā posmā ir tas, ka uz viena ekrāna varējām vizualizēt lielu laika posmu.
Nekritām izmisumā, turpinājām ēst kaktusu un pētīt ELK un ticējām, ka izdosies iegūt nepieciešamo informāciju. Pēc indeksu tīrīšanas mēs sākām vizualizēt, kas ir. Tātad mēs nonācām pie lieliem informācijas paneļiem. Iebāzām logrīkus - vizuāli un eleganti, īsta ЁLKa!

Noķerts uzbrukuma brīdis. Tagad bija jāsaprot, kā diagrammā izskatās uzbrukuma sākums. Lai to noteiktu, mēs apskatījām servera atbildes lietotājam (atgriešanas kodus). Mūs interesēja servera atbildes ar šādiem kodiem (rc):
Kods (rc)
Nosaukums
Apraksts
0
DROP
Pieprasījums serverim ir bloķēts
200
Ok
Pieprasījums veiksmīgi apstrādāts
400
Slikts pieprasījums
Slikts pieprasījums
403
Aizliegts
Autorizācija liegta
500
Iekšējā servera kļūda
Pakalpojums nav pieejams
Ja kāds sāka uzbrukt vietnei, kodu attiecība mainījās:
- Ja bija vairāk kļūdainu pieprasījumu ar kodu 400 un tikpat daudz parastu pieprasījumu ar kodu 200, tad kāds mēģināja uzlauzt vietni.
- Ja tajā pašā laikā pieauga arī pieprasījumi ar kodu 0, tad arī FortiWeb politiķi "redzēja" uzbrukumu un piemēroja tam blokus.
- Ja palielinājās ziņojumu skaits ar kodu 500, tad vietne šīm IP adresēm nav pieejama - arī sava veida bloķēšana.
Trešajā mēnesī mēs bijām izveidojuši informācijas paneli šīs darbības izsekošanai.

Lai nepārraudzītu visu manuāli, mēs uzstādījām integrāciju ar Nagios, kas noteiktos intervālos aptaujāja ELK. Ja tas fiksēja sliekšņa vērtību sasniegšanu pēc kodiem, tas nosūtīja dežurantiem paziņojumu par aizdomīgu darbību.
Apvienotās 4 diagrammas uzraudzības sistēmā. Tagad bija svarīgi grafikos redzēt brīdi, kad uzbrukums nav bloķēts un nepieciešama inženiera iejaukšanās. 4 dažādos grafikos mūsu acs bija aizmiglota. Tāpēc mēs apvienojām diagrammas un sākām visu novērot vienā ekrānā.
Uzraudzībā mēs vērojām, kā mainās dažādu krāsu diagrammas. Sarkanas krāsas uzliesmojums norādīja, ka uzbrukums ir sācies, savukārt oranžie un zilie grafiki rādīja FortiWeb reakciju:

Šeit viss ir kārtībā: bija "sarkano" aktivitāšu uzliesmojums, taču FortiWeb tika galā un uzbrukuma grafiks kļuva tukšs.
Mēs arī izveidojām diagrammas piemēru, kurā nepieciešama iejaukšanās:

Šeit redzams, ka FortiWeb aktivitāte ir palielinājusies, bet sarkanais uzbrukuma grafiks nav samazinājies. Jums jāmaina WAF iestatījumi.
Arī nakts incidentu izmeklēšana ir kļuvusi vienkāršāka. Grafikā uzreiz redzams brīdis, kad pienācis laiks ķerties pie vietnes aizstāvības.

Tā dažreiz notiek naktīs. Sarkanais grafiks - uzbrukums ir sācies. Zils - FortiWeb darbība. Uzbrukums nebija pilnībā bloķēts, nācās iejaukties.
Kur mēs ejam
Tagad mēs apmācām dežūras administratorus darbam ar ELK. Dežuranti mācās novērtēt situāciju informācijas panelī un pieņemt lēmumu: ir pienācis laiks vērsties pie FortiWeb speciālista, vai arī pietiks ar WAF politikām, lai automātiski atvairītu uzbrukumu. Tādā veidā mēs samazinām drošības inženieru slodzi naktī un sadalām atbalsta lomas sistēmas līmenī. Piekļuve FortiWeb paliek tikai kiberaizsardzības centram, un tikai viņi veic izmaiņas WAF iestatījumos, kad tas ir steidzami nepieciešams.
Mēs strādājam arī pie klientu ziņošanas. Plānojam, ka dati par WAF darba dinamiku būs pieejami klienta personīgajā kontā. ELK padarīs situāciju skaidrāku bez nepieciešamības atsaukties uz pašu WAF.
Ja klients vēlas uzraudzīt savu aizsardzību reāllaikā, noderēs arī ELK. Mēs nevaram atdot piekļuvi WAF, jo klienta iejaukšanās darbā var ietekmēt pārējo. Bet jūs varat paņemt atsevišķu ELK un nodot to "paspēlēties".
Tādi ir pēdējā laikā sakrājušies Ziemassvētku eglītes izmantošanas scenāriji. Dalieties savās domās par to un neaizmirstiet lai izvairītos no datubāzes noplūdēm.
Avots: www.habr.com
