Úvod do injekce LDAP

Webová aplikace v těchto dnech má být mnohem víc než jen platforma, která zpracovává dotazy uživatele. V dřívějším období byla webová aplikace o místě, kde uživatelé mohou přijít na svou práci a odhlásit se, a v době, kdy se odhlásí, aplikace přestane fungovat. V dnešní době však musí webová aplikace fungovat, i když ji uživatel nepoužívá, což by mohlo být implementováno pomocí cookies. Facebook nedávno potvrdil, že používá cookies ke kontrole aktivit uživatelů, aby zajistil, že jejich systém nebude zneužíván. Takže v době, kdy musí být online aplikace výkonnější, je bezpečnost aplikace v čele seznamu požadavků. Zde se zaměříme na jeden typ režimu kybernetického útoku, o který je třeba se starat, aby byla zajištěna bezpečnost systému.

Co je to vstřikování LDAP?

  • LDAP je zkratka pro Lightweight Directory Access Protocol. Může být definován jako protokol, který je neutrální vůči dodavateli a pracuje na vrstvě přes zásobník TCP / IP. Používá se k zavedení mechanismu kontroly a ověřování pravomocí ve webové aplikaci, aby byla zajištěna její bezpečnost, a velmi často se používá při vývoji webových aplikací. LDAP se velmi často používá ve webových aplikacích, které se používají přes internet nebo intranet. Pro webovou aplikaci je velmi důležité jít s LDAP, protože je to velmi běžný a důležitý faktor, který usnadňuje bezpečný vývoj webové aplikace.
  • LDAP lze také definovat jako sadu standardů, které se používají k provádění bezpečnostních kontrol, aby se zjistilo, zda má uživatel všechna oprávnění pro přístup k existujícímu systému. Existuje několik způsobů, jak provést kontroly, ale nakonec je motivem všech kontrol zajistit bezpečnost webové aplikace. Zakazuje neoprávněný přístup uživatelů, kteří nemají příslušná oprávnění. Na základě práv, která uživatel vlastní pro konkrétní webovou aplikaci, zajišťuje, že uživatel bude mít přístup pouze k těm věcem, na které má nárok. Přestože se používá k zajištění zabezpečení webové aplikace, hackeři ji také mohou oklamat, aby extrahovali šťávu z aplikace.

Provádění injekce LDAP s příkladem

  • Webová aplikace musí převzít vstup od uživatele, aby jej dále zpracovávala. Útočník to může využít, pokud hodnota zadaná uživateli není řádně dezinfikována a přímo jde do databáze k provedení. Zde uvidíme, jak by mohla být injekce LDAP spuštěna v jakékoli webové aplikaci, která je náchylná k tomuto útoku.

IEnter your name

  • Výše uvedený dotaz bude převeden na příkaz přátelský k LDAP, aby aplikace usnadnila správné provádění dotazu.

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

  • Ve výše uvedeném případě, pokud hodnota zadaná uživatelem není dezinfikována, může vést k získání jména všech stávajících uživatelů vložením „*“ do vstupního pole. Hvězdička označuje všechny dostupné možnosti, takže když databáze zpracuje hvězdičku, spíše jakékoli konkrétní uživatelské jméno, budou jí přiděleny všechny objekty uložené v databázi LDAP. Skutečný dotaz, který bude spuštěn v databázi, bude

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

  • Pokud data nejsou dezinfikována a databáze akceptuje hodnotu hvězdičky do procesu, bude kód stejný jako níže.

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

Jakmile se výše uvedený zranitelný kód spustí v databázi LDAP, proběhne prostřednictvím všech objektů uložených v databázi LDAP a povede k poškození webové aplikace. Výsledek injekce LDAP pak použije hacker k zneužití systému a k narušení bezpečnosti.

Jak můžete chránit před útoky injekcí LDAP?

  • Pokud v aplikaci existuje chyba zabezpečení, musí existovat i její náprava. Tam bude stěží jakékoli zranitelnosti, které nelze vyřešit nebo opravit pro ochranu systému. Stejným způsobem existuje několik způsobů, které lze použít k ochraně webové aplikace před vstřikováním LDAP.
  • Prvním a nejdůležitějším způsobem je dezinfikovat vstup před jeho dalším zpracováním. Vstup zadaný uživatelem musí být ověřen, pokud odpovídá požadavku, aby se soupravy na cokoli aplikace očekává prostřednictvím tohoto textového pole. Například pokud se uživatel pokusí zadat do textového pole, které žádá o jméno, speciální znaky, měl by být uživatel upozorněn, že v tomto poli nemůže vyplnit speciální znak. Toto je ověření na straně klienta. Nyní bude také vyžadováno ověření na straně serveru, aby bylo zajištěno, že zadaná data jsou originální.
  • Další je konfigurace LDAP s ohledem na bezpečnost. Konfigurace LDAP by měla být prováděna způsobem, který neoprávněným uživatelům omezuje provádění škodlivých změn v systému. Dalším z nich je, že výsledek dotazu LDAP musí být omezený a nesmí zveřejňovat žádná data, která by mohla vést k narušení bezpečnosti. Pokud data nebudou stačit k poškození systému, útočník nebude moci jakýmkoli způsobem ovlivnit webovou aplikaci, i kdyby byl schopen zahájit útok injekce LDAP.

Závěr

Protokol Lightweight Directory Access Protocol poskytuje aplikaci způsob, jak zajistit, aby uživatel, který se pokouší o přístup do systému, byl řádně ověřen a oprávněn k používání systému. Je velmi důležité zvážit LDAP a zároveň se postarat o všechny bezpečnostní obavy. Systém by měl být dostatečně silný, aby žádný hacker nenechal spustit útok LDAP. Protože databáze LDAP obsahuje velmi lukrativní informace, správce musí zajistit, aby byl vstup od uživatele velmi pečlivě dezinfikován a konfigurace musí být provedena s ohledem na všechny bezpečnostní faktory.

Doporučené články

Toto je průvodce vstřikováním LDAP. Zde diskutujeme, co je injekce LDAP, její příklady a jak chránit útok LDAP Injection. Další informace naleznete také v dalších souvisejících článcích.

  1. Co je SQL Injection?
  2. Co je Laravel?
  3. Testování bezpečnosti
  4. Co je rozhraní Java?

Kategorie: