Web Application Security Aplikační bezpečnost Jiří Martinů, 2023 Background • 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í. Cíle při zajištění aplikační bezpečnosti (AB) * 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. Zjištění možných zranitelností • 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. • 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. Nástroje pro nalezení zranitelností Web Application Security Assessment vendors • AppScan - Watchfire (www.watchfire.com) • Core Impact - Core Security (www.coresecuritv.com) • Hailstorm - Cenzic (www.cenzic.com) • NTOSpider - NT OBJECTives (www.ntobiectives.com) • Weblnspect - SPI Dynamics (www.spydynamics.com) • WhiteHat Sentinel - WhiteHat Security (www.whitehatsec.com) Analýza statických kódů • Fortify - Fortify Software (www.fortifvsoftware.com) • Ounce - Ounce Labs (www.ouncelabs.com) • Veracode - (www.veracode.com) Druhy nejčastějších útoků • XSS - Cross-Site Scripting • SQL Injection • DOS • DDOS XSS - Cross-Site Scripting • 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ř.: <SCRIPT> var pos=document.URL.indexOf("jmeno=")+6; document.write("Ahoj ',+document.URL.substring(pos,document.URL.Iength)); </SCRIPT> • Přístup na stránku: http://blablabla.cz/stranka.html?imeno=Jirka • http://blablabla.cz/stranka.html?jmeno=<script>alert(Toto je úspěšný XSS útok.');</script> SQL Injection • 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.) 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. DDOS - Distrubuted 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čů. 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... Firewall, Web Attacker Intrusion Prevention Server Database Port 80,Port 443 Útok na webovou aplikaci Umístění WAF v tradiční architektuře station A station B layer 7 Application messages layer 6 Presentation I messages layer 7 Application ~~r~ layer 6 Presentation layer 5 Session I messages I layer 5 Session layer 4 Transport messages I layer 4 Transport SUBNET layer 3 network I layer 3 network layer 2 data link I I layer 3 network packets layer 3 network layer 3 network layer 3 network layer 2 data link I layer 2 data link frames layer 2 data link layer 2 data link I layer 2 data link layer 1 layer 1 layer 1 layer 1 layer 1 layer 1 physical physical physical bits or bytes physical physical physical node 1 node 2 node 4 node 5 node 8 node 10 Tradiční zabezpečení síťové vrstvy je vůči útokům na aplikační vrstvě slepé Doporučeno • https://www.owasp.orq/index.php/Main Page • https://xss-game.appspot.com/