89
Bezpečnosť v kontexte RIA EurOpen Želiv 5.10. 2011 Mgr. Juraj Michálek Twitter: http://twitter.com/sinusgear Blog: http://georgik.sinusgear.com

Bezpečnosť v kontexte RIA technológií

Embed Size (px)

DESCRIPTION

Možnosti RIA technológii a ich bezpečnostné aspekty. Vývoj pomocou Flash Builderu, Visual Studia, Intellij Idei. Prednáška prednesená na konferencii Europen.cz v Želive.

Citation preview

Page 1: Bezpečnosť v kontexte RIA technológií

Bezpečnosť v kontexte RIA

EurOpen

Želiv5.10. 2011

Mgr. Juraj Michálek

Twitter: http://twitter.com/sinusgearBlog: http://georgik.sinusgear.com

Page 2: Bezpečnosť v kontexte RIA technológií

Niečo o mne

Page 3: Bezpečnosť v kontexte RIA technológií

Obsah

RIA

Flex, Flash, PDF

HTML5, JavaScript, Mobile

Page 4: Bezpečnosť v kontexte RIA technológií

Rich Internet Applications

Ako to vzniklo?

Výlet históriou

Page 5: Bezpečnosť v kontexte RIA technológií

Rok 2005

Zložitejší JavaScript uvaril browser

Page 6: Bezpečnosť v kontexte RIA technológií

Adobe

3. 12. 2005

Kupuje Macromediu

Page 7: Bezpečnosť v kontexte RIA technológií

FlashPlayer

Najrozšírenejšia platforma

Win, Mac, Lin

Page 8: Bezpečnosť v kontexte RIA technológií

ActionScript 2

S rastúcou aplikáciou

exponenciálne rástla

pracnosť.

Page 9: Bezpečnosť v kontexte RIA technológií

ActrionScript 3 a MXML

Veľmi podobné Jave.

Bez historickej ťarchy Javy.

Page 10: Bezpečnosť v kontexte RIA technológií

Open source framework Flex

Adobe dodáva nástroj

pre vývoj na Flash Platforme.

A definuje skratku RIA.

Page 11: Bezpečnosť v kontexte RIA technológií

Microsoft

Nočná mora web vývojárov: IE6

http://georgik.sinusgear.com/2011/03/05/ie-6-countdown/

Page 12: Bezpečnosť v kontexte RIA technológií

Adobe má úspech

Flash platforma získava popularitu.

Page 13: Bezpečnosť v kontexte RIA technológií

Microsoft

Vidí potenciál a spúšťa Silverlight

Page 14: Bezpečnosť v kontexte RIA technológií

Flash Platforma má náskok

FlashPlayer a ActionScript je staršía kopec problémov u má vyriešených.

Microsoft sa „inšpiruje“.

Page 15: Bezpečnosť v kontexte RIA technológií

Sun

Silverlight aj Flash vytláčajú Java applety.

Vzniká Java FX.

Page 16: Bezpečnosť v kontexte RIA technológií

JavaFX

Sunu sa nedarí.

Dôležití vývojári odchádzajú do Adobe.

Page 17: Bezpečnosť v kontexte RIA technológií

Apple

iPhone je populárny.

Iná platforma na iPhone predstavujeriziko straty kontroly.

Page 18: Bezpečnosť v kontexte RIA technológií

Adobe Max 2010

Hlavná téma – Flash Player pre iPhone.

Dlho očakávaná novinka.

Bude ohlásené v pondelokna začiatku konferencie.

Page 19: Bezpečnosť v kontexte RIA technológií

Rana pod pás

V piatok pre Adobe MaxApple zmení jeden riadok

v licencii

Page 20: Bezpečnosť v kontexte RIA technológií

Zmena

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must

not use or call any private APIs. Applications must be originally written in Objective-C, C, C++,

or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link

against the Documented APIs (e.g., Applications that link to Documented APIs through an

intermediary translation or compatibility layer or tool are prohibited).

Page 21: Bezpečnosť v kontexte RIA technológií

FP pre iPhone

Zostáva v labáku Adobe.

Než Apple zmení svoje rozhodnutie.

Page 22: Bezpečnosť v kontexte RIA technológií

iPad a iPhone

Jobs hlása: HTML5 je tá správna cesta

Page 23: Bezpečnosť v kontexte RIA technológií

Google

Úzko spolupracuje s Adobe.

Zabuduje Flash Player do Chromu.

Zároveň výrazne zlepší podporu JavaScriptu.

Page 24: Bezpečnosť v kontexte RIA technológií

Vic Gundotra - Google

The platform that is not owned by anyone

truely belongs to everyone.

HTML5

Page 25: Bezpečnosť v kontexte RIA technológií

A znova objavenie kolesa

HTML5 reimplemetuje nanovo väčšinuvecí z FP.

Page 26: Bezpečnosť v kontexte RIA technológií

Otvorený kód

Flex – postupne uvoľnený podMozilla Public Licence

Silverlight

JavaFx

Page 27: Bezpečnosť v kontexte RIA technológií

Flash Builder

Eclipse based

študenti a akademický pracovníci- licencia zdarma

Page 28: Bezpečnosť v kontexte RIA technológií

MXMLC, COMPC

shell, ant task

FlexMojos – Maven(Lin, Win, Mac, BSD)

Intellij Idea (Ultimate)

Page 29: Bezpečnosť v kontexte RIA technológií

Architektúra RIA aplikácii

Paralela s desktop aplikáciami

Jeden kód v pamäti

Komunikácia cez API

Page 30: Bezpečnosť v kontexte RIA technológií

Permanent cookie

FP si udržiaval vlastné cookie.

Security issue.

Page 31: Bezpečnosť v kontexte RIA technológií

FP 10.3

Mazanie cookie je konečne možnékontrolovať.

Page 32: Bezpečnosť v kontexte RIA technológií

Crossdomain

FP umožňuje GET a POST.

Obmedzenie: rovnaká doména

Page 33: Bezpečnosť v kontexte RIA technológií

Prístup na iné domény

crossdomain.xml v roote webu

FP ho kontroluje predtým, nežodošle požiadavku.

Page 34: Bezpečnosť v kontexte RIA technológií

crossdomain.xml

<cross-domain-policy>

<allow-access-from  domain="*"/>

<allow-http-request-headers-from  domain="*" />

</cross-domain-policy>

Page 35: Bezpečnosť v kontexte RIA technológií

REST

GET a POSTodosielané cez browser

PUT, DELETE atp. sú blokované

Page 36: Bezpečnosť v kontexte RIA technológií

Hlavičky request/response

FP dokáže vytvoriť niektoré hlavičky.

Nedokáže však načítať žiadne.

Page 37: Bezpečnosť v kontexte RIA technológií

Flash Player Sockets

Priamy prístup k socketu.

Od FP 9.0.124

Page 38: Bezpečnosť v kontexte RIA technológií

Socket Policy

Socket Policy File Server

port 848

Page 39: Bezpečnosť v kontexte RIA technológií

Policy document

<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy> <site-control permitted-cross-domain-policies="master-only"/><allow-access-from domain="swf.example.com" to-ports="123,456-458" /> </cross-domain-policy>

Page 40: Bezpečnosť v kontexte RIA technológií

Za firewallom

848 je blokované...

A sme došli stará mama.

Page 41: Bezpečnosť v kontexte RIA technológií

Prístup k súborom

Otvorenie dialógu pre výber súboru

je možné len ako reakcia na uživateľskú

udalosť.

Click :-)

Page 42: Bezpečnosť v kontexte RIA technológií

File Uploader

www.klokantech.com

Page 43: Bezpečnosť v kontexte RIA technológií

Transparent SWF

Overlay

this.parentApplication.alpha = 0;

Page 44: Bezpečnosť v kontexte RIA technológií

SWF

SWF obsahuje bajtkód.

Ten je možné dekompilovať.

Page 45: Bezpečnosť v kontexte RIA technológií

Assety v SWF

Zo SWF je možné vytiahnuť

súbory.

Page 46: Bezpečnosť v kontexte RIA technológií

Obfuskácia

Je možná.

Silnejšie riešenie: enkrypcia(Nitro LM)

Page 47: Bezpečnosť v kontexte RIA technológií

HTTPS

Server MUSÍ mať validný ceritikát.

Page 48: Bezpečnosť v kontexte RIA technológií

HTTPS a IE

Warning pri každom requeste.

Page 49: Bezpečnosť v kontexte RIA technológií

HTTPS a Google App Engine

Certifikát zdarma.

Plne validný len na jednu úroveň.https://srobick-server.appspot.com/

Podúrovne sú nevalidné.http://test.srobick-server.appspot.com/

Page 50: Bezpečnosť v kontexte RIA technológií

Certifikát

Zdarma (slabší)

www.startssl.com

Page 51: Bezpečnosť v kontexte RIA technológií

Memory Leak - Flash

Monitoring Flash Player pamäte

http://georgik.sinusgear.com/projects/flash-memory-monitor/

Loitering Objects

Page 52: Bezpečnosť v kontexte RIA technológií

Bezpečnostné opravy

Pre administrátorov: Aktualizujte!

Security oprava je vydaná pomerne rýchlood objavenia hrozby.

Adobe Security Bulletinhttp://www.adobe.com/support/security/

Page 53: Bezpečnosť v kontexte RIA technológií

Bug reporting

https://bugbase.adobe.com/

Page 54: Bezpečnosť v kontexte RIA technológií

RIA z webu na desktop

Zoberme web app.Nech je z nej desktop app!

www.hotrunnermodel.com

Page 55: Bezpečnosť v kontexte RIA technológií

AIR Runtime

„Upravený“ FP pre desktop.

Flex SDK + AIR rozšírenia

Win, Lin, Mac, Mobile

Page 56: Bezpečnosť v kontexte RIA technológií

RIA z webu na mobil a TV

Jeden kód, jeden runtimea množstvo cieľových platformiem:

Mac, Win, Lin, Android, iOS, BlackBerry

Page 57: Bezpečnosť v kontexte RIA technológií

Odstránené obmedzenia FP

Crossdomain nemá význam.

Socket priamy prístup.

Prístup na súborový systém.

Page 58: Bezpečnosť v kontexte RIA technológií

AIR aplikácia - manifest

<allowBrowserInvocation>true</allowBrowserInvocation>

Page 59: Bezpečnosť v kontexte RIA technológií

AIR update aplikácií

Page 60: Bezpečnosť v kontexte RIA technológií

AIR a HTTPS

Platí to isté čo pre web.

Certifikát musí byť validný.

Inak čo request to warning.

Page 61: Bezpečnosť v kontexte RIA technológií

RIA v PDF

Aplikácia zabalená do PDF.

Page 62: Bezpečnosť v kontexte RIA technológií

Security Sandbox

Každá požiadavka mimo sandboxsi vyžiada potvrdenie.

Page 63: Bezpečnosť v kontexte RIA technológií

Projekt Rome

Tvorba interaktívneho PDF

http://rome.adobe.com

Page 64: Bezpečnosť v kontexte RIA technológií

Kontinuálna integrácia

Jenkins

Príklad - Open Source AS3/MXML projekty:

http://ci.sinusgear.com

Page 65: Bezpečnosť v kontexte RIA technológií

Silverlight

Konkurent Flexu a FP

Aktuálne zameranie WP7

Page 66: Bezpečnosť v kontexte RIA technológií

Komunikačné protokoly

Nad HTTP

XML

SOAP

JSON

AMF3

Page 67: Bezpečnosť v kontexte RIA technológií

XML a SOAP

Penalizácia (de)serializácie.

Page 68: Bezpečnosť v kontexte RIA technológií

AMF3

Binárny protokol.

Veľmi rýchly a otvorený.

Klient FP only, server Java only.

Page 69: Bezpečnosť v kontexte RIA technológií

AMF3 introspection

Toaster Lite

Dekódovacia proxyhttp://georgik.sinusgear.com/2011/01/14/how-to-introspect-amf-communication/

Page 70: Bezpečnosť v kontexte RIA technológií

JSON

Rýchlosť, otvorenosť, čitateľnosť.

F12

Page 71: Bezpečnosť v kontexte RIA technológií

HTML5, JavaScript

Page 72: Bezpečnosť v kontexte RIA technológií

Canvas, WebGL

http://www.ermannobalzi.com/app/standardslide-2.0/

http://www.webglearth.org/

http://www.ro.me/

Page 73: Bezpečnosť v kontexte RIA technológií

three.js

https://github.com/mrdoob/three.js/

Page 74: Bezpečnosť v kontexte RIA technológií

jQuery a jQueryMobile

Fenomenálny prielom v možnostiach JavaScriptu.

$("#zeliv").animate({top:"300px"}).animate({left:"10px"});

Page 75: Bezpečnosť v kontexte RIA technológií

Malý web server

python -m SimpleHTTPServer

Page 76: Bezpečnosť v kontexte RIA technológií

EmglareMobile

App: http://www.emglare.com

Mobile app: http://m.emglare.com

Postavené na PhoneGap

Page 77: Bezpečnosť v kontexte RIA technológií

Dreamweaver a PhoneGap

Deployment na Android

Page 78: Bezpečnosť v kontexte RIA technológií

Back button

Užívateľ sa môže vrátiť k predchádzajúcej aplikácii.

Nutné zneplatniť citlivé data.

Page 79: Bezpečnosť v kontexte RIA technológií

GET

Pozor! Na keš.

Každý browser sa chová inak.

POST sa nekešuje.

Page 80: Bezpečnosť v kontexte RIA technológií

Crossdomain

GET/POST request je obmedzený na doménu.

Page 81: Bezpečnosť v kontexte RIA technológií

Sanitizácia HTML

Príklad: diskusný portál

vkladá do stránky nesanitizované príspevky

<script.....>

Page 82: Bezpečnosť v kontexte RIA technológií

JSON problém

Incident s Gmailom (fixed)

<script src=“http://gmail.com...“></script>

Page 83: Bezpečnosť v kontexte RIA technológií

Ochrana dát proti crossdomain

while (true); &&&START&&&{"Success":true,"

Page 84: Bezpečnosť v kontexte RIA technológií

User Tacking DOM

Page 85: Bezpečnosť v kontexte RIA technológií

Ochrana JavaScriptu?

Aspoň kompresia

YUI-Compressor

http://developer.yahoo.com/yui/compressor/

Page 86: Bezpečnosť v kontexte RIA technológií

Memory leak

JavaScript - Circular reference

Page 87: Bezpečnosť v kontexte RIA technológií

Captcha :-D

http://www.webdesignbeach.com/beachbar/ajax-fancy-captcha-jquery-plugin

Page 88: Bezpečnosť v kontexte RIA technológií

Bezpečnostné výstrahy pre SW

The Open Source Vulnerability Database

http://osvdb.org/

Page 89: Bezpečnosť v kontexte RIA technológií

$(this).close()

Europen

Želiv5.10. 2011

Mgr. Juraj Michálek

Twitter: http://twitter.com/sinusgearBlog: http://georgik.sinusgear.com