10 nejčastějších slabin zabezpečení webu

OWASP neboli Open Web Security Project je nezisková charitativní organizace zaměřená na zlepšování bezpečnosti softwaru a webových aplikací.

Organizace zveřejňuje seznam hlavních slabin zabezpečení webu na základě údajů od různých bezpečnostních organizací.

Zranitelnosti webového zabezpečení jsou upřednostňovány v závislosti na zneužitelnosti, detekovatelnosti a dopadu na software.

  • Využitelnost –Co je potřeba ke zneužití bezpečnostní zranitelnosti? Nejvyšší zneužitelnost, když útok vyžaduje pouze webový prohlížeč a nejnižší pokročilé programování a nástroje.
  • Detekovatelnost - Jak snadné je odhalit hrozbu? Nejvyšší jsou informace zobrazené na URL, formuláři nebo chybové zprávě a nejnižší je zdrojový kód.
  • Náraz nebo poškození –Jak velká škoda bude způsobena, pokud bude bezpečnostní zranitelnost odhalena nebo napadena? Nejvyšší je úplné zhroucení systému a nejnižší je vůbec nic.

Hlavním cílem OWASP Top 10 je vzdělávat vývojáře, designéry, manažery, architekty a organizace o nejdůležitějších bezpečnostních slabinách.

Top 10 bezpečnostních zranitelností podle OWASP Top 10 jsou:

SQL Injection

SQL Injection

Description

Injection je bezpečnostní chyba, která umožňuje útočníkovi změnit backend SQL manipulací s daty dodanými uživatelem.

Vložení nastává, když je uživatelský vstup odeslán tlumočníkovi jako součást příkazu nebo dotazu a přimět tlumočníka k provedení nezamýšlených příkazů a poskytuje přístup k neoprávněným datům.

SQL příkaz, který při spuštění webovou aplikací může také odhalit back-end databázi.

Implikace

  • Útočník může vložit škodlivý obsah do zranitelných polí.
  • Z databáze lze číst citlivá data, jako jsou uživatelská jména, hesla atd.
  • Data databáze lze upravovat (Vložit/Aktualizovat/Vymazat).
  • Administrativa Operav databázi

Zranitelné objekty

  • Vstupní pole
  • URL interagující s databází.

Příklady:

Přihlášení do aplikace bez platných přihlašovacích údajů.

Platné uživatelské jméno je k dispozici a heslo není k dispozici.

Testovací adresa URL: http://demo.testfire.net/default.aspx

Uživatelské jméno: sjones

Heslo: 1=1′ nebo pass123

Dotaz SQL vytvořen a odeslán do interpreta, jak je uvedeno níže

SELECT * FROM Users WHERE User_Name = sjones AND Password = 1=1′ nebo pass123;

Doporučení

  1. Bílý seznam vstupních polí
  2. Vyhněte se zobrazování podrobných chybových zpráv, které jsou užitečné pro útočníka.

Skriptování mezi stránkami

Description

Cross Site Scripting je také krátce známý jako XSS.

Zranitelnosti XSS se zaměřují na skripty vložené do stránky, které se spouštějí na straně klienta, tj. v prohlížeči uživatele, nikoli na straně serveru. K těmto chybám může dojít, když aplikace vezme nedůvěryhodná data a odešle je do webového prohlížeče bez řádného ověření.

Útočníci mohou pomocí XSS spouštět škodlivé skripty na uživatelích, v tomto případě v prohlížečích obětí. Protože prohlížeč nemůže vědět, zda je skript důvěryhodný nebo ne, skript se spustí a útočník může unést soubory cookie relace, znehodnotit webové stránky nebo přesměrovat uživatele na nežádoucí a škodlivé webové stránky.

XSS je útok, který umožňuje útočníkovi spouštět skripty v prohlížeči oběti.

Implikace:

  • S využitím této bezpečnostní chyby může útočník do aplikace vkládat skripty, může krást soubory cookie relace, znečišťovat webové stránky a spouštět malware na počítačích oběti.

Zranitelné objekty

  • Vstupní pole
  • URL

Příklady

1. http://www.vulnerablesite.com/home?”<script>alert(“xss”)</script>

Při spuštění výše uvedeného skriptu v prohlížeči se zobrazí okno se zprávou, pokud je web zranitelný vůči XSS.

Závažnější útok lze provést, pokud chce útočník zobrazit nebo uložit cookie relace.

2. http://demo.testfire.net/search.aspx?txtSearch <iframe> http://google.com šířka = 500 výška 500>

Při spuštění výše uvedeného skriptu prohlížeč načte neviditelný rámec ukazující na http://google.com.

