Turvalisus

10 turvaaukude tüübid

10 turvaaukude tüübid
Tarkvarakoodi või mis tahes süsteemi tahtmatut või juhuslikku viga, mis muudab selle potentsiaalselt kasutatavaks ebaseaduslike kasutajate juurdepääsu, pahatahtliku käitumise, näiteks viiruste, troojalaste, usside või muu pahavara osas, nimetatakse turvanõrkuseks. Juba ära kasutatud tarkvara või nõrkade ja vaikeparoolide kasutamine muudab süsteemi ka välismaailma suhtes haavatavaks. Seda tüüpi turvanõrkused vajavad lappimist, et häkkerid saaksid süsteemile volitamata juurdepääsu saamiseks uuesti kasutada varem kasutatud ärakasutusi. Turvahaavatavus, mida nimetatakse ka turvaauguks või -nõrkuseks, on viga, viga või viga veebirakenduse ja serverite koodi, kujunduse ja arhitektuuri rakendamisel, mis käsitlemata jätmisel võib põhjustada süsteemi rikkumise ja muudab rünnaku suhtes haavatav kogu võrk. Nakatuvad inimesed hõlmavad rakenduse omanikku, rakenduse kasutajaid ja kõiki muid rakendusele tuginevaid isikuid. Vaatame veebirakenduste kõige ohtlikumaid ja levinumaid turvariske.

Sisukord

  1. Andmebaasi süstimine
  2. Katkine autentimine
  3. Tundlik andmete kokkupuude
  4. XML-välised üksused (XEE)
  5. Katkine juurdepääsukontroll
  6. Turvalisuse vale seadistamine
  7. Saididevaheline skriptimine (XSS)
  8. Ebakindel deserialiseerimine
  9. Teadaolevate haavatavustega komponentide kasutamine
  10. Ebapiisav logimine ja jälgimine

Andmebaasi süstimine:

Kui ebausaldusväärseid andmeid saadetakse tõlkile käsu osana mis tahes ala kaudu, mis võtab kasutaja sisendi i.Vormi sisestamisel või muul andmete esitamise alal ilmnevad süstimisvead. Ründaja pahatahtlikud päringud võivad tõlgi petta käskude täitmisele, mis võivad näidata konfidentsiaalseid andmeid, millele kasutajal pole luba vaadata. Näiteks SQL-i rünnaku korral, kui vormi sisend pole korralikult puhastatud, saab ründaja sisestada SQL-i andmebaasi ja pääseda selle sisule juurde ilma autoriseerimiseta, lihtsalt sisestades pahatahtliku SQL-i andmebaasikoodi vormi, mis ootab selget teksti. Igat tüüpi väli, mis võtab kasutaja sisendi, on süstitav, st.parameetrid, keskkonnamuutujad, kõik veebiteenused jne.

Rakendus on süstimisrünnaku suhtes haavatav, kui kasutaja sisestatud andmeid ei desinfitseerita ega valideerita dünaamiliste päringute abil ilma kontekstiteadliku põgenemiseta ja otse vaenulike andmete kasutamiseta. Süstimisvigu saab hõlpsasti avastada koodi uurimisega ning automatiseeritud tööriistade, näiteks skannerite ja fuzzerite abil. Süstimisrünnakute ärahoidmiseks võib võtta mõningaid meetmeid, näiteks andmete eraldamine käskudest ja päringutest, turvalise API kasutamine, mis tagab parameetrilise liidese, „valge nimekirja” serveripoolse sisendi valideerimise kasutamine selliste tööriistade kaudu nagu Snort, erimärkide põgenemine konkreetse põgenemissüntaksiga jne.

Süstimisrünnak võib põhjustada tohutu andmete kaotsimineku, konfidentsiaalse teabe avalikustamise, juurdepääsu keelamise ja isegi täieliku rakenduse ülevõtmise. Mõningaid SQL-i juhtelemente, näiteks LIMIT, saab kasutada rünnaku korral tohutu andmekao kontrollimiseks. Mõned süstimisrünnakute tüübid on SQL, OS, NoSQL, LDAP süstimisrünnakud.

Katkine autentimine:

Ründajad pääsevad juurde kasutajakontodele ja võivad administraatorikontode kaudu isegi kogu hostisüsteemi ohustada, kasutades autentimissüsteemide haavatavusi. Autentimisvead võimaldavad ründajal rikkuda paroole, seansimärke, autentimisvõtmeid ja neid võib aheldada teiste rünnakutega, mis võivad ajutiselt ja mõnel juhul püsivalt viia mis tahes muu kasutajakonto või seansi loata juurdepääsu. Oletame, et kasutajal on rikkumise käigus saadud miljonite kehtivate kasutajanimede ja paroolidega sõnaloend või sõnastik. Ta saab neid kasutada ükshaaval äärmiselt lühema aja jooksul, kasutades sisselogimissüsteemi automatiseeritud tööriistu ja skripte, et näha, kas keegi töötab. Kehv identiteedihalduse ja juurdepääsukontrollide juurutamine viib haavatavusteni, näiteks rikkis autentimine.

Rakendus on autentimisrünnaku suhtes haavatav, kui see võimaldab proovida erinevaid kasutajanimesid ja paroole, lubada sõnastikurünnakuid või toorjõurünnakuid ilma kaitsestrateegiata, kasutada lihtsaid, vaikimisi paroole või mis tahes rikkumisel lekkinud paroole, paljastada URL-is seansi ID-d, kasutada kehv parooli taastamise skeem, kasutab küpsiste mustrit. Katkist autentimist saab hõlpsasti kasutada, kasutades lihtsate tööriistade abil jõhkrat sundimist ja hea sõnastikuga sõnastiku rünnakuid. Seda tüüpi rünnakuid saab vältida mitmeteguriliste autentimissüsteemide abil, rakendades nõrku paroolikontrolli, käivitades parooli halbade paroolide andmebaasis, vaikimisi mandaate mitte kasutades, paroolide keerukuspoliitika joondades, kasutades head serveripoolset seansihaldur, mis genereerib pärast sisselogimist uue juhusliku seansi-ID jne.

Katkine autentimise haavatavus võib põhjustada mõne kasutajakonto ja administraatori konto ohtu seadmise - see on kõik, mida ründaja peab süsteemi rikkuma. Seda tüüpi rünnakud toovad kaasa identiteedivarguse, sotsiaalkindlustuspettused, rahapesu ja salastatud teabe avalikustamise. Rünnakute hulka kuuluvad sõnaraamaturünnakud, jõhker sundimine, seansi kaaperdamine ja seansihalduse rünnakud.

Tundlik andmete kokkupuude:

Mõnikord ei kaitse veebirakendused tundlikke andmeid ja teavet, näiteks paroole, andmebaasi mandaate jne. Ründaja saab hõlpsasti varastada või muuta neid nõrgalt kaitstud volitusi ja kasutada neid ebaseaduslikel eesmärkidel. Delikaatsed andmed peaksid olema puhkeolekus või transiidi ajal krüptitud ning neil peaks olema täiendav turvakiht, vastasel juhul saavad ründajad need varastada. Ründajad saavad kätte saada tundlikke andmeid ja varastada räsitud või tühjendatud teksti kasutajaid ja andmebaasi mandaate serverist või veebibrauserist. Näiteks kui paroolide andmebaas kasutab paroolide salvestamiseks soolatut või lihtsat räsi, võib failide üleslaadimise viga ründajal lubada paroolide andmebaasi hankida, mis viib kõigi paroolide eksponeerimise eelnevalt arvutatud räsi vikerkaardiga.

Peamine viga pole mitte ainult see, et andmeid ei krüpteerita, isegi kui need on krüpteeritud, kuid nõrk võtmete genereerimine, nõrgad räsimisalgoritmid, nõrk šifri kasutamine võivad põhjustada ka seda tüüpi kõige tavalisemaid rünnakuid. Seda tüüpi rünnakute vältimiseks liigitage kõigepealt, milliseid andmeid võib privaatsusseaduste kohaselt pidada tundlikuks, ja rakendage klassifikatsiooni järgi juhtelemente. Püüdke mitte salvestada salastatud andmeid, mida te ei vaja, peske neid kohe, kui neid kasutate. Transporditavate andmete jaoks krüpteerige need turvaliste protokollidega i.e TLS koos PFS-šifritega jne.

Seda tüüpi haavatavused võivad põhjustada ülitundliku teabe, näiteks krediitkaardi volikirjade, terviseandmete, paroolide ja muude isikuandmete avaldamist, mis võivad viia identiteedivarguse ja pettuseni jne.

XML-välised üksused (XEE):

Halvasti konfigureeritud XML-protsessorid töötlevad väliste üksuste viiteid XML-dokumentides. Neid väliseid üksusi saab kasutada sisemiste failide andmete allalaadimiseks / etc / passwd faili või muude pahatahtlike toimingute tegemiseks.  Haavatavaid XML-protsessoreid saab hõlpsasti kasutada, kui ründaja saab XML-dokumendi üles laadida või lisada XML-i jne. Neid haavatavaid XML-üksusi saab avastada SAST- ja DAST-tööriistade abil või käsitsi, kontrollides sõltuvusi ja konfiguratsioone.

Veebirakendus on XEE-rünnaku suhtes haavatav paljudel põhjustel, näiteks kui rakendus aktsepteerib otsese XML-sisendi ebausaldusväärsetest allikatest, on rakenduses lubatud dokumendi tüübi definitsioonid (DTD), rakendus kasutab identiteedi töötlemiseks SAML-i, kuna SAML kasutab identiteediks XML-i sisestused jne. XEE rünnakuid saab leevendada, vältides tundlike andmete järjestamist, kasutades vähem keerukaid andmevorminguid, st.JSON, XML-protsessorite lappimine, rakendus kasutab ainult korrektselt ja isegi teeke, keelab DTD-d kõigis XML-parserites, kontrollib XML-failide üleslaadimise funktsioone XSD-kinnituse abil jne.

Seda tüüpi rünnakute suhtes haavatav rakendus võib põhjustada DOS-i rünnaku, Billion Laughsi rünnaku, sisemiste süsteemide skaneerimise, sisepordi skannimise, kaugkäskluse käivitamise, mis mõjutab kõiki rakenduse andmeid.

Katkine juurdepääsu kontroll:

Juurdepääsukontroll annab kasutajatele õigused konkreetsete ülesannete täitmiseks. Katkine juurdepääsukontrolli haavatavus toimub siis, kui kasutajatel ei ole nende teostatavate ülesannete suhtes piisavalt piiranguid. Ründajad saavad kasutada seda haavatavust, mis võib lõppeda juurdepääsuga volitamata funktsioonidele või teabele. Oletame, et veebirakendus võimaldab kasutajal muuta sisselogitud kontot, muutes URL-i teise kasutaja kontoks ilma täiendava kontrollita.  Juurdepääsukontrolli haavatavuse kasutamine on iga ründaja rünnak, selle võib leida nii käsitsi kui ka SAFT- ja DAFT-tööriistade abil. Need haavatavused on olemas veebirakenduste testimise ja automatiseeritud tuvastamise puudumise tõttu, kuigi parim viis nende leidmiseks on seda käsitsi teha.

Haavatavused sisaldavad privileegide eskaleerumist i.toimides kasutajana, kes te pole või administraatorina, olles kasutaja, möödudes juurdepääsukontrollidest, muutes URL-i või muutes rakenduse olekut, metaandmetega manipuleerimist, võimaldades esmast võtit muuta teise kasutaja peamise võtmena, jne. Selliste rünnakute vältimiseks tuleb serveripoolses koodis rakendada juurdepääsu kontrollimehhanismid, kus ründajad ei saa juurdepääsu kontrollimisi muuta. Selliste rünnakute leevendamiseks tuleb tagada ainulaadsete rakenduste äripiirangute jõustamine domeenimudelite abil, serverikataloogide loendi keelamine, administraator korduvate nurjunud sisselogimiskatsete korral, JWT-märkide kehtetuks tunnistamine pärast väljalogimist.

Ründajad võivad tegutseda teise kasutaja või administraatorina, kasutades seda haavatavust pahatahtlike toimingute tegemiseks, näiteks kirjete loomiseks, kustutamiseks ja muutmiseks jne. Kui andmeid pole turvatud ka pärast rikkumist, võib andmete massiline kadumine tekkida.

Turvalisuse vale seadistamine:

Kõige tavalisem haavatavus on turvalisuse valesti seadistamine. Haavatavuse peamine põhjus on vaikekonfiguratsiooni, mittetäieliku konfiguratsiooni, ajutiste konfiguratsioonide, halvasti konfigureeritud HTTP-päiste ja üksikasjalike veateadete kasutamine, mis sisaldavad rohkem teavet, kui kasutaja tegelikult teadma oleks pidanud. Veebirakenduse mis tahes tasemel võivad ilmneda valed turvakonfiguratsioonid, st.e andmebaas, veebiserver, rakendusserver, võrguteenused jne. Ründajad saavad kasutada volitamata süsteeme või pääseda juurde kaitsmata failidele ja kataloogidele, et süsteemi volitamata kinni pidada. Näiteks rakendus on liiga verros tõrketeated, mis aitavad ründajal teada rakendussüsteemi haavatavusi ja toimimisviisi. Seda tüüpi turvavigade tuvastamiseks saab kasutada automatiseeritud tööriistu ja skannereid.

Veebirakendus sisaldab seda tüüpi haavatavust, kui sellel pole rakenduse mõnes osas turvarežiimi, kui mittevajalikud pordid on avatud või see lubab mittevajalikke funktsioone, kasutatakse vaikeparoole, tõrkeotsing paljastab ründajale informatiivseid vigu. parandamata või aegunud turvatarkvara jne. Seda saab vältida koodi mittevajalike funktsioonide eemaldamisega, s.t.minimaalne platvorm ilma tarbetute funktsioonide, dokumentide jms, mis võimaldab ülesandel turvaauke värskendada ja lappida osana plaastrihaldusprotsessidest, protsessi kasutamist võetud turvameetmete tõhususe kontrollimiseks, korduva karastamisprotsessi kasutamist teist keskkonda, mis on korralikult lukustatud, on lihtne juurutada.

Seda tüüpi haavatavused või vead võimaldavad ründajal saada volitamata juurdepääsu süsteemi andmetele, mis viib süsteemi täieliku kompromiteerimiseni.

Saididevaheline skriptimine (XSS):

XSS-i haavatavused juhtuvad hetkel, kui veebirakendus lisab ebausaldusväärsed andmed uuele veebisaidi lehele ilma seadusliku kinnituse või põgenemiseta või värskendab praegust saidilehte kliendi esitatud andmetega, kasutades brauseri API-d, mis suudab HTML-i või JavaScripti teha.  XSS-i vead ilmnevad juhul, kui veebisait võimaldab kasutajal lisada kohandatud koodi URL-i teele, mida teised kasutajad saavad näha. Neid vigu kasutatakse pahatahtliku JavaScripti koodi käivitamiseks sihtmärgi brauseris. Oletame, et ründaja võib ohvrile saata lingi, mis sisaldab linki mis tahes ettevõtte veebisaidile. Sellel ühendusel võib olla mõni pahatahtlik JavaScripti kood. Kui panga veebileht pole XSS-rünnakute eest nõuetekohaselt kaitstud, käivitatakse lingil klõpsamisel ohvri brauseris pahatahtlik kood.

Saididevaheline skriptimine on turvanõrkus, mis esineb peaaegu ⅔ veebirakendustes. Rakendus on XSS-i suhtes haavatav, kui rakendus salvestab ananiseerimata kasutaja sisendi, mida näeb teine ​​kasutaja, kasutades JavaScripti struktuure, ühelehelisi rakendusi ja API-sid, mis sisaldavad ründaja poolt kontrollitavat teavet lehele, on DOM XSS-i suhtes abitu. XSS-rünnakuid saab leevendada, kasutades raamistikke, mis väldivad ja desinfitseerivad XSS-i sisendeid oma olemuselt, näiteks React JS jne, õppides raamistike piiranguid ja kajastades neid oma juhtumite abil, vältides tarbetuid ja ebausaldatavaid HTML-andmeid kõikjal i.e HTML-atribuutides, URI-s, Javascriptis jne, kontekstitundliku kodeeringu kasutamine dokumendi muutmise korral kliendipoolel jne.

XSS-põhised rünnakud on kolme tüüpi, st.e Peegeldatud XSS, DOM XSS ja salvestatud XSS. Kõigil nende rünnakute tüüpidel on märkimisväärne mõju, kuid Stored XSS-i puhul on mõju veelgi suurem, st.e volikirjade varastamine, ohvrile pahavara saatmine jne.

Ebaturvaline deserialiseerimine:

Andmete jadastamine tähendab objektide võtmist ja teisendamist mis tahes vormingusse, nii et neid andmeid saaks hiljem kasutada muudel eesmärkidel, samas kui andmete deserialiseerimine tähendab vastupidist. Deserialiseerimine on nende jadastatud andmete pakkimine rakenduste kasutamiseks lahti. Ebaturvaline deserialiseerimine tähendab vahetult enne järjepidevat ja seejärel pakendist eemaldamise või deserialiseerimisega andmete karastamist.  Ebaturvaline deserialiseerimine viib koodi kaugkäivitamiseni ja seda kasutatakse muude ülesannete täitmiseks pahatahtlikel eesmärkidel, nagu õiguste eskaleerimine, süstimisrünnakud, kordusrünnakud jne. Selliste vigade avastamiseks on olemas mõned tööriistad, kuid probleemi kinnitamiseks on vaja sageli inimeste abi. Deserialiseerimise kasutamine on natuke keeruline, kuna ekspluateerimised ei toimi ilma mõningate käsitsi muudatusteta.

Kui rakendus deserialiseerib ründava üksuse pakutavad pahatahtlikud objektid. See võib põhjustada kahte tüüpi rünnakuid, st.rünnakud, mis on seotud andmestruktuuri ja objektidega, milles ründaja muudab rakenduse loogikat või käivitab kaugkoodi, ja tüüpilised andmete rikkumise rünnakud, kus olemasolevaid andmestruktuure kasutatakse muudetud sisuga, näiteks juurdepääsukontrolliga seotud rünnakud.  Serialiseerimist saab kasutada kaugprotsessisuhtluses (RPC) või protsessidevahelises suhtluses (IPC), andmete vahemällu salvestamisel, veebiteenused, andmebaaside vahemäluserver, failisüsteemid, API autentimismärgid, HTML-küpsised, HTML-vormi parameetrid jne. Deserialiseerimisrünnakuid saab leevendada, kui ei kasutata ebausaldusväärsetest allikatest pärinevaid jadastatud objekte, rakendatakse terviklikkuse kontrolle, eraldatakse madala privilegeeritud keskkonnaga töötav kood, jälgitakse sissetulevaid ja väljaminevaid võrguühendusi serveritest, mis deserialiseeruvad sageli.

Teadaolevate haavatavustega komponentide kasutamine:

Enamik arendajaid kasutab veebirakenduses erinevaid komponente, näiteks teeke, raamistikke ja tarkvaramooduleid. Need teegid aitavad arendajal vältida tarbetut tööd ja pakuvad vajalikku funktsionaalsust. Ründajad otsivad rünnaku koordineerimiseks nende komponentide vigu ja haavatavusi. Komponendis oleva turvaaugu leidmise korral võivad kõik sama komponenti kasutavad saidid olla haavatavad. Nende haavatavuste kasutamine on juba saadaval, samas kui kohandatud kasutuse kirjutamine nullist võtab palju vaeva. See on väga levinud ja laialt levinud probleem, suures koguses komponentide kasutamine veebirakenduse väljatöötamisel võib viia kõigi kasutatavate komponentide isegi tundmatuseni ja mõistmiseni, kõigi komponentide lappimine ja värskendamine on pikk tee.

