Uvod u LDAP injekciju

Danas bi web aplikacija trebala biti mnogo više od platforme koja obrađuje korisnikove upite. U ranijem razdoblju web aplikacija se odnosila na mjesto na koje korisnici mogu doći raditi i odjaviti se, a kad se odjave, aplikacija prestaje raditi. No ovih dana web aplikacija mora raditi čak i ako je korisnik ne koristi, što bi se moglo implementirati pomoću kolačića. Nedavno je Facebook potvrdio da oni koriste kolačiće za provjeru korisnikovih aktivnosti kako bi osigurali da se njihov sustav ne zloupotrijebi. Tako da u vrijeme kada internetske aplikacije moraju biti jače, sigurnost aplikacije vodi popis zahtjeva. Ovdje ćemo se usredotočiti na jednu vrstu načina cyber napada na koji se mora voditi računa kako bi se osigurala sigurnost sustava.

Što je LDAP injekcija?

  • LDAP je lagan protokol pristupa katalogu. Može se definirati kao protokol koji ne vrijedi prema prodavaču i djeluje na sloj preko TCP / IP skupa. Koristi se za uvođenje mehanizma provjere i provjere autentičnosti u web aplikaciju radi osiguranja njegove sigurnosti i vrlo često se koristi tijekom razvoja web aplikacija. LDAP se vrlo često koristi u web aplikacijama koje se koriste putem interneta ili intraneta. Veoma je važno da web aplikacija koristi LDAP jer je to vrlo čest i važan faktor koji olakšava siguran razvoj web aplikacije.
  • LDAP se također može definirati kao skup standarda koji se koriste za obavljanje sigurnosnih provjera kako bi se otkrilo ima li korisnik sve dozvole za pristup postojećem sustavu. Postoji nekoliko načina provjere, ali na kraju je motiv svih provjera osiguranje sigurnosti web aplikacije. Zabranjuje se neovlašteni pristup korisnika koji nemaju odgovarajuće privilegije. Na temelju prava koja korisnik ima za određenu web aplikaciju, osigurava da korisnik može imati pristup samo onim stvarima na koje ima pravo. Iako se koristi za brigu o sigurnosti web aplikacije, hakeri ga mogu prevariti i za uklanjanje soka iz aplikacije.

Izvođenje LDAP injekcije s primjerom

  • Web aplikacija mora preuzeti unos od korisnika kako bi ga dalje obradila. Napadač može iskoristiti to ako se vrijednost koju unesu korisnici ne sanira ispravno i izravno ide u bazu podataka za izvršenje. Ovdje ćemo vidjeti kako se ubrizgavanje LDAP-a moglo pokrenuti na bilo kojoj web aplikaciji koja je sklona ovom napadu.

IEnter your name

  • Gore navedeni upit transformirat će se u naredbu LDAP friendly tako da aplikacija olakšava dobro izvršenje upita.

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

  • U gornjem slučaju, ako vrijednost koju je poslao korisnik nije sanitirana, to može dovesti do dobivanja imena svih postojećih korisnika stavljanjem „*“ u polje za unos. Zvezdica označava sve dostupne opcije, pa kada će baza podataka obraditi zvjezdicu, a ne bilo koje određeno korisničko ime, dat će joj se svi objekti pohranjeni u LDAP bazi podataka. Stvarni upit koji će se izvršiti u bazi podataka bit će

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

  • Kad se podaci ne saniraju, a baza podataka u procesu prihvati vrijednost zvjezdice, kod će biti na sljedeći način.

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

Čim će gornji ranjivi kod upasti u bazu podataka LDAP, proći će kroz sve objekte pohranjene u LDAP bazi podataka i uzrokovati će štetu web aplikaciji. Ishod LDAP injekcije haker će iskoristiti za zlouporabu sustava i prouzročiti narušavanje sigurnosti.

Kako možete zaštititi od napada LDAP ubrizgavanja?

  • Ako u aplikaciji postoji ranjivost, mora postojati i njezino saniranje. Jedva će postojati ranjivost koja se ne može riješiti ili popraviti radi zaštite sustava. Na isti način, postoji nekoliko načina koji se mogu koristiti za zaštitu web aplikacije od LDAP injekcije.
  • Prvi i najvažniji način je očistiti unos prije nego što ga odnesete na daljnju obradu. Unos koji je poslao korisnik mora biti potvrđen ako odgovara zahtjevu koji odgovara onome što aplikacija očekuje u tom tekstnom polju. Na primjer, ako korisnik pokušava u tekstnom polju poslati bilo koje posebne znakove koji traže ime, tada bi ga korisnik trebao upozoriti da ne može popuniti poseban znak u tom polju. To je provjera na strani klijenta. Sada će se tražiti i provjera na strani poslužitelja da bi se osigurali izvorni podaci.
  • Sljedeći je način konfiguriranja LDAP-a, imajući na umu sigurnost. Konfiguracija LDAP-a treba biti izvedena na način koji ograničava neovlaštene korisnike da unose bilo kakve zlonamjerne promjene u sustav. Sljedeći je, ishod LDAP upita, mora biti ograničen i ne može otkriti nikakve podatke koji bi mogli dovesti do narušavanja sigurnosti. Ako podaci neće biti dovoljni da naštete sustavu, napadač neće moći utjecati na web aplikaciju ni na koji način, čak i ako su mogli pokrenuti LDAP napad injekcije.

Zaključak

Lagani protokol pristupa imeniku omogućuje put do aplikacije kako bi se osiguralo da je korisnik koji pokušava pristupiti sustavu ispravno ovjeren i ovlašten za korištenje sustava. Vrlo je važno razmotriti LDAP, vodeći računa o svim pitanjima sigurnosti. Sustav treba biti dovoljno jak da ne bi pustio niti jedan haker da izvede LDAP napad. Budući da baza podataka LDAP sadrži vrlo unosne informacije, administrator mora osigurati da je unos od korisnika vrlo pažljivo sanitiran i da se konfiguracija mora obaviti imajući na umu sve sigurnosne faktore.

Preporučeni članci

Ovo je vodič za LDAP ubrizgavanje. Ovdje smo raspravljali o LDAP injekciji, njezinim primjerima i kako zaštititi LDAP injekciju. Možete i proći kroz naše druge povezane članke da biste saznali više -

  1. Što je SQL ubrizgavanje?
  2. Što je Laravel?
  3. Ispitivanje sigurnosti
  4. Što je Java sučelje?

Kategorija: