Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Analisi e Contromisure di tecniche di Sql Injection
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Analisi e Contromisure di tecniche di Sql Injection Relatore: Prof. Sonia Bergamaschi Candidato: Jacopo Canese Nobili Spinetti Correlatore: Ing. Francesco Guerra
2
Obiettivi: Attività sperimentale:
- Analisi e classificazione delle tecniche di Sql Injection. - Studio delle possibili contromisure. Approfondimento delle injection in linguaggio Transact-Sql e delle misure di sicurezza in linguaggio ASP.NET. Attività sperimentale: - Verifica della sicurezza del sito Web della Facoltà. - Sperimentazione delle tecniche su di un'applicazione Web di prova. - Implementazione di diverse misure di sicurezza.
3
Cosa sono le Sql Injection:
- Riguardano la sicurezza delle applicazioni Web Database. - Consistono nell'inserimento ed esecuzione di codice Sql non previsto all'interno di una pagina web dinamica. - Sfruttano caratteristiche proprie del linguaggio Sql come le regole sintattiche e la loro flessibilità. - Per la loro esecuzione è sufficiente l'utilizzo di un qualunque browser web (sfruttano normali richieste HTTP).
4
Un semplice esempio: - Query sottoposta al Database:
SELECT campoStr FROM tabella WHERE chiave = 'stringa'; - stringa= X’ OR ‘X’=‘X SELECT campoStr FROM tabella WHERE chiave = 'X’ OR ‘X’=‘X'; - Il significato della query è stato alterato.
5
Classificazione delle tecniche:
- Tecniche di SQL injection di base Principi di base con i quali vengono realizzate tutte le altre tipologie di injection. - Tecniche di SQL injection avanzate Injection più complesse, che riguardano operazioni sul database. - Tecniche di investigazione di base Osservazioni preliminari del sistema da attaccare. - Tecniche di investigazione avanzate Usate per ottenere informazioni contenute nel database. - Tecniche di Blind SQL injection Injection “alla cieca”, in assenza di messaggi d'errore.
6
Contromisure: - Validazione dell'input
If (not Regex.IsMatch(numerotess.toString(),"^\d{5}$")) then %>Errore numero di tessera.<BR><% else... 5 caratteri di tipo numerico - Esecuzione di query all'interno di stored procedure strSQL = "sp_selectStudente" cmdSP = New SqlCommand(strSQL, cn) CREATE PROCEDURE sp_selectStudente @numtess sysname AS select * from studenti where and GO
7
Contromisure: - Accesso ai dati effettuato da un utente con bassi privilegi - Occultamento di informazioni utili all’hacker
8
Attività sperimentale:
Tentativi condotti sul sito della facoltà - Browser web impiegato: Torpark 1.5 - Pagine su cui sono state effettuate le injection:
9
Attività sperimentale:
Risultati delle injection sul sito della facoltà - Non è stato ottenuto alcun risultato significativo. - Il sito web si è rivelato efficacemente protetto da injection. Misure di sicurezza intervenute: - Occultamento dei messaggi d’errore. - Permessi di accesso in sola lettura. - Neutralizzazione del carattere apice negli input.
10
Conclusioni: Sviluppi futuri:
- Realizzata una classificazione completa e flessibile dei principi di funzionamento delle Sql Injection. - Analizzate le contromisure necessarie per rendere un’applicazione web sicura. - Verificata l'effettiva sicurezza del sito web della facoltà da attacchi condotti con Sql Injection. Sviluppi futuri: - Analisi e sperimentazione delle tecniche di Sql Injection in DBMS diversi da Sql Server (ad esempio Oracle). - Sviluppo delle misure di sicurezza con tecnologie diverse da Microsoft .NET.
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.