[Musica] [Musica] Eccoci Ciao Ramona Ciao Giuseppe Ciao a tutti Ciao ciao a tutti Allora salutiamo i nostri amici che iniziano ad arrivare Eccoli qui Sasha Sara Marcello Marco vedo pure tante volte sia storici sia nuovi nel frattempo Ecco che si aggiungono saluto Ramona che per la prima volta qui con noi mentre pure Giuseppe forse la seconda la terza volta [Musica] non esagerare dai velocemente velocemente perché stasera è una serata ricca un tema importante che tratteremo sempre più spesso che quello della Cyber Security o sequenze informatica come dir si voglia Tra l'altro come speaker come sapete ci stappava l'avete letto dappertutto quindi Paolo che collabora con dei contis ormai è pure un amico di vecchissima data quindi sono veramente contento Quindi nel frattempo che vi Aggiungete Se volete scrivete pure da dove siete collegati Noi leggiamo assolutamente tutti i commenti e mandiamo pure quelli più simpatici a video parto con la nostra classica presentazione perché può essere utile per chi ci segue per la prima volta e so che qualcuno di voi ci segue per la prima volta e quindi spero che da oggi in poi ci seguite tutti i giorni ma è anche utile per chi ci segue da una vita perché ci sono i link della serata quindi le workspace 42esimo di numero però questo è il 43esimo metap proprio perché abbiamo abbiamo posticipato proprio la giornata di oggi quindi ne abbiamo fatto di strada e so che siete tanto affezionati Ecco vedo man mano altri che si aggiungono saluto veramente tutti nasce due anni e mezzo fa proprio dall'incontro con di cui fra poco ramone e Giuseppe ci racconteranno qualcosa di più è una community legata un po' a tutti i linguaggi tutte le tecnologie sono Talk tecnici ok o che interessano gli sviluppatori legati al mondo del lavoro perché doc Minds si occupa appunto di selezionare già sono recruiter in ambito Tech e quindi abbiamo creato una community ad hoc per tenervi il più possibile aggiornato su quelli che sono i Trend però veramente non spreco parole perché secondo me sono molto più bravi Giuseppe e Ramona Ne approfitto subito ne approfitto per perché già in scaletta è già in programma per annunciarvi il MIT Up della prossima settimana Quindi da questo momento vi dovete iscrivere subito Tra l'altro se non mi tappo un po' diverso dal dagli altri però è mirato proprio per gli sviluppatori in quanto con Antonello di cui abbiamo registrato Oggi l'intervista quindi probabilmente già domani Era la pubblicherò parleremo di come uno sviluppatore lui si occupa appunto di conoscenza tra virgolette a 360 gradi però è uno sviluppatore quindi il talk sarà Ammirato per gli sviluppatori Quindi come potrete raccogliere la conoscenza che accumulate negli anni in quest'ambio quindi assolutamente da seguire registratevi subito per gli amici di Roma lo ricordo Spero che ci verrete a Roma Termini a binario F ci incontriamo il prossimo lunedì Tra l'altro proprio con la community the workspace e ho conosciuto qualcuno di voi che partecipa ai nostri meetup proprio i mesi precedenti Quindi sarà non ci sarà un Talk tecnico però faremo dei giochi per conoscerci di networking e poi birra e pizza Quindi se non siete ancora registrati e siete di Roma spero pure presto quindi di andare in altri posti però per ora è Roma quindi ci vediamo fra una settimana e tutti questi link li trovate sui canali di The workspace potete accedere direttamente dal sito the workspace punto Dev oppure qui dal QR Code dove trovate i link per iscrivervi ai prossimi mitup di cui vi ho parlato e tutti gli altri riferimenti che pure il ramone Giuseppe vi daranno Vi ricordo tra l'altro cioè no vi faccio un altro anticipazione che già in programma per il 14 di marzo abbiamo da annunciare domani e dopodomani il prossimo mitup legato al cloud legato ad avs quindi vi ho fatto una piccola spoilerata così nei prossimi giorni accedete spesso al sito e siamo arrivati al momento ecco [Musica] partecipate Probabilmente qualcuno di voi vedrà il video perché poi la registrazione rimane su YouTube fra 10 anni che non è caro Giuseppe però per chi lo vedrà fra 10 anni deve sapere che deve partecipare invece alle dirette perché solo per chi partecipa alle dirette attraverso il link che poi non vi preoccupate Vi passo nei commenti così poi ci potete fare clic scorrerà pure sotto quindi non c'è bisogno di prenderlo in fretta e furia adesso attraverso questo link trovate Poi i vari link che vi danno la possibilità di registrarvi e ricevere l'attestato di partecipazione della di questa serata OK di partecipare alla lotteria la lotteri è già aperta Quindi con il vostro volt una vostra foto che preferite poi estraiamo un vincitore a cui ad hoc Minds manda un buono da 25 euro spendibile nei principali Store e invece l'altro appuntamento fisso che ormai è diventato proprio ricchissimi il talk quiz voi potete fare tutte le domande che volete e vedo già chi ne farà un bel po' a Paolo durante il il tolc però poi Paolo si vendicherà Tra l'altro non c'ho avuto modo di parlare quindi non vedo che ride quindi penso che sono state domande difficili però poi si vendica con 5 domande e pure in questo caso il vincitore prende un buono da 25 euro messo a disposizione da Adoc Mainz ha nominato e adesso quindi lascio la parola Giuseppe che ci inizia a raccontare qualcosa che fai in adhoc Minds Giuseppe lavoro Innanzitutto Enzo grazie per la parola Ciao a tutti benvenuti o Bentornati prima di dare Insomma il nostro benvenuto anche a Paolo come al solito vi raccontiamo brevemente chiedo comeinz molti di voi già lo sanno Siamo alla società dei requisiti metallity come prima ho detto Enzo che sta dietro mi devo Space quindi insomma portiamo avanti questa iniziativa da un paio d'anni perché crediamo nel potere della formazione e soprattutto per avvicinarci di più a voi perché voi siete i nostri candidati ideali e vogliamo scoprire Quali sono le vostre necessità dal punto di vista lavorativo per cercare di macciarle al meglio quindi da questa idea nasce da eurospace dove mettiamo a vostra disposizione migliore network di esperti Grazie anche all'aiuto di Enzo chiaramente e con il tempo abbiamo creato una vera e propria community di sviluppatori che amano aggiornarsi e fare network e spero anche come poi Enzo anche detto di conoscersi presso dal vivo la community la trovate sul nostro gruppo LinkedIn su Facebook abbiamo una sezione Poi del sito di Adoc minds.com dove oltretutto trovate anche tante delle nostre posizioni aperte Quindi attualmente abbiamo tantissime posizioni aperte ogni giorno Ne abbiamo di diverse Quindi se foste interessate a qualcosa di specifico per qualsiasi tipo di signority contattateci pure se state pensando di cambiare lavoro affidatevi a noi perché possiamo realmente aiutarvi quindi insomma Vorrei cogliere l'opportunità di invitarvi a contattarci quasi a sfidarci no trovare l'opportunità giusta per voi Quindi detto questo Insomma lascio volentieri la parola Ramona che vi racconterà qualcosa di più specifico Ciao a tutti benvenuti appunto Bentornati Ecco io volevo presentarvi alcune delle posizioni che abbiamo scelto per questa sera ma come diceva Giuseppe ne abbiamo tantissime svariate con diverse senority Quindi se non ci fosse tra queste la l'offerta giusta per voi contattateci e la Troveremo sicuramente insieme allora per stasera vogliamo presentarvi le offerte penetra qui penetration tester che stiamo cercando sia a Junior che Middle su diverse città tra cui Pescara Milano e Roma Cyber Security engineer per tutta la parte di identity Security con conoscenze Fiber Ark eccetera su Milano e Cyber Security ingegnere Middle conoscenza F5 non è necessaria la certificazione Ma va bene la conoscenza di F5 a patto che sia un'effettiva conoscenza su Roma poi abbiamo Cyber Security e data Protection Senior Consulting sempre su Roma che può essere sia di formazione Liga che tecnica per ogni importante che le due cose in qualche modo merci non ci sarà un profilo strettamente lical e poi saper Security analyst profili sia Junior che Middle sempre su Roma come vi dicevo Qualora non ci fosse qui in offerta ideale comunque contattateci via mail anche se LinkedIn perché ne abbiamo veramente tantissime oltre a quelle Cyber anche posizioni di sviluppo eccetera quindi rinnovo l'invito che ha fatto Giuseppe a contattarci poi volevo parlarvi anche o ricordarvi perché già ci conosce che è sempre attivo il nostro nel nostro programma di referendum per mezz'ora Se a seguito di una segnalazione che ci farete riusciremo ad inserire un candidato presso una nostra azienda cliente Riceverete un buono spese da 250 euro nel vostro nome quindi basta un click se avete qualcuno da segnalarci contattateci pure e ho combinate.com Ottimo ottimo Mi raccomando fatemi vincere la scommessa stalkerizzate voi recruiter Ok Scherzi a parte siamo stati bravissimi Tra l'altro perché [Musica] mancano tre minuti alle 7 e quindi siamo pronti già ad aggiungere l'avviso casomai lo Colgo di sorpresa Paolo Eccolo qui Ciao Paolo ciao Paolo sei muto sei muto Paolo Eccoci qua Ciao Enzo Ciao Ramona Giuseppe Buonasera a tutti Ciao Paolo Buonasera Buonasera Paola Allora tra l'altro Ecco ci sono aggiunti alcuni degli altri nostri affezionati quindi sono contento Siamo tutti pronti Caro Paolo Vabbè ricordo velocemente qualche cosa quindi dammi un minuto perché tra poco vi mando tutti i link di cui vi ho parlato prima per l'attestato il quiz la lottery non vi preoccupate fate tutte le domande che volete A Paolo non so se Paolo ti vorrei fermare in alcuni momenti ne rispondiamo oppure vuoi che ti ti ferma in maniera diciamo poi ci sarà anche durante il quiz in cui abbiamo anticipo nulla sarà un minimo di interattività in un paio di punti uno alla fine e poi uno all'inizio E allora allora Beh io direi di tolgo il mio schermo Ecco se vuoi prepara il tuo nulla non so se prendi il tuo Ci siamo quasi io ci sono Dimmi quando si vede Eccolo qui Eccolo qui allora io direi Ora noi ti salutiamo io poi torno per il quiz della lotteria finale e per le domande le raccolgo io non ti preoccupare Dimmi tu poi quando le vogliamo fare e voi mi tappo a tutti Dai vi salutiamo ragazzi è stato un piacere alla prossima Vi ricordo come contattateci Ciao grazie a tutti Ciao ciao Perfetto Allora di nuovo Buonasera a tutti e iniziamo questo questo Talk dedicato allo sviluppo web con un occhio alla sicurezza vediamo rapidamente gli argomenti di cui parleremo dopo una rapida introduzione sulla sicurezza in generale Vedremo la struttura di una web app tramite architettura Lamp e poi parleremo di della sicurezza applicativa che è la parte forte un pochino più corposa di tutta quanta la presentazione per passare poi altri aspetti che riguardano il database il sistema e anche e anche i processi Allora partiamo da una definizione diciamo accademica di Sicurezza Informatica presa proprio da Wikipedia quindi Che cos'è la Sicurezza Informatica possiamo dire che l'insieme dei mezzi delle tecnologie e delle procedure finalizzate alla posizione dei sistemi informatici e in particolare la posizione delle informazioni L'obiettivo è garantire la confidenzialità ovvero è quella proprietà che assicura che i dati e le risorse siano preservati all'accesso di utenti non autorizzati l'integrità che quella proprietà che assicura che dati e risorse siano preservati dalla modifica o dalla cancellazione da parte di utenti non autorizzati e infine la disponibilità che è quella proprietà che assicura che dati e risorse siano accessibili da tutti gli utenti autorizzati in qualunque momento Noi abbiamo necessità ora terminata diciamo questa definizione più accademica Vediamo di capire perché è così importante la sicurezza per gli individui ma anche soprattutto per le aziende quindi vediamo quali sono le conseguenze nel caso in cui si trascuria sicurezza Beh la prima quella che ci viene in mente subito è la divulgazione di informazioni confidenziali cosa che non vogliamo succeda ora distruzione di informazioni E tutto questo comporta danni economici ovviamente e anche problemi legali batti pensare su quest'ultimo punto al gdpr E allora quindi a qui deriva l'estrema importanza che si deve dedicare a questo nelle aziende e solo che purtroppo e questo mi rivolgo soprattutto diciamo agli sviluppatori Junior che seguono Il meetup spesso troveranno diciamo delle degli ostacoli le obiezioni da parte dei clienti in generale Da parte di chi deve prendere decisioni Quindi vorrei dare qualche indicazione anche per poter appunto guidare da questo punto di vista ho raccolto qui alcune delle obiezioni che derivano un po' della mia esperienza personale di sviluppatore che mi sono state fatte la prima obiezione quella più comune è ma chi vuoi che interessi attaccarmi Io non ho segreti non ho nulla da nascondere e bene Sappiamo benissimo che in realtà molti degli attacchi come il tristemente noti Random non vengono fatti verso persone o aziende specifiche ma molto spesso vengono eseguiti diciamo sparando nel mucchio e quindi questa obiezione cade la seconda obiezione pure ma chi vuoi che sia capace a fare questa cosa a fare questo attacco e A questo proposito vi racconto un aneddoto che non è proprio legato diciamo al mondo della sicurezza però rende bene l'idea un po' di questo di questo approccio e qualche anno fa ho sviluppato Tra l'altro insieme ad altre persone è una web app per un'azienda ora siccome il titolare dell'azienda era diciamo particolarmente sensibile a tematiche che riguardano il Diritto d'autore presidente elettorale ci chiese di fare in modo che gli utenti della web app gli utenti che accedono al sito non potete non fossero in grado di fare screenshot delle pagine del sito E allora io gli ho spiegato esiste pure qualche metodo Ma sono tutti quanti facilmente aggirabili per esempio viaggiava scritto si potrebbe intercettare l'evento di pressione dei tasti e andare a verificare se il tasto premuto è quello del print screen o la combinazione di tasti necessari e poi con il metodo prevede folk e andare a impedire il comportamento di default e quindi lo screenshot Però una cosa del genere facilmente aggirabile basta andare nelle impostazioni del browser e andare Diciamo a disattivare JavaScript dopo che sta renderizzata la pagina e uno può fare tutti gli screenshot che vuole ed obiezione è stata va bene queste cose che voi che le sappia queste lo sai tu che siano sviluppatore ora a parte il fatto che per fare una cosa del genere non è necessario essere sviluppatori qualsiasi utente che sia un minimo smart con 30 secondi di ricerca su Google lo fa ma comunque è un'obiezione che non va bene che non che non può essere diciamo accettata anche se per sfruttare un certo punto era abilità ci vogliono conoscenze tecniche spinte Comunque non è non è assolutamente una buona ragione non è sufficiente per non sanare quella vulnerabilità poi un'altra obiezione è molto dovrebbe occupare non so i sistemista lo sviluppatore o chi più ne ha più ne metta Ebbene anche questo è importante capire che la sicurezza è un problema di tutti quindi dallo sviluppatore di front-end sviluppatori di back-end sistemi di rete e così via quindi nessuno diciamo può dire che la sicurezza soltanto un problema di qualcun altro altra cosa altro diciamo errore di valutazione che spesso si fa è ma non avevamo già fatto tutto non avevamo già messo in sicurezza e si sente diciamo a considerare la sicurezza più che un progetto che con un processo cioè io faccio tutto quanto metto tutto in sicurezza Dopodiché sto tranquillo in realtà non è così perché nel tempo vengono fuori i lavori di attacchi nuove vulnerabilità e quindi bisogna diciamo considerare la sicurezza come un processo continuo e non come un progetto come inizio e una fine a me piace pensare alla sicurezza in generale ma in particolare anche per le web app un po' con una metafora del mondo degli Scacchi non so se tra i presenti c'è qualcuno che gioca a scacchi Io in realtà è una quindicina d'anni fa No una decina di secondi però nel frattempo raccontati leggiamo le risposte te le mando a schermo ok No io sono 15 anni fa avevo iniziato Poi diciamo per mancanza di tempo di Costanza era un principiante e principiante sono rimasto però devo dire una cosa l'ho capita ci sono ci sono ci sono dei giocatori Ah bene allora chiedo a loro quand'è che si vince a scacchi ci vorrà qualche secondo eh che dice prevedere la mossa altrui quindi credo Quando si prevede la mossa altrui te la butto lì Sì sì anche però diciamo più un po' più In generale cosa deve fare l'avversario affinché io riesca a vincere dice quando si fa Scacco Matto giusto [Musica] giustamente perché la domanda era posta male in effetti diciamo la domanda corretta è cosa dovrebbe fare l'avversario affinché io riesca a vincere vediamo un po' se c'è ancora qualcuno rimane scoperto Dice Marco Sì Sì esattamente Diciamo più in generale quando quando commettono errore quindi questa cosa diciamo sono un principe sono rimasto un principiante a distanza di 15 anni però questa cosa l'ho capita e queste lo dicono è arrivato è arrivato Paolo Tra l'altro poi ma Marco ci chiede come Risolto col cliente il Diritto d'autore però poi se lo raccogliamo alla fine sì ok Alla fine poi lo racconto Allora questo ve lo Cito non ha parole mie con parole di Alvise Zichichi è stato un grande scacchista italiano di spessore internazionale che scrive È inutile e forse sciocco dire ho perso solo perché ho commesso un errore è naturale che sia così negli scacchi come nel tennis nel calcio in qualsiasi altro sport e aggiungerei anche in sicurezza si vince e si perde soltanto per degli errori l'avversario provi Ebbene questo è una metafora che mi piace citare perché vale anche per la sicurezza Quindi bisogna stare attenti a non commettere meno errori possibili e nel corso del talk vedremo proprio gioco faremo una carrellata agli errori principali che si possono commettere nello sviluppo di una web app Allora entriamo quindi nel vivo e partiamo proprio dalla struttura di una web app faremo riferimento all'architettura Lamp Ma questo buona parte di quello che riteniamo vale un po' per tutte le architetture quindi ripercorriamo brevemente come ha fatto l'architettura Lamp la base abbiamo sistema operativo Linux poi lo serve Rapaci di BMS Ma i sequel o Maria di B anche back end in PHP e poi nel front-end il linguaggio di programmazione JavaScript all'interface possono sono fatte in HTML CSS dove si colloca la sicurezza in questo diagramma per quanto abbiamo detto prima la sicurezza Si colloca in tutti quanti gli strati quindi abbraccia tutti quanti gli stati adesso li vedremo diciamo a partire dal dalla parte di codice alla parte di sviluppo fino a scendere al database e al web server sistema operativo e poi parleremo anche dei processi Allora però prima di questo voglio illustrarvi brevemente un'applicazione un'applicazione che ho che ho creato in cui ho inserito volutamente tutta una serie di vulnerabilità e Che utilizzeremo per parlare Remo ora questa applicazione è un semplice gesto che prevede login Allora Prevede due profili un profilo amministrativo il cui utente lo chiameremo admin si chiama admin Ciao spero che la password non sia 1 2 3 4 no Tanto poi ve la faccio vedere poi la password no leggermente più complicato ma neanche troppo però ho detto il locale quindi sono perdonato dai Allora appena l'utente si tolga Cosa può fare può vedere innanzitutto i messaggi scritti da altri utenti in ordine cronologico inverso e poi l'utente admin può fare due cose può scrivere messaggi tipo normal oppure di tipo Alert scriviamo un messaggio normal test Normal per stappare in questo modo Quindi in carattere regolar fondo chiaro Se scriviamo un messaggio alert cosa che può fare l'utente amministrativo Alert questo Vediamo che appare in grassetto e con sfondo con questo sfondo diciamo rosso Rosa L'altro tipo utente l'utente diciamo normale e un utente Paolo e ugualmente vede tutti i messaggi Però a differenza dell'utente admin può all'opzione Alert disabilitata può solo inviare messaggi normal quindi proviamo test normal Paolo Eccolo qua Ok allora illustrata questa applicazione adesso Passiamo a considerare le varie Allora mettiamo solo ok incominciamo a considerare la sicurezza applicativa allora la sicurezza applicativa Si ovviamente è una cosa estremamente vasta che non si può certo esaurire nel Talk di un'ora però diciamo buona parte della sicurezza applicativa ruota intorno al concetto del controllo dell'input il controllo dell'input dell'utente che può essere vettore diciamo di diversi tipi di attacco e in cosa consiste il controllo dell'input dell'utente consiste fondamentalmente Diciamo in due cose nella validazione nella sanitizzazione validazione Che cos'è validazione significa andare a verificare che l'input dell'utente diciamo rispetto determinate regole formali se per esempio abbiamo una casella di testo e chiediamo all'utenza inserire l'indirizzo email e andiamo a controllare che ciò che abbiamo inserito sia effettivamente un indirizzo email Quindi che ci siano chiocciola che a destra della chiocciola da stringa sia un nome a dominio valido e così via fai meditazione ancora una volta e andare a controllare l'input dell'utente consiste nell'andare identificare delle parti degli input che possono essere malevole o che comunque possono creare dei problemi andarle a ad eliminare oppure a fanatizzare l'esempio tipico e quello dei caratteri speciali se l'utente inserisce dei caratteri speciali che possono e lo vedremo a brevissimo con una demo e diciamo creare dei problemi questi vanno sanitizzati cioè vanno sostituiti con opportune sequenze di escaping una dei concetti cruciali che tutti questi controlli devono essere fatti sia la Top Client che dato server Che succede se gli facciamo solo lato client lo vediamo subito con la demo quindi torniamo alla nostra fantastica web app ora io sono loggato come Paolo che è l'utente diciamo di profilo normale che non può vediamo qui Un po' non potrebbe almeno creare messaggi di tipo Alert Ma allora proviamo a fare una cosa allora qui ora Beh non posso commentare non avremmo tempo tutto il codice delle applicazioni però che succede quando viene renderizzata la pagina e viene fatta una chiamata a Jack dal server e che ricava le informazioni dell'utente che restituisce informazioni dell'utente se l'utente è tipo normal e Disabilita l'opzione Alert Quindi se andiamo a vedere tramite lo strumento gli strumenti di sviluppo qui il campo messogetype abbiamo le opzioni e questa qui Alert disable Ora proviamo a eliminare questo disabled Allora qui che succede succede che questa diventa abilitata e che succede se proviamo a inviare un messaggio scriviamo testa Alert da Paolo E succede che questo messaggio viene effettivamente inviato e salvato un server E questo perché Perché è stato possibile è stato possibile perché lo sviluppatore che sarei io qui ha commesso un grave errore cioè ha fatto la validazione lato client che va benissimo per la user Experience ma non l'ha fatta lato server quindi se noi prendiamo adesso Lo script PHP lato server che accetta quella richiesta ora Qui commentandolo molto rapidamente qui diciamo gli ho inviato un Jason che ha due campi un campo message e un campo Type Messenger che contiene il messaggio inviato E Type che può essere normal o Alert E vabbè il messaggio e il Jason viene convertito in Array e vengono presi questi due campi della RAI che sono ormai Type e poi viene creato un messaggio nel database e passando alla funzione per creare un messaggio nella tabella opportuna database l'ID dell'utente interrogato il messaggio e il Type e non viene fatto nessun controllo sul Type quindi Qui la cosa corretta quale sarebbe stata sarebbe stata andare a vedere le informazioni sull'utente loggato prendere informazioni sull'utente loggato seduta ha interrogato e ti dico admin Ok se l'utente interrogata di tipo normal andare a verificare Type se Type e di tipo Alert o restituire un messaggio d'errore oppure forzarlo a Normal quindi questo diciamo pur essendo un esempio molto semplice ci fa capire questa importante cruciale di effettuare i controlli sia lato client che lato server Allora torniamo alla presentazione parliamo adesso di SQL injection che un'altra vulnerabilità Che cos'è Il sequel injection la sequenza di codice di una query SQL attraverso l'input dell'utente e anche qui questa deriva dal fatto che non è stata fatta correttamente input validation e sanitization anche qui torniamo nella nostra nella nostra applicazione allora [Musica] mi sbloggo chiudo un attimo lo strumento di sviluppo Allora qui adesso vorrei introdurvi un altro tool che in realtà un'estensione di Chrome che si chiama tamper dev Allora camper d'epoca Che cosa fa questa è molto utile sia per i test di sicurezza ma anche per per il debugging una volta attivato va ad intercettare ad intercettare diciamo tutte le richieste http fatte verso il server e permette di alterarle di vederle di alterarle Allora adesso qui anziché al posto della password di admin vado a scrivere un'altra cosa ora non la vedete perché essendo una password asteriscata però si attiva perdendo così faccio vedere anche come funziona e riusciamo a vederla Allora abbiamo damper dev intertrapper ora Se clicco su login non succede niente perché Perché non perdeva intercettato la richiesta al server Se ci clicco sopra la vedo che cosa mi permette di fare mi permette di Scusate se riesco lo scroll di vedere tutti quanti i campi dell'Edera http e di modificarli e di vedere anche il body della richiesta in questo caso username admin e password quello che non avete visto perché caratterizzato che questa stringa qui Apice or e Ah tra Apice uguale a aperto Apice a Allora stoppiamo in terza lettera di inviamola E cosa è successo È successo che mi sono loggato quindi no senza conoscere la password conoscendo soltanto il nome utente sono riuscito a loggarmi Allora questo perché è stato possibile è stato possibile perché non è stata fatta validazione sanizzazione del campo in questo caso il campo password Allora andiamo a vedere da prima sul codice Allora qui ho definito una classe di buser che è che utilizzo per gestire la tabella user del database e anzi vediamo prima No direi vediamo prima la struttura proprio della tabella del database news la tabella dell'albero è fatta così abbiamo l'ID numerica incrementale o un campo username o un campo passo Ford in cui la password salvata in chiaro si qui prevengo diciamo eventuali obiezioni Ti stavo per sgridare che Salvi le password scherzo scherzo [Musica] volutamente diciamo tanto è tutto quanto il locale applicazione di test un campo password e poi un campo privilegio che può essere admin normal abbiamo parlato prima Quindi se io ho io se andiamo in password e voglio controllare che siano corretti la quelli da fare è questa qui Quella che vedete qui se le trasferisco from youser nome della tabella Where username passato dall'utente e password uguale [Musica] password passato dall'utente ora se io in password ci vado a passare anziché la password questa stringa qui torniamo alla presentazione apici spazio or atrapi = aperto Apice a username admin e Cosa succede quando vado a costruire da query da quelli che diventa avversari asterisco fra un minuto uguale username e trapici ci andrà username vediamo sotto che admin e password uguale aperto e chiuso Apice tra questi due apici questi qui cioè quello che ho inserito nella password cioè un altro Apice or a uguale a Quindi in sostanza Qui abbiamo una condizione a uguale a che è sempre vera e che messa in oro con tutto il resto quindi questa query restituisce sempre un insieme in un vuoto di righe a parte ovviamente che nella tabella user ci siano sensibili agli utenti e questo come Come si risolve effettuando sanitizzazione effettuando la sanitizzazione del quindi qui prima di passare questi dati alla query avrei dovuto andare a fare l'escaping dell'apice che è un carattere speciale nel SQL quindi per esempio fare una cosa del genere password uguale in replace sostituire l'apice con doppio Apice dove In password stessa cosa anche username ora fatta questa modifica se proviamo a rifare arrivare lo stesso attacco non dovrebbe funzionare quindi admin Apice or Infatti mi dice credenziali errate ok passiamo adesso un altro un'altra problematica che invece stavolta si riscontrato lato client che il Crossfire Che cos'è il perfect scripting ad iniezione di codice auto client quindi JavaScript attraverso un input dell'utente e anche qui andiamo a vederlo direttamente sul prima sull'esempio e poi nella nella slide Allora mi rivolgo come come Paolo Allora qui che cosa succede Vabbè posso scrivere messaggi solo normal in realtà anche Alert l'abbiamo visto prima il messaggio che scrivo viene poi mostrato a video dentro questa dentro questa tabella Ma che succede se adesso provo a inserire del codice HTML nella tabella per esempio P song testo tetto quello che succede è che l'html che ho scritto viene effettivamente interpretato come HTML quindi sono riuscito a scrivere un testo in grassetto cosa che non dovrebbe essere consentita Ma questo oltre a permettermi diciamo di andare a manomettere l'html permette di fare una cosa diciamo ancora più grave permette di andare a inserire codice JavaScript vediamo un esempio Adesso provo a inserire un tag IMG dove come Sorso ci metto xxx un patto in cui non ce ne sono inesistente nessuna immagine e poi va a definire l'evento un error che sta scatenato ovviamente perché il software sbagliato Alert 1 per esempio Allora Cosa succede se provo a salvarlo succede che appare questo Alert con la scritta 1 Cioè qui in pratica questo è quello che ho scritto è stato interpretato esattamente come HTML quindi viene mostrata questa immagine l'immagine in realtà non c'è perché Perché il Pat palesemente sbagliato si verifica Quindi l'errore la condizione di errore viene eseguito levent under on error definito non erro perché in questo caso mostra questo Alert Allora quindi vediamo brevemente Nella presentazione come questo succede qui abbiamo il nostro elemento del Dom che è TD tra PD e PD quindi un campo della tabella dove deve essere salvato deve essere stampato l'input dell'utente l'input dell'utente a questo punto è questo avere realtà leggermente diverso da quello che che ho usato nell'esempio ma la sostanza non cambia ora per per inserire questo questo input dell'utente questa stringa dentro questo elemento del Dom ho utilizzato il metodo Inner html e quindi diciamo la HTML risultante Qual è stato sarà TD poi chiuso TD e dopodiché È un tag IMG con source= fake e poi l'evento neror definito e questo è esattamente interpretato come JavaScript Come si fa diciamo a risolvere questo problema anche qui è un problema di sanitizzazione sanizzazione dell'input dell'utente quindi dal momento che dobbiamo stampare a video l'input dell'utente dobbiamo andare a sanizzarlo Quindi se nell'input dell'utente sono presenti dei caratteri speciali che hanno un significato preciso in hpml come simboli di maggiore minore questi vanno sanitizzati cioè vanno e sostituiti con opportune sequenza di escaping che in HTML si chiamano HTML Entity vediamolo anche questo nel codice Allora il codice è questo si rappresenta HTML prima ho detto con metodo in realtà è una proprietà e al posto per risolverlo al posto di venire HTML dovremmo dovuto utilizzare in text Quindi se qui al posto Diner HTML Cioè vado a mettere Inner text ancora permette di inserire una stringa diciamo all'interno di un tag Però stavolta non viene considerata come HTML Ma viene considerato come testo e quindi caratteri speciali eventualmente inseriti vengono sostituiti con le opportune sequenze discaping se fatta questa modifica andiamo a refreshare la pagina controllo specifico sui ricarica vediamo che questo punto quello che ha inserito anche nell'esempio precedente viene mostrato correttamente quindi questo il CrossFit è un esempio in cui è vediamo che è importante effettuare la sanitizzazione diciamo anche a livello a livello di JavaScript quando il test un testo che proviene dall'input dell'utente viene mostrato Sì una cosa importante da capire è che ora quell'alert è apparso con il codice era sbagliato a me che ho salvato il messaggio però se mi fossi drogato mi fossi drogato come admin o come qualsiasi altro utente Allora renderizzazione di quella pagina quella aperta sarebbe apparso quindi quel codice JavaScript sarebbe stato eseguito da qualsiasi utente avesse poi da quel momento in poi visitato quella pagina e Questo lo vedremo meglio poi quando parleremo dei cookie un bel problema Allora la vediamo in realtà l'abbiamo fatta ora parliamo un pochino degli aspetti che riguardano il database Quindi abbiamo fatto una carrellata sugli aspetti applicativi ora passiamo al database Allora i dati sensibili salvati nel database devono essere protetti Quindi se abbiamo dei dati sensibili opportune che questi siano crittografati oppure nel caso delle password che si ricorra funzione di Ash e diciamo brevemente qualcosa della crittografia simmetrica Questa è costituita da un algoritmo richiede una chiave segreta e bidirezionale Nel senso che noto la chiave permette di passare al test in chiaro il testo cifrato e viceversa poi ci sarebbe tutto un altro discorso da fare su dove salvare poi le chiavi ma qui si apre si apre tutto un altro mondo una cosa su cui invece vorrei soffermarmi sono le funzioni di Ash perché queste sono utilizzate per salvare correttamente le password non come ho fatto io e quindi ricaviamo veramente Che cos'è una funzione di Ash la funzione di Ash diciamo la funzione che prende una stringa di qualunque lunghezza e genera una stringa è esadecimale di lunghezza fissa non richiede alcuna chiave ed è una direzionale cioè una volta effettuato adesso di una stringa non è possibile non è computazionalmente possibile tornare indietro Allora di algoritmi di action esistono tantissimi quello uno di quelli diciamo attualmente che è uno standard accettato e lasciato 256 e io qui ho trovato un convertitore online esistono tantissimi in cui possiamo scrivere del testo e andare in tempo reale qui e a generare a generare rash Allora scriviamo questa stringa Ciao come stai lascio con l'algoritmosciato 256 di questo tipo Qui la cosa importante è che non è possibile tornare indietro Quindi data questa stringa non è possibile Cioè sarebbe possibile a forza bruta ma con potenza di calcolo attuale e computazionalmente impossibile tornare a questa stringa ora le proprietà matematiche dell'esh e anche richiederebbero un discorso abbastanza lungo diciamo soltanto che le funzioni di adesso sono fatte in modo per cui l'output è correlato al punto di vista statistico dall'input E che significa questo qualitativamente che se io qui vado a fare una piccola modifica per esempio Ciao Anzi io la minuscola vado a scrivere con la maiuscola vediamo che l'essere cambia completamente quindi qualitativamente Diciamo che input molto simili corrispondono output molto diversi allora come ci accomoda Come si fa quindi a salvare le password tramite flash e possiamo anziché salvare la password nel database in chiaro possiamo salvarne ed esce anche se non è possibile tornare indietro in realtà come facciamo a verificare poi che la password inserita dall'utente sia corretta prendiamo la password inserita all'utente ne calcoliamo l'esh verifichiamo che il flash sia lo stesso salvato nel database se lo stesso Allora la password è corretta quindi questo ci permette di salvare la password solo eshata quindi fatto di non salvarla Perché non possiamo tornare indietro quindi non vederla la password dell'utente però nonostante questo controllare che sia corretta In realtà però questo ha un problema Il problema si pone dal momento che l'utente cosa che non dovrebbe fare ma purtroppo in alcuni casi succede utilizza password banali Infatti in questo caso diciamo si può una situazione del genere è suscettibile un attacco con le cosiddette Rainbow table the rainbow che cosa sono sono delle tabelle precalcolate con gli Ash diciamo di tutte le password più comuni o di tutte le parole che appartengono a un certo vocabolario non solo italiano inglese o di qualsiasi altra lingua Quindi se l'utente inserisce una password banale flash di quella password è noto è disponibile sulla Rainbow table che in genere sono pubbliche quindi Se io riesco a venire in possesso di quel Flash posso andarlo a cercare in una Rainbow table e ricavare la password originale Allora come si risolve questo lo vediamo qui nella in un diagramma e la slide si risolve utilizzando il Salt ora Supponiamo che questa sia la password impostata dall'utente io anziché salvare Dash di questa password che cosa faccio genero per quell'utente una stringa casuale che chiamiamo Salt la concatena alla password scelta utente e vado a salvare lesh di questa concatenazione Quindi anche se l'utente scegliesse una password banale e Flash non viene fatto su quella password banale ma viene fatto sulla concatenazione tra la password banale e una stringa diciamo casuale che mi salgono il database e quindi questo ci protegge sia nel caso in cui l'utente Cerca una password banale e l'altra conseguenza è dal momento che io ho il soltero a scegliere diverso per ogni utente Uno per ogni utente anche se due utenti cercano la stessa password lascio ottenuto sarà diverso Quindi quando l'utente fa login ricapitolando Io voglio controllare che la password sia corretta prendo la sua password nel database ho salvato il solta generato perché l'utente gli concateno ne calcolo Dash selash coincide con quello salvato nel database l'utente autenticato altrimenti la password per inserire errata Quindi così possiamo diciamo verificare l'autenticazione dell'utente senza salvare in chiaro la password allora passiamo adesso scendendo ancora di livello passiamo Agli aspetti sistemistici ora la configurazione del web server pure è un argomento un argomento diciamo estremamente Vasto su cui ci sarebbe tanto da dire voglio focalizzarmi diciamo su un paio di aspetti e il secondo dei quali quello dei cookie di sezione che si ricollega al discorso che abbiamo fatto prima sul cross di scripting parliamo intanto di information Disclosure information Disclosure Che cos'è information Disclosure Come dice il termine stesso significa mostrare agli utenti delle informazioni sul sistema come in linea generale in sicurezza meno informazioni si mostrano è meglio è quindi su una web app Quali sono le informazioni che l'utente può ricavare se il web server non è configurato correttamente o ricavare delle informazioni sulla versione del web server sulla versione del PHP e così via vediamolo subito vediamo subito sulla nostra web app torniamo qui una verifica che si fa sempre Adesso proviamo a inserire un Pat diciamo inesistente che dovrebbe produrre un errore 404 e ha prodotto un errore 404 Però qual è il problema qui il problema è che siccome il server non è configurato correttamente non c'è una pagina di errore Custom quindi qui appare Chiaramente la versione del web server la versione del PHP e questo è una cosa che non va bene perché stiamo dando a un potenziale attaccante delle informazioni preziose quindi conoscendo la versione del web server può andare a restringere il campo alle vulnerabilità note per quella versione stessa cosa vale per PHP oppure queste informazioni sono disponibili anche negli Eder del delle risposte http quindi ricordiamo ancora una volta agli i tool di sviluppo se riesco a ingrandirli Network faccio refresh della pagina vado a vedere gli eather e qui abbiamo che negli etern Center abbiamo server in cui C'è l'indicazione del web server con tutte le caratteristiche e poi X Power Red la versione di PHP Allora queste quindi le configurazioni tra le configurazioni più importanti web server ci sono quelli di andare a creare delle pagine di errore Custom 404 ma vale anche per gli altri errori 413500 e così via e poi andare a disabilitare questi questi Heather in modo che un potenziale attaccante a meno informazioni possibili allora un altro aspetto su cui voglio focalizzarmi ora ce ne sarebbero tanti ma non ha senso neanche non faremo ovviamente in tempo un aspetto su cui voglio focalizzarmi è quello dei cookie di sessione allora un cubizzazione Che cos'è un climatizzazione non è altro che un cookie che contiene un valore e un valore univoco che identifica l'azione dell'utente ora la sessione dell'utente Diciamo che cos'è una sessione dell'utente Diciamo che possiamo dire In termini molto qualitativi e anche in preciso anche in precisi diciamo tutto ciò che succede Tutte le interazioni dell'utente dal momento in cui arriva sul sulla web app fino a quando diciamo Lascia lascia il sito diciamo tutto quello che succede tra il login e logout insomma E dal momento che il server gestisce più client contemporaneamente perché possono esserci ovviamente più utenti e loggati contemporaneamente sul sito come fa a identificarli utilizza quello che è il cosiddetto cookie di sezione nel caso di PHP in caso in cui il linguaggio decente sia PHP il cubizzazione si chiama phpseed e possiamo andare a vederlo possiamo andare a vederlo qua Eccolo qui nel mio caso il cookie contiene questo valore che identifica in modo univoco la mia sessione quindi dal momento che Identifica il modo univoco la mia sessione è facile immaginare che questo questo cookie deve essere assolutamente protetto cioè che succederebbe se qualcuno riuscisse a entrare nel mio browser a leggere il valore di questo cookie ad andare sullo stesso sito e a modificare il valore di questo cookie Di fatto si impossesserebbe della mia sessione Cioè sarebbe di fatto vendicato al mio posto e questo ovviamente non deve succedere Però vabbè in questo caso sto in locale quindi è un po' difficile che succeda Quindi anche le impostazioni tra le impostazioni più importanti del web server ci sono quelle atte a proteggere a proteggere questo cookie ne vediamo un paio che sono due Flag cioè sono proprietà che hanno un valore binario che può essere troppo false che sono Secure e http only Che cosa fa impedisce al browser di inviare il cookie attraverso richiesta in chiaro cioè richieste in http quindi il cookie che diciamo dal momento che serve al server per identificare la sessione viene inviato dal browser a ogni richiesta http se quel cookie ha salvato come flaggato come Senior il browser Invia soltanto se la connessione in https e non in http il secondo Flag che ugualmente essendo un plug può valere troppo false e http only è anche molto importante perché dice il browser che il cookie va usato esclusivamente per essere inviato attraverso le richieste http https Non può essere acceduto tramite JavaScript e questo è di cruciale importanza per per evitare diciamo le conseguenze di grossa scritta Infatti noi prima quando abbiamo fatto il test di crossfit dripping cosa abbiamo fatto il codice che abbiamo iniettato era un codice che si limitava diciamo a visualizzare un alert fastidioso ma tutto sommato innocuo in realtà un vero attacco di grossa descritting a cosa mira mira a rubare il cookie di gestione quindi cosa fa un vero attacco di grossa descritting il codice diciamo iniettato cosa fa va a leggere tramite opportuna funzione JavaScript i cookie salvati individui alcuni di sessione poi normalmente fa una chiamata la chiamata di rete una chiamata http a un server che è sotto il controllo dell'attaccante e gli invia questo codizione così l'attaccante che ha quel controllo di quel server legge il cui utilizzazione si impossessa la sezione dell'utente malcapitato della questione dell'utente malcapitato se noi possiamo http only one True non è possibile accedere a quel cookie tramite JavaScript ora per questo però è importante precisarlo non significa che impostando quella attributo quel plug Allora possiamo scrivere codice insicuro Quindi ognuno deve sempre fare la propria parte quindi lo sviluppatore non può dire vabbè posso scrivere anche codice non sicuro tanto cioè il sistemista che è impostato ugualmente il sistemista non può dire vabbè evito di impostare http Holly perché tanto c'è lo sviluppatore bravissimo non ti potrà mai una vulnerabilità di troppe scritting questo vale per tutti siamo esseri umani gli errori possiamo metterli tutti quindi diciamo sempre fare sempre la nostra parte questo è un concetto molto importante che ci tengo diciamo a ribadire allora poi Diciamo altri aspetti anche questi scendendo ancora di più di livello partiamo di sistema operativo e di rete anche qua diciamo ci sarebbe sarebbe tantissimo da dire quindi diamo soltanto qualche rapido cenno è importante sia per il sistema operativo che per il software tenere sempre installata una versione supportata quindi tenere d'occhio le versioni se vanno in endoflife e seguire i bollettini di sicurezza e installare dei pezzi di sicurezza Poi altra cosa molto importante è installare e configurare correttamente un certificato e utilizzare sempre https quindi quando c'è una web app in cui c'è Quindi qualunque sito web dinamico in realtà è sempre necessario usare https Quindi per evitare che i dati Soprattutto quelli autenticazione viaggino in chiaro Ok l'ultima parte Allora qui abbiamo visto diciamo tutta la parte la parte tecnica in realtà molte vulnerabilità derivano spesso anche non tanto da errori nella scrittura del codice o nella configurazione del server molto vulnerabilità talvolta derivano pure dal da un errore nel disegno dei processi e quindi proprio sono vulnerabilità tipologica o business Logic Come si dice queste diciamo possono essere molto insidiose diciamo per essere individuata richiedono diciamo un certo spirito critico anche nel costruire proprio i processi gli use case specifiche funzionali del della web app che si sta dal momento in cui si va a progettare Allora anche qui diciamo per illustrarvi questa cosa mi baso su un esempio anche questo diciamo liberamente ispirato a un fatto realmente accaduto qualche anno fa Sì ho avuto modo per collaborare di collaborare con un'azienda la chiameremo Pluto S.r.l che aveva la sua web app chiamiamolo appunto web app ora questa web app permetteva agli utenti di registrarsi tramite username e password e di autenticarsi quindi sempre con le mele e password Quindi da la classica diciamo forma di autenticazione e raccoglieva nome cognome e data di nascita di ogni utente ora a un certo punto l'amministratore di prodotto srl dal momento che voleva semplificare la vita agli utenti ha deciso di di aggiungere l'autenticazione Social tramite meta che all'epoca si chiama ancora Facebook Allora a questo punto però ora se l'utente era registrato con una certa email su Pluto web app e era registrato con la stessa mail in Facebook dal momento che dal momento che faceva login su Facebook dal momento che faceva login su Facebook tramite dei via era possibile ovviamente premio permesso da parte dell'utente Ricavare nome cognome data di nascita però dal momento che le mele era la stessa era possibile fare la riconciliazione quindi capire che l'utente registrato su sul web app era lo stesso che si stava loggando tramite Facebook ma che succedeva se lo stesso utente è registrato a Facebook per esempio con la mail Mario
[email protected] e alla tua web app con EMME Rossi che ho cioè sample.it in questo caso si trovava due account due account diversi perché non era possibile fare la riconciliazione allora ho esposto il problema Diciamo non di non facilissima soluzione a chi poi doveva prendere decisioni e mi ha proposto questa soluzione riguarda fai così appena l'utente effettua l'autenticazione Social come con Mario Rossi che c'è sempre un punto.it perché l'America che è utilizzato per registrarsi su Facebook allora tramite dei piani di Facebook otteniamo nome cognome data di nascita a questo punto che cosa facciamo Andiamo nel database di tutto web app andiamo a cercare se c'è un utente che ha gli stessi nomi cognome data di nascita anche se è legato alla email diversa e noi possiamo diciamo legare dedurre che sono lo stesso utente e legare due account ora ve lo chiedo e quindi scatenatemi nei commenti questa soluzione secondo voi è sicura Guarda Paolo c'è c'è Alessandro che ti ha preceduto poi recuperiamo pure qualche commento e domanda precedente però dice così basta sapere il nome e cognome data di nascita per rubare di reccount sulla web app è giusto Esatto pure Andrea Beh Dice è sicura no Immagino che tu gliene implementata giusto Assolutamente no no sono riuscito fortunatamente sono riuscito a convincerlo Sì comunque vendo anche la ad esempio quello degli screenshot anche lì Diciamo L'ho convinto che insomma meglio lasciar perdere sì no no fortunatamente e sino su questo sia adesso ovviamente concludo non ci lavori più giusto No no questo però molto spesso questo Ecco voglio fare una cosa su cui insisto soprattutto mi rivolgo ai Junior developer spesso nelle aziende chi prende decisioni anche in buona fede Per carità no Adesso non voglio fare polemiche non ha diciamo questa sensibilità tecnica quindi spesso propone delle soluzioni senza rendersi conto che in realtà che in realtà soffrono di vulnerabilità quindi oltre a fare gli sviluppatori vi invito cercate anche di avere spirito critico anche di guidare poi chi deve rendere decisioni e di fargli capire individuare queste diciamo queste possibili problematiche a cui magari non riescono non riescono diciamo e a primo impatto a capire insomma Ok In realtà si contrariamente a quanto aspettassi ho finito con 10 minuti di anticipo Allora la prima volta che la prova che hai fatto Paolo dura meno cioè la diretta dura meno di una prova dai lascia pure i tuoi contatti e immagino qualcuno poi sì ok sono non so domande chiarimenti Allora c'è Alessandro che dice non solo sugli aspetti della sicurezza Tra l'altro Ecco sarebbe carino una volta fare semmai un esperimento in diretta di social engineer con qualche che ne so call center velocemente così do tempo Se volete scrivere delle domande delle osservazioni poi ne abbiamo due o tre da recuperare che ho aperto già il quiz Siccome da un po' di tempo credono due o tre puntate viene chiesta l'email all'inizio l'email quale scopo ha Prima di tutto così posso contattare il vincitore senza bisogno di mandare come gli amici sanno qualcuno del passato lo screen facciamo prima e soprattutto siamo sicuri poi di di beccare sempre il vincitore Quindi domani vi contatterò sia per la lottery sia per il talk quiz ma in più se usate poi sempre la stessa email in futuro ci sarà modo di recuperare i punti Sempre se uno se qualcuno vorrà quindi ci sarà una mega classifica dei quiz ehm giocate quindi non solo per vincere stasera mettiamo in ballo il buono di Adoc Minds però giocate pure per scalare la classifica ok nel frattempo però vabbè dice Andrea l'argomento è molto vasto Sì assolutamente questa era l'idea che ho chiesto a Paolo appunto di fare una piccola introduzione perché qui secondo me ne potremmo parlare a iosa e non è detto Io la butto lì a Palo perché in realtà l'abbiamo già parlato con Paolo non è detto che ci troviamo oppure tanti di voi a cui il tema interessa no sia che possa raccontarci qualcosa sia che interessa contribuire non è detto che non potremo aprire proprio una community ad hoc perché no magari giusto Paolo Ecco allora sì le live rimangono sul canale Quindi mi raccomando mettete like così ricevete le notifiche rispondo alla domanda di Detroit poi c'è Marco Ecco chiedere di meglio non è mai la soluzione sicura l'altro Marco non so se potrei fare quelle domande perché c'è pure una domanda che quella recuperiamo direttamente lunedì prossimo a Roma perché Marco è nostro amico che ci viene a trovare Quando ci incontriamo a Roma allora Io torno un po' indietro Vabbè Marco come Risolto col cliente del Diritto d'autore Vabbè penso che No beh alla fine poi non Cioè ha capito che in effetti non era qualunque metodo sarebbe stato facilmente aggirabile Quindi non aveva proprio senso diciamo sforzarsi per cercare di implementare una cosa del genere io poi scendo giù eh ne sono segnate Vabbè qua e poi c'è più un'osservazione di Marco che tra l'altro salutiamo perché è stato speaker proprio di recente di una serie dedicata a docker dice Cioè è sempre bene sanitizzare però poi ci sono altri tipi di soluzioni come i firewall da poter mettere sopra se Marco in una prossima puntata se vuoi raccontarci pure tu mi sembra che ha da come lo dici già c'è molta esperienza Se il bene accetta Qui c'è una domanda di Marcello se non sbaglio era proprio quando parlavi di sanitizzazione poi Ecco Marcello se sbaglio Semmai continua cioè scrivi nei commenti ma facendo un ciclo veloce si riuscirebbe a trovare la parte iniziale che potrebbe dare indicazioni prima al fattori No scusa penso quando parlavi di Ash Paolo facendo Scusa non ci vedo veloce si potrebbe trovare la parte iniziale che potrebbe andare indicazioni Forse dice la parte di no la parte di Ash non derivata dal salto no Perché diciamo qui Vabbè qua dovremmo introdurre il concetto di concetto di diffusione si chiama nella crittografia e quindi diciamo non è che ecco prendiamo riprendiamo Questo esempio abbiamo la stringa di input qui e l'output qui non è che il primo pezzo dell'asso dipende dal primo pezzo dell'input o il secondo pezzo dell'asse dipende dal secondo pezzo dell'input qui in realtà ogni cifra Dipende da tutto l'input Quindi no non è [Musica] Cioè non è che diciamo andando a provare diciamo per forzare la prima parte dell'acido io tengo stringa Ciao Però ci sono Vabbè degli archivi giusto la domanda sì archivi che sono delle cosiddette Rainbow table in cui diciamo è possibile trovare gli esce tutti i classificati per parole di uso comune per esempio tutte le parole dei vocabolari oppure le password di uso più comune quindi se uno utilizza come password Non so 123456 questa relativa Ash questo ascio sicuramente si trova nelle Rainbow table e per questo che si che si aggiunge un Salt Andrea propone la sua soluzione io logo con le credenziali vecchie una volta loggati Don moda l'utente di conciliare l'account in quel caso Sì bisognerebbe contattare Sì giustamente su entrambi entrambi gli indirizzi email in modo che che siamo sicuri che sul vecchio indirizzo email quello che era già registrato sia effettivamente lo stesso del nuovo Sì Marcello ci conferma che si riferiva a quello Quindi perfetto allora io direi ora di diciamo arrivare al quiz così diamo modo pure a qualcuno di aggiungersi e ricordiamo velocemente le regole ti ho tolto lo schermo Paolo Poi invito i nostri amici amica a scrivere eventuali altre domande così poi le possiamo fare alla fine io vado nel frattempo Come sei stato Paolo buono cattivo vado a caricare il quiz No beh credo buono pure io perché le ho viste rapidamente adesso Ecco Siete già in 11 Però ora vi mando lo schermo così vi potete aggiungere Ok ok Eccole qui allora facciamo subito il quiz Eccolo qui così potete comunque accedere se qualcuno Scusate al volo Scusate al volo Allora andiamo andiamo andiamo andiamo andiamo andiamo andiamo Come sei stato Allora Paolo buono cattivo Scusami così senso buono dai ancora una volta si giocherà di essere cattivo ma nulla non ci riusciamo mai ho qualche problema tecnico ma ora Risolviamo non vi preoccupate Allora sono cinque domande ricordiamo velocemente le regole Nel frattempo vi state aggiungendo sono cinque domande a risposta multipla Ok ci sono quattro risposta 20 secondi per rispondere ok vince Prima di tutto chi risponde alle domande in maniera corretta e poi chi fa presto poi Ecco con Paolo Noi leggiamo Però mi raccomando vedete le quando arrivano sul vostro cellulare ok perché ci sono questi 20 secondi di come si dice di differenza Per cui arriveranno prima sui vostri cellulari ma a tutti arrivano allo stesso momento siamo pronti Paolo allora 3 2 1 Penso che ci siamo stabilizzati siamo su 18 quindi tutti pronti via chi dovrebbe occuparsi della sicurezza di una web app soltanto lo sviluppatore di back-end soltanto lo sviluppatore di front end soltanto sistemisti tutti i precedenti in realtà dovete rispondere veloce dai dai sono semplici vediamo un po' Vabbè dai Qui sei stato abbastanza chiaro Paolo Qual era quella esatta la prima giusto abbiamo illuminata l'abbiamo illuminata a tutte le precedenti andiamo velocemente alla seconda vai Quali sono i controlli più importanti sull'input dell'utente per evitare attacchi di ingection padding validazione di sanitizzazione conversione in bel 64 controllo dell'ortografia vediamo un attimo pure qui il tempo è finito hanno risposto tutti 3 2 1 Questo è dedicato un'intera sezione quindi diciamo è stato troppo buono Paolo eh Ok quando necessario usare l'input dell'utente prima di visualizzarlo nella pagina sempre solo con le versioni più vecchie web server sempre quando i fuochi di gestione ha il flag http Holly solo se per il weekend non si usa un framework Guarda se l'è fatta pure tu in tempo a leggerla diventa il quiz per te Vabbè qui vabbè questo poteva essere un pochetto grigio quindi dai però [Musica] siamo alla terza quindi ecco ho sbagliato massimo due dovete essere veloci Eh quindi quarta che cosa resta quella injection un linguaggio di programmazione un algoritmo di crittografia un tipo di attacco resosibile dal mancato controllo dell'input dell'utente la concaterazione di un soldo ad una stringa prima di calcolarne resh secondo me si vince proprio sul filo del secondo quindi vediamo un attimo Eh però dai qui Qui illuminiamo quella corretta che la terza e facciamo vedere la classifica Allora Alberto Marco Ah regà tutti sono stati bravissimi a rispondere però è questione di tempo Quindi vediamo se l'ultima Allora tolgo la classifica Così torniamo alla quarta e sei pronto Paolo a leggerla ci riuscirai almeno a leggerla Non mi ricordo però no mi sa che corta 3 2 1 via Perché è importante customizzare la pagina di errore 404 per mantenere aggiornato il sistema operativo per permettere il corretto funzionamento di https per evitare information Disclosure per risparmiare banda Dai questa Secondo me è fatto un po' più riflettere quindi Vabbè però vabbè sono stati bravi Ciao Paola è stato buono questo MIT up 321 eccetto ribaltoni Ecco immaginavo Alberto che ha vinto sul tempo però non è detta tutta perché ora Allora Alberto non c'è più non so se arrivi un partecipante presidente mitup però non c'è più bisogno di mandare screen Quindi adesso c'è la classifica c'è l'email quindi domani alle mail ti contatto mettendoti in contatto con ad hoc Minds per il buono c'è un po' di tempo da aspettare per il fornitore però non vi preoccupate arriveranno tutti e nel frattempo si può aggiungere qualcosa Paolo così io carico la lottery e ci salutiamo in bellezza Sono domande [Musica] allora allora allora io vado a caricare siete 17 siete 17 Eccoli qui allora allora allora allora allora no allora prossimi meetup Paolo acquisti pensando No perché uno Stato dice alla prossima puntata No questo è un mitop singolo Beh possiamo continuare approfondire questa tematica della sicurezza magari farne uno dedicato esclusivamente alla sicurezza applicativa Quindi scrivetelo se lo volete all'interno dei messaggi allora siamo pronti per l'estrazione Ok come sapete ormai Fedelissimi il bug è stato risolto da un bel po' limitato e siamo tutti un pochino più tristi Quindi sei pronto Paolo Cioè sei pronto a dare il via dai tu il via quindi ti ho messo la prova Paola Allora io vedo pure già chi ha vinto Quindi però l'animazione Et voilà Marcello che si aggiudica Tra l'altro a me no È bellissimo perché ha messo una un'immagine trasparente quindi si vedono i partecipanti di dietro però vince Marcello Quindi domani mattina ti contatterò per il premio E che dire qualche parola finale Allora noi ci vediamo prossimità peraltro visto abbiamo parlato di Cookie prossima domani abbiamo un'altra metap con the world Space ci vediamo invece prossima settimana prossima Martedì e perché di Roma è uguale l'altro penso che ci sarà pure Paolo Ci vediamo lunedì o comunque ci vediamo Ecco Spero che sarete in tanti lunedì sera perché di Roma Allora grazie grazie a tutti Ecco salutiamo Un po' i nostri amici Raffaele e tutti gli altri Se avete poi altre domande contattate direttamente Paolo e ci vediamo quindi quando volete senza problemi domani alle prossime puntate Ciao ciao e grazie Ciao ciao Grazie a tutti Buona serata Ciao ciao