Press "Enter" to skip to content

Vzpomínka na OWASP Top 10 2013

Od doby, kdy jsem přeložil (s podporou kolegů ze společnosti CZ.NIC) OWASP 10 Ten 2013 uplynulo mnoho let. Dílo je stále aktuální – a to v mnoha detailech. Bez ohledu na to, že OWASP vydal dvě novější verze – 2017 a 2021.

Překlad si můžete stáhnout z oficiálních stránek OWASP Top 10 2013.

OWASP Top 10 – 2013 je dobrý přehled desíti nejkritičtějších bezpečnostních rizik či zranitelností webových aplikací. A mnoha společnostem i jednotlivým vývojářům pomáhá pochopit okolnosti důležitých zranitelností. Verzemi 2017 a 2021 žádná ze zranitelností uvedených ve verzi 2013 nezmizela. Jsou stále aktuální, byť statisticky nebo metodicky dnes mohou mít více či méně odlišnou povahu.

OWASP je komunita a organizace zabývající se bezpečností webových (a dnes i mobilních) aplikací. Je otevřená všem zájemcům o bezpečnější webové či jiné aplikace, její přínos je velmi edukační, čím zásadně působí na zlepšení kvality zabezpečení webových a mobilních aplikací na celém světě. Produkuje velmi zajímavé projekty (pro testery, vývojáře, manažery…), bezpečnostní nástroje (OWASP ZAP, pravidla pro aplikační firewally…), kontrolní standardy, pořádá zajímavé konference po celém světě – a můžeme říci, že mnohé z toho zadarmo.

Z poměrně skromných začátků malého neformálního týmu talentů našeho oboru, kteří se snažili změnit svět (počítaje v to Marka Curpheyho, Dennise Grovese aj.), OWASP expandoval na rozmanitou, globální, a jednu z nejvlivnější neziskových organizaci v oblasti bezpečnosti aplikací na světě, která má neobyčejný vliv.

Je pravda, že OWASP Top 10 navazuje na OWASP Top 10 2013 a je následován OWASP Top 10 2017 a OWASP Top 10 2021. Avšak verze z roku 2013 na mě působí nejvyzráleji, následující jsou již příliš překombinované („přezrálé“) a zvláště pak 2021 nese známky touhy za každou cenu „něco“ vydat – zřejmě v důsledku potřeby vydat novou verzi k 20. výročí založení OWASP (24. září).

10 slabých míst webových aplikací z OWASP Top 10 2013

A1 – Injektování – Ke zranitelnostem injektováním, např. injektováním SQL, OS a LDAP, dochází, když se jako součást příkazu nebo dotazu odesílají do interpretu nedůvěryhodná data. Útočníkova nepřátelská data mohou lstí přimět
interpret k provedení nezamýšlených příkazů nebo k umožnění přístupu k datům bez řádné autorizace.

A2 – Chybná autentizace a správa relace – Funkce aplikací, které se vztahují k ověřování a správě relace, často nejsou provedeny správně, což útočníkům umožňuje kompromitovat hesla, klíče nebo tokeny relací anebo zneužít jiné slabiny v implementaci k tomu, aby převzali identitu jiných uživatelů.

A3 – Cross-Site Scripting (XSS) – Chyby typu XSS nastávají tehdy, když aplikace přijme nedůvěryhodná data a odešle je webovému prohlížeči bez řádného ověření nebo escapování. XSS útočníkům umožňuje spouštět skripty v prohlížeči oběti, které mohou unést uživatelské relace, přetvořit webové stránky nebo přesměrovat uživatele na nebezpečné stránky.

A4 – Nezabezpečený přímý odkaz na objekt – Přímý odkaz vznikne, když vývojář vystaví odkaz na vnitřní objekt implementace, například soubor, adresář
nebo databázový klíč. Bez kontroly řízení přístupu nebo jiné ochrany mohou útočníci manipulovat s těmito odkazy, a získat tak neoprávněný přístup k datům.

A5 – Nezabezpečená konfigurace – Dobré zabezpečení vyžaduje mít definováno a nasazeno bezpečné nastavení aplikace, frameworků, aplikačního serveru, webového serveru, databázového serveru a platformy. Bezpečnostní nastavení by měla být definována, prováděna a udržována, protože výchozí hodnoty jsou často riskantní. Navíc by měl být software průběžně aktualizován.

A6 – Expozice citlivých dat – Mnoho webových aplikací nechrání náležitě citlivá data, jakými jsou kreditní karty, daňová ID (pozn.: v USA) a autorizační údaje. Tato slabě chráněná data útočníci mohou krást či modifikovat, aby mohli provádět podvody s kreditními kartami, krádeže identity nebo jiné zločiny. Citlivá data si zaslouží zvláštní ochranu, např. šifrování dat v klidu nebo v pohybu, stejně tak i zvláštní bezpečnostní opatření pro data v prohlížeči.

A7 – Chyby v řízení úrovní přístupu – Většina webových aplikací ověří úroveň přístupových oprávnění k funkcím před tím, než je tato funkcionalita viditelná v uživatelském rozhraní. Přesto je zapotřebí, aby se při přístupu ke každé funkci prováděla stejná kontrola přístupu na serveru. Jestliže požadavky nejsou verifikovány, útočníci budou moci vytvořit požadavky na získání přístupu k funkcionalitě bez řádného povolení.

A8 – Cross-Site Request Forgery (CSRF) – Útok typu CSRF donutí prohlížeč přihlášené oběti odeslat zranitelné webové aplikaci podvržený požadavek HTTP, včetně cookie relace oběti a jiných automaticky vkládaných autentizačních informací. To útočníkovi umožňuje donutit prohlížeč oběti generovat požadavky, které zranitelná aplikace považuje za legitimní požadavky oběti.

A9 – Použití známých zranitelných komponent – Komponenty, např. knihovny, frameworky a další softwarové moduly, téměř vždy běží s nejvyššími oprávněními. Jestliže je zranitelná komponenta zneužita, útok může usnadnit závažnou ztrátu dat nebo ovládnutí serveru. Aplikace používající komponenty se známými zranitelnostmi mohou zmařit ochranu aplikací a umožnit řadu útoků a dopadů.

A10 – Neošetřené přesměrování a předávání – Webové aplikace často přesměrovávají a předávají uživatele na jiné webové stránky a používají k určení cílové stránky nedůvěryhodné údaje. Bez řádného ověření mohou útočníci přesměrovat oběti na rhybařící nebo malwarové stránky nebo použít předání k získání přístupu k neoprávněným stránkám.