9 populaarset veebirakenduse süstimisrünnaku tüüpi

Veebirakenduste probleem on see, et nad puutuvad avalikult kokku miljardite Interneti-kasutajatega, kellest paljud soovivad selle turvameetmeid rikkuda – ükskõik mis põhjustel.


Interneti algusaegadel oli üks levinumaid rünnakumeetodeid põhiline lihtne jõhker jõud. Tavaliselt viisid robotid neid rünnakuid – või vaba ajaga – inimesi, kes proovisid ziljoneid kasutajanimede ja paroolide kombinatsioone, kuni leidsid sellise, mis võimaldaks juurdepääsu sihtrakendusele..

Julma jõu rünnakud pole enam paroolipoliitika, piiratud sisselogimiskatsete ja captchas’ide tõttu ohuks. Kuid küberkurjategijad armastavad avastada uusi ärakasutamise võimalusi ja kasutada neid uut tüüpi rünnakute korraldamiseks. Ammu avastasid nad, et rakenduste või veebilehtede tekstivälju saab ära kasutada, sisestades neile või sisestades ootamatu teksti, mis sunniks rakendust tegema midagi sellist, mida ta ei pidanud tegema. Nii sisenesid sündmuskohale nn süstimisrünnakud.

Süstimisrünnakuid saab kasutada mitte ainult rakendusse sisselogimiseks, ilma kasutajanime ja parooli teadmata, vaid ka privaatse, konfidentsiaalse või tundliku teabe paljastamiseks või isegi terve serveri kaaperdamiseks. Sellepärast ei ohusta need rünnakud mitte ainult veebirakendusi, vaid ka kasutajaid, kelle andmed asuvad nendes rakendustes, ning halvimal juhul ka muid ühendatud rakendusi ja teenuseid.

Koodisüst

Koodisüstimine on üks levinumaid süstimisrünnakute liike. Kui ründajad teavad veebirakenduse kasutatavat programmeerimiskeelt, raamistikku, andmebaasi või opsüsteemi, saavad nad sisestada koodi tekstisisestusväljade kaudu, et sundida veebiserverit tegema seda, mida nad tahavad.

Seda tüüpi süstimisrünnakud on võimalikud rakendustes, millel puudub sisendandmete valideerimine. Kui tekstisisestusväli võimaldab kasutajatel sisestada ükskõik mida, siis on rakendus potentsiaalselt kasutatav. Nende rünnakute ärahoidmiseks peab rakendus piirama nii palju kui võimalik sisendikasutajatel lubada siseneda.

Näiteks peab see piirama eeldatavate andmete hulka, kontrollima andmete vormingut enne nende vastuvõtmist ja piirama lubatud tähemärkide komplekti.

Koodisüsti haavatavusi võib olla lihtne leida, lihtsalt katsetades erinevat tüüpi sisuga veebirakenduse tekstisisestust. Kui turvaauke leitakse, on neid raske kasutada. Kuid kui ründajal õnnestub mõnda neist turvaaukudest ära kasutada, võib see hõlmata konfidentsiaalsuse, terviklikkuse, saadavuse või rakenduse funktsionaalsuse kadu.

SQL-i süstimine

Sarnaselt koodi sisestamisega lisab see rünnak SQL-skripti – keel, mida enamus andmebaase kasutab päringutoimingute tegemiseks – tekstisisestusväljale. Skript saadetakse rakendusele, kes käivitab selle otse oma andmebaasis. Selle tulemusel võib ründaja läbida sisselogimisekraani või teha ohtlikumaid asju, näiteks lugeda tundlikke andmeid otse andmebaasist, muuta või hävitada andmebaasi andmeid või teostada andmebaasis administraatori toiminguid.

Vanemate funktsionaalsete liideste tõttu on PHP ja ASP rakendused SQL-i süstimisrünnakutele altid. J2EE ja ASP.Net on tavaliselt nende rünnakute eest paremini kaitstud. Kui leitakse SQL-i süstimise haavatavus – ja neid oleks lihtne leida -, piirab võimalike rünnakute ulatust ainult ründaja oskus ja kujutlusvõime. Seega on SQL-i süstimisrünnaku mõju kahtlemata suur.

Käskluse süstimine

Need rünnakud on samuti võimalikud, peamiselt sisendi ebapiisava valideerimise tõttu. Need erinevad koodisüstimisrünnakutest selle poolest, et ründaja lisab programmeerimiskoodi või skriptide asemel süsteemikäsud. Seetõttu ei pea häkker teadma programmeerimiskeelt, millel rakendus asub, ega keelt, mida andmebaas kasutab. Kuid nad peavad teadma hostiserveri kasutatavat opsüsteemi.

Sisestatud süsteemi käske täidab host operatsioonisüsteem rakenduse privileegidega, mis võimaldavad serveris asuvate suvaliste failide sisu paljastamist, serveri kataloogistruktuuri kuvamist, muu hulgas kasutaja paroolide muutmist.

Neid rünnakuid saab ära hoida süsteemiadministraatori poolt, piirates serveris töötavate veebirakenduste süsteemile juurdepääsu taset.

Saidideülene skriptimine

Kui rakendus lisab kasutajalt sisendi väljundisse, mille ta genereerib, ilma seda kinnitamata või kodeerimata, annab see ründajale võimaluse saata pahatahtlik kood teisele lõppkasutajale. Saidideülese skriptimise (XSS) rünnakud kasutavad neid võimalusi pahatahtlike skriptide süstimiseks usaldusväärsetele veebisaitidele, mis lõpuks saadetakse rakenduse teistele kasutajatele, kes muutuvad ründaja ohvriteks..

Ohvrite brauser käivitab pahatahtliku skripti, teadmata, et seda ei tohiks usaldada. Seetõttu lubab brauser tal juurde pääseda seanssilubadele, küpsistele või brauseri salvestatud tundlikule teabele. Kui need on õigesti programmeeritud, suudavad skriptid isegi HTML-faili sisu ümber kirjutada.

XSS-rünnakud võib üldiselt jagada kahte kategooriasse: salvestatud ja peegeldatud.

Sisse ladustatud XSS-rünnakud, pahatahtlik skript asub püsivalt sihtserveris, sõnumifoorumis, andmebaasis, külastajalogis jne. Ohvri saab see kätte siis, kui brauser nõuab talletatud teavet. Sisse kajastatud XSS-rünnakute korral kajastub pahatahtlik skript vastuses, mis sisaldab serverisse saadetud sisendit. See võib olla näiteks tõrketeade või otsingutulemid.

XPathi süstimine

Seda tüüpi rünnak on võimalik siis, kui veebirakendus kasutab kasutaja esitatud teavet XML-andmete XPath-päringu loomiseks. Nende rünnakute toimimisviis sarnaneb SQL-i süstimisega: ründajad saadavad rakendusele vääralt teavet, et saada teada, kuidas XML-andmed on üles ehitatud, ja ründavad seejärel uuesti, et neile andmetele juurde pääseda..

XPath on tavaline keel, millega saate sarnaselt SQL-le määrata atribuudid, mida soovite leida. XML-andmete päringu tegemiseks kasutavad veebirakendused kasutaja sisestust, et määrata muster, mille andmed peaksid vastama. Valesti sisestuse saatmisel võib muster muutuda toiminguks, mida ründaja soovib andmetele rakendada.

Erinevalt sellest, mis juhtub SQL-iga, pole XPathis erinevaid versioone. See tähendab, et XPath-i süstimist saab teha mis tahes veebirakenduses, mis kasutab XML-i andmeid, sõltumata rakendusest. See tähendab ka, et rünnakut saab automatiseerida; seetõttu on erinevalt SQL-i süstimisest võimalik vallandada suvalise arvu eesmärkide vastu.

Postkäskluse süstimine

Seda rünnakumeetodit saab kasutada e-posti serverite ja rakenduste kasutamiseks, mis ehitavad IMAP- või SMTP-avaldusi valesti kinnitatud kasutaja sisestusega. Vahel pole IMAP- ja SMTP-serveritel tugevat kaitset rünnakute eest, nagu see oleks enamiku veebiserverite puhul, ja seetõttu võiksid need olla paremini kasutatavad. E-posti kaudu serverisse sisenedes võivad ründajad vältida selliseid piiranguid nagu captchas, piiratud arv taotlusi jne.

SMTP-serveri kasutamiseks vajavad ründajad süstitud käskudega sõnumite saatmiseks kehtivat e-posti kontot. Kui server on haavatav, reageerib see ründajate taotlustele, võimaldades neil näiteks serveri piirangud alistada ja kasutama oma teenuseid rämpsposti saatmiseks.

