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? Nejvíce jsou to informace zobrazené na URL, Formulář nebo chybová zpráva 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
  • URLinteraguje 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.

test 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
  • URLs

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 relací zveřejněná dne URL může vést k útoku fixace 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. Podpora aplikace pro rezervaci letenek URL přepisování, 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 URLnebo protokoly.
  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 tomu, když vývojář zveřejní 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 jiný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 URL.

Příklady:

Změna „userid“ v následujícím URL může útočníka přimět k zobrazení informací o jiných uživatelích.

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 zpřístupňování odkazů na objekty v URLs.
  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.

Útočník odešle oběti odkaz, když uživatel klikne na URL Po přihlášení na původní webovou stránku budou data z webové stránky ukradena.

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 narušení bezpečnosti systému.ping Aktuální software 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ě.

Neschopnost omezit URL Získat přístup

Description

Kontrola webových aplikací URL přístupová práva 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 k těmto stránkám.

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 zranitelnosti může útočník získat přístup k neoprávněným URLs, bez přihlášení do aplikace a zneužití zranitelnosti. Útočník může přistupovat k citlivým stránkám, vyvolávat funkce a prohlížet důvěrné informace.

Zranitelné objekty:

  • URLs

Příklady

  1. Útočník si všimne URL Označuje roli jako „/user/getaccounts“. Upravuje ji jako „/admin/getaccounts“.
  2. Útočník může přidat roli k URL.

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. Omezit přístup nežádoucím URLs.

Nedostatečná ochrana transportní vrstvy

Description

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

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 odeslat URL uživateli, který obsahuje originální URL s kódovaným škodlivým kódem URLUživatel pouhým viděním skutečné části útočníka odeslaného URL může si ho prohlížet a stát se 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.

Shrňte tento příspěvek takto: