Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Web poslužitelji ugošćuju datoteke (web stranice, slike, videozapise, obrasce itd.) koje čine vašu web aplikaciju i poslužuju te datoteke kada netko posjeti vašu web stranicu. Neki poslužitelji su napredniji i također kontroliraju koliko pristupa web posjetitelji imaju. Redovitim posjetiteljima mogu ograničiti pristup računima ili administrativnim nadzornim pločama drugih korisnika. Iako su web poslužitelji učinkoviti u onome što rade - i to rade prilično sigurno - napadači mogu iskoristiti pogreške koje proizlaze iz ljudske pogreške ili pogrešne logike u načinu na koji poslužitelj poslužuje datoteke koje hostira.

Što je LFI napad?

Napad Local File Intrusion (LFI) događa se kada napadači iskoriste ranjivosti u načinu na koji web poslužitelj pohranjuje, poslužuje, potvrđuje ili kontrolira pristup svojim datotekama. Ova je ranjivost uobičajena za web stranice temeljene na PHP-u.

instagram viewer

Za razliku od mnogih oblika kibernetičkih napada gdje se napadači oslanjaju na zlonamjerni softver kako bi oštetili aplikaciju, napadači u LFI-jima se uglavnom oslanjaju na pametne trikove i kratke linije koda. Ovo rijetko zahtijeva sofisticirane alate ili složene skripte; napadi se obično događaju na web pregledniku. Najčešći trik koji napadači koriste jest mijenjanje URL niza s kodom, stazama datoteka ili nazivima datoteka.

Kako se događaju LFI napadi?

LFI napadi obično se odvijaju u četiri faze.

Prvo, napadač identificira PHP web stranicu koja pokreće ranjivu web aplikaciju, obično pokretanjem osnovnog koda u URL-u preglednika da vidi hoće li web aplikacija (tj. stranica) obraditi naredbu. Zamislite to kao pritiskanje kombinacije tipki na vašem kontroleru igre za otključavanje uskršnjeg jajeta—recimo, na primjer, pritiskanje tipke prema dolje za ulazak u tunele u Super Mario. Ali naredbe koje napadači izvode u LFI napadima dosljednije su od provjere svakog tunela u Super Mariu.

Web aplikacija ili poslužitelj koji je neispravno konfiguriran ili ne uspijeva potvrditi unose izvršit će zlonamjerni kod. Odavde haker može dobiti pristup i privilegiju koja mu je potrebna za čitanje ranjivih datoteka ili prijenos zlonamjernih datoteka na poslužitelj.

Većina LFI napada rezultira pristupom napadača osjetljivim informacijama. Mogućnost učitavanja malwarea rijetko je uspješna jer nema jamstva da će web aplikacija spremiti datoteku na isti poslužitelj na kojem postoji LFI ranjivost. To je često slučaj ako je web aplikacija u okruženju s više poslužitelja.

Dakle, ako LFI ranjivost postoji na poslužitelju koji ugošćuje slike, ali ne i na poslužitelju koji pohranjuje podatke zaposlenika vjerodajnice ili korisničke lozinke, napadač bi imao pristup samo slikovnim datotekama na tom ranjivom poslužitelju. Bez obzira na to, cyber događaji poput napad na LastPass pokazuju da hakeri mogu izazvati pustoš s naizgled najbeznačajnijom razinom pristupa.

Kako spriječiti LFI napade

LFI napadi su prilično česti, prema Otvorite projekt sigurnosti web aplikacije (OWASP). Razumljivo, hakeri bi favorizirali ovaj napad jer, kao W3Techs izvješća, gotovo osam od 10 web-mjesta pokreće PHP kao programski jezik na strani poslužitelja - obilje žrtava, da tako kažem. Moguće je spriječiti LFI napad usvajanjem najboljih praksi za web sigurnost.

Datoteke javnog poslužitelja na bijelom popisu

Web aplikacije često koriste staze datoteka kao URL unose. Hakeri mogu iskoristiti ovaj sustav arhiviranja promjenom dijela URL-a koji služi i kao put datoteke. Na primjer, napadač se može promijeniti https://dummywebsite.com/?module=contact.php do https://dummywebsite.com/?module=/etc/passwd. Ranjivi poslužitelj s lošim filtriranjem i manjkavom logikom prikazat će sadržaj datoteke pohranjene u putanji /etc/passwd.

Naravno, hakeri koriste varijacije uobičajenih naziva datoteka i kombinacije znakova upita kako bi povećali izglede za uspješan napad. Cilj je prevariti web aplikaciju da pokrene skriptu ili prikaže datoteke na web poslužitelju.

Ovu ranjivost možete blokirati stvaranjem popisa dopuštenih javnih dokumenata na vašem poslužitelju i upućivanjem web aplikacije da zanemari upite za svaki drugi dokument ili putanju datoteke. Dakle, ako napadač pokuša manipulirati URL-om kako bi zatražio ili pokrenuo kodove koji zahtijevaju privatnost, umjesto toga će dobiti stranicu s pogreškom.

Često testirajte ranjivosti

Možeš koristiti alati za web skeniranje pronaći i popraviti ranjivosti koje bi vas mogle izložiti LFI napadima. Skeneri web-aplikacija automatizirani su alati koji pretražuju vašu aplikaciju poput napadača i upozoravaju vas na moguće ranjivosti. Postoji nekoliko web skenera otvorenog koda kao što su OpenVAS i Wireshark, ali većina skenera ranjivosti vlasnički je softver i za korištenje su potrebni plaćeni planovi.

Ali, naravno, nećete dobiti web skener samo za LFI napade. Ovi alati također traže šire sigurnosne ranjivosti kao što su udaljeno uključivanje datoteke, skriptiranje na više stranica, ubacivanje SQL-a i loše konfiguracije poslužitelja. Dakle, vrijede toga.

Ograničite privilegije posjetitelja stranice

Hakeri često uspješno izvode LFI napade jer web aplikacije ne uspijevaju odvojiti korisničke privilegije i na taj način omogućiti posjetiteljima pristup datotekama koje bi trebale biti vidljive samo administratorima. Ova mjera funkcionira poput popisa dopuštenih: konfigurirajte svoju web-aplikaciju i poslužitelj tako da poslužuju javne datoteke i zanemaruju neovlaštene zahtjeve kada posjetitelj komunicira s web-aplikacijom. Ovo je posebno važno za upite prema stazama datoteka koje sadrže osjetljive datoteke.

U tu svrhu, možda ćete morati spriječiti izravnu promjenu staza datoteka. Web-aplikacija bi trebala posluživati ​​samo dokumente s tvrdo kodiranog popisa puta. Nadalje, konfigurirajte web-aplikaciju za obradu zahtjeva s dinamičkim ulančavanjem putanje (URL-ovi trebaju sadržavati alfanumeričke znakove) umjesto funkcija base64 ili bin2hex.

Ako razmišljate o stavljanju naziva datoteka na crnu listu, nemojte. Hakeri obično imaju sve veći popis naziva datoteka koje mogu koristiti za izvođenje LFI napada. Osim toga, to je praktički nemoguće (i kolosalan gubitak vremena) staviti na crnu listu popis stalno rastućih izvora napada.

Koristite okruženje s više poslužitelja

Okruženje s više poslužitelja omogućuje vam izolaciju važnih, osjetljivih dokumenata iz javnih datoteka, čime se smanjuje rizik u slučaju kršenja. Namjenski poslužitelji manje su ranjivi na LFI napade jer, iako rade zajedno, njihove konfiguracije se razlikuju.

Osim ove sigurnosti, višestruki poslužitelji su također pouzdani (s manjim rizicima od prekida rada), brzi i učinkoviti. Doduše, korištenje okruženja s više poslužitelja nije isplativo ako je vaša web stranica mala. U tom slučaju razmislite o podjeli pristupa podataka vaše web aplikacije između baze podataka za privatne podatke i poslužitelja za javne datoteke.

Trebate li biti zabrinuti zbog LFI napada?

Mogućnost LFI napada postoji, posebno ako vaše web mjesto radi na PHP-u, ali možete smanjiti svoju izloženost konfiguracijom web aplikacija i poslužitelja u skladu s najboljom praksom web sigurnosti.

Nadalje, trebali biste razmisliti o obavljanju rutinskih sigurnosnih provjera kako biste pronašli ranjivosti. Stvari se stalno kvare, posebno kada arhitektura stranice postaje složena. Alati koji će vam trebati da se zaštitite su automatizirani, a mnogi ne zahtijevaju razrađeno postavljanje ili napredno tehničko znanje.