{"id":11474,"date":"2019-05-03T07:30:35","date_gmt":"2019-05-03T05:30:35","guid":{"rendered":"http:\/\/www.unilab.eu\/?p=11474"},"modified":"2021-04-15T04:25:31","modified_gmt":"2021-04-15T02:25:31","slug":"code-injection","status":"publish","type":"post","link":"https:\/\/www.unilab.eu\/it\/articoli\/coffee-break-it\/code-injection\/","title":{"rendered":"Code Injection e rischi potenziali"},"content":{"rendered":"<p>Il <strong>Code Injection<\/strong> (letteralmente &#8220;Iniezione di codice&#8221;) \u00e8 un codice informatico iniettato tramite applicazioni installate sui laptop. Il suo scopo principale \u00e8 quello di modificare il funzionamento del device o di alterare alcune sue peculiarit\u00e0. Si tratta di una tecnica che, sfruttando i browser, i sistemi operativi e i client di posta elettronica, viene utilizzata anche da programmi dal nome autorevole per svolgere le mansioni per cui sono stati progettati.<\/p>\n<p>Un esempio comune \u00e8 quello dei <strong>software antivirus<\/strong>, che ricorrono al Code Injection per tenere sotto controllo la navigazione effettuata tramite il browser. Bisogna per\u00f2 tenere conto che si parla di una funzionalit\u00e0 utilizzata da molti malware per infettare i device.<\/p>\n<p><strong>Come funziona il Code Injection<\/strong><\/p>\n<p>Per praticare il Code Injection \u00e8 possibile ricorrere a diverse modalit\u00e0. Una di queste \u00e8 il ricorso ad alcuni <strong>file DDL<\/strong>. Alla base di tutto ci sono le API dei sistemi operativi e la possibilit\u00e0 di collegare tra loro diversi processi. In questi casi, i programmi coinvolti non vengono modificati in maniera diretta. Si attende infatti il completo caricamento dell&#8217;applicazione per poi iniettare il codice al suo interno.<\/p>\n<p>La pratica appena descritta del Code Injection viene utilizzata dagli antivirus, ma anche da diversi <strong>programmi di traduzione<\/strong>. In questo frangente, lo scopo \u00e8 quello di attivare il traduttore di una determinata lingua con i tasti del mouse o tramite quelli della tastiera. Da citare \u00e8 anche il suo ruolo nel funzionamento di alcuni driver di sistema e, in particolare, nelle procedure di ottimizzazione delle periferiche.<\/p>\n<p><strong>Come verificare la presenza di Code Injection sul proprio computer<\/strong><\/p>\n<p>Il controllo della presenza di Code Injection sul proprio device \u00e8 molto semplice e pu\u00f2 essere effettuato ricorrendo a <strong>software gratuiti<\/strong> che permettono di visualizzare non solo il nome dei file DDL, ma anche il loro produttore e le specifiche sul percorso.<\/p>\n<p>Tramite le schermate dei suddetti programmi, \u00e8 possibile scegliere agevolmente gli <strong>applicativi da tenere sotto controllo<\/strong> e, con un semplice click sul loro nome, attendere il caricamento di tutti i file DDL utilizzati in quel determinato momento.<\/p>\n<p><strong>Come difendersi dalla SQL Injection<\/strong><\/p>\n<p>Quando si parla di <strong>SQL Injection<\/strong>, si inquadra una tipologia di Code Injection che viene utilizzata soprattutto per attaccare applicazioni di gestione dei dati. Prevede l&#8217;iniezione di stringhe di codice SQL malevole nell&#8217;ambito di campi input, facendo in modo che vengano eseguite. Per difendersi, \u00e8 cruciale innanzitutto controllare gli input automatici delle applicazioni.<\/p>\n<p>In concreto, ci\u00f2 implica la verifica dei parametri che vengono utilizzati di volta in volta per inserire gli input. In caso di richiesta di un parametro numerico, si pu\u00f2 per esempio mettere in atto la verifica attraverso uno script PHP caratterizzato dalla funzione<strong> is_numeric()<\/strong>. Nell&#8217;eventualit\u00e0 di un filtraggio, vengono ignorati i relativi caratteri speciali.<\/p>\n<p>Fondamentale \u00e8 pure che le applicazioni non mostrino messaggi di errore esterni tali da rendere palesi sia le informazioni relative al sistema utilizzato, sia alle strutture del database. Essenziale \u00e8 anche rammentare il ruolo dei cosiddetti <strong>prepared statements<\/strong>, i quali possono essere comodamente utilizzati con numerosi DBMS.<\/p>\n<p>Istruzioni predefinite utilizzate originariamente per eseguire interrogazioni frequenti, i prepared statements hanno una struttura tale da aiutare anche a ridurre il rischio di Code Injection aventi scopi malevoli. Grazie alle loro istruzioni parametrizzate, sono infatti in grado di comunicare al database i<strong> comandi SQL<\/strong> veri e propri.<\/p>\n<p>Un altro trucco per proteggersi dalla pratica della SQL Injection riguarda infine la<strong> cura della sicurezza del server<\/strong>, che pu\u00f2 essere ottimizzata prima di tutto tramite l&#8217;installazione delle sole applicazioni necessarie al funzionamento del database. A tal proposito, \u00e8 bene eliminare gli account utente che non risultano necessari e installare tutti gli aggiornamenti richiesti sia per il sistema, sia per i programmi.<\/p>\n<!--themify_builder_content-->\n<div id=\"themify_builder_content-11474\" data-postid=\"11474\" class=\"themify_builder_content themify_builder_content-11474 themify_builder tf_clear\">\n    <\/div>\n<!--\/themify_builder_content-->\n","protected":false},"excerpt":{"rendered":"<p>Il Code Injection (letteralmente &#8220;Iniezione di codice&#8221;) \u00e8 un codice informatico iniettato tramite applicazioni installate sui laptop. Il suo scopo principale \u00e8 quello di modificare il funzionamento del device o di alterare alcune sue peculiarit\u00e0. <\/p>\n","protected":false},"author":10,"featured_media":11477,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"Il Code Injection (letteralmente \"Iniezione di codice\") \u00e8 un codice informatico iniettato tramite applicazioni installate sui laptop. Il suo scopo principale \u00e8 quello di modificare il funzionamento del device o di alterare alcune sue peculiarit\u00e0.","_seopress_robots_index":"","footnotes":""},"categories":[46],"tags":[],"class_list":["post-11474","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coffee-break-it","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"builder_content":"","_links":{"self":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/posts\/11474","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/comments?post=11474"}],"version-history":[{"count":0,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/posts\/11474\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/media\/11477"}],"wp:attachment":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/media?parent=11474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/categories?post=11474"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/tags?post=11474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}