Ing. Jan Mittner 3.11.2011. 1. Autentizace 2. Pluginy 3. Autorizace 4. Útoky 2.

Slides:



Advertisements
Podobné prezentace
Webové rozhraní pro přístup k databázi JIS Václav Lederbuch
Advertisements

Využití cloudových služeb ve školství
Webové rozhraní pro datové úložiště
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
Ing. Jan Mittner  Ing. Jan Mittner    KH  v případě zájmu vždy po cvičení.
Tvorba webových stránek
Ing. Jan Mittner MySQL Workbench 2. Základy práce s databází 3. Subversion 2.
Ing. Jan Mittner Profiling aplikací 2. Zend_Cache 3. Optimalizace výkonu databáze 4. Optimalizace rychlosti načítání webu 5. Další tipy.
Aplikační a programové vybavení
Ing. Jan Mittner Rozšíření modelu 2. Vazba 1:n 3. Vazba m:n 2.
Přednáška č. 5 Proces návrhu databáze
ZMVŠ. Bezpečnost Windows 8 Dynamic Access Control (DAC) Volně – Dynamický kontrolní přístup) rozšíření NTFS access control listů (ACL) o složitá pravidla.
Ing. Jan Mittner IT445 – Komponenty UI, Mail.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Adobe Dreamweaver CS4 Ing. Martin Dosedla.
Open Web Application Security Project (OWASP)
ENCYKLOPEDIE FORMULE 1 Stanislav Kolman 4.B 2013/
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
PHP – Základy programování
Databázové systémy 2 Cvičení V Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky
BAKALÁŘSKÁ PRÁCE Tomáš Janda
JIP a KAAS Co umí. A co nabízí ve vztahu k základním registrům.
Ing. Jan Mittner Základy MVC 2. Rozšíření layoutu 3. helpery 4. Bootstrap a přepis URL adres 2.
Databázové systémy Architektury DBS.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
DIGITÁLNÍ UČEBNÍ MATERIÁL Číslo projektuCZ.1.07/1.5.00/ Název projektuEU peníze středním školám Masarykova OA Jičín Název školyMASARYKOVA OBCHODNÍ.
Celní služby 2000 Radek Sedláček TranSoft a.s Radek Sedláček TranSoft a.s
Maturitní okruh 22: Úvod do HTML. Značkovací a klasické jazyky Klasické: převládá strukturovaný text (programovací kód), skripty jsou prováděny na straně.
Návrh a tvorba WWW Cvičení 7 PHP & Oracle - Bezpečnost.
Jazyk PHP Programovací jazyk PHP (Hypertext preprocessor) je skriptovací jazyk, který běží na straně serveru. KLIENT - SERVER Server posílá do vašeho počítače.
Elektronická žákovská knížka Autor: Matěj Liederhaus Vedoucí projektu: Klára Císařová.
Ing. Jan Mittner Životní cyklus požadavku 2. Moduly 3. Pluginy 4. Jak řešit komponenty typu menu 5. atd. 2.
Cross-Site Request Forgery Prezentace k přednášce o CSRF útocích Připraveno pro SOOM session #
Práce se šablonami v MS Word 2007
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Dokumentace informačního systému
Úvod do JavaScriptu JavaScript je p JavaScript je programovací jazyk, který se používá na webových stránkách. JavaScript je typu KLIENT - KLIENT To znamená,
Databázové systémy I Cvičení č. 10 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Ing. Jan Mittner Základy práce s formuláři 2. Více layoutů 3. Optimalizace práce s modely 2.
Ing. Jan Mittner Zend_Feed 2. XmlWriter 3. SimpleXml 4. sitemap 2.
Access Vysvětlení pojmu databáze - 01
Základy syntaxe jazyka PHP PHP JE TECHNOLOGIE BĚŽÍCÍ NA SERVERU. PHP JE TECHNOLOGIE BĚŽÍCÍ NA SERVERU. Typický PHP skript obsahuje: Typický PHP skript.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
IBM Global Services Ing. Stanislav Bíža, Senior IT Architect, CISA © 2005 IBM Corporation Rizika napadení webových aplikací Konference ISSS 2005 Title.
Databáze Lokální systémy a SQL servery VY_32_INOVACE_7B10.
1 iMUNIS Portálové řešení pro obce Mgr. Jan Brychta Mgr. Tomáš Lechner Triada, spol. s r. o.
Klomfar Petr.  Adresářová služba  specializovaná databáze optimalizovaná pro čtení a vyhledávání.  popisující objekt pomocí atributů. Na rozdíl od.
Webové služby pro komunikaci s informačním systémem eQuip Martin Širajch.
Akademie ZENU Ukázková aplikace. Tak o tomhle to nebude…
Miroslav Skokan IT Security Consultant
Pohled uživatele.
2 Karla Halenková Setkání uživatelů 2001 Báze znalostí produkt pro naplnění uživatelem.
PHP Programy pro tvorbu WWW stránek - 01
Jan Růžička, Leden /01/05 Proč pro prezentaci prostorových dat využívat nástrojů WWW Nízké náklady na vybavení klientského počítače Snadné zvýšení.
E- MAIL Ing. Jiří Šilhán. E LEKTRONICKÁ POŠTA NEBOLI vývoj od počátku sítí – původní návrh pouze pro přenos krátkých textových zpráv (ASCII) základní.
© 2016 InterSystems Corporation. All rights reserved. Integrace OAuth 2.0 a OpenID Connect.
Struktura a Koncept portálu ČVUT, © 2013 IBA CZ, s. r. o. Agenda Teoretický průřez strukturou a konceptem Liferay portálu Company Sites Pages (stránky)
Zabezpečení – CSRF, XSS Tomáš Hulák, Miroslav Kořínek.
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
BEZPEČNOSTNÍ TECHNOLOGIE I Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg. č.: CZ.1.01/2.2.00/ )
Databáze MS ACCESS 2010.
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
Bezpečnostní technologie I
as4u advanced system for you
Vytvoření IS pro správu místností v prostředí WWW
Zabezpečení www stránek
Správa disků
Web Application Scanning
ZAL – 7. cvičení 2016.
HASH.
Transkript prezentace:

