Johdanto LDAP-injektioon

Nykyään Web-sovelluksen on tarkoitus olla paljon muutakin kuin vain alusta, joka käsittelee käyttäjän kyselyjä. Aikaisemmalla ajanjaksolla verkkosovellus oli kyse paikasta, jonne käyttäjät voivat tulla tekemään töitään ja kirjautumaan ulos, ja kirjautumisen myötä sovellus lakkaa toimimasta. Mutta nykyään verkkosovelluksen on toimittava, vaikka käyttäjä ei käytä sitä, mikä voidaan toteuttaa evästeiden avulla. Facebook on äskettäin vahvistanut käyttävänsä evästeitä tarkistaakseen käyttäjän toiminnan varmistaakseen, että heidän järjestelmäänsä ei väärinkäytetä. Joten silloin, kun online-sovellusten on oltava tehokkaampia, sovellusten turvallisuus on luettelo vaatimuksista. Keskitymme tässä yhteydessä yhden tyyppiseen verkkohyökkäystapaan, josta on huolehdittava järjestelmän turvallisuuden varmistamiseksi.

Mikä on LDAP-injektio?

  • LDAP tarkoittaa kevyttä hakemistoyhteysprotokollaa. Se voidaan määritellä toimittajaneutraaliksi protokolliksi, joka toimii kerroksessa TCP / IP-pinon yli. Sitä käytetään viranomaisvalvonta- ja autentikointimekanismin käyttöönottoon verkkosovelluksessa sen turvallisuuden varmistamiseksi, ja sitä käytetään hyvin usein web-sovellusten kehittämisen aikana. LDAP: tä käytetään hyvin usein web-sovelluksissa, joita käytetään Internetissä tai intranetissä. Verkkosovelluksen kannalta on erittäin tärkeää käydä LDAP: n kanssa, koska se on erittäin yleinen ja tärkeä tekijä, joka helpottaa verkkosovelluksen turvallista kehittämistä.
  • LDAP voidaan määritellä myös standardisarjaksi, jota käytetään suorittamaan turvatarkastuksia selvittääkseen, onko käyttäjällä kaikki luvat käyttää olemassa olevaa järjestelmää. Tarkastuksia on useita tapoja, mutta lopulta kaikkien tarkistusten tarkoituksena on varmistaa verkkosovelluksen turvallisuus. Se kieltää luvattoman pääsyn käyttäjille, joilla ei ole asianmukaisia ​​käyttöoikeuksia. Perustuen käyttäjän tiettyyn verkkosovellukseen omistamiin oikeuksiin, se varmistaa, että käyttäjä voi käyttää vain niitä asioita, joihin heillä on oikeus. Vaikka sitä käytetään huolehtimaan verkkosovelluksen turvallisuudesta, hakkerit voivat myös huijata sitä purkamaan mehu sovelluksesta.

Suoritetaan LDAP-injektio esimerkillä

  • Verkkosovelluksen on otettava käyttäjän syötteet prosessoidakseen sitä edelleen. Hyökkääjä voi hyödyntää tätä, jos käyttäjien syöttämää arvoa ei puhdisteta kunnolla ja se menee suoraan tietokantaan suorittamista varten. Täällä näemme, kuinka LDAP-injektio voitaisiin käynnistää mihin tahansa hyökkäykseen alttiisiin verkkosovelluksiin.

IEnter your name

  • Edellä mainittu kysely muunnetaan LDAP-ystävälliseksi komentoksi, jotta sovellus helpottaa kyselyn suorittamista hyvin.

String ldapQueryToSearch= "(sq=" + $userName + ")";
System.out.println(ldapQueryToSearch);

  • Edellä mainitussa tapauksessa, jos käyttäjän lähettämää arvoa ei puhdisteta, se voi johtaa kaikkien olemassa olevien käyttäjien nimien saamiseen syöttämällä “*” syöttöruutuun. Tähti tarkoittaa kaikkia käytettävissä olevia vaihtoehtoja, joten kun tietokanta käsittelee tähdellä pikemminkin tietyn käyttäjänimen, sille annetaan kaikki LDAP-tietokantaan tallennetut objektit. Todellinen kysely, joka suoritetaan tietokannassa, on

