Concetti base di sicurezza applicativa web. Massimo Carnevali Responsabile Esercizio dei Sistemi Informativi Comune di Bologna



Documenti analoghi
Corso di Sicurezza Informatica. Sicurezza del software. Ing. Gianluca Caminiti

Università di Ferrara Corso di Laurea Magistrale in Ingegneria Informatica e dell'automazione Ing. Massimo Carnevali Anno Accademico

PHP e MySQL. Scripting server-side per accesso a DB MySQL

Sicurezza Informatica: Tecniche di SQL INJECTION

Cyber Security Applicata. Massimo Carnevali

PHP ESSENTIALS #10. By WI400 Team. : database e sql

GRUPPO DOMANDE N. 1. Quesito n. 1 Descrivere sinteticamente le finalità e le modalità d uso dei seguenti comandi UNIX / LINUX: LS, KILL, PS.

Security by design. Come la gestione di un progetto può minimizzare i rischi per il business. Alessio L.R. Pennasilico - apennasilico@clusit.

Indice register_globals escaping

--- PREMESSE INTRODUZIONE. .:luxx:.

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

Elementi di Sicurezza e Privatezza Lezione 15 Web Security - Code Injection (1)

SQL Injection The dark side of webapplication *** Siamo davvero certi che chi gestisce i nostri dati sensibili lo faccia in modo sicuro?

BASI DI DATI Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE

Approfondimenti. Il controllo di SQL Injection nelle pagine ASP e ASP.NET. U.A. 5 - Database in rete con le pagine ASP e ASP.

Navigazione automatica e rilevazione di errori in applicazioni web

GESTIONE DI MDB in WEB

Analisi di vulnerabilità e prevenzione di attacchi SQL injection e Cross-site Scripting

Dott.ssa Adriana Pietramala. Dott.ssa Maria Vittoria Avolio

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet

Laboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali

MySQL Database Management System

[1] Cross Site Scripting [2] Remote / Local File Inclusion [3] SQL Injection

Data Base in Internet

DBMS (Data Base Management System)

Architettura a tre livelli (1)

ESAME DI STATO DI ISTITUTO TECNICO 2014/15

Eprogram ITIS V anno Unità 6 - PHP e MySQL

Esempi pratici, risultati e contromisure consigliate. Massimo Biagiotti

Visualizzazione ordini in MyShopDB

Laboratorio di Basi di dati

Attacchi alle applicazioni web: SQL injection e Cross-site scripting (XSS)

JDBC per l accesso Java a DB. Tito Flagella tito@link.it

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza. Roberto Ugolini roberto.ugolini@postecom.it

Accesso Web a Data Base


2104 volume III Programmazione

14 Marzo 2013 Security Summit Milano

La tecnologia ASP.NET e i database

RELAZIONE RELATIVA ALLA GESTIONE DEL SITO DI E-COMMERCE

Data la seguente tabella :

Una metodologia di progettazione di applicazioni web centrate sui dati

Motore di ricerca multi-dominio basato sull'orchestrazione di servizi di ricerca esistenti

Anno 2013 Informatica ABACUS

Procedura di login e sessione

Linguaggi di Programmazione per il Web Parte 9

Ministerial NEtwoRk for Valorising Activities in digitisation. Museo & Web CMS Una piattaforma open source per la gestione di siti web accessibili

Il linguaggio SQL: query innestate

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas

SOLUZIONE TRACCIA D INFORMATICA ISTITUTO TECNICO INDUSTRIALE

INDICE: Sorgente della prima pagina html PAG 2. Sorgente della seconda pagina html PAG 3. Sorgente della terza pagina html PAG 4

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN

CONDIVIDERE IN RETE SWC701

SQL INJECTION. Details and Prevention. Programmazione Sicura. Giuseppe Pietravalle. Giuseppe Santaniello

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

vulnerabilità del software

Traccia. Analisi di massima

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

Rischi e vulnerabilità nelle applicazioni aziendali

Dalla versione 7 alla 8

Esercitazione 8. Basi di dati e web

$whois. Introduzione Attacco a una webapp Attacco a un sistema Conclusioni. voidsec@voidsec.com

Tipologie di Vulnerabilità PARTE I

SurfCop. Informazioni sul prodotto

PHP e Structured Query Language

Linee di evoluzione dei Database

Personalizzazione Stampe

Lavorare con MySQL Parte Seconda.

PROGETTAZIONE DI UN SITO WEB

Corso di Web Programming

Sincronizzazione degli utenti. Archiviazione di singole caselle di posta

Indice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base Variabili, operatori e commenti Array...

Black Box Testing Workshop

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