IMAP-i süstimist saab teha peamiselt veebipõhistes rakendustes, kasutades ära sõnumi lugemise funktsioone. Nendel juhtudel saab rünnaku läbi viia lihtsalt sisestades veebibrauseri aadressiribale sisestatud käskudega URL-i.

CRLF-i süstimine

Veeremi tagastamise ja reavoolu märkide – kombinatsiooni, mida nimetatakse CRLF – sisestamine veebivormi sisestusväljadele tähistab rünnakumeetodit, mida nimetatakse CRLF-i süstimiseks. Need nähtamatud märgid tähistavad rea traditsiooniliste Interneti-protokollide (nt HTTP, MIME või NNTP) rea lõppu või käsu lõppu.

Näiteks CRLF-i lisamine HTTP-päringule, millele järgneb mõni kindel HTML-kood, võib saata kohandatud veebilehti veebisaidi külastajatele.

Seda rünnakut saab läbi viia haavatavates veebirakendustes, mis ei rakenda kasutaja sisendile õiget filtreerimist. See haavatavus avab ukse muud tüüpi süstimisrünnakutele, näiteks XSS ja koodisüstimine, ning see võib tuleneda ka kaaperdatud veebisaidilt.

Süstimine peremehe päises

Serverites, kus hostitakse paljusid veebisaite või veebirakendusi, on hostinimi päis vajalik selleks, et kindlaks teha, millised residendist pärit veebisaidid või veebirakendused – neid kõiki nimetatakse virtuaalseks hostiks – peaksid sissetulevat taotlust töötlema. Päise väärtus ütleb serverile, millisele virtuaalsest hostist päring saata. Kui server saab kehtetu hostipäise, edastab ta selle tavaliselt loendi esimesele virtuaalsele hostile. See kujutab endast haavatavust, mida ründajad saavad kasutada suvaliste hostipäiste saatmiseks serveri esimesele virtuaalsele hostile.

Masina päise manipuleerimine on tavaliselt seotud PHP-rakendustega, ehkki seda saab teha ka muude veebiarendustehnoloogiatega. Hostipäise rünnakud võimaldavad muud tüüpi rünnakuid, näiteks veebi vahemälu mürgitamine. Selle tagajärjed võivad hõlmata ründajate teostatud tundlikke toiminguid, näiteks paroolide lähtestamine.

LDAP süst

LDAP on protokoll, mis on loodud ressursside (seadmete, failide, muude kasutajate) otsimiseks võrgus. See on väga kasulik sisevõrkude jaoks ja kui seda kasutatakse ühekordse sisselogimise süsteemi osana, saab seda kasutada kasutajanimede ja paroolide talletamiseks. LDAP-päringud hõlmavad spetsiaalsete kontrollmärkide kasutamist, mis mõjutavad selle juhtimist. Ründajad võivad muuta LDAP päringu kavandatud käitumist, kui nad saavad sellesse sisestada juhtmärke.

Juurprobleem, mis võimaldab LDAP-i süstimisrünnakuid, on kasutaja valesti kinnitatud sisend. Kui teksti, mille kasutaja rakendusele saadab, kasutatakse LDAP-päringu osana seda desinfitseerimata, võib päring viia kõigi kasutajate loendi hankimise ja ründajale kuvamise, kasutades selleks paremal asuvat tärni (*) asetage sisestusstringi sisse.

Süstimisrünnakute ennetamine

Nagu nägime selles artiklis, on kõik süstimisrünnakud suunatud serveritele ja rakendustele, millel on avatud juurdepääs igale Interneti-kasutajale. Vastutus nende rünnakute ärahoidmise eest on jaotatud rakenduste arendajate ja serveri administraatorite vahel.

Rakenduste arendajad peavad teadma kasutaja sisestatud andmete vale valideerimisega seotud riske ja õppima parimaid tavasid, kuidas kasutajate sisendeid riskiennetuse eesmärgil desinfitseerida. Serveri administraatorid peavad oma süsteeme perioodiliselt kontrollima, et turvaauke tuvastada ja need võimalikult kiiresti parandada. Nende auditite teostamiseks on palju võimalusi, kas nõudmisel või automaatselt.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map