findingLogin="(&(usrid="+username+")(userPwd=(MD5)"+base64(pack("H*", md5(pass)))+"))";

  • Jos tietoja ei ole desinfioitu ja tietokanta hyväksyy asteriski-arvon prosessille, koodi on kuten alla.

findingLogin="(&(usrid=*)(usrid=*))(|(usrid=*)(userPwd=(MD5)Xkjr1Hj5LydgyfeuILpxM==))";

Heti kun yllä oleva haavoittuva koodi joutuu LDAP-tietokantaan, se läpäisee kaikki LDAP-tietokantaan tallennetut objektit ja aiheuttaa vahinkoa verkkosovellukselle. Hakkeri käyttää sitten LDAP-injektion tulosta järjestelmän väärinkäyttämiseen ja tietoturvaloukkauksen aiheuttamiseen.

Kuinka voit suojata LDAP-injektiohyökkäyksiä?

  • Jos sovelluksessa on haavoittuvuus, on myös olemassa sen korjaus. Tuskin mitään haavoittuvuuksia, joita ei voida ratkaista tai korjata järjestelmän suojaamiseksi. Samalla tavoin on olemassa useita tapoja, joita voidaan käyttää suojaamaan verkkosovellusta LDAP-injektiolta.
  • Aivan ensimmäinen ja tärkein tapa on puhdistaa tulo ennen sen viemistä edelleen jalostettavaksi. Käyttäjän lähettämä syöte on validoitava, jos se vastaa vaatimusta, joka sopii mihin tahansa sovellukseen odottaa kyseisen tekstikentän kautta. Esimerkiksi, jos käyttäjä yrittää lähettää mitään erikoismerkkejä nimeä pyytävästä tekstikenttään, käyttäjää tulisi varoittaa siitä, että hän ei pysty täyttämään erikoismerkkiä kyseisessä kentässä. Se on asiakaspuolen validointi. Nyt tarvitaan myös palvelinpuolen validointi, jotta varmistetaan, että toimitetut tiedot ovat aitoja.
  • Seuraava on konfiguroida LDAP pitämällä turvallisuus mielessä. LDAP-määritykset tulisi tehdä tavalla, joka rajoittaa luvattomia käyttäjiä tekemään järjestelmään mahdollisesti haitallisia muutoksia. Seuraava on myös se, että LDAP-kyselyn tuloksen on oltava rajallinen, eikä se saa paljastaa mitään tietoja, jotka voivat johtaa tietoturvaloukkauksiin. Jos tiedot eivät riitä vahingoittamaan järjestelmää, hyökkääjä ei voi millään tavalla vaikuttaa verkkosovellukseen, vaikka he pystyisivätkin käynnistämään LDAP-injektiohyökkäyksen.

johtopäätös

Kevyt hakemiston käyttöprotokolla tarjoaa tavan sovellukselle varmistaa, että järjestelmään pääsyä yrittävä henkilö on oikein todennettu ja valtuutettu käyttämään järjestelmää. On erittäin tärkeää ottaa huomioon LDAP, samalla kun huolehditaan kaikista turvallisuuteen liittyvistä huolenaiheista. Järjestelmän tulisi olla riittävän vahva, jotta hakkerit eivät salli LDAP-hyökkäystä. Koska LDAP-tietokannassa on erittäin tuottavaa tietoa, järjestelmänvalvojan on varmistettava, että käyttäjän syöttämät tiedot on puhdistettu erittäin huolellisesti ja että kokoonpano on tehtävä pitämällä kaikki suojaustekijät mielessä.

Suositellut artikkelit

Tämä on opas LDAP-injektioon. Tässä keskustellaan siitä, mikä on LDAP-injektio, sen esimerkkejä ja kuinka suojata LDAP-injektiohyökkäyksiä. Voit myös käydä läpi muiden aiheeseen liittyvien artikkeleidemme saadaksesi lisätietoja-

  1. Mikä on SQL-injektio?
  2. Mikä on Laravel?
  3. Turvallisuustestaus
  4. Mikä on Java-käyttöliittymä?