{"id":57061,"date":"2021-12-17T17:49:51","date_gmt":"2021-12-17T16:49:51","guid":{"rendered":"https:\/\/www.alground.com\/site\/?p=57061"},"modified":"2022-12-07T10:48:38","modified_gmt":"2022-12-07T09:48:38","slug":"log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j","status":"publish","type":"post","link":"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/","title":{"rendered":"Log4Shell. Cos&#8217;\u00e8 e come funziona la vulnerabilit\u00e0 di Log4j"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Punti chiave<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a14fff6c3021\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a14fff6c3021\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#Cose_Log4Shell\" >Cos&#8217;\u00e8 Log4Shell?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#Quando_e_stata_scoperta_la_vulnerabilita_nella_libreria_Log4j_2\" >Quando \u00e8 stata scoperta la vulnerabilit\u00e0 nella libreria Log4j 2?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#Qual_e_il_rischio_della_vulnerabilita_Log4Shell_nella_libreria_Log4j_2\" >Qual \u00e8 il rischio della vulnerabilit\u00e0 Log4Shell nella libreria Log4j 2?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#Cose_Log4j_2_e_cosa_fa\" >Cos&#8217;\u00e8 Log4j 2 e cosa fa?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#In_che_modo_la_vulnerabilita_Log4Shell_provoca_danni\" >In che modo la vulnerabilit\u00e0 Log4Shell provoca danni?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#In_che_modo_Log4Shell_influisce_sugli_utenti\" >In che modo Log4Shell influisce sugli utenti?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#Cosa_dovrebbero_fare_i_team_di_sicurezza_IT\" >Cosa dovrebbero fare i team di sicurezza IT<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#Specifiche_tecniche_su_come_funziona_Log4j_2\" >Specifiche tecniche su come funziona Log4j 2<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#1_Convalida_errata_dellinput\" >1. Convalida errata dell&#8217;input<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#Perche_Log4j_e_considerato_dannoso\" >Perch\u00e9 Log4j \u00e8 considerato dannoso<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#Funzionalita_di_%E2%80%9Cricerca%E2%80%9D_di_Log4j\" >Funzionalit\u00e0 di &#8220;ricerca&#8221; di Log4j<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#Possibilita_di_ricerche_remote\" >Possibilit\u00e0 di ricerche remote<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/alground.com\/site\/log4shell-cose-e-come-funziona-la-vulnerabilita-di-log4j\/57061\/#Il_tuo_server_e_interessato\" >Il tuo server \u00e8 interessato?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n<p>Dopo la scoperta di una vulnerabilit\u00e0 critica nota come <strong>Log4Shell<\/strong> o <strong>Log4j <\/strong>nei server che supportano il gioco <strong>Minecraft<\/strong>, sono stati effettuati milioni di tentativi di exploit della libreria Java Log4j 2 con una potenziale minaccia per milioni di altre applicazioni e dispositivi in \u200b\u200btutto il mondo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cose_Log4Shell\"><\/span>Cos&#8217;\u00e8 Log4Shell?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><strong>Log4Shell <\/strong>\u00e8 una vulnerabilit\u00e0 software in Apache Log4j 2, una popolare libreria <strong>Java <\/strong>per la registrazione dei messaggi di errore nelle applicazioni. La vulnerabilit\u00e0, pubblicata come <a href=\"https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2021-44228\" target=\"_blank\" rel=\"noreferrer noopener\">CVE-2021-44228<\/a>, consente a un utente malintenzionato remoto di assumere il controllo di un dispositivo su Internet, se il dispositivo esegue determinate versioni di Log4j 2.<\/p>\n\n\n\n<p>Apache ha rilasciato una patch per CVE-2021-44228, versione 2.15, il 6 dicembre. <strong>Tuttavia, questa patch ha lasciato irrisolta parte della vulnerabilit\u00e0<\/strong>, risultando in CVE-2021-45046 e un&#8217;altra patch, versione 2.16, rilasciata il 13 dicembre.<\/p>\n\n\n\n<p>Gli aggressori possono sfruttare la vulnerabilit\u00e0 utilizzando <strong>messaggi di testo per controllare un computer in remoto<\/strong>. L&#8217;Apache Software Foundation, che pubblica la libreria Log4j 2, ha assegnato alla vulnerabilit\u00e0 un punteggio CVSS di 10 su 10, il punteggio di gravit\u00e0 pi\u00f9 alto, a causa del suo potenziale di sfruttamento diffuso e della facilit\u00e0 con cui gli aggressori possono sfruttarlo. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Quando_e_stata_scoperta_la_vulnerabilita_nella_libreria_Log4j_2\"><\/span>Quando \u00e8 stata scoperta la vulnerabilit\u00e0 nella libreria Log4j 2?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>La vulnerabilit\u00e0 \u00e8 stata segnalata per la prima volta all&#8217;Apache Foundation il 24 novembre dal ricercatore di sicurezza <strong>Chen Zhaojun di Alibaba<\/strong>, la pi\u00f9 grande societ\u00e0 di e-commerce della Cina, dopo che un attacco \u00e8 stato documentato il 9 dicembre e ha colpito i server del gioco Minecraft. Ulteriori analisi forensi hanno rivelato che i criminali informatici hanno scoperto il divario in precedenza ed \u00e8 stato sfruttato almeno dal 1\u00b0 dicembre.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Qual_e_il_rischio_della_vulnerabilita_Log4Shell_nella_libreria_Log4j_2\"><\/span>Qual \u00e8 il rischio della vulnerabilit\u00e0 Log4Shell nella libreria Log4j 2?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Log4Shell \u00e8 considerato una vulnerabilit\u00e0 zero-day perch\u00e9 gli attori malintenzionati probabilmente lo conoscevano e lo sfruttavano prima della scoperta da parte degli esperti.<\/p>\n\n\n\n<p>Ci\u00f2 che rende <strong>Log4Shell <\/strong>cos\u00ec pericoloso \u00e8 quanto sia onnipresente la libreria Log4j 2. \u00c8 presente nelle principali piattaforme da <strong>Amazon Web Services<\/strong> a <strong>VMware <\/strong>e servizi grandi e piccoli. La rete di dipendenze tra piattaforme e servizi interessati significa che l&#8217;applicazione di patch pu\u00f2 essere un processo complesso e che pu\u00f2 richiedere molto tempo.<\/p>\n\n\n\n<p>La facilit\u00e0 di sfruttare la vulnerabilit\u00e0 ne aggrava l&#8217;impatto. La libreria Log4j 2 controlla come vengono registrate le stringhe. La vulnerabilit\u00e0 consente a un utente malintenzionato di ottenere il controllo su una stringa e indurre l&#8217;applicazione a richiedere ed eseguire codice dannoso sotto il controllo dell&#8217;utente malintenzionato. In poche parole, gli aggressori possono assumere in remoto qualsiasi dispositivo connesso a Internet che utilizza determinate versioni della libreria Log4j in qualsiasi punto dello stack software.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cose_Log4j_2_e_cosa_fa\"><\/span>Cos&#8217;\u00e8 Log4j 2 e cosa fa?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Essendo il framework di registrazione pi\u00f9 utilizzato su Internet, <strong>Apache Log4j 2<\/strong> \u00e8 integrato in una miriade di applicazioni, utilizzate sui principali servizi cloud come <strong>Apple, Google, Microsoft e Cloudflare<\/strong>, nonch\u00e9 su piattaforme come <strong>Twitter e Stream<\/strong>.<\/p>\n\n\n\n<p>Registra i messaggi dal software e successivamente cerca gli errori. La quantit\u00e0 di dati registrabili \u00e8 ampia e spazia dalle informazioni di base del browser utente e della pagina Web alle informazioni tecniche dettagliate sul sistema su cui \u00e8 in esecuzione <strong>Log4j 2<\/strong>.<\/p>\n\n\n\n<p>La libreria Log4j 2 non solo pu\u00f2 creare semplici registri, ma pu\u00f2 anche eseguire comandi per generare informazioni di registrazione avanzate. In tal modo, pu\u00f2 anche comunicare con altre fonti, come i servizi di directory interni.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"In_che_modo_la_vulnerabilita_Log4Shell_provoca_danni\"><\/span>In che modo la vulnerabilit\u00e0 Log4Shell provoca danni?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Poich\u00e9 la libreria Log4j 2 pu\u00f2 comunicare con altre fonti e servizi di directory interni, gli aggressori possono facilmente usare Log4j 2 con comandi dannosi dall&#8217;esterno e fargli scaricare ed eseguire codice pericoloso da fonti dannose.<\/p>\n\n\n\n<p>Il modo in cui<strong> Log4j 2<\/strong> pu\u00f2 essere sfruttato dipende dalle specifiche del sistema interessato. Finora, la stragrande maggioranza delle attivit\u00e0 dannose \u00e8 stata la scansione di massa su sistemi vulnerabili alle impronte digitali. Secondo un report di <strong>Microsoft<\/strong>, gli aggressori hanno sfruttato la vulnerabilit\u00e0 per compromettere l&#8217;infrastruttura di virtualizzazione, installare ed eseguire ransomware, rubare credenziali di sistema, assumere un ampio controllo delle reti compromesse ed esfiltrare i dati.<\/p>\n\n\n\n<p>Man mano che continuano a crescere i rapporti sulla sfruttabilit\u00e0 di <strong>Log4Shell<\/strong>, le possibilit\u00e0 di attivit\u00e0 dannose sembrano esponenziali. Qualsiasi codice pu\u00f2 essere eseguito sul sistema attaccato, ad esempio, per accedere a dati di configurazione sensibili. Catturando questi dati, gli aggressori potrebbero ottenere il pieno controllo di un sistema e di tutti i suoi dati e applicazioni. Questo \u00e8 paragonabile a un ladro che ha le chiavi della porta d&#8217;ingresso di una casa e la combinazione di una cassaforte all&#8217;interno.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"In_che_modo_Log4Shell_influisce_sugli_utenti\"><\/span>In che modo Log4Shell influisce sugli utenti?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>La libreria Log4j 2 viene spesso utilizzata in molte applicazioni nell&#8217;ambiente infrastrutturale di aziende e organizzazioni. Nel settore dei consumatori, Log4j 2 pu\u00f2 essere trovato anche in dispositivi di archiviazione abilitati alla rete e dispositivi domestici intelligenti, che gli utenti dovrebbero disconnettere da Internet fino a quando non saranno disponibili gli aggiornamenti.<\/p>\n\n\n\n<p>La maggior parte delle aziende rispettabili ha inserito un messaggio di sicurezza corrispondente sui propri siti Web che descrive cosa stanno facendo riguardo alla vulnerabilit\u00e0 di Log4Shell.<\/p>\n\n\n\n<p>I consumatori dovrebbero installare gli aggiornamenti software forniti dai fornitori che utilizzano. Dovrebbero anche cercare di scoprire dai siti e dai servizi che hanno i loro dati personali se l&#8217;organizzazione \u00e8 interessata dalla vulnerabilit\u00e0 di Log4Shell e, in tal caso, quali misure stanno adottando tali organizzazioni per salvaguardare le loro informazioni.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cosa_dovrebbero_fare_i_team_di_sicurezza_IT\"><\/span>Cosa dovrebbero fare i team di sicurezza IT <span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Le organizzazioni che utilizzano <strong>Log4j 2<\/strong> nelle proprie applicazioni e infrastruttura dovrebbero aggiornarle immediatamente. Lo stesso vale per le applicazioni di terze parti. La versione 2.16.0 protegge completamente la libreria dalla vulnerabilit\u00e0 Log4Shell.<\/p>\n\n\n\n<p>Poich\u00e9 ci sono cos\u00ec tanti sistemi probabilmente interessati da Log4Shell ed \u00e8 cos\u00ec facile da sfruttare, le organizzazioni devono agire rapidamente per proteggere i propri interessi e utenti.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Specifiche_tecniche_su_come_funziona_Log4j_2\"><\/span>Specifiche tecniche su come funziona Log4j 2<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Convalida_errata_dellinput\"><\/span>1. Convalida errata dell&#8217;input<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>La causa principale di Log4Shell, formalmente nota come&nbsp;<a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2021-44228\"><strong>CVE-2021-44228<\/strong><\/a>&nbsp;, \u00e8 ci\u00f2 che il NIST chiama&nbsp;<em>convalida dell&#8217;input improprio<\/em>.<\/p>\n\n\n\n<p>In parole povere, questo significa che riponi troppa fiducia nei dati non attendibili che arrivano da estranei e apri il tuo software a trucchi subdoli basati su dati trappola.<\/p>\n\n\n\n<p>Se hai mai programmato in C, ti sarai quasi sicuramente imbattuto in questo tipo di problema usando la&nbsp;<code>printf()<\/code>funzione (&nbsp;<em>format string e print<\/em>&nbsp;).<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">int  printf(const char *format, ...);\n \nint  count; \nchar *name;\n \n\/* print them out somewhat safely *\/\n \nprint(\"The name %.20s appeared %d times\\n\",name,count);\n<\/pre>\n\n\n\n<pre id=\"block-256ab811-b682-491f-a855-2ea0fd51b037\" class=\"wp-block-preformatted\">Fornisci una stringa di formato hard-coded come primo argomento, dove %.20s significa \"stampa l'argomento successivo come stringa di testo, ma rinuncia dopo 20 byte per ogni evenienza\" e %d significa \"prendi un numero intero e stampalo in decimale\".\n\n\n\u00c8 anche allettante usarlo printf() quando vuoi stampare solo una singola stringa, come questa, e spesso vedi persone che fanno questo errore nel codice, specialmente se \u00e8 scritto di fretta<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">int  printf(const char *format, ...);\n \n\/* printfhack.c *\/\n \nint main(int argc, char **argv) {\n   \/* print out first command-line argument *\/\n   printf(argv[1]);    &lt;-- use puts() or similar instead\n   return 0;\n}\n<\/pre>\n\n\n\n<p>In questo codice, l&#8217;utente pu\u00f2 non solo scegliere la stringa da stampare, ma anche controllare la stessa stringa di formattazione che decide cosa stampare.<\/p>\n\n\n\n<p>Quindi, se chiedi a questo programma di stampare&nbsp;<code>hello<\/code>, far\u00e0 esattamente questo, ma se gli chiedi di stampare&nbsp;<code>%X %X %X %X %X<\/code>non vedrai quei caratteri nell&#8217;output, perch\u00e9 in&nbsp;<code>%X<\/code>realt\u00e0 \u00e8 un &#8220;codice di formato&#8221; magico che dice&nbsp;<code>printf()<\/code>come comportarsi.<\/p>\n\n\n\n<p>Il testo speciale&nbsp;<code>%X<\/code>significa &#8220;prendere il valore successivo dallo stack del programma e stamparne il valore grezzo in esadecimale&#8221;.<\/p>\n\n\n\n<p>Quindi un utente scontento che pu\u00f2 indurre il tuo programmino a stampare una stringa di messaggi apparentemente innocua&nbsp;<code>%X<\/code>vedr\u00e0 in realt\u00e0 qualcosa del genere:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">C:\\Users\\duck\\&gt; printfhack.exe \"%X %X %X %X %X\"\n \n155FA30 1565940 B4E090 B4FCB0 4D110A<\/pre>\n\n\n\n<p>Si d\u00e0 il caso che il quinto e ultimo valore nell&#8217;output sopra, risucchiato di nascosto dallo stack del programma, \u00e8 l&#8217;indirizzo di ritorno a cui il programma salta dopo aver eseguito il&nbsp;<code>printf()<\/code> quindi il valore&nbsp;<code>0x00000000004D110A<\/code>rivela dove viene caricato il codice del programma in memoria, e quindi rompe la sicurezza fornita da ASLR (&nbsp;<em>randomizzazione del layout dello spazio degli indirizzi<\/em>&nbsp;).<\/p>\n\n\n\n<p>Il software non dovrebbe mai consentire agli utenti non attendibili di utilizzare dati non attendibili per manipolare il modo in cui tali dati vengono gestiti.<\/p>\n\n\n\n<p>In caso contrario, potrebbe verificarsi un uso improprio dei dati di questo tipo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Perche_Log4j_e_considerato_dannoso\"><\/span>Perch\u00e9 Log4j \u00e8 considerato dannoso<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>C&#8217;\u00e8 un problema simile in Log4j, ma \u00e8 molto, molto peggio.<\/p>\n\n\n\n<p>I dati forniti da un estraneo non attendibile \u2013 dati che stai semplicemente stampando per riferimento futuro o accedendo a un file \u2013 possono prendere il sopravvento sul server su cui stai effettuando la registrazione.<\/p>\n\n\n\n<p>Questo potrebbe trasformare quella che dovrebbe essere un&#8217;istruzione di &#8220;stampa&#8221; di base in una situazione di&nbsp;<em>fuga di dati segreti su Internet<\/em>&nbsp;o persino in un&nbsp;comando&nbsp;<em>scarica ed esegui il mio malware in una volta<\/em>.<\/p>\n\n\n\n<p>In poche parole, una voce di registro che si intendeva inserire per completezza, forse anche per motivi legali o di sicurezza, potrebbe trasformarsi in un evento di impianto di malware.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Funzionalita_di_%E2%80%9Cricerca%E2%80%9D_di_Log4j\"><\/span>Funzionalit\u00e0 di &#8220;ricerca&#8221; di Log4j<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Preparati per la parte pi\u00f9 pericolosa, che \u00e8 documentata&nbsp;<a href=\"https:\/\/logging.apache.org\/log4j\/2.x\/manual\/lookups.html\">in dettaglio<\/a>&nbsp;sul sito <a href=\"https:\/\/logging.apache.org\/log4j\/2.x\/manual\/lookups.html\" target=\"_blank\" rel=\"noreferrer noopener\">Apache Log4j<\/a>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Le &#8220;ricerche&#8221; forniscono un modo per aggiungere valori alla configurazione di Log4j in punti arbitrari.<\/p><\/blockquote>\n\n\n\n<p>In poche parole, l&#8217;utente che fornisce i dati che intendi registrare pu\u00f2 scegliere non solo come sono formattati, ma anche cosa contiene e come viene acquisito quel contenuto.<\/p>\n\n\n\n<p>Se stai effettuando il login per motivi legali o di sicurezza, o anche semplicemente per completezza, probabilmente sarai sorpreso di sentirlo.<\/p>\n\n\n\n<p>Dare voce alla persona dall&#8217;altra parte su come registrare i dati che invia significa non solo che i tuoi registri non contengono sempre una registrazione fedele dei dati effettivi che hai ricevuto, ma anche che potrebbero finire per contenere dati da altrove sul tuo server che normalmente non sceglieresti di salvare in un file di registro.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Possibilita_di_ricerche_remote\"><\/span>Possibilit\u00e0 di ricerche remote<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Grazie a una funzionalit\u00e0 del runtime Java chiamata JNDI, abbreviazione di&nbsp;<em>Java Naming and Directory Interface<\/em>&nbsp;, i comandi &#8220;lookup&#8221; di Log4j racchiusi in&nbsp;<code>${...}<\/code>sequenze non solo possono eseguire semplici sostituzioni di stringhe, ma anche eseguire ricerche di runtime in tempo reale su server arbitrari, sia all&#8217;interno che all&#8217;esterno del tuo Rete.<\/p>\n\n\n\n<p>Per vederlo in azione, abbiamo bisogno di un programma che ascolti le connessioni TCP e segnali quando ne ottiene una, cos\u00ec possiamo vedere se Log4j sta davvero effettuando connessioni di rete.<\/p>\n\n\n\n<p>Si pu\u00f2 testare <code>ncat<\/code> dal&nbsp;<a href=\"https:\/\/nmap.org\/\">toolkit Nmap<\/a>&nbsp;gratuito e popolare;&nbsp;per chi usa Linux potrebbe averlo gi\u00e0&nbsp;<code>ncat<\/code> installato nella&nbsp;distro, ma per Windows dovrai installarlo dal&nbsp;<a href=\"https:\/\/nmap.org\/\">sito ufficiale di Nmap<\/a>.<\/p>\n\n\n\n<p>Un utente malintenzionato che conosce il formato giusto o che sa come scaricare uno strumento di attacco in grado di fornire codice Java dannoso nel formato corretto,&nbsp;<strong>potrebbe essere in grado di utilizzare l&#8217;oggetto Log4j Logger come strumento per installare malware sul server<\/strong>, eseguendo quel dannoso codice proprio all&#8217;interno del processo Java che ha chiamato la funzione Logger.<\/p>\n\n\n\n<p>E il gioco \u00e8 fatto:&nbsp;<em>esecuzione di codice remoto<\/em>&nbsp;(RCE)&nbsp;semplice, affidabile e di progettazione&nbsp;, attivata da dati forniti dall&#8217;utente che, ironia della sorte, potrebbero essere registrati per scopi di controllo o di sicurezza.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Il_tuo_server_e_interessato\"><\/span>Il tuo server \u00e8 interessato?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Una sfida posta da questa vulnerabilit\u00e0 \u00e8 capire quali server sulla rete sono interessati.<\/p>\n\n\n\n<p>A prima vista, si potrebbe presumere che sia necessario considerare solo i server con codice rivolto alla rete scritto in Java, in cui le connessioni TCP in entrata richieste dal servizio vengano gestite direttamente dal software Java e dalle librerie runtime Java.<\/p>\n\n\n\n<p>Se cos\u00ec fosse, tutti i servizi offerti da prodotti come il&nbsp;<code>httpd<\/code> server Web di&nbsp;Apache, Microsoft IIS o&nbsp;<code>nginx<\/code> sarebbero implicitamente sicuri.&nbsp;<\/p>\n\n\n\n<p>Ma determinare sia l&#8217;ampiezza che la profondit\u00e0 di questa vulnerabilit\u00e0 in tutte le reti tranne che nella pi\u00f9 piccola pu\u00f2 essere piuttosto complicato&nbsp;<strong>e Log4Shell non \u00e8 limitato ai server scritti in Java puro al 100%<\/strong>.<\/p>\n\n\n\n<p>Dopotutto, non \u00e8 il codice di gestione del socket basato su TCP che \u00e8 affetto da questo bug: la vulnerabilit\u00e0 potrebbe annidarsi ovunque nella rete di back-end in cui vengono elaborati i dati forniti dall&#8217;utente e vengono conservati i registri.<\/p>\n\n\n\n<p>Un server Web che registra la tua stringa&nbsp;<code>User-Agent<\/code> probabilmente lo fa direttamente, quindi un server Web basato su C con un motore di registrazione basato su C probabilmente non \u00e8 a rischio di&nbsp;<code>User-Agent<\/code>.<\/p>\n\n\n\n<p>Ma molti server web prendono i dati inseriti nei moduli online, ad esempio, e li trasmettono in background a server di &#8220;logisica aziendale&#8221; che li sezionano, li analizzano, li convalidano, li registrano e vi rispondono.<\/p>\n\n\n\n<p>Se uno di quei server aziendale \u00e8 scritto in Java, potrebbe essere la mela marcia del codice.<\/p>\n\n\n\n<p>Teoricamente, quindi,&nbsp;<strong>devi trovare tutto il codice nella tua rete che \u00e8 scritto in Java e verificare se utilizza la libreria Log4j<\/strong>.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>Le versioni obsolete di Log4j devono essere aggiornate il prima possibile<\/strong>&nbsp;, anche se pensi che nessuno le stia attualmente utilizzando.<\/p><\/blockquote>\n\n\n\n<p>Si noti che&nbsp;<strong>Log4j 1.x non \u00e8 pi\u00f9 supportato<\/strong>&nbsp;e&nbsp;in questa versione esiste&nbsp;un bug relativo a Log4Shell, denominato&nbsp;<a href=\"https:\/\/access.redhat.com\/security\/cve\/CVE-2021-4104\">CVE-2021-4104<\/a>&nbsp;.<\/p>\n\n\n\n<p>Quindi, il percorso di aggiornamento per Log4j 1.x significa passare a Log4j 2.<\/p>\n\n\n\n<p>Ricorda, ovviamente, che i programmi Java possono essere configurati per utilizzare le proprie copie di qualsiasi libreria Java, o anche di Java stesso.<\/p>\n\n\n\n<p><strong>Cerca in tutta la tua propriet\u00e0<\/strong>, prendendo in considerazione client e server che eseguono Linux, Mac e Windows, alla ricerca di file denominati&nbsp;<code>log4j*.jar<\/code>.<\/p>\n\n\n\n<p>A differenza delle librerie condivise eseguibili (come NSS, di cui abbiamo&nbsp;<a href=\"https:\/\/nakedsecurity.sophos.com\/2021\/12\/03\/mozilla-patches-exploitable-bigsig-cryptographic-bug\/\">scritto di recente<\/a>&nbsp;), non \u00e8 necessario ricordare di cercare estensioni diverse su ciascuna piattaforma perch\u00e9 i file JAR che abbiamo mostrato sopra hanno nomi identici su tutti i sistemi operativi.<\/p>\n\n\n\n<p>Ove possibile,&nbsp;<strong>aggiorna tutte le copie di Log4j, ovunque si trovino, il prima possibile<\/strong>.<\/p>\n\n\n\n<p>La risoluzione della vulnerabilit\u00e0 Log4J richiede una difesa approfondita.&nbsp;Le organizzazioni dovrebbero implementare regole per bloccare il traffico di exploit da tutti i servizi con connessione Internet.&nbsp;Ma la protezione a lungo termine richieder\u00e0 l&#8217;identificazione e l&#8217;aggiornamento delle istanze di Log4J o la mitigazione del problema modificando le impostazioni in Log4J.&nbsp;Ci\u00f2 potrebbe richiedere modifiche al codice nei prodotti in cui \u00e8 incorporato Log4J.<\/p>\n\n\n\n<p><em>Fonti dell&#8217;articolo: Dynatrace &#8211; Sophos &#8211; Nist &#8211; Apache<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dopo la scoperta di una vulnerabilit\u00e0 critica nota come Log4Shell o Log4j nei server che supportano il gioco Minecraft, sono stati effettuati milioni di tentativi di exploit della libreria Java Log4j 2 con una potenziale minaccia per milioni di altre applicazioni e dispositivi in \u200b\u200btutto il mondo. Cos&#8217;\u00e8 Log4Shell? Log4Shell \u00e8 una vulnerabilit\u00e0 software in [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":57073,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"pmpro_default_level":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1413,387],"tags":[],"class_list":{"0":"post-57061","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-attualita","8":"category-guide-sicurezza","9":"pmpro-has-access"},"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/alground.com\/site\/wp-content\/uploads\/2021\/12\/logj4.jpg","wps_subtitle":"In che modo la vulnerabilit\u00e0 Log4Shell provoca danni. Le specifiche tecniche","_links":{"self":[{"href":"https:\/\/alground.com\/site\/wp-json\/wp\/v2\/posts\/57061","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alground.com\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alground.com\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alground.com\/site\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/alground.com\/site\/wp-json\/wp\/v2\/comments?post=57061"}],"version-history":[{"count":0,"href":"https:\/\/alground.com\/site\/wp-json\/wp\/v2\/posts\/57061\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alground.com\/site\/wp-json\/wp\/v2\/media\/57073"}],"wp:attachment":[{"href":"https:\/\/alground.com\/site\/wp-json\/wp\/v2\/media?parent=57061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alground.com\/site\/wp-json\/wp\/v2\/categories?post=57061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alground.com\/site\/wp-json\/wp\/v2\/tags?post=57061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}