Web Application Security Aplikační bezpečnost Jiří Martinů, 2020 • Aplikační bezpečnost je stále ještě na počátku vývoje. • Tradiční týmy vývojářů, provozovatelů, samostatných vývojářů dobře nerozumí rizikům spojeným s aplikační bezpečností nebo je podceňují. • Pravdou je, že zajištění kvalitní bezpečnosti webových aplikací není vždy snadnou nebo levnou záležitostí. • Zajištění bezpečnosti je často kompromisem – zpřístupnění vs. omezení. Background • Určení/zjištění možných zranitelností s ohledem na AB • Monitorování/detekce pokusů o útok • Vývoj plánu pro stav ohrožení • Přidělení priority specifickým interním projektům AB • Proaktivní zvyšování povědomí o možných hrozbách • Modelování hrozeb (Threat Modeling - TM) a diagramy datových toků (Data Flow Diagrams – DFDs) • Manuální revize kódů (externím odborníkem) • Atd. Cíle při zajištění aplikační bezpečnosti (AB) ________________________________________________ ZákladyInterníprojekty • Automatizovaný přístup • Výběr automatizovaného nástroje hodnotícího AP, který nejlépe spolupracuje s vašimi technologiemi webových aplikací. • Zajištění VŠECH hrozeb, kterým může být webový aplikace vystavena. • Vložení analytických nástrojů a obranných mechanismů přímo do zdrojových kódů webové aplikace. Zjištění možných zranitelností • Manuální přístup • Slouží pro doplnění automatizovaného přístupu při posuzování možných hrozeb. • Ruční nastavení specifických požadavků s ohledem na zajištění funkce i zabezpečení. • Integrace manuálního i automatizovaného hodnocení kódů/zranitelností do životního cyklu vývoje. Web Application Security Assessment vendors • AppScan - Watchfire (www.watchfire.com) • Core Impact - Core Security (www.coresecurity.com) • Hailstorm - Cenzic (www.cenzic.com) • NTOSpider - NT OBJECTives (www.ntobjectives.com) • WebInspect - SPI Dynamics (www.spydynamics.com) • WhiteHat Sentinel - WhiteHat Security (www.whitehatsec.com) Analýza statických kódů • Fortify - Fortify Software (www.fortifysoftware.com) • Ounce - Ounce Labs (www.ouncelabs.com) • Veracode – (www.veracode.com) Nástroje pro nalezení zranitelností Druhy nejačastějších útoků • XSS – Cross-Site Scripting • SQL Injection • DOS • DDOS • metoda narušení WWW stránek využitím bezpečnostních chyb ve skriptech (především neošetřené vstupy) • využití i na statických stránkách • jde o neošetřené přenesení proměnné z URL adresy do javascriptu • Např.: • Přístup na stránku: http://blablabla.cz/stranka.html?jmeno=Jirka • http://blablabla.cz/stranka.html?jmeno= XSS – Cross-Site Scripting • technika napadení databázové vrstvy programu vsunutím (odtud „injection“) kódu přes neošetřený vstup a vykonání vlastního pozměňujícího poškozujícího SQL příkazu (dotazu DELETE, UPDATE, ALTER atp.) SQL Injection • typ útoku na internetové služby nebo stránky, jehož cílem je cílovou službu znefunkčnit a znepřístupnit ostatním uživatelům; •může k tomu dojít přehlcením požadavky či využitím nějaké chyby, která sice útočníkovi neumožní službu ovládnout, ale umožní ji rozbít. DOS – Denial of Service • typ útoku na internetové služby nebo stránky, jehož cílem je cílovou službu znefunkčnit a znepřístupnit ostatním uživatelům; • může k tomu dojít přehlcením požadavky či využitím nějaké chyby, která sice útočníkovi neumožní službu ovládnout, ale umožní ji rozbít. • podtyp útoku DoS, při kterém je pro přehlcení cílové služby požadavky využito velké množství rozptýlených počítačů. DDOS – Distrubuted Denial of Service Co je Web Application Firewall (WAF)? • Hlídá vrstvu webové aplikace (vrstva 7) a pracuje na ní • Podobá se tradičnímu síťovému firewallu (vrstva 4) • Nejedná se však o firewall • Chová se spíše jako brána, než jako firewall • Nejedná se však ani o bránu ☺ • U tradičního zabezpečení na síťové vrstvě – nelze chránit před tím, co není vidět… Útok na webovou aplikaci Umístění WAF v tradiční architektuře Tradiční zabezpečení síťové vrstvy je vůči útokům na aplikační vrstvě slepé • https://www.owasp.org/index.php/Main_Page • https://xss-game.appspot.com/ Doporučeno