Informazioni personali

Cerca nel blog

Translate

giovedì 4 giugno 2009

Web security: rudimenti 1

Scopo di questo post e di una serie che faro è quello di presentare in generale le problematiche legate alla sicurezza del browsing web. Sebbene si farà spesso riferimento alle tecnologie Cisco IronPort, quanto descritto va bene come guida generale per affrontare il problema almeno nella sua forma elementare. Cercherò di tenere il linguaggio ad un livello da non addetti ai lavori ed userò, laddove possibile, il maggior grado di semplificazione per rendere la lettura fruibile anche a chi non ha competenze specifiche in ambito sicurezza.

Ovviamente qualsiasi contributo o suggerimento sarà ben accetto.

Cosa vuol dire fare web browsing

Iniziamo innanzi tutto a capire di cosa parliamo. Il problema nasce dalla legittima esigenza di un utente di andare a visitare un sito attraverso un browser.

Iniziamo quindi a cercare di capire cosa succede quando digitiamo su il nostro  browser un indirizzo web (o URL).

supponiamo di aprire explorer e digitare: www.google.com

vediamo cosa succede in realtà vedendo la figura sottostante (per l’analisi del traffico uso HTTP watch basic):

digitando www.google.com la prima cosa che viene fatta è la traduzione di questo indirizzo in un relativo IP tramite il servizio DNS. Il vostro computer quindi raggiunge la sorgente indicata tramite una operazione GET (dammi)

Il server cui ci si sta connettendo risponde in questo caso con una indicazione di redirect HTTP che è di fatto una indicazione al browser di fare una nuova GET verso il sito www.google.it

Viene quindi indicato al browser di effettuare una ulteriore GET con dei parametri ….

00:00:00.000    Google                           
+ 0.000        0.398    1027    408    GET    302    Redirect to http://www.google.it/ http://www.google.com/
+ 0.398        0.087    1045    3656    GET    200    text/html; charset=UTF-8    http://www.google.it/
+ 0.571        0.087    880    136    GET    204    text/html; charset=UTF-8    http://www.google.it/gen_204?atyp=i&ghp=fbg
        0.658    2952    4200    3 requests           
00:00:00.655    Google                           
+ 0.000        0.003    0    0    GET    (Cache)    text/javascript; charset=UTF-8   
+ 0.009        0.068    979    215    GET    204    text/html    http://www.google.it/csi?v=3&s=webhp&action=&srt=571&tran=15&ei=7dEnSv7XOo2PsAa4xqHgBQ&e=17259,17315,18169,19772,20572&rt=prt.22,ol.67,xjs.111
+ 0.017        0.060    875    125    GET    204    text/html    http://clients1.google.it/generate_204
        0.078    1854    340    3 requests           

La richiesta di una URL ha quindi scatenato una serie di operazioni in background. questa condizione è una condizione standard, nonostante gli utenti abbiano l’impressione di caricare una pagina su di un “server” quello che avviene in realtà è decisamente più complicato, una richiesta di una URL scatena una serie di operazioni complesse che porta alla definizione della pagina.

Proviamo a fare la stessa attività con www.youtube.com e vediamo cosa succede:

00:09:36.322    YouTube – Broadcast Yourself.                           
+ 0.000        3.335    575    14422    GET    200    text/html; charset=utf-8   
http://www.youtube.com/
+ 1.246        1.078    418    12974    GET    200    text/css   

+ 1.246        0.772    416    1112    GET    200    application/x-javascript   
http://s.ytimg.com/yt/js/csi_squished-vfl95971.js
+ 1.246        1.077    404    482    GET    404    text/html   

+ 2.349        0.987    423    29997    GET    200    application/x-javascript   

+ 3.374        0.463    411    14621    GET    200    application/x-javascript   

+ 3.862        0.163    409    5451    GET    200    text/css   
http://s.ytimg.com/yt/css/iyt-vfl97456.css
+ 4.035        0.465    413    10445    GET    200    image/png   

+ 4.044        0.450    408    337    GET    200    image/gif   
http://s.ytimg.com/yt/img/pixel-vfl73.gif
+ 4.045        0.731    426    746    GET    200    image/gif   
http://s.ytimg.com/yt/img/icn_loading_animated-vfl24663.gif
+ 4.045        1.698    413    1944    GET    200    image/jpeg   

+ 4.046        4.487    413    3915    GET    200    image/jpeg   
http://i4.ytimg.com/vi/Cgz5BELaYW0/default.jpg
+ 4.047        1.389    413    1899    GET    200    image/jpeg   
http://i4.ytimg.com/vi/sLbHicGdXvw/default.jpg
+ 4.047        1.207    413    2321    GET    200    image/jpeg   
http://i2.ytimg.com/vi/uYGcDOJCf7Q/default.jpg
+ 4.048        2.306    415    16508    GET    200    image/jpeg   

+ 4.049        1.200    413    3884    GET    200    image/jpeg   
http://i4.ytimg.com/vi/C-qrEGG9kSo/default.jpg
+ 4.049        1.615    413    3925    GET    200    image/jpeg   

+ 4.050        2.953    413    3847    GET    200    image/jpeg   

+ 4.050        1.524    413    3888    GET    200    image/jpeg   
http://i2.ytimg.com/vi/qzcayb9KEis/default.jpg
+ 4.051        1.283    413    4561    GET    200    image/jpeg   
http://i2.ytimg.com/vi/1lVS22y4uoU/default.jpg
+ 4.051        1.893    413    4512    GET    200    image/jpeg   
http://i4.ytimg.com/vi/GgDl-VwkswA/default.jpg
+ 4.051        0.887    413    2391    GET    200    image/jpeg   
http://i1.ytimg.com/vi/L9JG1NWSGIM/default.jpg
+ 4.100        4.106    600    11624    GET    200    application/x-javascript   

+ 4.110        0.665    417    7948    GET    200    image/png   
http://s.ytimg.com/yt/img/iyt_iconset-vfl94059.png
+ 8.214        0.025    0    0    GET    (Cache)    application/x-javascript   

+ 8.304        0.370    398    267    GET    200    image/gif   

+ 8.342        0.726    477    13947    GET    200    application/x-shockwave-flash   

+ 8.617        0.040    0    0    GET    (Cache)    application/x-javascript   

+ 8.693        0.281    599    262    GET    200    application/x-javascript   

+ 8.992        0.140    432    1279    GET    200    image/gif   
http://s.ytimg.com/yt/img/whats_new/icon_whatsnew_hd-vfl76116.gif
+ 8.995        0.566    599    262    GET    200    application/x-javascript   

+ 9.103        4.440    507    128666    GET    200    application/x-shockwave-flash   

        13.543    13290    308437    32 requests           
00:09:45.953        1.177    351    616    GET    200    image/x-icon   
http://s.ytimg.com/yt/favicon-vfl86270.ico
00:09:45.971    YouTube – Broadcast Yourself.                           
+ 0.000        0.994    460    215    GET    204    text/html   
http://csi.gstatic.com/csi?v=2&s=youtube&action=index&srt=1232&rt=ol.8453&e=900030&ad=n4061ad
+ 4.039        0.264    480    4306    GET    200    application/x-shockwave-flash   

+ 4.040        0.365    573    525    GET    200    application/xml   

+ 4.040        0.181    401    617    GET    200    text/xml   

+ 4.240        1.543    510    41041    GET    200    image/jpeg   

+ 4.422        0.508    636    2651    GET    200    text/plain   

+ 4.422        0.757    695    1611    GET    200    application/x-www-form-urlencoded   
http://www.youtube.com/get_video_info?video_id=A3bYmg9tYwA&el=adunit&ps=yva&width=300&height=225
+ 5.214        0.452    397    393    GET    200    text/xml; charset=UTF-8   

+ 5.707        0.192    485    3027    GET    200    image/jpeg   

+ 9.209        0.198    604    150    GET    200    image/gif   
;
+ 19.193        0.151    604    150    GET    200    image/gif   
;
+ 49.191        0.279    604    150    GET    200    image/gif   
;
+ 1:59.189        0.281    604    150    GET    200    image/gif   
;
+ 3:59.188        0.232    605    150    GET    200    image/gif   
;
        239.421    7658    55136    14 requests           

come si vede il risultato è decisamente più complesso ed articolato.

Diventa interessante notare che alle 32 + 14 GET request generate sono associati indirizzi URL diversi che fanno riferimento tanto ad oggetti statici (immagini o testo) quanto ad applicazioni eo configurazioniapplicazioni  XML.

Questo  è da considerarsi un comportamento generale. Una pagina web è composta da una serie di n elementi che provengono da x fonti differenti. Alcuni di questi elementi sono semplicemente statici o descrittivi (TXT, HTML, Molti formati Grafici) altri sono invece componenti attive che sono in grado di interagire col sistema chiamante (il browser ed il sistema operativo ospitante) e modificarlo in funzione delle esigenze specifiche della applicazione.

L’esempio più banale di questo comportamento sono i cookie, piccoli file di testo che contengono informazioni inerenti la sessione di navigazione dell’utente per permettere al web service chiamato (intendo con web service in generale una applicazione su internet) di tenere contro della transazione. Chiunque abbia fatto acquisti online ha avuto esperienza di cookie, se provate a vedere nel vostro pc o mac ne troverete molti.

Se faccio click sul pulsante accedi ottengo questa cosa simpatica:

00:00:00.000    Google                           
+ 0.000        0.398    1027    408    GET    302    Redirect to
http://www.google.it/ http://www.google.com/
+ 0.398        0.087    1045    3656    GET    200    text/html; charset=UTF-8   
http://www.google.it/
+ 0.571        0.087    880    136    GET    204    text/html; charset=UTF-8   
http://www.google.it/gen_204?atyp=i&ghp=fbg
        0.658    2952    4200    3 requests           
00:00:00.655    Google                           
+ 0.000        0.003    0    0    GET    (Cache)    text/javascript; charset=UTF-8   

+ 0.009        0.068    979    215    GET    204    text/html   
http://www.google.it/csi?v=3&s=webhp&action=&srt=571&tran=15&ei=7dEnSv7XOo2PsAa4xqHgBQ&e=17259,17315,18169,19772,20572&rt=prt.22,ol.67,xjs.111
+ 0.017        0.060    875    125    GET    204    text/html   
http://clients1.google.it/generate_204
        0.078    1854    340    3 requests           
00:09:11.986    Utube.com® – Universal Tube & Rollform Equipment                           
+ 0.000        1.060    573    4646    GET    200    text/html; charset=UTF-8   
http://www.utube.com/
+ 1.087        0.250    455    2404    GET    200    text/css   

+ 1.087        0.539    448    1243    GET    200    text/css   

+ 1.088        0.504    845    4858    GET    200    text/javascript; charset=utf-8   
http://www.google.com/jsapi
+ 1.140        0.843    451    4534    GET    200    application/x-javascript   

+ 1.141        0.889    440    5376    GET    200    application/x-javascript   
http://www.utube.com/__utm.js
+ 1.646        1.037    428    16256    GET    200    application/x-javascript; charset=UTF-8   
http://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js
+ 2.769        0.262    828    379    GET    200    image/gif   
http://www.utube.com/__utm.gif?utmwv=6.1&utmn=1488585013&utmsr=1280×800&utmsc=32-bit&utmul=en-us&utmje=1&utmjv=1.3&utmfl=10.0&utmcn=1&utmdt=Utube.com%AE%20-%20Universal%20Tube%20%26%20Rollform%20Equipment&utmhn=www.utube.com&utmr=-&utmp=/
+ 2.770        0.835    437    1007    GET    302    Redirect to
http://as.casalemedia.com/s?s=94367&u=utube.com&f=1&id=3769786688.260856&C=1 http://as.casalemedia.com/s?s=94367&u=utube.com&f=1&id=3769786688.260856
+ 3.630        0.403    500    1180    GET    200    text/javascript   
http://as.casalemedia.com/s?s=94367&u=utube.com&f=1&id=3769786688.260856&C=1
+ 4.054        0.950    509    4585    GET    200    *   
http://ad.103092804.com/st?ad_type=pop&ad_size=0x0&site=200962&section_code=KM-casale-hp-pop&banned_pop_types=28&pop_times=1&pop_frequency=86400
+ 5.095        0.441    457    439    GET    302    Redirect to
http://ad.103092804.com/imp?Z=0x0&y=28&S=KM-casale-hp-pop&i=200962&_salt=3766899443&B=10&r=1
+ 5.536        0.643    712    7021    GET    200    application/x-javascript   

+ 6.251        0.669    729    7013    GET    200    image/gif   

+ 6.255        3.437    737    35052    GET    200    image/jpeg   

+ 6.255        0.850    737    3458    GET    200    image/gif   

+ 6.256        0.784    733    1219    GET    200    image/gif   

+ 6.256        5.209    740    1511    GET    200    image/png   

+ 6.256        1.337    738    4105    GET    200    image/jpeg   

+ 6.257        5.309    744    3733    GET    200    image/jpeg   

+ 6.257        1.100    740    4815    GET    200    image/jpeg   

+ 6.258        7.139    741    3920    GET    200    image/jpeg   

+ 6.258        4.943    741    4909    GET    200    image/jpeg   

+ 6.258        4.863    735    2804    GET    200    image/png   

+ 6.258        13.232    747    4528    GET    200    image/jpeg   

+ 6.259        3.893    740    4649    GET    200    image/jpeg   

+ 6.259        6.252    745    4702    GET    200    image/jpeg   

+ 6.259        4.408    741    3750    GET    200    image/jpeg   

+ 6.260        4.978    738    5669    GET    200    image/jpeg   

+ 6.263        1.088    1048    596    GET    200    text/html; charset=UTF-8   

+ 6.264        5.701    740    3731    GET    200    image/jpeg   

+ 6.268        1.253    1089    632    GET    200    text/html; charset=UTF-8   

+ 6.270        5.372    744    405    GET    200    image/gif   

+ 6.271        8.624    741    3688    GET    200    image/jpeg   

+ 6.272        6.600    742    5378    GET    200    image/jpeg   

+ 6.272        7.889    744    4183    GET    200    image/jpeg   

+ 6.272        6.959    740    5390    GET    200    image/jpeg   

+ 6.273        7.473    748    5017    GET    200    image/jpeg   

+ 6.273        7.958    742    4208    GET    200    image/jpeg   

+ 6.274        8.888    739    6201    GET    200    image/jpeg   

+ 6.274        9.546    741    4659    GET    200    image/jpeg   

+ 6.274        8.621    739    3006    GET    200    image/jpeg   

+ 6.275        8.954    747    3940    GET    200    image/jpeg   

+ 6.275        9.617    740    4471    GET    200    image/jpeg   

+ 6.276        12.854    743    6812    GET    200    image/jpeg   

+ 6.276        12.266    739    6425    GET    200    image/jpeg   

+ 6.277        9.795    734    6194    GET    200    image/jpeg   

+ 6.277        9.883    735    5718    GET    200    image/jpeg   

+ 6.277        12.094    744    4671    GET    200    image/jpeg   

+ 6.278        17.363    742    26794    GET    200    image/jpeg   

+ 6.278        3.577    408    20437    GET    200    text/javascript   
http://cetrk.com/pages/scripts/0002/3108.js
+ 6.279        1.315    1034    594    GET    200    text/html; charset=UTF-8   

+ 6.285        1.547    1050    595    GET    200    text/html; charset=UTF-8   

+ 6.292        1.607    1048    596    GET    200    text/html; charset=UTF-8   

+ 6.297        1.759    943    880    GET    200    text/html; charset=UTF-8   

+ 6.302        1.901    1064    609    GET    200    text/html; charset=UTF-8   

+ 6.307        1.899    1091    632    GET    200    text/html; charset=UTF-8   

+ 6.312        2.951    1048    596    GET    200    text/html; charset=UTF-8   

+ 6.313        10.468    736    508    GET    200    image/gif   

+ 6.396        19.174    810    129360    GET    200    application/x-shockwave-flash   

+ 7.432        4.385    771    2368    GET    200    text/html   

+ 7.561        1.520    849    4789    GET    200    *   
http://ad.103092804.com/st?ad_type=iframe&ad_size=468×60&site=200962&section_code=INSERT_SECTION_CODE_HERE
+ 7.621        2.429    747    3996    GET    200    text/html; charset=UTF-8   

+ 7.863        4.276    774    2340    GET    200    text/html   

+ 7.930        2.949    771    2376    GET    200    text/html   

+ 8.164        5.219    487    915    GET    200    application/x-javascript   

+ 8.263        2.154    802    4747    GET    200    *   

+ 8.268        1.241    852    4792    GET    200    *   
http://ad.103092804.com/st?ad_type=iframe&ad_size=300×250&site=200962&section_code=INSERT_SECTION_CODE_HERE
+ 9.117        0.476    775    672    GET    302    Redirect to
http://ad.103092804.com/imp?Z=468×60&S=INSERT_SECTION_CODE_HERE&i=200962&_salt=3730536574&B=10&u=http%3A%2F%2Fwww.utube.com%2Fjsiframe.php%3FcURL%3Dhttp%253A%252F%252Fad.103092804.com%252Fst%253Fad_type%253Diframe%2526ad_size%253D468x60%2526site%253D200962%2526section_code%253DINSERT_SECTION_CODE_HERE%26w%3D468%26h%3D60&r=0
+ 9.296        1.036    771    2396    GET    200    text/html   

+ 9.554        0.489    779    675    GET    302    Redirect to
http://ad.103092804.com/imp?Z=300×250&S=INSERT_SECTION_CODE_HERE&i=200962&_salt=1320192736&B=10&u=http%3A%2F%2Fwww.utube.com%2Fjsiframe.php%3FcURL%3Dhttp%253A%252F%252Fad.103092804.com%252Fst%253Fad_type%253Diframe%2526ad_size%253D300x250%2526site%253D200962%2526section_code%253DINSERT_SECTION_CODE_HERE%26w%3D300%26h%3D250&r=0
+ 9.594        0.776    1030    1489    GET    200    application/x-javascript   

+ 9.910        0.084    0    0    GET    (Cache)    text/javascript   
http://www.google-analytics.com/ga.js
+ 10.035        0.897    823    328    GET    200    image/gif   
http://www.google-analytics.com/__utm.gif?utmwv=4.3&utmn=2077650753&utmhn=www.utube.com&utmcs=utf-8&utmsr=1280×800&utmsc=32-bit&utmul=en-us&utmje=1&utmfl=10.0%20r22&utmdt=Utube.com%C2%AE%20-%20Universal%20Tube%20%26%20Rollform%20Equipment&utmhid=1528209297&utmr=-&utmp=/&utmac=UA-7831773-1&utmcc=__utma%3D197241067.1488585013.1244124185.1244124185.1244124185.1%3B%2B__utmz%3D197241067.1244124185.1.1.utmccn%3D(direct)%7Cutmcsr%3D(direct)%7Cutmcmd%3D(none)%3B
+ 10.044        10.202    1034    1388    GET    200    application/x-javascript   

+ 10.135        7.355    484    1500    GET    200    image/jpeg   

+ 10.136        7.005    488    681    GET    200    image/gif   

+ 10.276        12.999    476    723    GET    200    image/png   

+ 10.337        2.104    463    390    GET    200    application/x-javascript   

+ 10.385        1.977    530    3679    GET    200    image/gif   

+ 10.386        2.055    516    410    GET    302    Redirect to
http://ad.yieldmanager.com/pixel?id=57011&t=2&cmxid=2108.111095XMC
+ 10.498        0.640    710    617    GET    302    Redirect to

+ 10.561        8.393    752    1812    GET    200    image/gif   

+ 10.562        8.671    753    1808    GET    200    image/gif   

+ 11.139        4.430    1016    2093    GET    200    application/x-javascript   

+ 12.446        7.276    831    398    GET    200    image/gif   
http://ad.yieldmanager.com/pixel?id=57011&t=2&cmxid=2108.111095XMC
+ 12.473        0.303    497    2984    GET    200    application/x-shockwave-flash   

+ 12.487        0.568    513    3085    GET    200    application/x-shockwave-flash   

+ 12.502        0.642    496    2987    GET    200    application/x-shockwave-flash   

+ 12.516        20.999    0    0    GET    (Aborted)    *   

+ 13.424        0.810    969    859    GET    200    text/html; charset=UTF-8   

+ 14.258        1.465    414    505    GET    200    text/html   
http://i.azjmp.com/2Wtx7?azauxurl=45657
+ 14.266        5.874    464    55720    GET    200    application/x-shockwave-flash   

+ 15.575        6.385    944    30716    GET    200    application/x-shockwave-flash   

+ 16.650        0.401    887    295    GET    200    image/gif   

+ 20.266        1.006    541    9980    GET    200    image/gif   

+ 21.967        0.002    0    0    GET    (Cache)    application/x-shockwave-flash   

        33.516    68371    571204    97 requests           
00:09:36.322    YouTube – Broadcast Yourself.                           
+ 0.000        3.335    575    14422    GET    200    text/html; charset=utf-8   
http://www.youtube.com/
+ 1.246        1.078    418    12974    GET    200    text/css   

+ 1.246        0.772    416    1112    GET    200    application/x-javascript   
http://s.ytimg.com/yt/js/csi_squished-vfl95971.js
+ 1.246        1.077    404    482    GET    404    text/html   

+ 2.349        0.987    423    29997    GET    200    application/x-javascript   

+ 3.374        0.463    411    14621    GET    200    application/x-javascript   

+ 3.862        0.163    409    5451    GET    200    text/css   
http://s.ytimg.com/yt/css/iyt-vfl97456.css
+ 4.035        0.465    413    10445    GET    200    image/png   

+ 4.044        0.450    408    337    GET    200    image/gif   
http://s.ytimg.com/yt/img/pixel-vfl73.gif
+ 4.045        0.731    426    746    GET    200    image/gif   
http://s.ytimg.com/yt/img/icn_loading_animated-vfl24663.gif
+ 4.045        1.698    413    1944    GET    200    image/jpeg   

+ 4.046        4.487    413    3915    GET    200    image/jpeg   
http://i4.ytimg.com/vi/Cgz5BELaYW0/default.jpg
+ 4.047        1.389    413    1899    GET    200    image/jpeg   
http://i4.ytimg.com/vi/sLbHicGdXvw/default.jpg
+ 4.047        1.207    413    2321    GET    200    image/jpeg   
http://i2.ytimg.com/vi/uYGcDOJCf7Q/default.jpg
+ 4.048        2.306    415    16508    GET    200    image/jpeg   

+ 4.049        1.200    413    3884    GET    200    image/jpeg   
http://i4.ytimg.com/vi/C-qrEGG9kSo/default.jpg
+ 4.049        1.615    413    3925    GET    200    image/jpeg   

+ 4.050        2.953    413    3847    GET    200    image/jpeg   

+ 4.050        1.524    413    3888    GET    200    image/jpeg   
http://i2.ytimg.com/vi/qzcayb9KEis/default.jpg
+ 4.051        1.283    413    4561    GET    200    image/jpeg   
http://i2.ytimg.com/vi/1lVS22y4uoU/default.jpg
+ 4.051        1.893    413    4512    GET    200    image/jpeg   
http://i4.ytimg.com/vi/GgDl-VwkswA/default.jpg
+ 4.051        0.887    413    2391    GET    200    image/jpeg   
http://i1.ytimg.com/vi/L9JG1NWSGIM/default.jpg
+ 4.100        4.106    600    11624    GET    200    application/x-javascript   

+ 4.110        0.665    417    7948    GET    200    image/png   
http://s.ytimg.com/yt/img/iyt_iconset-vfl94059.png
+ 8.214        0.025    0    0    GET    (Cache)    application/x-javascript   

+ 8.304        0.370    398    267    GET    200    image/gif   

+ 8.342        0.726    477    13947    GET    200    application/x-shockwave-flash   

+ 8.617        0.040    0    0    GET    (Cache)    application/x-javascript   

+ 8.693        0.281    599    262    GET    200    application/x-javascript   

+ 8.992        0.140    432    1279    GET    200    image/gif   
http://s.ytimg.com/yt/img/whats_new/icon_whatsnew_hd-vfl76116.gif
+ 8.995        0.566    599    262    GET    200    application/x-javascript   

+ 9.103        4.440    507    128666    GET    200    application/x-shockwave-flash   

        13.543    13290    308437    32 requests           
00:09:45.953        1.177    351    616    GET    200    image/x-icon   
http://s.ytimg.com/yt/favicon-vfl86270.ico
00:09:45.971    YouTube – Broadcast Yourself.                           
+ 0.000        0.994    460    215    GET    204    text/html   
http://csi.gstatic.com/csi?v=2&s=youtube&action=index&srt=1232&rt=ol.8453&e=900030&ad=n4061ad
+ 4.039        0.264    480    4306    GET    200    application/x-shockwave-flash   

+ 4.040        0.365    573    525    GET    200    application/xml   

+ 4.040        0.181    401    617    GET    200    text/xml   

+ 4.240        1.543    510    41041    GET    200    image/jpeg   

+ 4.422        0.508    636    2651    GET    200    text/plain   

+ 4.422        0.757    695    1611    GET    200    application/x-www-form-urlencoded   
http://www.youtube.com/get_video_info?video_id=A3bYmg9tYwA&el=adunit&ps=yva&width=300&height=225
+ 5.214        0.452    397    393    GET    200    text/xml; charset=UTF-8   

+ 5.707        0.192    485    3027    GET    200    image/jpeg   

+ 9.209        0.198    604    150    GET    200    image/gif   
;
+ 19.193        0.151    604    150    GET    200    image/gif   
;
+ 49.191        0.279    604    150    GET    200    image/gif   
;
+ 1:59.189        0.281    604    150    GET    200    image/gif   
;
+ 3:59.188        0.232    605    150    GET    200    image/gif   
;
        239.421    7658    55136    14 requests           
00:26:39.551    YouTube – Broadcast Yourself.                           
+ 0.000        0.272    794    533    GET    303    Redirect to
https://www.google.com/accounts/ServiceLogin?service=youtube&hl=it_IT&passive=true&ltmpl=sso&uilel=3&continue=http%3A//www.youtube.com/signup%3Fhl%3Dit_IT%26warned%3D%26nomobiletemp%3D1%26next%3D/
+ 0.272        0.317    1546    1512    GET    200    text/html; charset=UTF-8   
https://www.google.com/accounts/ServiceLogin?service=youtube&hl=it_IT&passive=true&ltmpl=sso&uilel=3&continue=http%3A//www.youtube.com/signup%3Fhl%3Dit_IT%26warned%3D%26nomobiletemp%3D1%26next%3D/
        0.590    2340    2045    2 requests           
00:26:40.346    YouTube – YouTube di Aierano                           
+ 0.000        0.297    1029    773    GET    303    Redirect to
http://www.youtube.com/ http://www.youtube.com/signup?hl=it_IT&warned=&nomobiletemp=1&next=/&pli=1&auth=DQAAAJoAAAB0xzjZw765EV31gBzhIK7thG2PQaPHCfA55gcULyo6UF75yoOzFq59OxUj75SpSvE0Tfv6q44HmyO2S2d5DOs32cGqEbr0SgOuHlOfKH6Y__gGoOgIg5Tz7-GMtY6XqV9i2Y1s_kyDrYxh2v0DiLWXaa5p65GiTo6wkr_zrV7TmxgytsN5g2YBwa-ytzPglTmC3RX39aPh7RtJMpFuyOCF
+ 0.347        2.341    973    14384    GET    200    text/html; charset=utf-8   
http://www.youtube.com/
+ 0.766        0.008    0    0    GET    (Cache)    text/css   

+ 0.775        0.001    0    0    GET    (Cache)    application/x-javascript   
http://s.ytimg.com/yt/js/csi_squished-vfl95971.js
+ 0.777        0.001    0    0    GET    (Cache)    application/x-javascript   

+ 0.780        0.001    0    0    GET    (Cache)    application/x-javascript   

+ 0.782        0.003    0    0    GET    (Cache)    text/css   
http://s.ytimg.com/yt/css/iyt-vfl97456.css
+ 0.965        0.013    0    0    GET    (Cache)    image/png   

+ 0.996        0.003    0    0    GET    (Cache)    image/png   
http://s.ytimg.com/yt/img/iyt_iconset-vfl94059.png
+ 1.227        0.775    660    11639    GET    200    application/x-javascript   

+ 2.022        0.001    0    0    GET    (Cache)    application/x-javascript   

+ 2.100        0.003    0    0    GET    (Cache)    application/x-shockwave-flash   

+ 2.265        0.001    0    0    GET    (Cache)    application/x-javascript   

+ 2.458        0.002    0    0    GET    (Cache)    application/x-shockwave-flash   

+ 2.565        0.001    0    0    GET    (Cache)    application/x-shockwave-flash   

+ 2.568        0.001    0    0    GET    (Cache)    application/xml   

+ 2.571        0.001    0    0    GET    (Cache)    text/plain   

+ 2.592        0.329    1182    1610    GET    200    application/x-www-form-urlencoded   
http://www.youtube.com/get_video_info?video_id=A3bYmg9tYwA&el=adunit&ps=yva&width=300&height=225
+ 2.593        0.001    0    0    GET    (Cache)    text/xml   

+ 2.599        0.002    0    0    GET    (Cache)    image/jpeg   

+ 2.723        0.163    661    262    GET    200    application/x-javascript   

+ 2.918        0.174    659    262    GET    200    application/x-javascript   

+ 2.976        0.000    0    0    GET    (Cache)    text/xml; charset=UTF-8   

+ 3.009        0.001    0    0    GET    (Cache)    image/jpeg   

        3.092    5164    28930    24 requests           
00:26:43.543    YouTube – YouTube di Aierano                           
+ 0.000        0.158    457    215    GET    204    text/html   
http://csi.gstatic.com/csi?v=2&s=youtube&action=iyt&srt=790&rt=ol.2409&e=900030&ad=n4061ad
+ 9.239        0.132    604    150    GET    200    image/gif   
;
+ 19.236        0.151    604    150    GET    200    image/gif   
;
+ 49.246        0.138    604    150    GET    200    image/gif   
;
+ 1:59.244        0.177    604    150    GET    200    image/gif   
;
        119.421    2873    815    5 requests
           

 

La maggior parte delle chiamate invoca del codice Java, si noti che non ho dovuto immettere fisicamente username e password in quanto un cookie lo ha fatto per me.

La situazione che si crea quando si effettua una richiesta di browsing internet è quindi la seguente:

  • un utente richiede una pagina
  • il sistema converte la richiesta in una GET
  • il server che riceve la richiesta scatena una serie di transazioni che possono comportare:
    • il download ed esecuzione di codice,
    • il reindirizzamento ad altro server
    • l’uso di protocolli diversi dall’HTTP come Java o XML e via dicendo
    • l’interazione col computer con scambio di informazioni, ad esempio lettura di dati del computer
    • l’interazione col computer con la alterazione di dati, come ad esempio la scrittura di file in diverse aree.
  • Il client esegue il codice passato dal server e quindi a sua volta può effettuare transazioni che sono dipendenti dal suo status.

Risulta chiaro quindi che la navigazione Web non si riduce alla semplice visita di una pagina statica su di un server con hyperlink ma risulta essere la composizione di molte più cose come esemplifica la figura sotto.

L’origine di queste sorgenti può risiedere su macchine geograficamente molto distanti, e la attribuzione delle origini delle varie fonti può essere determinata dallo scambio di informazioni tra il richiedente (il browser) ed il server cui fa riferimento la prima URL richiesta.

Negli esempi precedenti, ad esempio, il reindirizzamento verso www.google.it è legato al fatto che il mio browser ha comunicato al server il fatto che il mio preferred language è l’italiano.

A quali rischi ci si espone

Abbiamo capito che il browsing è una attività complessa e dinamica, cerchiamo di capire quali sono i rischi a cui si va incontro durante questa attività.

le sorgenti

La prima osservazione di security che viene in mente è legata al fatto che le sorgenti che compongono la pagina sono molteplici. Pur ammettendo che ci si possa fidare del primo indirizzamento (quello che tendiamo a chiamare” il sito web”), risulta evidente che magiori sono le sorgenti interessate alla transazione maggiore è il rischio legato alla attività di browsing. Il “gestore” della pagina che visitiamo dovrebbe essere in grado di garantire  la sicurezza di tutte le sorgenti in oggetto.

Per altro va tenuto presente che  parte delle transazioni generate non dipende dal “server” ma sono generate dal client attraverso, ad esempio, helper object (per capirci, le barre tipo quelle di yahoo egoogle ad esempio).

Il fatto che il gestore possa garantire tutte le sorgenti è plausibile solo nel caso che le gestisca “direttamente”, qualsiasi sorgente, concedetemi il termine improprio ma efficace, in sub-appalto risulta, per forza di cose, potenzialmente rischiosa in quanto non sotto il diretto controllo del gestore della pagina.

Questo rischio comprende la natura dei contenuti della pagina stessa, visibili o invisibili che siano, ed il tipo di attività e comunicazione connessi al browsing.

Il DNS

Un altro problema è legato al fatto che un elevato numero di richieste comporta un elevato numero di richieste ai DNS per ottenere risposta. Il DNS diventa quindi un elemento di rischio in quanto deve riolvere oggetti “on the fly” utilizzando sempre piu spesso query iterative per ricercare la “zona” cui si fa rifemento per l’oggetto medesimo. senza entrare nel dettaglio del funzionamento dei DNS, fuori da questo breve inserto, risulta evidente che se il DNS viene alterato potrebbe rispondere ad alcune richieste in maniera scorretta (pensate al DNS Poisonong) .

Gli Oggetti

Provenendo da fonti disparate (e quindi di per se ad alto rischio) gli oggetti che compongono la pagina possono essere a loro volta  oggetti di securizzazione. Il caso piu banale è la presenza di un oggetto come una gif animata o un eseguibile contente un virus  , ma esistono centinaia di combinazioni potenzialmente pericolose.

Le Transazioni

Assunto come assodato che la attività di browsing non comporta una semplice interpretazione statica di un oggetto definito da un Meta-linguaggio come era in origine l’HTTP, ma una serie complessa di interazioni e transazioni lato client e lato server(s) viene lecito chiedersi, in termini di sicurezza, quante e quali di queste transazioni siano pericolose. Il problema è in realtà molto più complesso di quello che sembra:

  1. quali sono le transazioni lecite?
  2. quali sono le modifiche che io ritengo sicure sul mio sistema a fronte delle mie policy di gestione di sicurezza?
  3. quali sono i minimi diritti amministrativi che devo concedere alla macchina per poter eseguire le transazioni che io considero lecite?

Il Trasferimento di informazioni

parte, se volete, delle transazioni ma più generalmente accettato come punto a se stante, vi è poi il problema del tipo di datiinformazioni che considero lecito in ingresso ed uscita.

Questo argomento ha inerenze tanto amministrative (produttività, etica interna aziendale) sia legali, e viene generalmente indicato come AUP(Accettable User Policy).

Possiamo dividere il problema in diverse aree:

Compliance sui contenuti: si tratta di definire quali contenuti siano leciti o meno in relazione al browsing. La liceità è una conseguenza diretta di 2 fattori:

  1. la compliancy inerente i contenuti considerati inadattiindecorosi
  2. il potenziale di rischio di infezione  legato al browsing di siti

per quello che concerne il primo fattore la soluzione tipicamente in uso è la categorizzazione dei siti in funzione del loro contenuto comunicativo. Vengono cosi identificati i siti contenenti contenuti pornografici, quelli che parlano di viaggi, quelli medici, quelli giornalistici etc etc e scartati quelli non conformi alle regole aziendali.

analogamente si fa una valutazione sul secondo fattore. Purtroppo è luogo comune fare considerazioni ti tipo errato sul livello di pericolosità di un sito in funzione della sua categorizzazione contenutistica, ad esempio statisticamente  i siti porno sono più sicuri di quelli delle piccole amministrazioni pubbliche, anche se luogo comune vuole che sia vero il contrario.

Vi sono due considerazioni da fare sulla categorizzazione:

in primo luogo i limiti intrinseci della categorizzazione sono legati al fatto che, oggi come oggi, gran parte dei contenuti sono dinamici e quindi è virtualmente non prevedibile a priori il reale contenuto di una pagina;

vi è poi un problema di categorizzazione per tutti quei siti che sono in qualche maniera non accessibili, ad esempio molti siti a pagamento o a registrazione e cosi via.

Compliancy sui downloadupload

In questo caso si tratta di decidere quali oggetti sono consentiti in termini di tipo e dimensione. Le considerazioni legate a questo tipo traggono origine sia da problematiche di sicurezza in senso stretto (rischio di trasferimento di dati sensibili o rischio di download di agenti infettivi), che da considerazioni di utilizzo delle risorse in uso (banda passante utilizzata, carico di lavoro di processori ed unità coinvolte nei trasferimenti di file).

Del resto se il download di grossi oggetti comportasse il collasso della struttura di navigazione il risultato non sarebbe molto diverso da un Denial of Service (DoS o Ddos).

Compliancy su protocolli e servizi

La navigazione web comporta, abbiamo visto prima gli esempi, lo scatenarsi di azioni diverse e l’uso di protocolli che passano via HTTP, applicazioni e servizi molteplici. In una ottica di sicurezza diventa importante definire quali di queste istanze sono lecite se associate al browsing.

Il fatto che un protocollo passi via HTTP significa semplicemente che l’HTTP diventa una sorta di VPN che consente il passaggio di cose altrimenti bloccate normalmente.

Parlando di protocolli inerenti il web browsing va dedicato un occhio particolare al protocollo HTTPS  questo, infatti, consente il trasferimento di quanto visto sopra in una VPN criptata. Il limite del protocollo HTTPS, in questo senso, è che non è dipendente dai contenuti trasferiti ma si limita a trasferire i contenuti, quali che essi siano, in maniera “sicura”. consideriamo ancora una volta il problema di security citato al primo punto ed inerente al rischio associato alla molteplicità delle sorgenti, in questa ottica HTTPS non offre nessun layer di sicurezza ulteriore, al contrario supponendo che una delle sorgenti sia “malevola” HTTPS ne consentirebbe il trasferimento fino all’utente finale senza che sia possibile fare una operazione di analisi se non a posteriori.

Nei prossimi Post andremo un po’ più nel dettaglio di quali sono i rischi pratici, perché ci sono questi rischi e come è fatta internet.

Ci occuperemo quindi di come gestire questi rischi, minimizzandoli, utilizzando meccanismi di mitigazione del danno o di trasferimento del rischio, insomma i classici strumenti della security.

 

Ogni feedback è ben accetto

ciao

A