Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Web-palvelimet isännöivät tiedostoja (verkkosivuja, kuvia, videoita, lomakkeita jne.), jotka muodostavat verkkosovelluksesi, ja palvelevat näitä tiedostoja, kun joku vierailee verkkosivustollasi. Jotkut palvelimet ovat edistyneempiä ja hallitsevat myös sitä, kuinka paljon pääsyä web-kävijöillä on. Ne voivat rajoittaa tavallisia vierailijoita pääsemästä muiden käyttäjien tileille tai hallintapaneeleille. Vaikka verkkopalvelimet ovat tehtävissään tehokkaita – ja ne tekevät sen melko turvallisesti – hyökkääjät voivat käyttää hyväkseen virheitä, jotka johtuvat inhimillisistä virheistä tai virheellisestä logiikasta siinä, miten palvelin palvelee isännöimiä tiedostoja.

Mikä on LFI-hyökkäys?

Local File Intrusion (LFI) -hyökkäys tapahtuu, kun hyökkääjät käyttävät hyväkseen haavoittuvuuksia, jotka liittyvät siihen, miten verkkopalvelin tallentaa, palvelee, vahvistaa tai valvoo pääsyä tiedostoihinsa. Tämä haavoittuvuus on yleinen PHP-pohjaisilla verkkosivustoilla.

instagram viewer

Toisin kuin monet kyberhyökkäykset, joissa hyökkääjät turvautuvat haittaohjelmiin korruptoidakseen sovelluksen, LFI: n hyökkääjät turvautuvat enimmäkseen älykkäisiin temppuihin ja lyhyisiin koodiriviin. Tämä vaatii harvoin kehittyneitä työkaluja tai monimutkaisia ​​skriptejä; hyökkäykset tapahtuvat yleensä verkkoselaimessa. Yleisin hyökkääjien käyttämä temppu on URL-merkkijonon muokkaaminen koodilla, tiedostopoluilla tai tiedostonimillä.

Kuinka LFI-hyökkäykset tapahtuvat?

LFI-hyökkäykset tapahtuvat yleensä neljässä vaiheessa.

Ensin hyökkääjä tunnistaa PHP-sivuston, jossa on haavoittuva verkkosovellus, yleensä suorittamalla peruskoodin selaimen URL-osoitteessa nähdäkseen, käsitteleekö verkkosovellus (eli sivusto) komentoa. Ajattele sitä kuin painaisit peliohjaimen näppäinyhdistelmiä avataksesi pääsiäismunan – esimerkiksi painat alasnäppäintä päästäksesi tunneleihin Super Mariossa. Mutta hyökkääjien LFI-hyökkäyksissä suorittamat komennot ovat johdonmukaisempia kuin jokaisen Super Marion tunnelin tarkistaminen.

Verkkosovellus tai palvelin, joka on määritetty väärin tai joka ei pysty vahvistamaan syötteitä, suorittaa haitallisen koodin. Sieltä hakkeri voi saada tarvitsemansa käyttöoikeudet ja oikeudet lukeakseen haavoittuvia tiedostoja tai ladatakseen haitallisia tiedostoja palvelimelle.

Useimmat LFI-hyökkäykset johtavat siihen, että hyökkääjä pääsee käsiksi arkaluonteisiin tietoihin. Mahdollisuus ladata haittaohjelmia on harvoin onnistunut, koska ei ole takeita siitä, että verkkosovellus tallentaa tiedoston samalle palvelimelle, jossa LFI-haavoittuvuus on olemassa. Näin on usein, jos verkkosovellus on monipalvelinympäristössä.

Joten jos LFI-haavoittuvuus on palvelimessa, joka isännöi kuvia, mutta ei palvelimessa, joka tallentaa työntekijän valtuustietoja tai käyttäjien salasanoja, hyökkääjällä on pääsy vain tämän haavoittuvan palvelimen kuvatiedostoihin. Siitä huolimatta kybertapahtumat, kuten hyökkäys LastPassia vastaan osoittavat, että hakkerit voivat aiheuttaa tuhoa näennäisesti mitättömällä käyttöoikeustasolla.

Kuinka estää LFI-hyökkäykset

LFI-hyökkäykset ovat varsin yleisiä, mukaan Avaa Web Application Security Project (OWASP). Ymmärrettävästi hakkerit suosivat tätä hyökkäystä, koska as W3Techs raporttien mukaan lähes kahdeksan kymmenestä verkkosivustosta käyttää PHP: tä palvelinpuolen ohjelmointikielenä – uhreja on niin sanotusti runsaasti. LFI-hyökkäys on mahdollista estää ottamalla käyttöön verkkoturvallisuuden parhaita käytäntöjä.

Julkisen palvelimen tiedostot sallittujen luetteloon

Web-sovellukset käyttävät usein tiedostopolkuja URL-syötteinä. Hakkerit voivat hyödyntää tätä arkistointijärjestelmää muuttamalla URL-osoitteen osaa, joka toimii tiedostopoluna. Esimerkiksi hyökkääjä voi muuttua https://dummywebsite.com/?module=contact.php to https://dummywebsite.com/?module=/etc/passwd. Haavoittuva palvelin, jossa on huono suodatus ja virheellinen logiikka, näyttää polkuun /etc/passwd tallennetun tiedoston sisällön.

Tietenkin hakkerit käyttävät yleisten tiedostonimien muunnelmia ja kyselymerkkien yhdistelmiä lisätäkseen onnistuneen hyökkäyksen todennäköisyyttä. Tavoitteena on huijata verkkosovellus suorittamaan komentosarja tai näyttämään tiedostot verkkopalvelimella.

Voit estää tämän haavoittuvuuden luomalla palvelimellesi sallittujen luettelon julkisista asiakirjoista ja ohjeistamalla verkkosovellusta jättämään huomioimatta kaikkien muiden dokumenttien tai tiedostopolkujen kyselyt. Joten jos hyökkääjä yrittää manipuloida URL-osoitetta pyytääkseen tai suorittaakseen koodeja, jotka pyytävät yksityistä, hän saa sen sijaan virhesivun.

Testaa haavoittuvuuksia usein

Voit käyttää verkkoskannaustyökalut löytää ja korjata haavoittuvuuksia, jotka voivat altistaa sinut LFI-hyökkäyksille. Verkkosovellusskannerit ovat automaattisia työkaluja, jotka indeksoivat sovelluksesi kuin hyökkääjä ja varoittavat mahdollisista haavoittuvuuksista. On olemassa useita avoimen lähdekoodin verkkoskannereita, kuten OpenVAS ja Wireshark, mutta useimmat haavoittuvuusskannerit ovat patentoituja ohjelmistoja ja vaativat maksullisia käyttösuunnitelmia.

Mutta tietenkään et saa verkkoskanneria vain LFI-hyökkäyksiin. Nämä työkalut etsivät myös laajempia tietoturva-aukkoja, kuten etätiedostojen sisällyttäminen, sivustojen välinen komentosarja, SQL-injektio ja huonot palvelinkokoonpanot. Joten he ovat sen arvoisia.

Rajoita sivuston vierailijan oikeuksia

Hakkerit suorittavat usein LFI-hyökkäyksiä onnistuneesti, koska verkkosovellukset eivät pysty jakamaan käyttäjien oikeuksia ja antavat siten vierailijoille pääsyn tiedostoihin, joiden pitäisi näkyä vain järjestelmänvalvojille. Tämä toimenpide toimii kuin sallittujen luettelo: määritä verkkosovelluksesi ja palvelimesi niin, että ne palvelevat julkisia tiedostoja ja jättävät huomioimatta luvattomat pyynnöt, kun vierailija on vuorovaikutuksessa verkkosovelluksen kanssa. Tämä on erityisen tärkeää arkaluonteisia tiedostoja sisältävien tiedostopolkujen kyselyissä.

Tätä varten saatat joutua estämään tiedostopolkujen muuttamisen suoraan. Verkkosovelluksen tulee näyttää asiakirjoja vain kovakoodatusta polkuluettelosta. Lisäksi määritä verkkosovellus käsittelemään pyynnöt dynaamisella polkuketjulla (URL-osoitteiden tulee sisältää aakkosnumeerisia merkkejä) base64- tai bin2hex-funktioiden sijaan.

Jos harkitset tiedostonimien lisäämistä mustalle listalle, älä tee sitä. Hakkereilla on yleensä kasvava luettelo tiedostonimistä, joita he voivat käyttää LFI-hyökkäyksen suorittamiseen. Sitä paitsi se on käytännössä mahdotonta (ja valtavaa ajanhukkaa) lisätä jatkuvasti lisääntyvien lähteiden luettelon mustalle listalle hyökkäyksestä.

Käytä monipalvelinympäristöä

Monen palvelimen ympäristön avulla voit eristää tärkeät, arkaluontoiset asiakirjat julkisista tiedostoista, mikä vähentää riskiäsi tietomurron sattuessa. Dedikoidut palvelimet ovat vähemmän haavoittuvia LFI-hyökkäyksille, koska vaikka ne toimivat yhdessä, niiden kokoonpanot vaihtelevat.

Tämän suojauksen lisäksi useat palvelimet ovat myös luotettavia (pienemmillä seisokkien riskillä), nopeita ja tehokkaita. Tosin monipalvelinympäristön käyttö ei ole kustannustehokasta, jos verkkosivustosi on pieni. Harkitse siinä tapauksessa verkkosovelluksesi pääsyn tietoihin jakamista yksityisten tietojen tietokannan ja julkisten tiedostojen palvelimen kesken.

Pitäisikö sinun olla huolissaan LFI-hyökkäyksistä?

LFI-hyökkäyksen mahdollisuus on olemassa, varsinkin jos sivustosi toimii PHP: llä, mutta voit vähentää altistumistasi määrittämällä verkkosovelluksia ja palvelimia verkkoturvallisuuden parhaiden käytäntöjen mukaisesti.

Lisäksi sinun tulee harkita rutiiniturvatarkastuksia haavoittuvuuksien löytämiseksi. Asiat katkeavat koko ajan, varsinkin kun sivuston arkkitehtuuri muuttuu monimutkaiseksi. Työkalut, joita tarvitset suojellaksesi itseäsi, ovat automatisoituja, ja monet eivät vaadi monimutkaista asennusta tai kehittynyttä teknistä osaamista.