Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

Žiniatinklio serveriai talpina failus (tinklalapius, paveikslėlius, vaizdo įrašus, formas ir kt.), kurie sudaro jūsų žiniatinklio programą, ir aptarnauja šiuos failus, kai kas nors apsilanko jūsų svetainėje. Kai kurie serveriai yra pažangesni ir taip pat kontroliuoja, kokią prieigą turi žiniatinklio lankytojai. Jie gali apriboti nuolatiniams lankytojams prieigą prie kitų naudotojų paskyrų ar administracinių prietaisų skydelių. Nors žiniatinklio serveriai yra veiksmingi ir tai daro gana saugiai, užpuolikai gali pasinaudoti klaidomis, atsirandančiomis dėl žmogiškosios klaidos arba klaidingos logikos, kaip serveris aptarnauja jame esančius failus.

Kas yra LFI ataka?

Vietinio failo įsibrovimo (LFI) ataka įvyksta, kai užpuolikai išnaudoja pažeidžiamumą, kaip žiniatinklio serveris saugo, aptarnauja, patvirtina arba kontroliuoja prieigą prie savo failų. Šis pažeidžiamumas būdingas PHP pagrįstoms svetainėms.

instagram viewer

Skirtingai nuo daugelio kibernetinių atakų formų, kai užpuolikai naudojasi kenkėjiška programa, kad sugadintų programą, LFI užpuolikai dažniausiai pasikliauja sumaniais triukais ir trumpomis kodo eilutėmis. Tam retai reikia sudėtingų įrankių ar sudėtingų scenarijų; atakos paprastai įvyksta žiniatinklio naršyklėje. Dažniausiai užpuolikai naudojasi gudrybe – tai URL eilutės modifikavimas kodu, failų keliais arba failų pavadinimais.

Kaip įvyksta LFI atakos?

LFI atakos paprastai vyksta keturiais etapais.

Pirma, užpuolikas identifikuoja PHP svetainę, kurioje veikia pažeidžiama žiniatinklio programa, paprastai naršyklės URL paleidęs pagrindinį kodą, kad pamatytų, ar žiniatinklio programa (t. y. svetainė) apdoroja komandą. Pagalvokite apie tai, kaip paspaudus žaidimo valdiklio klavišų kombinacijas, kad atrakintumėte Velykų kiaušinį, pavyzdžiui, paspaudus žemyn klavišą, kad patektumėte į „Super Mario“ tunelius. Tačiau komandos, kurias užpuolikai paleidžia per LFI atakas, yra nuoseklesnės nei tikrinant kiekvieną Super Mario tunelį.

Žiniatinklio programa arba serveris, kuris buvo netinkamai sukonfigūruotas arba nepatvirtina įvesties, vykdys kenkėjišką kodą. Iš čia įsilaužėlis gali gauti prieigą ir privilegijas, kurių jiems reikia norint skaityti pažeidžiamus failus arba įkelti kenkėjiškus failus į serverį.

Daugumos LFI atakų metu užpuolikas pasiekia neskelbtiną informaciją. Galimybė įkelti kenkėjiškas programas retai būna sėkminga, nes nėra garantijos, kad žiniatinklio programa išsaugos failą tame pačiame serveryje, kuriame yra LFI pažeidžiamumas. Taip dažnai būna, jei žiniatinklio programa yra kelių serverių aplinkoje.

Taigi, jei LFI pažeidžiamumas yra serveryje, kuriame saugomi vaizdai, bet ne serveryje, kuriame saugomi darbuotojai kredencialus arba vartotojo slaptažodžius, užpuolikas turės prieigą tik prie vaizdo failų tame pažeidžiamame serveryje. Nepaisant to, kibernetiniai įvykiai, kaip ataka prieš LastPass parodyti, kad įsilaužėliai gali pridaryti chaosą turėdami, atrodo, patį nereikšmingiausią prieigos lygį.

Kaip išvengti LFI atakų

LFI atakos yra gana dažnos, teigia Atidarykite žiniatinklio programų saugos projektą (OWASP). Suprantama, kad įsilaužėliai pritartų šiai atakai, nes kaip W3Techs Ataskaitų duomenimis, beveik aštuonios iš 10 svetainių naudoja PHP kaip serverio programavimo kalbą – taip sakant, aukų gausa. Taikant geriausią žiniatinklio saugumo praktiką, galima užkirsti kelią LFI atakai.

Į baltąjį sąrašą įtraukti viešojo serverio failai

Žiniatinklio programos dažnai naudoja failų kelius kaip URL įvestis. Įsilaužėliai gali išnaudoti šią rinkmenų sistemą pakeisdami URL dalį, kuri yra failo kelias. Pavyzdžiui, užpuolikas gali pasikeisti https://dummywebsite.com/?module=contact.php į https://dummywebsite.com/?module=/etc/passwd. Pažeidžiamas serveris su prastu filtravimu ir ydinga logika rodys failo, saugomo kelyje /etc/passwd, turinį.