Útok může být vážný spuštěním škodlivého skriptu v prohlížeči.

Doporučení

  1. Vstupní pole White Listing
  2. Vstup Kódování výstupu

Nefunkční ověřování a správa relací

Description

Webové stránky obvykle vytvářejí soubor cookie relace a ID relace pro každou platnou relaci a tyto soubory cookie obsahují citlivá data, jako je uživatelské jméno, heslo atd. Když je relace ukončena buď odhlášením nebo náhlým uzavřením prohlížeče, měly by být tyto soubory cookie zrušeny, tj. pro každou relaci měla by být nová cookie.

Pokud nebudou soubory cookie zrušeny, budou citlivá data v systému existovat. Například uživatel používající veřejný počítač (Cyber ​​Cafe), soubory cookie zranitelného webu sedí v systému a jsou vystaveny útočníkovi. Útočník po nějaké době používá stejný veřejný počítač, citlivá data jsou kompromitována.

Stejným způsobem uživatel používající veřejný počítač místo odhlášení náhle zavře prohlížeč. Útočník používá stejný systém, při procházení stejné zranitelné stránky se otevře předchozí relace oběti. Útočník může dělat, co chce, od krádeže informací o profilu, informací o kreditní kartě atd.

Je třeba provést kontrolu, abyste zjistili sílu autentizace a správy relací. Klíče, tokeny relace, soubory cookie by měly být implementovány správně, aniž by došlo k ohrožení hesel.

Zranitelné objekty

  • ID relace vystavená na adrese URL mohou vést k útoku na fixaci relace.
  • ID relace stejná před a po odhlášení a přihlášení.
  • Časové limity relace nejsou správně implementovány.
  • Aplikace přiřazuje stejné ID relace pro každou novou relaci.
  • Autentizované části aplikace jsou chráněny pomocí SSL a hesla jsou uložena v hašovaném nebo šifrovaném formátu.
  • Relace může být znovu použita uživatelem s nízkým oprávněním.

Implikace

  • Využitím této zranitelnosti může útočník unést relaci, získat neoprávněný přístup do systému, což umožňuje odhalení a úpravu neoprávněných informací.
  • Relace mohou být poškozeny pomocí ukradených souborů cookie nebo relace pomocí XSS.

Příklady

  1. Aplikace pro rezervaci letenek podporuje přepisování URL, vkládání ID relací do URL:http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldives (Prodej vstupenek na Maledivy)Ověřený uživatel webu chce informovat své přátele o prodeji a pošle jim e-mail. Přátelé obdrží ID relace a lze je použít k neoprávněným úpravám nebo zneužití uložených údajů o kreditní kartě.
  2. Aplikace je zranitelná vůči XSS, pomocí které může útočník získat přístup k ID relace a může být použit k únosu relace.
  3. Časové limity aplikací nejsou správně nastaveny. Uživatel použije veřejný počítač a místo odhlášení zavře prohlížeč a odejde. Útočník použije stejný prohlížeč o něco později a relace je ověřena.

Doporučení

  1. Všechny požadavky na ověřování a správu relací by měly být definovány podle standardu ověřování zabezpečení aplikací OWASP.
  2. Nikdy nezveřejňujte žádné přihlašovací údaje v adresách URL nebo protokolech.
  3. Velké úsilí by mělo být věnováno také tomu, aby se zabránilo chybám XSS, které lze použít ke krádeži ID relace.

Nezabezpečené přímé odkazy na objekt

Description

Dochází k němu, když vývojář zpřístupní odkaz na interní implementační objekt, jako je soubor, adresář nebo klíč databáze jako v URL nebo jako parametr FORM. Útočník může tyto informace použít k přístupu k dalším objektům a může vytvořit budoucí útok pro přístup k neoprávněným datům.

Implikace

  • Pomocí této chyby zabezpečení může útočník získat přístup k neoprávněným interním objektům, může upravit data nebo ohrozit aplikaci.

Zranitelné objekty

  • V adrese URL.

Příklady:

Změna „id uživatele“ v následující adrese URL může způsobit, že útočník zobrazí informace o jiném uživateli.

http://www.vulnerablesite.com/userid=123 Upraveno na http://www.vulnerablesite.com/userid=124

Útočník může zobrazit informace ostatních změnou hodnoty ID uživatele.

Doporučení:

  1. Implementujte kontroly řízení přístupu.
  2. Vyhněte se odhalení odkazů na objekty v adresách URL.
  3. Ověřte oprávnění ke všem referenčním objektům.