Rakendus on haavatav, kui arendaja ei tea kasutatava komponendi versiooni, tarkvara on vananenud i.Operatsioonisüsteemi, DBMS-i, töötava tarkvara, käituskeskkondade ja teekide puhul ei toimu haavatavuse skannimist regulaarselt, arendajad ei testi lappitud tarkvara ühilduvust. Seda saab vältida kasutamata sõltuvuste, failide, dokumentide ja teekide eemaldamisega, kliendi ja serveripoolsete komponentide versiooni regulaarsega kontrollimisega, komponentide ja teekide hankimisega ametlikest ja usaldusväärsetest turvalistest allikatest, jälgimata lahtiste teekide ja komponentide jälgimisega, plaani tagamisega haavatavate komponentide regulaarseks värskendamiseks ja parandamiseks.

Need haavatavused toovad kaasa väikeseid mõjusid, kuid võivad viia ka serveri ja süsteemi kompromissini. Paljud suured rikkumised tuginesid komponentide teadaolevatele haavatavustele. Haavatavate komponentide kasutamine õõnestab rakenduste kaitset ja võib olla lähtepunktiks suurele rünnakule.

Ebapiisav logimine ja jälgimine:

Enamik süsteeme ei võta andmete rikkumise tuvastamiseks piisavalt meetmeid ja samme. Juhtumi keskmine reageerimisaeg on 200 päeva pärast selle juhtumist. See on palju aega, et teha ründava üksuse jaoks kõik ebameeldivad asjad. Ebapiisav logimine ja jälgimine võimaldavad ründajal süsteemi veelgi rünnata, hoida süsteemi kinnihoidmist, muuta, varjata ja andmeid välja kaevata vastavalt vajadusele. Ründajad kasutavad veebirakenduse ründamiseks järelevalve ja reageerimise puudumist enda kasuks.
Ebapiisav logimine ja jälgimine ilmnevad igal ajal, st.Rakenduste logisid, mida ei jälgita ebatavaliste toimingute suhtes, kontrollitavaid sündmusi, nagu ebaõnnestunud sisselogimiskatsed ja suured tehinguväärtused, ei registreerita õigesti, hoiatused ja vead tekitavad ebaselgeid veateateid, automaatse DAST-i tööriistade abil pentestamise korral pole päästikuteavet, kuna neid ei õnnestu tuvastada või hoiatada aktiivseid rünnakuid kiiresti jne. Neid saab leevendada, tagades, et kõik sisselogimise, juurdepääsu kontrollimise tõrked ja serveripoolse sisendi valideerimise saab registreerida pahatahtliku kasutajakonto tuvastamiseks ja hoida piisavalt aega viivitatud kohtuekspertiisi jaoks, tagades, et loodud logid on vormingus ühildub tsentraliseeritud logihalduse lahendustega, tagades väärtuslike tehingute terviklikkuse kontrollid, luues süsteemi kahtlaste tegevuste õigeaegseks teavitamiseks jne.

Enamik edukaid rünnakuid algab süsteemi haavatavuste kontrollimisest ja uurimisest, mis võimaldab haavatavuse uurimisel kogu süsteemi ohtu seada.

Järeldus:

Veebirakenduse turvanõrkused mõjutavad kõiki selle rakendusega seotud üksusi. Nende turvaaukude eest tuleb hoolitseda, et pakkuda kasutajatele ohutut ja turvalist keskkonda. Ründajad saavad neid turvaauke kasutada süsteemi kahjustamiseks, selle valdamiseks ja privileegide eskaleerimiseks. Rikutud veebirakenduse mõju saab visualiseerida varastatud krediitkaardi volikirjadest ja identiteedivargustest kuni konfidentsiaalse teabe lekitamiseni jne. sõltuvalt pahatahtlike üksuste vajadustest ja rünnakuvektoritest.

Kuidas installida ja mängida Doomi Linuxis
Doomi sissejuhatus Doom-seeria sai alguse 90ndatel pärast algse Doomi väljaandmist. See oli kohene hitt ja sellest ajast alates on mänguseeria pälvinu...
Vulkan Linuxi kasutajatele
Iga uue põlvkonna graafikakaartidega näeme, et mängude arendajad ületavad graafilise truuduse piire ja jõuavad fotorealismile ühe sammu lähemale. Kuid...
OpenTTD vs Simutrans
Oma transpordisimulatsiooni loomine võib olla lõbus, lõõgastav ja äärmiselt köitev. Sellepärast peate endale meelepärase leidmiseks kindlasti proovima...