Ing. Jan Mittner

1. Autentizace 2. Pluginy 3. Autorizace 4. Útoky 2

 proces ověření identity  v Zendu řešíme skrze komponentu Zend_Auth  zajišťuje ověření identity oproti datovému zdroji identit  využívá rozšiřitelné adaptéry implementující jednotné rozhraní ▪ databázové rozhraní ▪ HTTP autentifikace ▪ LDAP ▪ OpenID ▪ atd.  3

 hesla do databáze neukládáme v otevřeném formátu, ale pouze jejich hash, tzn. jednosměrně zakódovaný řetězec znaků dle vybrané hashovací funkce  hash by nemělo být možné hrubou silou v rozumném čase dekódovat zpět na heslo  útočník ani administrátor pak z databáze, resp. jiného datového zdroje, nebudou schopni hesla dešifrovat  nejčastější hashovací funkce – MD5, SHA (SHA-1, SHA-2) atd. 4

 hash se nevytváří pouze ze samotného hesla, ale ze spojení hesla s libovolným řetězcem = solí  sůl by měla být pro každého uživatele individuální  může jít o náhodně vygenerovaný řetězec uložený u každého uživatele v databázi nebo jednoduše např. pouze login uživatele  vhodné zkombinovat i s další statickou solí definovanou pouze v rámci aplikace mimo databázi  solení hesel zajišťuje především obranu proti rainbow tables:  útok využívající již předpočítaných tabulek „hash – heslo“  5

 objekty neinvazivně rozšiřující funkcionalitu stávající aplikace  pluginy mohou nabývat různých typů dle svého účelu  action / view helpery, formulářová rozšíření (filtry, validátory, dekorátory), pluginy front-controlleru atd.  pluginy front-controlleru ovlivňují chování aplikace jako celku a váží se na jednotlivé události během životního cyklu zpracování požadavku klienta  vychází z objektu Zend_Controller_Plugin_Abstract, který definuje metody pro jednotlivé události: ▪ preDispatch() – spouští se před zpracováním konkrétní akce ▪ postDispatch() – spouští se po zpracování konkrétní akce ▪ atd.  6

 udělení přístupu k funkcím a informacím na základě oprávnění ověřené identity  v Zendu řešíme skrze komponentu Zend_Acl  vychází z obecného modelu access control list, který definuje seznam určující kdo nebo co má povolení přistupovat k objektu a jaké operace s ním může provádět  pracuje s pojmy ▪ zdroj – objekt, u něhož je kontrolován přístup ▪ role – objekt, který může požadovat zdroj  role může mít přístup ke zdroji jako celku, resp. pouze k vybraným akcím pro práci se zdrojem  role mohou tvořit hierarchický strom dědičnosti oprávnění  nad vytvořeným ACL modelem je následně možné klást dotazy, zda má uživatel disponující danými rolemi práva k provádění akcí nad vybranými zdroji   lze to řešit i jinak (jako Zend_Controller_Action_Helper) 7

 cross-site scripting (XSS) je hackerská metoda využívající bezpečnostních děr ve skriptech  zpravidla se týká neošetřených klientských vstupů a výstupů, čili útočník může do aplikace nahrát vlastní škodlivý kód  3 typy:  lokální ▪ z URL se do javascriptu stránky vkládají neošetřené vstupy na straně klienta ▪ útočník tak může snadno vytvořit vlastní URL, do vstupů včlení škodlivý kód a URL bude distribuovat dál  nepersistentní ▪ obdobné jako lokální typ s rozdílem, že neošetřený vstup se vkládá do stránky na straně serveru  persistentní ▪ podobné jako nepersistentní typ s rozdílem, že škodlivý kód se uloží do databáze, čili následně není nutné vstoupit na stránku skrze upravenou URL  obrana v Zendu – hlídat uživatelské vstupy a používat escapování výstupů   8

 SQL injection je hackerská metoda zajišťující „vsunutí“ vlastního SQL do prováděného dotazu na straně serveru  metoda využívá neošetřených vstupů a umožňuje útočníkovi získat data z databáze, resp. jejich podobu upravit  obrana v Zendu – hlídat uživatelské vstupy a používat quotování vstupů a vázání proměnných do SQL dotazů  b.adapter.quoting.quote b.adapter.quoting.quote   9

 cross-site request forgery (CSRF) je hackerská metoda zajišťující spuštění akcí ve vybrané aplikaci uživatelem nevědomě skrze jinou napadenou aplikaci  útok je nejsnazší realizovat proti aplikacím, které využívají při autentifikaci cookies a jejichž funkční strukturu útočník zná  útočník pak může do jiné aplikace přidat např. tag obrázku s URL vybrané akce v cílové aplikaci (např. mazání / editace dat apod.)  následně uživatele přiměje na napadenou stránku vstoupit, a pokud ten je současně přihlášen v cílové aplikaci, tak se nevědomky provedou akce, které mohou způsobit nevratné změny  obrana v Zendu – ve formulářích využívat autorizační hash token nebo captcha ochranu  ments.hash ments.hash  

 typ man-in-the-middle útoku  typicky problém u přihlašovacích formulářů, které nejdou přes https  navíc se heslo přenáší v otevřené podobě  řešení: challenge-response přihlašování  ve formuláři je jednorázový náhodný token  spolu s tímto tokenem se na straně klienta spočítá hash a zasílá se místo hesla  server vezme token a zahashuje jej společně s heslem uživatele uloženým v db (resp. s hashí hesla)  výsledek porovná a pokud sedí, je vše ok  výhody:  heslo se nepřenáší v otevřené podobě (nemusí být https)  není možné se přihlásit opakovaně odposlechnutým požadavkem

 citlivé soubory musejí být vždy umístěny mimo document root nebo alespoň odpovídajícím způsobem zabezpečeny proti přístupu  např. application.ini obsahuje hesla  přípona.ini je ale standardně webserverem vracena jako textový dokument  řešení:.htaccess soubor se zakázáním přístupu

 doplňte do aplikace dalšího administrátora  zakomponujte do autentifikace solení hesel  doplňte do administrace další akci (např. změna pořadí produktů) a ošetřete ji vhodným oprávněním  aplikujte na dříve vytvořenou komponentu článků vhodná administrátorská oprávnění  pro zájemce: vytvořte vlastní autentifikační adaptér pro čtení identit ze souboru vycházející ze Zend_Auth_Adapter_Interface  pro zájemce: zkuste nasimulovat některý z představených bezpečnostních problémů 13