Padělání žádosti o více stránek

Description

Cross Site Request Forgery je podvržený požadavek přišel z cross site.

CSRF útok je útok, ke kterému dochází, když škodlivý web, e-mail nebo program způsobí, že prohlížeč uživatele provede nežádoucí akci na důvěryhodném webu, pro který je uživatel aktuálně ověřen.

Útok CSRF přinutí prohlížeč přihlášené oběti odeslat podvržený požadavek HTTP, včetně souboru cookie relace oběti a jakýchkoli dalších automaticky zahrnutých ověřovacích informací, do zranitelné webové aplikace.

Odkaz odešle útočník oběti, když uživatel klikne na URL při přihlášení na původní web, data budou z webu odcizena.

Implikace

  • Použití této chyby zabezpečení jako útočníka může změnit informace o profilu uživatele, změnit stav, vytvořit nového uživatele jménem správce atd.

Zranitelné objekty

  • Stránka uživatelského profilu
  • Formuláře uživatelských účtů
  • Stránka obchodní transakce

Příklady

Oběť je přihlášena na webové stránky banky pomocí platných přihlašovacích údajů. Dostává e-mail od útočníka, který říká: „Prosím, klikněte sem a darujte 1 $.

Když na něj oběť klikne, vytvoří se platná žádost o darování 1 $ na konkrétní účet.

http://www.vulnerablebank.com/transfer.do?account=cause&amount=1

Útočník zachytí tento požadavek a vytvoří níže uvedený požadavek a vloží jej do tlačítka s nápisem „Podporuji příčinu“.

http://www.vulnerablebank.com/transfer.do?account=Attacker&amount=1000

Vzhledem k tomu, že relace je ověřená a požadavek přichází prostřednictvím webové stránky banky, server by útočníkovi převedl 1000 dolarů.

Doporučení

  1. Nařídit přítomnost uživatele při provádění citlivých akcí.
  2. Implementujte mechanismy jako CAPTCTokeny HA, opětovné ověření a jedinečné požadavky.

Chybná konfigurace zabezpečení

Description

Konfigurace zabezpečení musí být definována a nasazena pro aplikaci, rámce, aplikační server, webový server, databázový server a platformu. Pokud jsou správně nakonfigurovány, může mít útočník neoprávněný přístup k citlivým datům nebo funkcím.

Někdy takové chyby vedou k úplnému kompromitování systému. Udržování softwaru v aktuálním stavu je také dobrým zabezpečením.

Implikace

  • S využitím této zranitelnosti může útočník vyčíslit základní technologii a informace o verzi aplikačního serveru, informace o databázi a získat informace o aplikaci, aby mohl provést několik dalších útoků.

Zranitelné objekty

  • URL
  • Pole formulářů
  • Vstupní pole

Příklady

  1. Administrátorská konzole aplikačního serveru se automaticky nainstaluje a neodebere. Výchozí účty se nezmění. Útočník se může přihlásit pomocí výchozích hesel a může získat neoprávněný přístup.
  2. Výpis adresářů není na vašem serveru zakázán. Útočník objeví a může jednoduše vypsat adresáře, aby našel jakýkoli soubor.

Doporučení

  1. Silná aplikační architektura, která poskytuje dobré oddělení a zabezpečení mezi komponentami.
  2. Změňte výchozí uživatelská jména a hesla.
  3. Zakázat výpisy adresářů a implementovat kontroly řízení přístupu.

Nezabezpečené kryptografické úložiště

Description

Nezabezpečené kryptografické úložiště je běžná chyba zabezpečení, která se vyskytuje, když citlivá data nejsou uložena bezpečně.

Pověření uživatele, informace o profilu, údaje o zdravotním stavu, informace o kreditní kartě atd. spadají pod citlivé údaje na webových stránkách.

Tato data budou uložena v databázi aplikace. Pokud jsou tato data uložena nesprávně a nepoužíváte šifrování nebo hašování*, budou zranitelná vůči útočníkům.

(*Hašování je transformace znaků řetězce na kratší řetězce pevné délky nebo klíče. Pro dešifrování řetězce by měl být k dispozici algoritmus použitý k vytvoření klíče)

Implikace

  • Pomocí této zranitelnosti může útočník ukrást, upravit tato slabě chráněná data tak, aby provedl krádež identity, podvody s kreditními kartami nebo jiné trestné činy.

Zranitelné objekty

  • Aplikační databáze.

Příklady

V jedné z bankovních aplikací používá databáze hesel neslané hashe * k ukládání hesel všech. Chyba vložení SQL umožňuje útočníkovi získat soubor s hesly. Všechny neslané hashe lze brutálně vynutit během okamžiku, zatímco solená hesla by trvala tisíce let.