Esercitazione PAM. (Php Apache MySQL)

Introduzione al corso

Introduzione a phpmyadmin

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

Web Programming Specifiche dei progetti

Domenico Ercolani Come gestire la sicurezza delle applicazioni web

Il Web-Service SDMX dell ISTAT

Presentazione Data Base

GERARCHIE RICORSIVE - SQL SERVER 2008

DBMS e Linguaggi di programmazione nell'era di Internet

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

Introduzione alla Programmazione

bool mysql_select_db([string database_name [,resource link_identifier]]) Connessione ad un server MySQL vuole conettere

Indice generale. Parte I Le nozioni di base Introduzione...xiii. Presentazione Capitolo 1 Un po di teoria...11

Guida a PHP. Primi esempi

ESEMPI DI FORM (da

Vulnerabilità informatiche (semplici)..

Programmazione Web. Laboratorio 4: PHP e MySQL

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

User Tools: DataBase Manager

(UN)SECURITY GUIDELINES. Best practice e linee guida per uno sviluppo sicuro e responsabile

Transcript:

Concetti base di sicurezza applicativa web Massimo Carnevali Responsabile Esercizio dei Sistemi Informativi Comune di Bologna

Agenda Concetti base Esempio reale (SQL code injection) Come cambia lo scenario della sicurezza Sviluppare applicazioni sicure Acquistare applicazioni sicure Pagina 2

Concetti base Servizi web esposti al mondo Applicazioni custom complesse Struttura a tre livelli (web, application, DB) SSL non aiuta, anzi! Falso senso di sicurezza Pagina 3

Errori più comuni Fidarsi dell'input dell'utente Caratteri speciali non filtrati Output HTML non filtrato Eccesso permessi alle applicazioni Commenti o versioni obsolete Consentire il listing delle directory Non gestire errori Fidarsi Pagina 4

Esempio reale SQL code injection Pagina 5

Esempio reale SQL code injection Pagina 6

Esempio reale SQL code injection <form action='login.php' method='post'> Username: <input type='text' name='user' /> Password: <input type='password' name='pwd' /> <input type='submit' value='login' /> </form> Pagina 7

Esempio reale SQL code injection <?php $query = "SELECT * FROM users WHERE user='".$_post['user']."' AND pwd='". $_POST['pwd']."'"; $sql = mysql_query($query,$db); if(mysql_affected_rows($sql)>0) { // Consenti l'accesso }?> Pagina 8

Esempio reale SQL code injection /login.php?user=pippo&pwd=pluto "SELECT * FROM users WHERE user='". $_POST['user']."' AND pwd='". $_POST['pwd']."'" select * from users where user= 'pippo'and pwd='pluto' Pagina 9

Esempio reale SQL code injection /login.php?user=' or 1=1; -- &pwd= "SELECT * FROM users WHERE user='". $_POST['user']."' AND pwd='". $_POST['pwd']."'" select * from users where user='' or 1=1; --'and pwd='' Pagina 10

Esempio reale SQL code injection /login.php?user='; drop table users; -- &pwd= "SELECT * FROM users WHERE user='". $_POST['user']."' AND pwd='". $_POST['pwd']."'" select * from users where user=''; drop table users; --'and pwd='' Pagina 11

Esempio reale SQL code injection http://xkcd.com/327/ Pagina 12

Lo scenario della sicurezza Non esistono tecniche di audit automatico veramente affidabili Analisi delle variazioni delle baseline Analisi del codice sorgente Analisi greybox Analisi blackbox Ambienti di test separati interni Pagina 13

Sviluppare applicazioni sicure Pagina 14

Sviluppare applicazioni sicure Identificare i security requirement Liste di controllo Linee guida Generare abuse case Generare security patterns Simulare modelli di attacco Framemork di sviluppo sicuro KISS Pagina 15

Acquistare applicazioni sicure Semplice da usare e ricca di funzioni Prezzo ragionevole Sicura Pagina 16

Acquistare applicazioni sicure Semplice da usare e ricca di funzioni Prezzo ragionevole Sicura Puoi sceglierne due su tre... Pagina 17

Acquistare applicazioni sicure (applicazioni custom) Predisporre un disciplinare Imporre degli standard Liste di controllo Security testing Coinvolgere terze parti (applicazioni off-the-shelf) FOSS oppure devi fidarti Pagina 18

Acquistare applicazioni sicure Pagina 19

Acquistare applicazioni sicure Pagina 20

Per ulteriori informazioni + Owasp + W3 security guidelines + Web Application Security Consortium + Are You Part Of The Problem? + Top 25 Most Dangerous Progr. Errors + Google + Wikipedia Pagina 21