Veebiserverid majutavad faile (veebilehti, pilte, videoid, vorme jne), mis moodustavad teie veebirakenduse, ja teenindavad neid faile, kui keegi teie veebisaiti külastab. Mõned serverid on täiustatud ja kontrollivad ka seda, kui palju juurdepääsu veebikülastajatel on. Need võivad piirata tavakülastajate juurdepääsu teiste kasutajate kontodele või administratiivsetele juhtpaneelidele. Kuigi veebiserverid on oma tegevuses tõhusad – ja nad teevad seda üsna turvaliselt –, võivad ründajad ära kasutada vigu, mis tulenevad inimlikust eksimusest või vigasest loogikast selles, kuidas server oma hostitud faile teenindab.
Mis on LFI rünnak?
Kohaliku faili sissetungi (LFI) rünnak toimub siis, kui ründajad kasutavad turvaauke, kuidas veebiserver talletab, teenindab, kinnitab või kontrollib juurdepääsu oma failidele. See haavatavus on PHP-põhistel veebisaitidel tavaline.
Erinevalt paljudest küberrünnakute vormidest, kus ründajad toetuvad rakenduse rikkumiseks pahavarale, toetuvad LFI-de ründajad enamasti nutikatele trikkidele ja lühikestele koodiridadele. See nõuab harva keerukaid tööriistu või keerulisi skripte; rünnakud toimuvad tavaliselt veebibrauseris. Kõige tavalisem trikk, mida ründajad kasutavad, on URL-i stringi muutmine koodi, failiteede või failinimedega.
Kuidas LFI rünnakud juhtuvad?
LFI rünnakud toimuvad tavaliselt neljas etapis.
Esiteks tuvastab ründaja haavatavat veebirakendust töötava PHP-saidi, tavaliselt käivitades brauseri URL-is põhikoodi, et näha, kas veebirakendus (st sait) käsku käsitleb. Mõelge sellele kui lihavõttemuna avamiseks mängukontrolleri klahvikombinatsioonide vajutamisele – näiteks Super Mario tunnelitesse sisenemiseks alla klahvi vajutamiseks. Kuid käsud, mida ründajad LFI rünnakute ajal esitavad, on järjekindlamad kui Super Mario iga tunneli kontrollimine.
Veebirakendus või server, mis on valesti konfigureeritud või ei suuda sisendeid kinnitada, käivitab pahatahtliku koodi. Siit võib häkker saada juurdepääsu ja õigused, mida ta vajab haavatavate failide lugemiseks või pahatahtlike failide serverisse üleslaadimiseks.
Enamiku LFI rünnakute tulemusel pääseb ründaja ligi tundlikule teabele. Pahavara üleslaadimise võimalus õnnestub harva, sest puudub garantii, et veebirakendus salvestab faili samasse serverisse, kus on LFI haavatavus. Sageli juhtub see juhul, kui veebirakendus on mitme serveriga keskkonnas.
Seega, kui LFI haavatavus on serveris, mis majutab pilte, kuid mitte serveris, mis salvestab töötaja mandaati või kasutaja paroole, oleks ründajal juurdepääs ainult selles haavatavas serveris olevatele pildifailidele. Sõltumata sellest, kübersündmused nagu rünnak LastPassi vastu näitavad, et häkkerid võivad pealtnäha kõige tühisema juurdepääsutasemega kaose tekitada.
Kuidas vältida LFI rünnakuid
LFI rünnakud on üsna tavalised, vastavalt Avage veebirakenduse turbeprojekt (OWASP). Arusaadavalt eelistaksid häkkerid seda rünnakut, kuna as W3Techs aruannete kohaselt töötab peaaegu kaheksal veebisaidil 10-st PHP serveripoolse programmeerimiskeelena – nii-öelda ohvrite rohkus. LFI rünnakut on võimalik ära hoida, kasutades veebiturbe parimaid tavasid.
Avaliku serveri failid valgesse nimekirja
Veebirakendused kasutavad sageli URL-i sisenditena failiteid. Häkkerid saavad seda failisüsteemi ära kasutada, muutes URL-i seda osa, mis toimib failiteena. Näiteks võib ründaja muutuda https://dummywebsite.com/?module=contact.php juurde https://dummywebsite.com/?module=/etc/passwd. Halva filtreerimise ja vigase loogikaga haavatav server kuvab teele /etc/passwd salvestatud faili sisu.
Loomulikult kasutavad häkkerid eduka rünnaku tõenäosuse suurendamiseks levinud failinimede variatsioone ja päringumärkide kombinatsioone. Eesmärk on meelitada veebirakendust käivitama skripti või kuvama faile veebiserveris.
Saate selle haavatavuse blokeerida, luues oma serveris avalike dokumentide valge nimekirja ja juhendades veebirakendust eirama kõigi teiste dokumentide või failiteede päringuid. Seega, kui ründaja üritab URL-iga manipuleerida, et taotleda või käivitada privaatset koodi, kuvatakse selle asemel vealeht.
Testige haavatavust sageli
Sa võid kasutada veebiskannimise tööriistad turvaaukude leidmiseks ja parandamiseks, mis võivad teid avastada LFI rünnakutele. Veebirakenduste skannerid on automatiseeritud tööriistad, mis roomavad teie rakenduses nagu ründaja ja hoiatavad teid võimalike haavatavuste eest. On mitmeid avatud lähtekoodiga veebiskannereid, nagu OpenVAS ja Wireshark, kuid enamik haavatavuse skannereid on patenteeritud tarkvara ja nende kasutamiseks on vaja tasulisi plaane.
Kuid loomulikult ei saa te veebiskannerit ainult LFI-rünnakute jaoks. Need tööriistad otsivad ka laiemaid turvaauke, näiteks kaugfailide kaasamine, saitidevaheline skriptimine, SQL-i süstimine ja kehvad serverikonfiguratsioonid. Niisiis, nad on seda väärt.
Piirake saidi külastajate õigusi
Häkkerid sooritavad sageli LFI-rünnakuid edukalt, kuna veebirakendused ei suuda kasutajaõigusi lahterdada ja võimaldavad külastajatel juurdepääsu failidele, mis peaksid olema nähtavad ainult administraatoritele. See meede toimib nagu lubatud loendisse lisamine: konfigureerige oma veebirakendus ja server nii, et need teenindaksid avalikke faile ja eiraks volitamata päringuid, kui külastaja veebirakendusega suhtleb. See on eriti oluline tundlikke faile sisaldavate failiteede päringute puhul.
Selleks peate võib-olla takistama failiteede otsest muutmist. Veebirakendus peaks esitama dokumente ainult püsivalt kodeeritud teede loendist. Lisaks konfigureerige veebirakendus töötlema taotlusi dünaamilise tee konkatenatsiooniga (URL-id peaksid sisaldama tähtnumbrilisi märke) funktsioonide base64 või bin2hex asemel.
Kui mõtlete failinimede musta nimekirja lisamisele, ärge seda tehke. Häkkeritel on tavaliselt kasvav failinimede loend, mida nad saavad kasutada LFI rünnaku sooritamiseks. Pealegi on see praktiliselt võimatu (ja kolossaalne ajaraiskamine) lisada musta nimekirja pidevalt suurenevate allikate nimekiri rünnakust.
Kasutage mitme serveri keskkonda
Mitme serveriga keskkond võimaldab isoleerida olulised tundlikud dokumendid avalikest failidest, vähendades seeläbi teie riski rikkumise korral. Spetsiaalsed serverid on LFI-rünnakute suhtes vähem haavatavad, sest kuigi need töötavad koos, on nende konfiguratsioonid erinevad.
Lisaks sellele turvalisusele on mitu serverit ka töökindlad (väiksema seisakuriskiga), kiired ja tõhusad. Tõsi, mitme serveri keskkonna kasutamine ei ole tasuv, kui teie veebisait on väike. Sel juhul kaaluge oma veebirakenduse andmetele juurdepääsu jagamist eraandmete andmebaasi ja avalike failide serveri vahel.
Kas peaksite LFI rünnakute pärast muretsema?
LFI rünnaku võimalus on olemas, eriti kui teie sait töötab PHP-ga, kuid saate oma kokkupuudet vähendada, konfigureerides veebirakendusi ja servereid vastavalt veebiturvalisuse parimatele tavadele.
Lisaks peaksite turvaaukude leidmiseks kaaluma rutiinsete turvakontrollide tegemist. Asjad katkevad kogu aeg, eriti kui saidi arhitektuur muutub keeruliseks. Enda kaitsmiseks vajalikud tööriistad on automatiseeritud ja paljud neist ei vaja keerulist seadistust ega täiustatud tehnilist oskusteavet.