(*Neslané hashe – Sůl je náhodná data připojená k původním datům. Sůl je připojena k heslu před hashováním)

Doporučení

  1. Zajistěte vhodné silné standardní algoritmy. Nevytvářejte vlastní kryptografické algoritmy. Používejte pouze schválené veřejné algoritmy, jako je AES, kryptografie s veřejným klíčem RSA a SHA-256 atd.
  2. Zajistěte, aby byly zálohy mimo pracoviště šifrované, ale klíče byly spravovány a zálohovány samostatně.

Selhání omezení přístupu k URL

Description

Webové aplikace kontrolují přístupová práva k URL před vykreslením chráněných odkazů a tlačítek. Aplikace musí provádět podobné kontroly řízení přístupu při každém přístupu na tyto stránky.

Ve většině aplikací nejsou privilegované stránky, umístění a zdroje prezentovány privilegovaným uživatelům.

Inteligentním odhadem může útočník získat přístup ke stránkám oprávnění. Útočník může přistupovat k citlivým stránkám, vyvolávat funkce a zobrazovat důvěrné informace.

Implikace

  • Využitím této chyby zabezpečení může útočník získat přístup k neoprávněným adresám URL, aniž by se musel přihlásit do aplikace a zneužít tuto chybu zabezpečení. Útočník může přistupovat k citlivým stránkám, vyvolávat funkce a zobrazovat důvěrné informace.

Zranitelné objekty:

  • URL

Příklady

  1. Útočník si všimne, že adresa URL označuje roli jako „/user/getaccounts“. Upraví se jako „/admin/getaccounts“.
  2. Útočník může k adrese URL připojit roli.

http://www.vulnerablsite.com lze upravit jako http://www.vulnerablesite.com/admin

Doporučení

  1. Implementujte silné kontroly řízení přístupu.
  2. Zásady autentizace a autorizace by měly být založeny na rolích.
  3. Omezte přístup na nežádoucí adresy URL.

Nedostatečná ochrana transportní vrstvy

Description

Zabývá se výměnou informací mezi uživatelem (klientem) a serverem (aplikací). Aplikace často přes síť přenášejí citlivé informace, jako jsou ověřovací údaje, informace o kreditních kartách a tokeny relace.

Použitím slabých algoritmů nebo používáním prošlých nebo neplatných certifikátů nebo nepoužíváním SSL může být komunikace vystavena nedůvěryhodným uživatelům, což může ohrozit webovou aplikaci nebo ukrást citlivé informace.

Implikace

  • Využitím této chyby zabezpečení webu může útočník vyčmuchat přihlašovací údaje legitimního uživatele a získat přístup k aplikaci.
  • Může ukrást informace o kreditní kartě.

Zranitelné objekty

  • Data odeslaná přes síť.

Doporučení

  1. Povolit zabezpečený HTTP a vynutit přenos pověření pouze přes HTTPS.
  2. Ujistěte se, že váš certifikát je platný a nevypršela jeho platnost.

Příklady:

1. Aplikace, která nepoužívá SSL, bude útočník jednoduše monitorovat síťový provoz a pozoruje ověřený cookie relace oběti. Útočník může ukrást tento soubor cookie a provést útok typu Man-in-the-Middle.

Neověřené přesměrování a přesměrování

Description

Webová aplikace používá několik metod k přesměrování a přesměrování uživatelů na jiné stránky za zamýšleným účelem.

Pokud při přesměrování na jiné stránky nedojde k řádnému ověření, útočníci toho mohou využít a přesměrovat oběti na phishingové nebo malwarové stránky nebo použít přesměrování k přístupu na neautorizované stránky.

Implikace

  • Útočník může uživateli odeslat adresu URL, která obsahuje pravou adresu URL s připojenou zakódovanou škodlivou adresou URL. Uživatel, který pouze vidí pravou část adresy URL odeslané útočníkem, ji může procházet a může se stát obětí.

Příklady

1.http://www.vulnerablesite.com/login.aspx?redirectURL=ownsite.com

Upraveno na

http://www.vulnerablesite.com/login.aspx?redirectURL=evilsite.com

Doporučení

  1. Jednoduše se vyhněte používání přesměrování a přesměrování v aplikaci. Pokud je použit, nepoužívejte uživatelské parametry při výpočtu cíle.
  2. Pokud se cílovým parametrům nelze vyhnout, ujistěte se, že zadaná hodnota je platná a autorizovaná pro uživatele.