{"id":16022,"date":"2018-07-26T13:25:22","date_gmt":"2018-07-26T11:25:22","guid":{"rendered":"https:\/\/www.kaspersky.it\/blog\/?p=16022"},"modified":"2019-11-22T11:01:53","modified_gmt":"2019-11-22T09:01:53","slug":"prague-1998","status":"publish","type":"post","link":"https:\/\/www.kaspersky.it\/blog\/prague-1998\/16022\/","title":{"rendered":"Praga 1998: storia di una tecnologia innovatrice"},"content":{"rendered":"<h3>Qual \u00e8 il segreto del successo della nostra azienda?<\/h3>\n<p>Di tanto in tanto mi pongo questa domanda, formulata da punti di vista diversi; ovviamente non c\u2019\u00e8 una risposta semplice perch\u00e9 non esiste una formula altrettanto semplice per \u201cfare tutto ci\u00f2 che ci si propone e che tutto vada per il verso giusto\u201d. Un colpo di fortuna cos\u00ec avviene solo quando si vince la lotteria o si ottiene una eredit\u00e0 multimilionaria. Per quanto mi riguarda, il nostro successo \u00e8 dovuto a vari fattori, che riguardano soprattutto la tecnologia. Oggi vi voglio parlare di uno dei pi\u00f9 importanti tra questi fattori, una tecnologia fondamentale che per molti anni ci ha aiutato a sviluppare prodotti innovatori in diverse categorie, oltre a fornire sempre la massima protezione da tutte le possibili minacce informatiche.<\/p>\n<p>Questa tecnologia si chiama Praga e il suo nome prende spunto dalla citt\u00e0 dove \u00e8 stata inventata.<\/p>\n<p>Era la primavera del 1998, e in quel periodo avevamo creato un piccolo gruppo per <span style=\"text-decoration: line-through\">bere birra e provare le prelibatezze gastronomiche della Repubblica Ceca <\/span>creare un\u2019architettura che ci sarebbe potuta servire per i nostri futuri prodotti. L\u2019idea di riunirci ha dato davvero grandi frutti: abbiamo prodotto una nuova tecnologia (l\u2019UCA \u2013 Unified Component Architecture) che si poteva applicare a un\u2019ampia gamma di prodotti e su tutte le piattaforme disponibili (sistemi operativi). L\u2019UCA \u00e8 in continua evoluzione ma rimane comunque lo \u201cscheletro\u201d di quasi tutti i nostri prodotti. Inoltre, \u00e8 stata adocchiata da altre aziende che si sono imbattute nel problema di dover gestire e sviluppare progetti \u201cmultilingue\u201d, il che accade piuttosto spesso, soprattutto quando si tratta di progetti complessi in cui sono coinvolte diverse \u00e9quipe o quando avviene una fusione tra compagnie.<\/p>\n<p>La \u201criunione di Praga\u201d ha compiuto vent\u2019anni nel 2018; me ne sono reso conto quando ho dato un\u2019occhiata agli archivi e mi sono imbattuto nella \u201cdocumentazione sulla tecnologia di Praga\u201d, che risale al 22 giugno del 1998. Ai tempi, la nostra preoccupazione era di contrastare qualche virus \u201cinnovativo\u201d e di risolvere problematiche puramente tecniche che avevano a che fare con il nostro motore antivirus. E la soluzione che abbiamo trovato era molto pi\u00f9 ad ampio spettro, pi\u00f9 potente e di maggiore utilit\u00e0. Per molti aspetti Praga \u00e8 stata la tecnologia base dei nostri prodotti per i successivi 10 anni.<\/p>\n<h3>Come \u00e8 iniziato tutto?<\/h3>\n<p>Ci troviamo nella tappa intermedia, tra gli albori della nostra azienda al secondo piano di una scuola materna nel quartiere moscovita di Strogino, e il nostro incredibile <a href=\"https:\/\/www.kaspersky.it\/blog\/kaspersky-lab-inaugura-la-nuova-sede\/1549\/\" target=\"_blank\" rel=\"noopener\">quartier generale tutto di vetro<\/a>. Avevamo concesso la licenza del nostro motore a numerosi partner stranieri e avevamo gi\u00e0 lanciato sul mercato una versione chiamata Antiviral Toolkit Pro 3.0 e con un certo successo. Comunque, il nostro futuro tecnologico non sarebbe stato tutto rose e fiori.<\/p>\n<p>Avevamo due grandi sfide da affrontare, il che era assolutamente necessario, c\u2019erano molte difficolt\u00e0 da superare. La prima riguardava la capacit\u00e0 di processare oggetti sospetti indipendentemente da dove fossero immagazzinati (un tipico esempio sono gli oggetti embedded, una sorta di matrioska grazie al quale un file malware eseguibile si trova all\u2019interno di un file, a sua volta in un altro file etc). La seconda sfida era creare un motore antivirus che potesse essere aggiornato il pi\u00f9 velocemente possibile e che richiedesse delle modifiche minime (o nessuna, ancora meglio) tra le diverse piattaforme.<\/p>\n<p>Nel caso qualcuno lo avesse dimenticato, i creatori di virus degli anni Novanta erano davvero fantasiosi: alcuni nuovi virus non solo richiedevano l\u2019aggiornamento del database per intero, ma del <em>motore stesso<\/em>. Gli utenti ai tempi disponevano di una connessione a Internet molto lenta (nel caso ce l\u2019avessero) e scaricare un aggiornamento di un paio di megabyte poteva costituire un serio problema. Windows 98 si stava facendo spazio ma non aveva ancora sostituito DOS completamente, e qualsiasi innovazione nel nostro campo doveva essere implementata in <em>entrambi<\/em> i sistemi operativi, il che richiedeva molto lavoro.<\/p>\n<p>Insomma, avevamo molti argomenti da trattare durante la nostra settimana di brainstorming a Praga (oltre a me, vi partecipavano Alexey De-Monderik, Andrey Kryukov, Andrey Nikishin, Vadim Bogdanov e Larisa Gruzdeva). Abbiamo noleggiato una sala conferenza di un hotel e ogni giorno, dalle 9 alle 17, affrontavamo tutte queste tematiche. Dopo una giornata di intenso lavoro, andavamo al ristorante o al biliardo per bere una birra e per far riposare le nostre idee affinch\u00e9 potessero svilupparsi.<\/p>\n<p>Sono state giornate di lavoro molto produttive e siamo tornati a Mosca con un progetto; De-Monderik ha scritto una bozza delle idee che ne sono venute fuori ed \u00e8 stato proprio quel documento a ispirare questo articolo.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-16024 aligncenter\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/89\/2018\/07\/27132509\/doc.gif\" alt=\"\" width=\"600\" height=\"872\"><\/p>\n<p>Kryukov e Nikishin hanno poi continuato a sviluppare Praga, che \u00e8 stato creato ufficialmente nel 1999, quando Andrey Doukhvalov \u00e8 entrato a far parte del team. La sua esperienza in sviluppo di sistemi ha aiutato a trasformare Praga in un progetto concreto e non solo in un sistema di plugin per un motore antivirus.<\/p>\n<p>Praga \u00e8 diventato un sistema modulare indipendente dove gli oggetti venivano creati e gestiti dopo il lancio dell\u2019applicazione, dopo aver osservato la gerarchia degli oggetti e dopo l\u2019abilitazione da parte del kernel di funzionalit\u00e0 come la gestione della memoria e dei messaggi. Tutta la comunicazione con il sistema operativo e l\u2019interfaccia utente avviene mediante un sottile strato, ed \u00e8 stato possibile scrivere quasi il kernel intero dell\u2019antivirus seguendo i \u201cplugin Praga\u201d.<\/p>\n<p>Doukhvalov ha sviluppato la prima versione pronta all\u2019uso per AVP 4.0. Non era ancora stato riscritto \u201callo stile Praga\u201d ma i punti di forze erano gi\u00e0 evidenti:<\/p>\n<ul>\n<li>Era stato risolto completamente il problema di processare gli oggetti annidati in maniera complessa. L\u2019antivirus del motore Praga era il primo sul mercato a restaurare facilmente file infetti che si trovavano all\u2019interno di altri file o a individuare virus tra vari volumi di file. Ai moduli di trattamento e individuazione delle minacce non interessava dove si trovasse originariamente l\u2019oggetto infetto (in quale file o file di sistema etc);<\/li>\n<li>La logica del motore antivirus veniva facilmente aggiornata con i database e non c\u2019era bisogno di riavviare per accettare la nuova logica;<\/li>\n<li>I moduli erano snelli e in grado di adattarsi facilmente alle diverse piattaforme. In questo modo, ad esempio, la versione 6 di KAV poteva essere usata facilmente su <a href=\"https:\/\/www.kaspersky.it\/mac-security\" target=\"_blank\" rel=\"noopener\">Mac<\/a>;<\/li>\n<li>Tutto funzionava pi\u00f9 velocemente ed era necessaria poca memoria: Praga consumava un volume molto inferiore di risorse rispetto a qualsiasi altro framework di allora.<\/li>\n<\/ul>\n<p>Grazie all\u2019uso di Praga, eravamo all\u2019avanguardia nel settore IT: l\u2019approccio modulare allo sviluppo del software ai tempi non era cos\u00ec avanzato. Successivamente, negli Stati Uniti abbiamo registrato ben 4 brevetti di Praga: <a href=\"https:\/\/patents.google.com\/patent\/US7386885\" target=\"_blank\" rel=\"noopener nofollow\">7386885<\/a>, <a href=\"https:\/\/patents.google.com\/patent\/US7730535\" target=\"_blank\" rel=\"noopener nofollow\">7730535<\/a>, <a href=\"https:\/\/patents.google.com\/patent\/US7418710\" target=\"_blank\" rel=\"noopener nofollow\">7418710<\/a> e <a href=\"https:\/\/patents.google.com\/patent\/US8234656\" target=\"_blank\" rel=\"noopener nofollow\">8234656<\/a>.<\/p>\n<p>Inoltre, Praga si integrava facilmente a codici scritti seguendo diversi principi, per questo \u00e8 stato costruito inizialmente per la versione 4.0 ma solo per risolvere una piccola serie di problemi. Aveva superato la prova cos\u00ec bene che, quando sono sorti problemi pi\u00f9 importanti durante lo sviluppo della versione 5.0, a Doukhvalov gli \u00e8 venuta in mente l\u2019idea di creare una versione completamente nuova di Praga, che ha portato alla <a href=\"https:\/\/www.kaspersky.com\/blog\/the-rule-of-six\/4253\/\" target=\"_blank\" rel=\"noopener nofollow\">rivoluzionaria versione 6 di Kaspersky Anti-Virus, di cui abbiamo gi\u00e0 parlato in dettaglio in passato<\/a>.<\/p>\n<p>Per passare da un \u201cplugin antivirus\u201d a un framework di un intero prodotto, bisogna riorganizzare e reinventare alcuni processi. A questo ci hanno pensato Andrey Doukhvalov and Pavel Mezhuev, senza di loro Praga non si sarebbe potuto adattare a certe task cos\u00ec complesse.<\/p>\n<p>Ovviamente la perfezione non esiste, soprattutto nel nostro mondo, e Praga ha due inconvenienti principali.<\/p>\n<p>Innanzitutto, il debugging era difficoltoso e gli sviluppatori avevano difficolt\u00e0 ad adottare Praga. Indipendentemente da come lo si guardasse, si trattava di un sistema completamente nuovo che imponeva dei requisiti piuttosto rigidi per il design del codice. Inoltre, all\u2019inizio i moduli dovevano essere scritti in puro C, portare avanti la formazione su questo nuovo metodo richiedeva tempo, avevamo bisogno di un numero sempre maggiore di sviluppatori perch\u00e9 l\u2019azienda stava crescendo velocemente e i nostri prodotti diventavano sempre pi\u00f9 complessi.<\/p>\n<p>Cos\u00ec come avviene nel settore IT in generale, la velocit\u00e0 era diventata una priorit\u00e0 e, poco a poco, siamo dovuti passare a framework di oggetti pi\u00f9 conosciuti e convenzionali. Tuttavia, alcuni frammenti basati su Praga continuano a funzionare correttamente all\u2019interno dei nostri prodotti.<\/p>\n<p>Naturalmente, ai tempi questi inconvenienti riguardavano i processi e le risorse. Si potevano e si dovevano risolvere poich\u00e9 i vantaggi derivanti dall\u2019implementazione di Praga erano considerevoli e giustificavano appieno tutte le risorse impiegate. Praga aveva risolto uno dei problemi pi\u00f9 difficili, costosi e importanti da 10 anni a questa parte, ovvero la portabilit\u00e0 di una tecnologia (portabilit\u00e0 binaria compresa) su diverse piattaforme.<\/p>\n<p>Invece di creare un prodotto da zero per ogni sistema operativo e processore, usavamo un motore in debug e pronto all\u2019uso. Questo grande investimento in ricerca e sviluppo non \u00e8 stato completamente ripagato ma ci rende ancora oggi leader in tecnologia: l\u2019UCA (il successore di Praga) \u00e8 ancora largamente utilizzato e per il momento non abbiamo trovato problemi che non possano essere risolti grazie a essa. Un\u2019ulteriore prova che una buona architettura pu\u00f2 reggere a decenni di test.<\/p>\n<p>Come dice spesso Alexey De-Monderik, Praga ha avuto un ruolo importante nella nostra azienda, e non solo dal punto di vista tecnologico. Alcune persone hanno formato un gruppo in modo naturale avendo questo progetto in comune, gruppo che successivamente \u00e8 diventato il famoso \u201c<a href=\"https:\/\/www.kaspersky.it\/blog\/kaspersky-anti-virus-6\/3224\/\" target=\"_blank\" rel=\"noopener\">team dei Sei<\/a>\u201c. Congratulazioni!<\/p>\n<p>E oggi festeggiamo questo piccolo ma inaspettato anniversario di una tecnologia che ha rivoluzionato un intero settore!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ecco come \u00e8 nata una delle tecnologie chiave alla base del motore antivirus di Kaspersky Lab.<\/p>\n","protected":false},"author":13,"featured_media":16023,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[14,2642],"tags":[121,46,191,2896,2895,941,1471,2897],"class_list":{"0":"post-16022","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-products","8":"category-special-projects","9":"tag-antivirus","10":"tag-eugene-kaspersky","11":"tag-kaspersky-lab","12":"tag-motore","13":"tag-praga","14":"tag-prodotti","15":"tag-storia","16":"tag-tecnologie-main-tag-kaspersky-lab"},"hreflang":[{"hreflang":"it","url":"https:\/\/www.kaspersky.it\/blog\/prague-1998\/16022\/"},{"hreflang":"en-in","url":"https:\/\/www.kaspersky.co.in\/blog\/prague-1998\/13725\/"},{"hreflang":"en-ae","url":"https:\/\/me-en.kaspersky.com\/blog\/prague-1998\/11502\/"},{"hreflang":"en-us","url":"https:\/\/usa.kaspersky.com\/blog\/prague-1998\/15801\/"},{"hreflang":"en-gb","url":"https:\/\/www.kaspersky.co.uk\/blog\/prague-1998\/14069\/"},{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/prague-1998\/13210\/"},{"hreflang":"es","url":"https:\/\/www.kaspersky.es\/blog\/prague-1998\/16587\/"},{"hreflang":"ru","url":"https:\/\/www.kaspersky.ru\/blog\/prague-1998\/20924\/"},{"hreflang":"x-default","url":"https:\/\/www.kaspersky.com\/blog\/prague-1998\/23287\/"},{"hreflang":"pt-br","url":"https:\/\/www.kaspersky.com.br\/blog\/prague-1998\/10592\/"},{"hreflang":"pl","url":"https:\/\/plblog.kaspersky.com\/prague-1998\/9520\/"},{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/prague-1998\/17357\/"},{"hreflang":"ja","url":"https:\/\/blog.kaspersky.co.jp\/prague-1998\/20950\/"},{"hreflang":"ru-kz","url":"https:\/\/blog.kaspersky.kz\/prague-1998\/17002\/"},{"hreflang":"en-au","url":"https:\/\/www.kaspersky.com.au\/blog\/prague-1998\/20664\/"},{"hreflang":"en-za","url":"https:\/\/www.kaspersky.co.za\/blog\/prague-1998\/20662\/"}],"acf":[],"banners":"","maintag":{"url":"https:\/\/www.kaspersky.it\/blog\/tag\/kaspersky-lab\/","name":"Kaspersky Lab"},"_links":{"self":[{"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/posts\/16022","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/comments?post=16022"}],"version-history":[{"count":3,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/posts\/16022\/revisions"}],"predecessor-version":[{"id":18598,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/posts\/16022\/revisions\/18598"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/media\/16023"}],"wp:attachment":[{"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/media?parent=16022"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/categories?post=16022"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/tags?post=16022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}