Bezpečnost webových aplikací v ASP.NET

Podobné dokumenty
HTTP hlavičky pro bezpečnější web

Testování webových aplikací Seznam.cz

Zabezpečení web aplikací

Content Security Policy

Zranitelnosti webových aplikací. Vlastimil Pečínka, Seznam.cz Roman Kümmel, Soom.cz

Hitparáda webhackingu nestárnoucí hity. Roman Kümmel

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Šifrování Autentizace Bezpečnostní slabiny. Bezpečnost. Lenka Kosková Třísková, NTI TUL. 22. března 2013

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Cross- Site Request Forgery

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Cross-Site Scripting (XSS)

Vývoj Internetových Aplikací

GDPR A INFORMAČNÍ SYSTÉM. Nadežda Andrejčíková Libor Piškula

PHP a bezpečnost. nejen veřejná

Demilitarizovaná zóna (DMZ)

Protokol HTTP 4IZ228 tvorba webových stránek a aplikací

Nejčastější zranitelnosti webových aplikací. Pavel Bašta

Bezpečnost internetového bankovnictví, bankomaty

Programování v jazyku C# II. 8.kapitola

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

AJAX. Dynamické změny obsahu stránek

WCF. IW5 - Programování v.net a C# WCF

Bezpečnost a bezpečné programování

Dell SonicWALL. Security tips & tricks. Jan Ježek business communication s.r.o.

ASP.NET Core 1.0: OCHRANA CITLIVÝCH INFORMACÍ

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

Datové schránky ante portas

Microsoft Azure Workshop

Jaku b Su ch ý 1

Bezpečnost SingleCase

Systém zabezpečení dat

SSL Secure Sockets Layer

MVVM pro desktop i web

RESTful API TAMZ 1. Cvičení 11

HP JetAdvantage Management. Oficiální zpráva o zabezpečení

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Návrh a implementace bezpečnosti v podnikových aplikacích. Pavel Horal

Formuláře. Internetové publikování. Formuláře - příklad

Group policy. Jan Žák

Užitečné odkazy:

Základy HTML, URL, HTTP, druhy skriptování, formuláře

Zabezpečení proti SQL injection

ISZR Referenční agent.net

Úvod do aplikací internetu a přehled možností při tvorbě webu

Postup instalace ČSOB BusinessBanking pro MS SQL 2005/2008

Pokročilé Webové služby a Caché security. Š. Havlíček

Zabezpečení platformy SOA. Michal Opatřil Corinex Group

Úvod do tvorby internetových aplikací

Server-side technologie pro webové aplikace

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

WWW technologie. HTTP protokol

Bezpečnost. Michal Dočekal

Nasazení OAuth 2.0 pro systém Perun

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

Autentizace webových aplikací z pohledu NEbezpečnosti. Oldřich Válka Security

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

IdM v prostředí ZČU v Plzni

KIV/PIA 2013 Jan Tichava

Návrh a tvorba WWW stránek 1/8. Formuláře

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Web Application Security aneb další. rozměr hackingu. XanthiX Soom session IV

Vladimír

Informatika / bezpečnost

Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

APS 400 nadministrator

INFORMAČNÍ SYSTÉMY NA WEBU

Informační systém pro e-learning manuál

Šifrování ve Windows. EFS IPSec SSL. - Encrypting File System - Internet Protocol Security - Secure Socket Layer - Private Point to Point Protocol

Compatibility List. GORDIC spol. s r. o. Verze

Diagnostika webových aplikací v Azure

SPECIFIKACE PŘEDMĚTU PLNĚNÍ

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Efektivní řízení rizik webových a portálových aplikací

Instalace a první spuštění Programu Job Abacus Pro

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Synchronizace CRM ESO9 a MS Exchange

Novinky v.cz registru a mojeid. Zdeněk Brůna

Koláčky, sezení. Martin Klíma

Network Security. Dell SonicWALL portfolio. Jan Ježek business communication s.r.o.

Příloha č. 1 Verze IS esyco business

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. v EEG/ERP portálu

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

BEZPEČNOST SLUŽEB NA INTERNETU

Pavel Kaňkovský, DCIT Consulting. SOFTECON

17. července :51 z moravec@yahoo.com

Windows 2008 R2 - úvod. Lumír Návrat

Vývoj internetových aplikací. 9. Útoky na internetové aplikace. a možná obrana proti nim

Popis logování v aplikačním serveru

Artlingua Translation API

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

BEZPEČNÁ SPRÁVA KLÍČŮ POMOCÍ HSM. Petr Dolejší Senior Solution Consultant

ZADÁNÍ BAKALÁŘSKÉ PRÁCE

DUM 14 téma: Interakce s uživatelem

IP telephony security overview

Transkript:

Jakub Čermák Software fox, HAVIT, s.r.o. cermak@havit.cz, jakub@jcermak.cz Twitter@cermakj Bezpečnost webových aplikací v ASP.NET

Agenda Obecné zásady, kryptografická primitiva Běžné útoky a chyby A8 CSRF Overposting A3 XSS, CSP

Obecné zásady Nikdy nevěřte klientovi či klientské validaci Hiddenfield, <option>, Nikdy security by obscurity Používejte hotová kryptografické primitiva Útoky na implementaci

Hotová kryptografická primitiva Běžné věci přímo v.netu Jaké zvolit parametry? -> SecurityDriven.NET Inferno

Hashujeme Kontrola integrity dat proti poškození Rychlé porovnávání velkých dat Hesla Ne MD5, ne SHA1 SHA-2 PBDKF2 / Bcrypt/ scrypt Solíme Kryprografickysilná náhodná čísla Ne Random Dlouhé, unikátní DEMO: hashujeme hesla

Hashujemes klíčem HMAC, symetrický podpis Zabezpečení přes nezabezpečený kanál Přihlašovací tokeny, ověřovací kódy, resety hesla, DEMO: hmac

Šifrujeme symetricky Šifrování a dešifrování pomocí stejného klíče AES, Blowfish Zabezpečení externího úložiště dat aplikace Azure Storage

Šifrujeme asymetricky Veřejný klíč pro šifrování Soukromý klíč pro dešifrování RSA Posílání tajných dat po nezabezpečeném kanále Kombinace se symetrickou šifrou asymetricky šifruji náhodný klíč pro symetrickou šifru Rychlost Více klíčů více konzumentů (šifrování NTFS) DEMO: šifrování

Nejčastější závažné chyby aplikací OWASP top 10

Crosssiterequestforgery(OWASP A8) Naše aplikace umí mazat uživatele pomocí požadavku na /Admin/DeleteUser/ Útočník donutí oběť na tuto URL přistoupit (zpráva na foru, ajax, iframe,...) => oběť nevědomky smaže uživatele Metody obrany Antiforgerytoken Žádný GET DEMO: csrf + antiforgery

X-Frame-Options Hlavička odpovědi omezující použití zdroje jako zdroj pro <iframe> Znají ji browsery a dle toho nezobrazí iframe Možné vlastnosti: DENY -nikdy nepovolit SAMEORIGIN jen ze stejné domény ALLOW-FROM uri explicitní povolení vypsaných URI

Cross-origin resource sharing Omezení přístupu k REST službám / zdrojům Př. Zdroj example.com/api/deleteuser AJAX rest api Mám aplikaci na myapp.com doméně Z aplikace chci AJAXem přistupovat na DeleteUser Výchozí NELZE je na jiné doméně Je třeba explicitně povolit pomocí HTTP hlaviček posálaných cílovým zdrojem

DEMO: cors na CorsResource CORS posílané hlavičky Zjednodušený (GET-only, bez cookie): Origin: http//www.myapp.com (posílá browser) Access-Control-Allow-Origin: http://www.myapp.cz Preflight check předpožadavek OPTION na zdroj zjišťující oprávnění Access-Control-Allow-Origin: http://foo.com Access-Control-Allow-Methods: PUT, DELETE Access-Control-Allow-Credentials: true

CORS podpora ve web api Nuget Microsoft.AspNet.Cors Konfigurace config.enablecors(); Na controlleru [EnableCors(origins: "http://app.cz", headers: "*", methods: "*")]

MVC Over-posting MVC binder vyplní všechny propertíes na přijatém modelu (nebo TryUpdateModel), které dostane i když jsme nedělali pro ně input Registrace uživatele, model = entita z DB, má vlastnost IsAdmin Útočník ručně přidá hidden input s hodnotou IsAdmin=true => proběhne binding => máme nového admina

MVC Over-posting Nebindovat entity, ale ViewModely Pro každou akci mít vlastní, bez závadných properties V UI fasádě převést viewmodely na entity / business obj. Bindovat interface TryUpdateModel<IUserInputModel>(user); Bind atribut na parametru ViewResultEdit([Bind(Include = "FirstName")] User user) ViewResultEdit([Bind(Exclude = "IsAdmin")] User user) ReadOnly atribut na property bindovaného modelu DEMO: overposting registrace

XSS Typ injection; vkládání zlých věci do hodné stránky Vzdálené spouštění skriptů krádeže dat či identity CSRF

XSS (2) Persistentní (stored) Ukládané do db Typicky formuláře, fora, HTTP hlavičky při logování Nepersistentní (reflected) Součástí URL V mailech, na forech Provede přesměrování -phishing, načte zlý skript DEMO: XSS

XSS hlídání vstupů Neřešit adminstránky Zakázat Vlastní značovacíjazyk BBCode Sanitize https://github.com/mganss/htmlsanitizer Whitelistingtagůa atributů! Classjacking Temná zákoutí html -<button form="test" formaction="javascript:xxx">x</button> hlídat URL, cesty k souborům http://srv.cz/downloaddoc.ashx?name=../website/web.config

Content Security Policy Omezení zdrojů přidruženého obsahu pomocí whitelistingu URL Zákaz obrázků z nepovolených domén Zákaz skriptů či inline skriptů... HTTP Hlavička Content-Security-Policy:default-src self cdn.moje.cz https://*.goodsite.cz ; script-src none

CSP (2) -direktivy Child-src iframe Connect-src AJAX Font-src fonty Form-action omezení URL formulářů (experimental) Frame-ancestors X-Frame-Options Img-src Media-src audio, video Object-src -

CSP (3) -zdroje Cdn.domain.cz, *.domain.cz, https://xy.cz * -vše none nic self jen aktuální doména Data: -povolení data-uri https: -jen pomocí šifrovaného spojení unsafe-inline unsafe-eval

CSP -nonce Explicitní povolení konkrétních inline skriptů/stylů/... Uvedení sha256 vkládaného inline skriptu Uvedení nonce Content-Security-Policy: default-src self'; script-src self 'nonce-rand <script type="text/javascript" nonce= RAND"> alert('inline skript test'); </script> DEMO: nonce

CSP -reporting Direktiva report-uri Bonzuje všechna porušení CSP Content-Security-Policy-Report-Only Pravidla nanečisto Pouze reporting, neblokuje DEMO: reporting

Insecure Direct Object References Častá chyba Skrytí tlačítka, neověření přístupu na konkrétní stránku Missing Function Level Access Control Varianta samého

OWASP Top 10 -nemusíme řešit A1 (SQL) Injection Vždy používat SQL parametry nebo ORM A2 BrokenAuthand Session Management Vestavěné řešení ve frameworku A5 SecurityMisconfiguration IIS a WinServer dosti restriktivní by default A6 Sensitive Data Exposure Web.configchráněn by default, vše mít tam Hashovathesla, pozor na okolní kanály zálohy, vývojové odlití produkční db A9 UsingcomponentswithKnownVulnerabilities Nuget

Tajná zbraň

Závěr Obecné zásady, kryptografická primitiva Běžné útoky a chyby A8 CSRF Overposting A3 XSS, CSP Kontakt: Jakub Čermák; jakub@jcermak.cz