🎓 Vuoi acquisire *solide conoscenze* nell'ambito del NETWORKING o diventare un PROFESSIONISTA LINUX CERTIFICATO? Il modo migliore per cominciare è seguire un corso *ben strutturato* e *semplice da seguire* , ma soprattutto tenuto da un docente sempre disponibile per *rispondere alle tue domande.* Tengo corsi per tutti i livelli, visita morrolinux.it per maggiori informazioni.
@@alexandrialibrary8152 Ciao, ti riferisci al link di questo commento? a me sembra funzionare correttamente, prova a inserire manualmente morrolinux punto it : morrolinux.it Fammi sapere! Grazie mille
Ciao Morro, ho visto che hai alcuni corsi in sconto, qual è l'ordine giusto in cui farli? (ero anche interessato a quello di Arch ma sono disoccupato e mi pensa spendere 100) così so quale comprare per primo. grazie.
@@mikethelion Ciao! Ho appena aggiornato i coupon, ora dovresti vederli a un prezzo molto vantaggioso. Quanto all'ordine: iniziare con il corso base che ho tenuto su Arch mi sembra un'ottima idea e te lo stra-consiglio. Poi dipende anche da quali sono i tuoi obiettivi: se ad esempio vuoi farti la certificazione linux nel più breve tempo possibile per candidarti alle posizioni di sysadmin, potresti iniziare direttamente dai corsi LPI. Su corsolinux.com ho preparato un diagramma apposta per decidere da dove cominciare :)
Ah queste pipeline, fonte di gioia e dolori. Si fa di tutto per cercare di tenerle piene e si finisce sempre per cadere nelle stesse problematiche. Non sarà mica il caso di ripensarlo sto sistema dopo 60 anni? (Spieghi davvero bene, complimenti, si vede che ti sbatti enormemente per semplificare cose che sono talmente a basso livello che pure un laureato medio fatica a capire probabilmente). Sempre al top morro.
Come programmatore di hardware e firmware di vecchia data sono felicissimo di vedere ragazzi come te che spiegano queste cose per molti oscure. Hai un nuovo iscritto.
Ciao, sono interessato anch'io a quel mondo. L'anno prossimo dovrò scegliere l'università, nel caso decidessi di proseguire con l'informatica (mi interessano anche altre cose totalmente diverse, dovrò decidermi poi), per quel tipo di programmazione sarebbe meglio ingegneria informatica o informatica pura?
No, Ingegneria Elettronica. Io ai tempi ho sbagliato iscrivendomi ad Ing. Informatica, ora per la magistrale sto cercando di aggiustare il tiro iscrivendomi al corso di Ing Informatica magistrale - Elettronica Embedded. Ma appunto volendo lavorare sull'hardware il corso adatto è elettronica.
Spiegazione magistrale, un pò meno il titolo click bait focalizzando il problema su Apple M1, quando invece è generale e riguarda TUTTI i costruttori, allo stesso modo.
Eh ma "apple bad" vende sempre. Attira quelli che la roba apple l'hanno vista, se va bene, in fotografia; purtroppo però poi vanno in giro a fingersi esperti ripetendo i meme altrui. Il clickbait però ha funzionato anche per me: pensavo fosse un video comico su "col mac non si può giocare".
E' impressionante quanto tu sia capace di spiegare argomenti così complessi come se stessimo discutendo di un taglio di capelli. Complimenti vivissimi!
Questo è il genere di video che ti fa sognare rendendo un sabato che di suo è bellissimo, ancora più interessante e avvincente, stimolando letture e approfondimenti, sempre più soddisfatto di aver trovato questo canale. Grazie per la condivisione\(^_^)
Come ad altri, qui nei commenti, hai messo anche a me nostalgia dei tempi dell'Università (per la verità lo fai quasi in ogni tuo video). Si vede che sei un numero 1 e ti auguro di avere successo in questo campo, te lo meriti.
Video fenomenale, conosco per lavoro tanti espertoni di cybersecurity che non sarebbero in grado di spiegare questa vulnerabilità con la tua stessa chiarezza espositiva. Chapeau.
Ho consegnato giusto 3 ore fa una tesina compilativa sulle vulnerabilità Meltdown e Spectre, tempismo perfetto per scoprire una ulteriore vulnerabilità che si basa su quelle stesse tecniche ;)
Ma tu hai capito come mai il programma non crasha? Tecnicamente una volta che il programma prende il ramo falso (minuto 8:08) non dovrebbe crashare anche il programma?
@@samuele7630 No perchè non avviene la verifica dell'hash che fa attivare il trap handler, o la verifica la fa disabilitando però i flags di trap per motivi prestazionali.
Grande Morro, mi hai fatto ripescare dalla memoria gli esami di architettura degli elaboratori e sistemi operativi e il fascino che emanavano mentre gli studiavo. Il concetto di preemptive (prediction e simili) e i puntatori di memoria sono sempre stati i portali per ogni attaccante. Molto molto bella la spiegazione, e sto pensando di iscrivermia uno dei tuoi corsi per rispolverare meglio il mondo Linux, ci farò una ragionata. Keep watch pacman ! Ciao
Alessandro ti consiglio vivamente di iscriverti ad un corso di Morro! Io l'ho fatto .. spiega benissimo e mi ha aperto la mente su un modo affascinante che per pigrizia non ho mai voluto esplorare.. oltre che aiutarmi moltissimo del campo lavorativo!
Primo video che vedo del canale consigliato molto randomicamente da YT. Sono davvero soddisfatto di aver trovato il tuo canale morro. I migliori 14 minuti e 30 sec passati a capire un argomento di cui davvero sapevo pochissimo. Ti continuerò sicuramente a seguire.
Sebbene ho già delle basi di Buffer Overflow & company, è assurdo il livello di chiarezza con cui hai affrontato la questione; l'hai resa davvero masticabile a tutti. Complimenti Morro!
Ciao morro bellissimo video e spiegato ottimamente anche se salti parecchi pezzi anche abbastanza importanti, ma capisco per semplificare bisogna sacrificare qualcosina. Comunque si dice "dereferenziare" e non "deferenziare" perché stai "togliendo la referenza"
Per un ignorante come me in questo "settore" non è stato facile guardare tutto il video, qualcosa a intuito ho compreso, ma bravo veramente nella spiegazione, iscrizione e like meritati 👍
Così complicato e spiegato in modo così comprensibile! Un mago come sempre! Ti manca solo il "bianco e nero" nel montaggio video durante una "battuta" e saresti completo 🤣
Complimenti per la chiarezza e la capacità di semplificare concetti difficili da comprendere. Grazie per aver scelto un livello divulgativo che tutti possono seguire. Continua così, ne abbiamo bisogno! (...perlomeno io)
Complimenti per la spiegazione tecnica, durante la visione del video pensavo proprio alla frase finale 😂 posso sapere con che software crei le grafiche? Grazie
Adoro i tuoi video, informativi, chiari, con fonti... Ti ammiro un sacco e stimo, tieni alto il mio interesse nella materia dando spunti di video in video. Non vedo l'ora di divenire maggiorenne e poter investire in un tuo corso, che se sono strutturati allo stesso modo daranno soddisfazioni
Ciao! Premetto: 1. è solo il secondo tuo video che guardo, ed entrambi molto ben fatti (interessanti ma brevi e comprensivi), quindi complimenti 2. mi sembra strano essere qui a commentare perchè tipicamente non lo faccio, vengo su youtube per svagare o imparare Ma in questo video parli di qualcosa che conosco, e sono sicuro anche che hai perfettamente idea di ciò che dici. Ma appunto per questo, per piacere, davvero, non si dice "deferenziare" ma "de-referenziare". Scusa la precisione ma questo fa veramente male alle orecchie. Per il resto grande, continua così ;) Peace!
Di tutti i video che ho visto sull’argomento è quello spiegato meglio, complimenti davvero, non ti conoscevo ma ti sei guadagnato la mia iscrizione e i like per tutti i video futuri. :)
La sicurezza informatica ha smesso di appassionarmi, nei metodi, molto tempo fa. Per un attimo del video: ho pensato si fosse riaccesa la fiamma, ma no! Grazie lo stesso del filmato, ora potrò versare meritati secchi di "fango" sugli Apple che qui qualcuno consigliava (mal comune mezzo gaudio) ma lo potevo fare già prima.
Forse è un bene: vuol dire che perlomeno le grandi falle, tipo hacking telefonico col fischietto, sono coperte by default e solo i casi limite rimangono scoperti. Quello che ho visto però è che generalmente si guarda solo alla visione di macroinsieme e si fa affidamento a una tecnologia a occhi chiusi piuttosto che analizzare i sui casi d'uso; ti faccio un esempio: Docker e i Cloud services stile Kubernetes consentono di creare sistemi molto complessi, automatizzati e potenzialmente molto più sicuri; detto ciò ho sentito la maggior parte della gente usarli come se fossero il "sacro graal della sicurezza", come se una volta in Docker nessun attacco fosse possibile o se Kubernetes o Cloud non fosse comunque una rete di VM potenzialmente attaccabili. Stessa cosa con quasiasi altra tecnologia come VPN, firewall, etc. trattata come "patch magica di sicurezza". La sicurezza oramai non è più tanto dovuta ai problemi dello "strumento" ma generalmente nell'uso improprio che se ne è fatto.
Grande Morro, già la tua eloquenza è di gran lunga superiore a molti "espertoni" del settore, con queste animazioni è tutto ancora più chiaro, riesci sempre a fare un video migliore del precedente... Mi inquieta però sapere che anche la tanto acclamata sicurezza del nostro amato pinguino possa crollare come un castello di sabbia di fronte queste falle hardware... Perchè anche Linux è coinvolto vero? O non è così? Ti prego dicci che non è così!! Un abbraccio! ;)
Ciao Marcello! In realtà Linux nemmeno implementa la pointer authentication di ARM, quindi questa ulteriore barriera che è stata compromessa non l'abbiamo mai avuta in primo luogo :D
piccolo consiglio del tutto *personale* (sottolineo personale, niente hater perfavore): Hai la voce da fatalista :D potresti essere piu allegro perfavore? mi piace molto cosa e come lo dici. E' la voce che non mi permette di concentrarmi a lungo. In bocca al lupo! Complimenti
Semi OT. Usi per montare i tuoi video Davinci, te l'ho sentito dire più di una volta. Prima o poi ti andrebbe di far vedere qual è il tuo flusso di lavoro? Come tagli, cuci, fai il voice over o gli schemi?
Alla fine del discorso il problema risiede sull'architettura hardware dei processori che ha dei difetti strutturali che non possono essere cambiati facilmente. Si dovrebbe rifare tutto da zero, ma il costo è così alto che non interessa a nessuno. Se un sistema ha delle falle di basso livello per il sistema è meglio, perché le falle servono per tanti motivi, sia a livello di controllo che di denaro. Ricordo che l'economia del cyber crime è molto grande, è una buona fetta del suo indotto si basa sul controllo di altri sistemi attaccabili. Comunque grande Morro👍
Una cosa carina sarebbe introdurre una funzione che in quel momento elimina un record dal TLB. Ad esempio ho 5 spazi, e in quel momento il sistema consente l’accesso solo a 4. Finita l’esecuzione ne ripristina 5
Caro Morro, ho sentito e letto deferenziato... È deREferenziato!😂 Video molto interessante, comunque, perfettamente comprensibile dopo due anni di Poli
Gran bel video, grazie per la spiegazione. Vedevo la questione riportata da amici Apple-hater ma come spieghi tu non è che se non hai una cpu M1 sei più sicuro, perché di base non hai la protezione aggiuntiva data dal meccanismo che su arm protegge (o almeno ci prova) i puntatori. Devo recuperare il paper del MIT perché la cosa mi incuriosisce e mi affascina pensare a questa gente che scopre queste falle ☺️👍🏻
il video è interessante ma per serietà del canale io lo avrei intitolato: Come funziona Pacman: la grave falla di tutti i processori Arm versione XYZ. poi avrei meglio specificato che questa sicurezza sui puntatori che hanno i processori Arm li pone un gradino sopra agli altri che architettura x64 compresa (non sono un esperto e potrei sbagliarmi) che questa sicurezza intrinseca non se la sognano neppure. Certo che dire che il chip M1 ha una falla fa fare molte più visualizzazioni. Caro morrolinux visto che il tuo canale mi pare serio come pure i tuoi corsi, per distinguerti dagli asini che pullulano su youtube, ti consiglio di mettere titoli meno fuorvianti…..
Tutto chiarissimo, quello che non mi è chiaro però è come fa un attaccante ad innescare questa vulnerabilità? Creando una pagina web che l’utente banalmente va a visitare oppure deve creare un programma che l’utente incautamente va ad eseguire?
morrolinux non cambiare mai! Attualmente la qualità dei tuoi contenuti fa PAURA! Altro che PacMan sei te la falla per gli altri utubers che si definiscono del "mestiere".
Domanda stupida e premetto che non mi sono informato ulteriormente a riguardo. Hai detto che quando ci sono delle condizioni, la branch prediction unit esegue entrambe le direzioni, ma a quel punto se facendo il calcolo ci si accorge che un indirizzo è “fallato” perché non terminare comunque l’esecuzione del programma lanciando un eccezione, anche se è nel branch che non verrà eseguito? Secondo me se il tipo di eccezione riguarda un puntatore corrotto dovrebbe sempre crashare il programma. Spero di essermi spiegato 😂
Ottimo video, grazie mille per averlo condiviso. Domanda: come fa un programma a sapere in quanto tempo è stata eseguita una sua istruzione? So che esistono strumenti di profiling, ma mi sembra difficile che questi possano apprezzare misure così piccole. Non so esattamente come funzionino, ma visto che si parla di pochi cicli macchina allora il profiling potrebbe involontariamente invalidare la cache, oppure aggiungersi nel computo del tempo totale. Esistono system call o accorgimenti a basso livello per poter misurare o stimare quanti cicli macchina ogni istruzione impiega?
Esistono interfacce di profiling in hardware ma non sono direttamente accessibili da userspace per un attaccante non privilegiato, così si sono inventati uno stratagemma con due thread e una variabile condivisa che viene incrementata come "timer". Nel paper è spiegato un pelo meglio ma in sostanza a quanto pare funziona anche così
@@morrolinux pensavo anche io qualcosa del genere in realtà, anche se anche il multithreading ha un overhead non indifferente. Adesso mi chiedo se il sistema operativo non possa alterare questo computo, mi sembra la zona di intervento più sensata. Poi se consideriamo che sono necessari (massimo) 65536 tentativi allora si potrebbe rallentare/invalidare la cache una volta ogni mille per rovinare il gioco agli hacker. Magari il paper risponde anche a queste domande, lo leggerò sicuramente, grazie
A proposito di sicurezza, ho installato la prima volta Ubuntu studio ultima versione originale da zero unico problema è la sicurezza dell'utente. Cosa intendo, nell'installazione iniziale chiede la password obbligatoria ok e fin qua tutto a posto, ma una volta che entro nell'utente mi entra anche se non la metto. Non capisco il motivo stessa cosa vale anche quando installo le app oppure faccio gli aggiornamenti di sistema appare la schermata inserisci password e guarda a caso lo accetta anche senza inserirla. È un po' strana sta cosa. 😔😤
Ottimo video. Alla fine, quasi tutti gli attacchi che conosco si basano in un modo o nell'altro sulla corruzione della memoria. Forse non sarebbe meglio mandare in pensione il c? Capisco che controllare la dimensione di un Array rallenta un po' l'esecuzione, ma siamo sicuri che tutti questi layer di protezione non rallentino il tutto ancora di più? Se non è chiaro, propongo un approccio alla java dove se scrivi in un Array fuori dai limiti vada in eccezione il programma
@@morrolinux eh lo so... Sono un programmatore Java di vecchia data, e ho tentato di imparare il c almeno tre volte nella vita ma proprio non ce la faccio... Non è che non lo capisco, ma vengo preso dai conati ogni volta... adesso sto imparando rust, ma rimango perplesso dalle dichiarazioni di Torvalds che non ritiene valga la pena di riscrivere il kernel. Secondo me, riscriverlo un po' alla volta potrebbe ripagare gli sforzi
Ma la chiave quindi é la stessa per tutti i puntatori? Se così fosse non si potrebbe leggere in memoria l'address firmato di un puntatore, trovare un'implementazione della sign function e crackare la chiave senza interferire con il programma?
Detta da te così sembra più un problema di controllo e verifica e non un problema hardware come si vocifera, mi chiedo se davvero vogliono la sicurezza, perché non mettono alla prova i nuovi componenti hardware facendoli testare “prima della loro uscita sul mercato da persone competenti”? Come si fa per le falle per i siti web, mettendo in palio soldi veri.. sono più che sicuro che usciranno buchi mai visti prima!
Per fare il bruteforce ho bisogno di un codice ad-hoc per trovare la chiave, quindi due problemi: 1) devo eseguire questo codice nella macchina che voglio attaccare, quindi sfruttare altre vulnerabilità per farlo e 2) devo trovare il modo di eseguirlo contestuale al codice che voglio attaccare, altrimenti la chiave che trovo è diversa e quindi inutile. Quindi questa vulnerabilità mi sembra comunque poco sfruttabile, ma il fatto che ci sia ci ricorda quanto è difficile quello che stiamo tentando di fare: rendere sicura l'esecuzione 😁
Immagino che sia utilizzata per la privilege escalation, per arrivare a parti kernel o di altri programmi a cui non si ha accesso, lanciando codice da utente con limitazioni comunque si, è veramente un caso molto limite ma da studiare prima che diventi un problema o perlomeno per sistemarlo nelle prossime release hw.
ma se mettessimo un terzo parametro obbligatorio a scanf che chiede la lunghezza che deve avere la stringa? In quel modo renderemo piú sicuro il tutto?
È solo un esempio. Ci sono mille modi in cui puoi corrompere la memoria in C e sono tutti evitabili in un mondo ideale in cui il programmatore è come una macchina perfetta, ma non è così.