Žinoma, įsilaužėliai naudoja įprastų failų pavadinimų variantus ir užklausos simbolių derinius, kad padidintų sėkmingos atakos tikimybę. Tikslas yra apgauti žiniatinklio programą paleisti scenarijų arba rodyti failus žiniatinklio serveryje.

Galite užblokuoti šį pažeidžiamumą sukurdami baltąjį viešųjų dokumentų sąrašą savo serveryje ir nurodydami žiniatinklio programai nepaisyti visų kitų dokumentų ar failų kelių užklausų. Taigi, jei užpuolikas bandys manipuliuoti URL, kad pateiktų užklausą arba paleisti kodus, prašydamas privataus, jis gaus klaidos puslapį.

Dažnai tikrinkite pažeidžiamumą

Tu gali naudoti žiniatinklio nuskaitymo įrankiai rasti ir ištaisyti pažeidžiamumą, dėl kurio galite patekti į LFI atakas. Žiniatinklio programų skaitytuvai yra automatiniai įrankiai, kurie tikrina jūsų programą kaip užpuolikas ir įspėja apie galimus pažeidžiamumus. Yra keletas atvirojo kodo žiniatinklio skaitytuvų, pvz., „OpenVAS“ ir „Wireshark“, tačiau dauguma pažeidžiamumo skaitytuvų yra patentuota programinė įranga ir norint juos naudoti, reikia mokėti.

Bet, žinoma, jūs negaunate žiniatinklio skaitytuvo tik LFI atakoms. Šios priemonės taip pat ieško platesnių saugumo spragų, pvz nuotolinis failų įtraukimas, scenarijus įvairiose svetainėse, SQL įterpimas ir prastos serverio konfigūracijos. Taigi, jie to verti.

Apriboti svetainės lankytojo teises

Įsilaužėliai dažnai sėkmingai vykdo LFI atakas, nes žiniatinklio programos nesugeba suskirstyti vartotojų teisių ir tai darydami leidžia lankytojams pasiekti failus, kuriuos turėtų matyti tik administratoriai. Ši priemonė veikia kaip įtraukimas į baltąjį sąrašą: sukonfigūruokite žiniatinklio programą ir serverį, kad jie teiktų viešuosius failus ir nepaisytų neteisėtų užklausų, kai lankytojas sąveikauja su žiniatinklio programa. Tai ypač svarbu užklausoms į failų kelius, kuriuose yra jautrių failų.

Šiuo tikslu gali tekti neleisti tiesiogiai keisti failų kelių. Žiniatinklio programa turėtų teikti tik dokumentus iš užkoduoto kelių sąrašo. Be to, sukonfigūruokite žiniatinklio programą apdoroti užklausas su dinamine kelio sujungimu (URL turi būti raidiniai ir skaitmeniniai simboliai), o ne „base64“ arba „bin2hex“ funkcijomis.

Jei galvojate apie failų pavadinimų įtraukimą į juodąjį sąrašą, nedarykite. Įsilaužėliai paprastai turi augantį failų pavadinimų sąrašą, kurį jie gali naudoti vykdydami LFI ataką. Be to, tai praktiškai neįmanoma (ir didžiulis laiko švaistymas) į juodąjį sąrašą nuolat didėjančių šaltinių išpuolio.

Naudokite kelių serverių aplinką

Kelių serverių aplinka leidžia išskirti svarbius, neskelbtinus dokumentus nuo viešųjų failų, taip sumažinant riziką pažeidimo atveju. Dedikuoti serveriai yra mažiau pažeidžiami LFI atakų, nes, nors ir veikia kartu, jų konfigūracijos skiriasi.

Be šios apsaugos, keli serveriai taip pat yra patikimi (su mažesne prastovų rizika), greiti ir efektyvūs. Tiesa, kelių serverių aplinkos naudojimas nėra ekonomiškas, jei jūsų svetainė yra maža. Tokiu atveju apsvarstykite galimybę padalinti žiniatinklio programos prieigą prie duomenų tarp privačių duomenų duomenų bazės ir viešųjų failų serverio.

Ar turėtumėte nerimauti dėl LFI atakų?

LFI atakos galimybė yra, ypač jei jūsų svetainė veikia PHP, tačiau galite sumažinti savo poveikį konfigūruodami žiniatinklio programas ir serverius pagal žiniatinklio saugos geriausią praktiką.

Be to, turėtumėte apsvarstyti galimybę atlikti įprastus saugumo patikrinimus, kad surastumėte pažeidžiamumą. Viskas nuolat genda, ypač kai svetainės architektūra tampa sudėtinga. Įrankiai, kurių jums prireiks apsisaugoti, yra automatizuoti, o daugeliui jų nereikia sudėtingos sąrankos ar pažangių techninių žinių.