v2007 01 vbj73

68

Transcript of v2007 01 vbj73

Page 1: v2007 01 vbj73
Page 2: v2007 01 vbj73
Page 3: v2007 01 vbj73
Page 4: v2007 01 vbj73

.NET TOOLS

30 N. 72 - Novembre/Dicembre 2006

SQL Server Migration Assistant di Fabio Perrone

Uno strumento Microsoft per transitare a SQL Server

SQL Server 2005, con le numerose edizioni (Enterprise/Developer, Standard, Workgroup, Express e Everywhere) è in grado di coprire un ampio target di clientela, dalla grande azien-da al piccolo programmatore che si diletta a scrivere la gestione della biblioteca di casa. Tuttavia, per conquistare gli utenti di databa-se precedenti, è necessario poter recuperare lo schema e i dati di database esistenti, qua-lunque sia la loro dimensione. Ecco allora che viene incontro al futuro utilizzatore di SQL Server 2005, SQL Server Migration Assistant che, con le sue versioni per Access, Oracle e Sybase (previste a breve DB2 e Informix), offre la possibilità di migrare un database intero.L’applicazione è completamente gratuita, previa una piccola procedura di registrazione la prima volta che il prodotto viene avviato. I principali requisiti per poter utilizzare il pro-gramma sono il .NET Framework 2.0 (almeno) e ovviamente la possibilità di connettersi ad un’istanza di SQL Server 2005.Affinché chiunque possa effettuare le pro-ve, per semplicità tratteremo SQL Server Migration Assistant per Access, ma le funzio-nalità sono del tutto equivalenti alle versioni per gli altri database.Come prima cosa, è necessario “mettere in moto” il programma creando un nuovo proget-to di conversione, in cui si andranno a creare il cosiddetto “Access metadata explorer” e il “SQL Server metadata explorer”, i due strumenti con cui andremo ad interagire per effettuare qualsia-si operazione sui due database. Prima di inizia-

re una conversione, è buona norma leggere la sezione dell’ottima documentazione dedicata a come preparare un database Access per evitare spiacevoli inconvenienti al momento del “tra-vaso” dei dati, nonché (consiglio banale ma pur sempre utile) sia bene farsi una copia di backup del database che ci si accinge a convertire. Il se-condo step da eseguire è controllare, con estre-ma attenzione, le impostazioni di default del progetto che permettono di gestire in maniera granulare le diverse sfaccettature che si devono affrontare quando si appronta una conversione tra database, prima tra tutte come convertire cor-rettamente i tipi di dato dall’origine al database di SQL Server. Come è fin troppo semplice prevedere, viene già fornito un elenco abbastanza copioso di conversione tra i tipi, ma è sempre meglio verificare per eventualmente aggiungere ul-teriori conversioni personalizzate. A questo punto si aggiunge il database Access che si desidera convertire e poi si scelgono gli oggetti del database che si desiderano migrare. Prima di partire a convertire, ecco il vero asso nella manica di questa applicazione: la possibilità di creare dei report di valutazione di singoli oggetti del database o del database comple-to fornendo un elenco di errori, warning e messaggi informativi (in stile Visual Studio), nonché una stima di tempo dell’eventuale conversione per ogni oggetto che ha presen-tato degli errori. Tali oggetti “problematici” vengono evidenziati in un treeview creato dal report per poterli dividere non solo per gravità dell’errore ma anche per tipo di oggetto (query, tabelle, etc.). Risulta ovviamente sconsigliato effettuare una conversione di un database con errori, non solo perché la conversione potreb-be non andare a buon fine, ma essenzialmente perché si potrebbe verificare una perdita di

������������������������������������������������������������������

�������������������������������������������������������������������

�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

����������������������������������������������

410X275 Visual Basic.indd 1 19-12-2006 16:31:52

Page 5: v2007 01 vbj73

.NET TOOLS

31N. 72 - Novembre/Dicembre 2006 VBJ

dati. Per quanto riguarda la conversione da un database Access, è bene rimarcare questo fat-to: non è ovviamente possibile convertire tutti gli oggetti di Access. Per esempio, un oggetto report non viene convertito, così come un form o un modulo, mentre un oggetto query viene convertito in una vista (tenendo presente che non tutte le query sono convertibili in viste, quindi quelle che non lo sono non verranno convertite). Passo successivo: caricare gli og-getti convertiti in SQL Server. Anche qui, vie-ne fornita una doppia scelta: più rapida e meno controllata o meno rapida ma più controllata. La prima consiste semplicemente nell’effet-tuare la conversione all’interno di SSMA, la seconda prevede la creazione di script in T-SQL su cui eventualmente sporcarsi le mani per controllare maggiormente la conversione. Superato questo step si sale l’ultimo gradino: lo spostamento dei dati. Poiché lo schema e gli oggetti del database sono già stati caricati

nel passo precedente, qui è possibile migrare i dati, ancora una volta sotto controllo: si può migrare l’intero database o solo alcune tabelle. Questo passo è semplice come premere il tasto destro del mouse sul database Access e sce-gliere “Migrate Data”. A questo punto il gioco è fatto: il nostro nuovo database SQL Server 2005 è pronto all’uso. Ovviamente la durata della migrazione dipende sia dalla potenza della macchina utilizzata per fare il lavoro (nelle nostre prove abbiamo sperimentato un notevole miglioramento di prestazioni su una macchina con 2 GB di RAM rispetto ad una macchina da 1 GB) e la quantità di dati da spo-stare. I tempi previsti nell’assess report non sono ovviamente sempre precisi al minuto, ma si avvicinano con un buon margine del 10%.Il solo pensiero di migrare dei dati da un da-tabase ad un altro può scoraggiare anche il più temerario dei DBA o degli sviluppatori, ma grazie alla semplicità d’utilizzo, all’effet-

������������������������������������������������������������������

�������������������������������������������������������������������

�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

����������������������������������������������

410X275 Visual Basic.indd 1 19-12-2006 16:31:52

Page 6: v2007 01 vbj73

IN VETRINA VBJ 73IN VETRINA VBJ 73

Scrivi a [email protected] specificando nell’oggetto della e-mail:

IN VETRINA Visual Basic e .NET Journal n. 73OPPURE

inviaci il coupon al numero di fax 0587/732232

Potrai acquistare i libri qui riportaticon uno SCONTO ECCEZIONALE

del 10% anche se acquisti solo un libroOPPURE

del 20% se acquisti 3 libri

VBJ 73

Software Testing Foundations 2 ed.di T. Linz, H. Schaefer

e A. Spillner

Pensato per uno studio individuale, il libro fornisce, tra l’altro, tutte le conoscenze necessarie per passare l’esame “Certified Tester (Foundations Level)” conformemente alla definizione ISTQB.O’ Reilly

288 pp - euro 44,95ISBN 1933952083

The Art of Software Security Assessment Identifying and Preventing

Software Vulnerabilitiesdi M. Dowd, J. McDonald,

J. Schuh

Il software che usiamo è sicuro? Come possiamo verificare che lo sia? E quali sono le conseguenze se un’applicazione viene compro-messa? Questi i quesiti cui il libro cerca di rispondereJohn Wiley

1200 pp - euro 52,00ISBN 0321444424

Game Programming The L Line di A. Harris

Il testo illustra le linee prati-che fondamentali della pro-grammazione object-oriented per il game design usando Python. Materiale supplemen-tare può essere scaricato alla pagina www.wiley.com/go/thelline John Wiley

608 pp - euro 44,00ISBN 0470068229

Windows Presentation Foundation Unleashed

(WPF)di A. Nathant

WPF è un componente chiave di WinFX; gli sviluppatori Windows che in futuro volessero integrare grafica 3D, video, animazione, do-vranno conoscerlo a fondo. Questo libro offre un’ottima introduzione, tramite molti tip e FAQ.Sams

656 pp - euro 44,95ISBN 0672328917

Security for Wireless Ad Hoc Networks

di F. Anjum e P. Mouchtaris

Il libro è strutturato con procedure di problem solving: viene prima posto il problema e passo passo si procede alla soluzione. Tra gli argomenti: attacchi, vulnerabilità, critto-grafia di base, autenticazioneJohn Wiley

247 pp - euro 70,60ISBN 0471756880

Ruby Cookbook con elementi di Rails

di L. Carlson e L. Richardson

Questo volume fornisce centinaia di soluzioni a problemi pratici, corredate di spiegazioni chiare e centinaia di linee di codice pronte da copiare nei vostri progetti. Dalle strutture dati agli algoritmi per l’integrazione con le tecnologie all’avanguardia, Ruby Cookbook ha in serbo qualcosa per ogni programmatore.

Tecniche Nuove688 pp - euro 44,90ISBN 9788848119818

Computer Security and Cryptography

di A. G. Konheim

L’autore, che ha partecipato al design e all’analisi del Data Encryption Standard (DES), offre molti strumenti e tecni-che per la protezione di dati sensibili tramite crittografia

John Wiley544 pp - euro 89,50 ISBN 0471947837

Administering Windows Vista Security:

The Big Surprisesdi M. Minasi e B. Hynes

Mark Minasi è un esperto di Windows e il suo nome costituisce già una garanzia. Molte le istruzioni utili per un amministratore di siste-ma presentate in maniera assai efficaceJohn Wiley

288 pp - euro 41,50ISBN 9780470108321

Page 7: v2007 01 vbj73

IN VETRINA VBJ 73IN VETRINA VBJ 73

Scrivi a [email protected] specificando nell’oggetto della e-mail:

IN VETRINA Visual Basic e .NET Journal n. 73OPPURE

inviaci il coupon al numero di fax 0587/732232

Potrai acquistare i libri qui riportaticon uno SCONTO ECCEZIONALE

del 10% anche se acquisti solo un libroOPPURE

del 20% se acquisti 3 libri

VBJ 73

Google Trucchi e segretidi R. Dornfest, P. Bausch e T.

Calishain

Contiene numerosi trucchi per usare i nuovi servizi di Google e utili indicazioni per usare meglio i servizi più tradizionali. Ecco qualche esempio: program-mare Google utilizzando l’API e il proprio linguaggio preferito; arricchire le proprie pagine Web con caselle di ricerca, annunci, feed di news e altroTecniche Nuove

544 pp - euro 36,90ISBN 9788848119801

Sicurezza RFID di F. Thornton et al.

Il testo svela le motivazioni degli hacker RFID e spiega come proteggere i sistemi in radio-frequenza. Vengono esaminate le tecniche per proteggersi da coloro che sfruttano le falle di sicurezza a scopo di lucro (chi entra in un sistema RFID può cambiare i prezzi di qualsiasi prodotto), per proteggere la filiera e per proteggere la privacy delle persone..

McGraw Hill180 pp - euro 28,00ISBN 9788838644610

Foundations of Security: What Every Programmer

Needs to KnowDi N. Daswani, C. Kern

e A. Kesavan

Il testo illustra principi, meto-dologie e tecniche di program-mazione per costruire sistemi software sicuri e sviluppare un sesto senso per identificare ed eliminare le potenziali vulne-rabilit

Apress300 pp - euro 49,80ISBN 1590597842

Page 8: v2007 01 vbj73
Page 9: v2007 01 vbj73

��������

����������������������������������

����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������

������ ���������������������������������������

������������������������������������� �������������������������������������������������������������������������������������������

�������������������

��������

�� ���������������������

�������������������������������������������������������

����������������������������

��

�� ������������������������������������������������������������������������������������������������

��������������

����������

�� ������������������������������������

���������������������������������

��������

�� �����������������������

��������� ��������� ��� ���� ������������ �������� ������ ����������� ���� ���������� �����������������������������������������������������������������������

�������������������������

�������������������

��

��

��

��

����������

����������

����������������������

���������������

��������

Page 10: v2007 01 vbj73

�������������������

�����������������������������������

�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

����������������� ������������������ ��� ����������� ���� ������������ ��� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������������������������� ������������������������������ ��������� ������������������������ ������ ��������� ������������������������������ ��� �������� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������

����������������������������������������������

� � � � � � � � � � � � � � � � � � ������������������������������

�����������������������������

����������������������������������������������������������������

�������������������������������������������������������������

�����������������������������������������������

������������������������������������

����������������������������������������������������������������

������������������������������

������������������������������������������

�����������������������������������������������������������������������

��������������������������

������������������������������

���������������������������������������������

��������������������������������������������

������������������������

�������������������

������������������������������

�����������������������

��������������������������������������������������������������������������������������

����������������

�������������������������������������������������������������������������������

������������������������������������������������������

�������������������������

�������������������������������������������������������������������������������������������������������������

������������������������������������

�������������������������������������������������������������������������������������������������������������������������

��������������������������������������������������������������������������������������������������������������

�����������������������������������������������������

Page 11: v2007 01 vbj73
Page 12: v2007 01 vbj73

12 VBJ N. 73 - Gennaio/Febbraio 2007

.NET

Un add-in per Outlook 2007 con .NET 3.0

di Fulvio Giaccari

In questo articolo andremo ad analizzare la pro-grammazione di Outlook 2007 e la sua integra-zione con il nuovo framework .Net 3.0. Il nuovo framework 3.0 è composto da 3 principali tronco-ni: il WPF (Windows Presentation Foundation), il WCF (Windows Communications Foundation) e WWF (Windows Workflow Foundation).In particolare utilizzeremo il WPF e creremo tutti i controlli non a design time, ma a runtime. Una volta creati, andremo ad assegnarli ad uno NameScope per poterli richiamare facilmente in seguito.Facendo un riepilogo delle tecnologie utilizzate, il nostro progetto utilizzerà:

- Windows Presentation Foun-dation - Outlook 2007 (pacchetto Of-fice Ultimate)- Visual Studio Tools for Offi-ce 2005 SE

L’applicazione che ho creato simula un add-in per Outlook che aiuterà l’ipotetica agen-zia di viaggio “World Tour” a creare una mail automatica da inviare al cliente a conferma dell’avvenuta prenotazione del volo scelto. In questo pro-getto non ho fatto interagire l’add-in con il database SQL Server 2005, ma immaginate quanti risvolti può avere que-sta semplice applicazione se collegata ad un tale database.L’applicazione è composta da 2 parti, la prima relativa al behind code dell’add-in di Outlook 2007, la seconda con-siste di un file XAML (XAML è l’estensione dei file WPF)

Con l’arrivo dei Visual Studio Tools for Office 2005 Second Edition (SE) è possibile programmare la nuova piattaforma Office 2007

Fulvio Giaccari è Project Manager della Società SB Soft S.r.l. (Azienda Partner Microsoft). Ultimamente si è occupato del porting di moltissime applicazioni Windows Form su piatta-forma Framework 3.0, inoltre molte di queste applicazioni sono “Certified for Windows Vista”. La società SB Soft si occupa di gestire progetti Office 2003 e 2007, Sharepoint 2007 e applicazioni Windows Form e Web per aziende private e per la pubblica amministrazione. Ha scritto diversi articoli in inglese ed italiano su riviste di settore, sta per pubblicare un libro dedicato interamente ai VSTO 2005 e 2007 edito da Apress inc. È speaker in moltissimi eventi Microsoft dedicati ad Office. Inoltre è il responsabile di una Community dedicata ad ASP.NET (www.freeaspx.it) e del primo Usergroup Italiano dedicato agli sviluppatori Office (www.ShareOffice.it).

ADDIN

Page 13: v2007 01 vbj73

13N. 73 - Gennaio/Febbraio 2006 VBJ

.NET

tlook 2007. Come prima cosa noteremo che all’interno della soluzione che abbiamo creato è stato aggiunto anche un progetto “WorldTravelAddinSetup” che permetterà di installare l’add-in su qualsiasi PC su cui è installato Outlook 2007 e WPF.Come per i VSTO 2005 per Office 2003, c’è un file che si chiama ThisAddin.cs (se il progetto viene realizzato in VB.NET il file si chiamerà ThisAddin.vb). All’interno del-la classe “ThisAddIn” ci sono due metodi che gestiscono gli eventi ThisAddIn_Star-tUp e ThisAddIn_Shutdown. Nel primo ri-chiameremo tutti i metodi che ci interessa caricare prima dell’avvio di Outlook, nel secondo tutti i metodi che dobbiamo ri-

contenente la parte grafica dell’applica-zione.In Figura 1 troverete lo schema delle classi che andremo a creare all’interno della no-stra applicazione.

Creazione del progettoPrima di tutto creiamo un nuovo proget-to Outlook 2007 che chiameremo “Worl-dTravelAddIn” (selezioniamo come tipo progetto Visual C# -> Office -> 2007 Add-Ins -> Outlook Add-in), come visibile in Figura 2.

Iniziamo ad analizzare i file creati dal template del progetto add.in di Office Ou-

Figura 1 Lo schema delle classi utilizzate

Page 14: v2007 01 vbj73

14 VBJ N. 73 - Gennaio/Febbraio 2006

.NET

chiamare durante la chiusura di Outlook.Sempre all’interno del file ThisAddIn.cs sono importati i nuovi namespace di Office 2007

using Microsoft.VisualStudio.Tools.Applications.Runtime;

using Outlook = Microsoft.Office.Interop.Outlook;

using Office = Microsoft.Office.Core;

Per prima cosa dobbiamo scrivere un me-todo che ci permetta di poter aggiungere all’interno del Menu di Microsoft Outlook 2007 un pulsante personalizzato che andrà a richiamare il Windows Form, che poi creerà la mail personalizzata.Iniziamo istanziando le classi che andremo ad utilizzare durante la scrittura dell’add-in di Outlook 2007 (istanziate le classi all’interno della classe ThisAddIn del file “ThisAddIn.cs”):

private Office.CommandBar menuBar;

private Office.CommandBarPopup newMenuBar;

private Office.CommandBarButton buttonOne;

private string menuTag = “WorldAddIn”;

Fatto ciò passiamo ad aggiungere il me-todo che andrà a creare il nuovo menu all’interno di quello preesistente. Per prima cosa creiamo il metodo “AddMenu-Bar” ed aggiungiamo all’interno del file ThisAddIn.cs:

private void AddMenuBar()

{

}

All’interno del metodo dobbiamo scrivere il codice che ci permetterà di creare il nuo-vo menu e lo inserirà all’interno di quello preesistente. Il codice, non solo aggiunge-rà il nuovo menu, ma anche un pulsante che aprirà il form WPF (Listato 1).

Figura 2 Il progetto in Outlook

Page 15: v2007 01 vbj73

15N. 73 - Gennaio/Febbraio 2006 VBJ

.NET

Una volta creato il metodo che ci permette-rà di aggiungere il nuovo menu, possiamo richiamare il metodo all’interno dell’even-to ThisAddIn_Startup:

//Method to create new menu

AddMenuBar();

Attenzione: se lanciamo in modalità debug più volte il nostro add-in, prima di creare il metodo che possa controllare se già esiste il nuovo menu, noteremo che verranno creati tantissimi nuovi pulsanti all’interno del menu di Outlook 2007.Per evitare questo inconveniente dobbiamo scrivere un metodo che possa eliminare il

menu prima di aggiun-gerlo nuovamente.

Creeremo ora il menu che andrà a controllare se il menu “World Tour Agency” già esiste nel menu di Outlook 2007; se lo dovesse trovare lo elimina e poi lo ricrea nuovamente.Aggiungiamo il meto-do “RemoveMenuBar” al’interno della classe ThisAddIn (Listato 2).

Dopo aver aggiunto il metodo che controllerà l’esistenza del menu, lo dobbiamo richimare all’interno del metodo ThisAddIn_Startup prima del metodo “Ad-dMenuBar()”:

//Search the menu and delete

if found

RemoveMenubar();

Creato il menu ed asso-ciato il pulsante, dob-biamo gestire l’evento

clic del pulsante.Aggiungiamo la seguente riga di codice all’interno del metodo “AddMenuBar”:

buttonOne.Click += new Office._CommandBarButton

Events_ClickEventHandler(buttonOne_Click);

Una volta associato l’evento al clic del pulsante dobbiamo creare il metodo “but-tonOne_Click” all’interno della classe “ThisAddIn”:

#region Create and Open WPF form

/// <param name=”ctrl”>Create WPF Form runtime</param>

private void buttonOne_Click(Office.CommandBarButton

ctrl, ref bool cancel)

Listato 1 Aggiungere il pulsante che apre il form WPF

try { //Define the existent Menu Bar menuBar = this.Application.ActiveExplorer().CommandBars.ActiveMenuBar; //Define the new Menu Bar into the old menu bar newMenuBar = (Office.CommandBarPopup)menuBar.Controls.Add(

Office.MsoControlType.msoControlPopup, missing, missing, missing, false);

//If I dont find the newMenuBar, I add it if (newMenuBar != null) { newMenuBar.Caption = “World Tour Agency”; newMenuBar.Tag = menuTag; buttonOne = (Office.CommandBarButton)newMenuBar.Controls.

Add(Office.MsoControlType.msoControlButton, missing, missing, 1, true);

buttonOne.Style = Office.MsoButtonStyle.msoButtonIconAndCaption; buttonOne.Caption = “Send Confirmation Email”; //This is the Icon near the Text buttonOne.FaceId = 610; buttonOne.Tag = “c123”; //Insert Here the Button1.Click event newMenuBar.Visible = true; } } catch (Exception ex) { //This MessageBox is visible if there is an error System.Windows.Forms.MessageBox.Show(“Error: “ + ex.Message.ToString(),

“Error Message Box”, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); }

Page 16: v2007 01 vbj73

16 VBJ N. 73 - Gennaio/Febbraio 2006

.NET

{

}

#endregion

Creazione del Form con WPFAdesso passiamo a creare il Win-dows Form che creerà la mail in maniera automatica.Per prima cosa dobbiamo aggiun-gere all’interno del nostro progetto un form ASMX.Facciamo clic con il tasto destro sul progetto, selezioniamo “Add” ed in-fine “New Item” (Figura 3).Si aprirà il form per la scelta del-l’”Item” da aggiungere al proget-to, selezionate “Windows(WPF)”, inserite il nome “window2.asmx” e premete il tasto “Add” (Figura 4).Una volta aggiunto il file, Visual Stu-dio 2005 inserirà tutti i namespace necessari per il corretto funziona-mento del Form generato con WPF.

Attenzione: in automatico anche nel Setup verranno ag-giunti i namespace necessari per il corretto funzionamento dell’add-in di Outlook.Finito di inserire tutte le “Re-ferences” necessarie per il cor-retto funzionamento, la scher-mata di VS 2005 si presenterà come in Figura 5.

In questo articolo creeremo anche tutti i controlli con-tenuti all’interno del Form “window2.xaml” a runtime, per capire come è cambiata la gestione dei controlli all’inter-no del Framework .Net 3.0.Iniziamo subito creando il me-todo che creerà i controlli:

private void FormWPFCreate()

{

}

All’interno di questo metodo istanzieremo

Listato 2 Non aggiungiamo troppi menu!

#region Remove Button from Outlook’s Menu private void RemoveMenubar() { // If the menu already exists, remove it. try { Office.CommandBarPopup foundMenu =(Office.CommandBarPopup) this.Application.ActiveExplorer().CommandBars.ActiveMenuBar. FindControl(Office.MsoControlType.mso ControlPopup, missing, menuTag, true, true); if (foundMenu != null) { foundMenu.Delete(true); } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } }#endregion

Figura 3 Aggiungiamo il form ASMX

Page 17: v2007 01 vbj73

17N. 73 - Gennaio/Febbraio 2006 VBJ

.NET

il form “window” settando anche le dimen-sioni iniziali e il titolo del form:

//Create a windows form with WPF namespace

Window2 window = new Window2();

window.Title = “Form to create a Mail”;

//Set the dimension

window.Height = 306;

window.Width = 464;

Ora andremo ad aggiungere un “Grid” con-trol al quale agganceremo tutti i controlli. È importante sapere che ogni volta che vie-ne definito un form con WPF è necessario definire anche un componente Grid:

//Create the Grid Control

Grid newgrid = new Grid();

//Show the Grid Lines

newgrid.ShowGridLines = true;

Definiamo le righe contenute all’interno del componente “newgrid”. Come tutte le griglie, anche il componente “Grid” è com-posto da “Column” e “Row”. In questo caso

andiamo a definire due righe e nessuna colonna:

//Define Row of Grid

RowDefinition rowDef1 = new RowDefinition();

rowDef1.Height = new GridLength(102, GridUnitType.Pixel);

RowDefinition rowDef2 = new RowDefinition();

rowDef2.Height = new GridLength(171, GridUnitType.Pixel);

//Add the row to the grid component

newgrid.RowDefinitions.Add(rowDef1);

newgrid.RowDefinitions.Add(rowDef2);

Attenzione: la misura che possiamo utiliz-zare per la definizione delle righe e delle colonne può essere in “Star” o “Pixel”. Se creiamo le righe e le colonne a Design Time, in automatico Visual Studio 2005 utilizza “Star” come unità di misura; per forzare l’utilizzo dell’unità di misura “Pixel” bisogna fare clic nel punto indicato in Figura 6.

Definite le righe presenti nel componen-te “Grid” passiamo a definire il “Name-Scope”.

Figura 4

Page 18: v2007 01 vbj73

18 VBJ N. 73 - Gennaio/Febbraio 2006

Figura 5

Figura 6 Forzare l’utilizzo dell’unità “Pixel”

.NET

I Namescope memorizzano le relazioni tra gli oggetti definiti in XAML e le loro istan-ze. I Namescope nel codice gestito WPF sono creati durante il caricamento delle pagine di un’applicazione XAML. Sono definiti tramite l’interfaccia INameScope e

implementati dalla classe NameScope. Per definire il “Namescope” dobbiamo aggiun-gere questo codice:

// Create a name scope for the Grid

// and assign a name

NameScope.SetNameScope(newgrid, new NameScope());

Adesso possiamo aggiungere tutti i controlli che vogliamo all’interno di questo form. Iniziamo dalla prima Label:

#region Label Travel Agency

System.Windows.Controls.Label label1 = new

System.Windows.Controls.Label();

label1.Height = 32.2766666666667;

label1.Margin = new System.Windows.Thickness

(113.37, 4.7233333333333, 0, 0);

label1.VerticalAlignment = System.Windows.Vertical

Alignment.Top;

label1.FontSize = 16;

label1.HorizontalAlignment =

System.Windows.HorizontalAlignment.Left;

label1.Width = 112.63;

Page 19: v2007 01 vbj73

19N. 73 - Gennaio/Febbraio 2006 VBJ

.NET

label1.Content = “Travel Agency”;

// Add to Grid the component Label1

Grid.SetRow(label1, 0);

#endregion

Cerchiamo di capire cosa abbiamo fatto. Per prima cosa abbiamo creato una nuova istanza dell’oggetto Label presente nel na-mespace “System.Windows.Controls” che è differente dal namespace utilizzato dal Framework 2.0.Una volta creata l’istanza dell’oggetto “Label” abbiamo definito “Height” e il “Margin”; il “Margin” è un nuovo concetto presente nel Framework 3.0, che indica in maniera esatta la posizione del controllo; senza questa informazione il controllo non può essere posizionato. L’ultimo comando che abbiamo inserito è quello per associare al componente Grid presente nel form il componente “Label1” appena creato (se non associamo il controllo al componente Grid, non viene visualizzato il componente stesso).Nello stesso modo in cui abbiamo aggiunto il componente “Label”, aggiungeremo an-che gli altri componenti (Listato 3).

Tra questi componenti generati a runtime vengono visualizzate alcune delle novità del nuovo Framework 3.0, come per esem-pio la possibilità di ruotare i componenti nel form (il componente “labelCopyright”), richiamare immagini, ecc.

Attenzione: Nel progetto viene richiamata un’immagine “yast_suse_tour.png” che dovete aver caricato in una cartella img nel progetto dell’add-in. Inoltre dovete cambiare la path relativa all’immagine, al-trimenti il form non verrà visualizzato.

Ora rimane da aggiungere il componente “Button”. Questo componente l’ho lasciato per ultimo perchè la sua gestione è un po' più complessa. Per prima cosa definiamo il controllo:

#region Button

System.Windows.Controls.Button button1 =

new System.Windows.Controls.Button();

button1.Height = 39;

button1.Margin = new System.Windows.Thickness(14, 0, 0, 16);

button1.VerticalAlignment =

System.Windows.VerticalAlignment.Bottom;

button1.HorizontalAlignment =

System.Windows.HorizontalAlignment.Left;

button1.Width = 191;

button1.Content = “Create”;

button1.Click += new RoutedEventHandler(button1_Click);

Grid.SetRow(button1, 1);

#endregion

Aggiungiamo ora il metodo che gestisce l’evento clic del controllo “Button1” (Li-stato 4).

In questo metodo abbiamo utilizzato tutta la potenzialità della classe “NameScope”. Come avete potuto notare, abbiamo aggan-ciato alcuni controlli (tutti quelli “TextBox”) alla classe “NameScope” in maniera da po-terli richiamare in qualisiasi momento.Nel metodo che gestisce l’evento clic del controllo “Button1” c’è il riferimento ad un metodo “SendEmail”. Perchè il compi-latore non ci dia errore dobbiamo inserire il codice seguente:

#region Create Email

private void SendEmail

(string name, string sourname, string email)

{

Riquadro 1

Tecnologie utilizzate:- Visual Studio 2005- VSTO 2005 SE- Framework 3.0

Software Richiesto:- Windows 2003 Server Std- Office 2007 Ultimate- VSTO 2005 SE- Visual Studio 2005 Professional

Page 20: v2007 01 vbj73

20 VBJ N. 73 - Gennaio/Febbraio 2006

Listato 3 Aggiunta di tutti i componenti

#region Label World TourSystem.Windows.Controls.Label label2 = new System.Windows.Controls.Label();label2.Height = 34.2766666666667;label2.Margin = new System.Windows.Thickness(184.37, 27.7233333333333, 142, 40.0000000000001);label2.VerticalAlignment = System.Windows.VerticalAlignment.Top;label2.FontSize = 20;System.Windows.Media.FontFamily myFont = new System.Windows.Media.FontFamily(“Arial”);label2.FontFamily = myFont;label2.Foreground = Brushes.Blue;label2.HorizontalAlignment = System.Windows.HorizontalAlignment.Right;label2.Width = 125.63;label2.Content = “World Tour”;Grid.SetRow(label2, 0);#endregion

#region Image Travel AgencySystem.Windows.Controls.Image image1 = new System.Windows.Controls.Image();image1.Width = 100;System.Windows.Media.Imaging.BitmapImage imageSource = new System.Windows.Media.Imaging.BitmapImage();imageSource.BeginInit();//Put your directory where is located//your png imageimageSource.UriSource = new Uri(@”C:\Fulvio\img\yast_suse_tour.png”);imageSource.DecodePixelHeight = 100;imageSource.EndInit();image1.Margin = new System.Windows.Thickness(-180, 6, 175, 8);image1.Source = imageSource;//image1.Height = 88;image1.VerticalAlignment = System.Windows.VerticalAlignment.Top;image1.Stretch = Stretch.Uniform;Grid.SetRow(image1, 0);#endregion

#region Label “Fill Form”System.Windows.Controls.Label label3 = new System.Windows.Controls.Label();label3.Height = 23.2766666666667;label3.Margin = new System.Windows.Thickness(20.37, 5.93852320675109, 0, 0);label3.VerticalAlignment = System.Windows.VerticalAlignment.Top;label3.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;label3.Width = 86.63;label3.Content = “Fill Form:”;Grid.SetRow(label3, 1);#endregion

#region Label NameSystem.Windows.Controls.Label label4 = new System.Windows.Controls.Label();label4.Height = 23.2766666666667;label4.Margin = new System.Windows.Thickness(18.37, 28.938523206751, 0, 0);label4.VerticalAlignment = System.Windows.VerticalAlignment.Top;label4.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;label4.Width = 70.63;label4.Content = “Name: “;Grid.SetRow(label4, 1);#endregion

.NET

Page 21: v2007 01 vbj73

21N. 73 - Gennaio/Febbraio 2006 VBJ

Listato 3 CONTINUA...

#region Label SournameSystem.Windows.Controls.Label label5 = new System.Windows.Controls.Label();label5.Margin = new System.Windows.Thickness(17.37, 53.938523206751, 0, 93.7848101265823);label5.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;label5.Width = 71.63;label5.Content = “Sourname: “;Grid.SetRow(label5, 1);#endregion

#region Label EmailSystem.Windows.Controls.Label label6 = new System.Windows.Controls.Label();label6.Margin = new System.Windows.Thickness(18.3699999999999, 77.7233333333333, 0, 70);label6.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;label6.Width = 35.63;label6.Content = “Email:”;Grid.SetRow(label6, 1);#endregion

#region Name’s TextBoxSystem.Windows.Controls.TextBox TextBox1 = new System.Windows.Controls.TextBox();TextBox1.Height = 19;TextBox1.Width = 100;TextBox1.Name = “Name”;// Register TextBox2’s name with newgridnewgrid.RegisterName(TextBox1.Name, TextBox1);TextBox1.Margin = new System.Windows.Thickness(140, 31, 0, 0);TextBox1.VerticalAlignment = System.Windows.VerticalAlignment.Top;TextBox1.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;Grid.SetRow(TextBox1, 1);#endregion

#region Sourname’s TextBoxSystem.Windows.Controls.TextBox TextBox2 = new System.Windows.Controls.TextBox();TextBox2.Height = 19;TextBox2.Width = 100;TextBox2.Name = “Sourname”;// Register TextBox2’s name with newgridnewgrid.RegisterName(TextBox2.Name, TextBox2);TextBox2.Margin = new System.Windows.Thickness(140, 55, 0, 0);TextBox2.VerticalAlignment = System.Windows.VerticalAlignment.Top;TextBox2.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;Grid.SetRow(TextBox2, 1);#endregion

#region Email’s TextBoxSystem.Windows.Controls.TextBox TextBox4 = new System.Windows.Controls.TextBox();TextBox4.Height = 19;TextBox4.Width = 100;TextBox4.Name = “Email”;//Register TextBox3’s Name with newgridnewgrid.RegisterName(TextBox4.Name, TextBox4);TextBox4.Margin = new System.Windows.Thickness(141, 80, 0, 72);TextBox4.VerticalAlignment = System.Windows.VerticalAlignment.Top;

.NET

Page 22: v2007 01 vbj73

22 VBJ N. 73 - Gennaio/Febbraio 2006

Figura 7

Listato 3 CONTINUA...

TextBox4.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;Grid.SetRow(TextBox4, 1);#endregion

#region Label CopyrightSystem.Windows.Controls.Label labelCopyright = new System.Windows.Controls.Label();labelCopyright.Content = “Copyrights 2006-2007 Fulvio Giaccari”;labelCopyright.Background = Brushes.BurlyWood;labelCopyright.HorizontalAlignment = System.Windows.HorizontalAlignment.Right;labelCopyright.Margin = new Thickness(0, 1.7233333333333, -266, 0);labelCopyright.Width = 269.63;labelCopyright.Height = 24.2766666666667;labelCopyright.VerticalAlignment = VerticalAlignment.Top;labelCopyright.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center;// Create a RotateTransform to rotate// the labelCopyright 90 degrees about its// top-left corner.RotateTransform labelCopyrightRotateTransform = new RotateTransform(90);labelCopyright.RenderTransform = labelCopyrightRotateTransform;Grid.SetRow(labelCopyright, 0);#endregion

.NET

string _body;

_body = “Dear Mr. <STRONG>%name%</STRONG>

<STRONG>%sourname%</STRONG>, <BR /> your flight is Boo-

ked. Thanks for use our services. <BR /><BR /> Fulvio

Giaccari - CEO<BR />’World Tour’ Travel Agency”;

StringBuilder sb = new StringBuilder(_body);

sb.Replace(“%name%”, name.ToString());

sb.Replace(“%sourname%”, sourname.ToString());

Outlook.Application app1 =

new Microsoft.Office.Interop.Outlook.Application();

Outlook.MailItem mail1 =

(Outlook.MailItem)Appl.createItem(Microsoft.Office.

Interop.Outlook.OlItemType.olMailItem);

mail1.To = email;

mail1.Subject = “Your flight is booked”;

mail1.BodyFormat =

Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;

mail1.HTMLBody = sb.ToString();

mail1.Display(true);

}

#endregion

Questo metodo permette di creare una

Page 23: v2007 01 vbj73

23N. 73 - Gennaio/Febbraio 2006 VBJ

Figura 8 La finestra creata a runtime

.NET

mail personalizzata con i dati inseriti all’in-terno del form creato a runtime dai metodi precedenti.L’ultima parte di codice che dobbiamo inserire è quella relativa alla visua-lizzazione dei controlli all’interno del componente “newgrid” del metodo “For-mWPFCreate”. Aggiungete le seguenti righe di codice dopo la creazione del

controllo “Button1” nel metodo “For-mWPFCreate”:

try

{

//Add all controls to Grid

newgrid.Children.Add(button1);

newgrid.Children.Add(label1);

newgrid.Children.Add(label2);

Figura 9 La mail in formato HTML

Page 24: v2007 01 vbj73

24 VBJ N. 73 - Gennaio/Febbraio 2006

.NET

newgrid.Children.Add(label3);

newgrid.Children.Add(label4);

newgrid.Children.Add(label5);

newgrid.Children.Add(label6);

newgrid.Children.Add(image1);

newgrid.Children.Add(TextBox1);

newgrid.Children.Add(TextBox2);

newgrid.Children.Add(TextBox4);

newgrid.Children.Add(labelCopyright);

window.Content = newgrid;

window.Show();

}

catch (Exception ex)

{

System.Windows.Forms.MessageBox.Show(ex.Message.

ToString());

}

L’ultimo passaggio che ci rimane da fare

è quello di richiamare il metodo “For-mWPFCreate” all’interno del metodo dell’evento clic del bottone del menu ag-giunto ad Office 2007.

private void buttonOne_Click

(Office.CommandBarButton ctrl, ref bool cancel)

{

FormWPFCreate();

}

Adesso possiamo lanciare il debug del-l’applicazione e verrà creato il menu (Figura 7).Facendo clic sul pulsante contenuto all’interno del menu verrà visualizzata la finestra creata a runtime con WPF (Figura 8).Compiliamo tutti i campi e premiamo il bottone “Create” , il nostro add-in creerà la mail in formato HTML con tutti i dati inseriti all’interno del form (Figura 9).

ConclusioniIn questo progetto abbiamo usato i nuovi Visual Studio Tools for Office 2005 SE che permettono di poter lavorare con il nuovo Microsoft Office 2007. Abbiamo creato un semplice add-in che ci permette di intrave-dere tutte le potenzialità fornite dai VSTO con Outlook 2007.Inoltre abbiamo integrato nell’applica-zione un form generato con Windows Presentation Foundation (WPF) e il Fra-mework 3.0. In questo form sono stati aggiunti tanti controlli a runtime e la cosa interessante è che abbiamo utiliz-zato anche la nuova classe “NameSco-pe” e ad essa abbiamo associato alcuni controlli per poi poterli richiamare da un evento generato da un controllo del form. Abbiamo anche visto che ogni volta che viene creato un Windows Form con il Framework 3.0 questo porta con sé un controllo Grid composto da Column e Row e ogni controllo deve essere asso-ciato al controllo Grid e ad un suo Row o Column.

Listato 4 Metodo che gestisce l’evento Click di “Button1”

#region Button1 Eventvoid button1_Click(object sender, RoutedEventArgs e) {try { System.Windows.Controls.Button btn1 = sender as

System.Windows.Controls.Button; Grid grid1 = (Grid)btn1.Parent; //Find from NameScope all TextBox controls System.Windows.Controls.TextBox txtName = (System.

Windows.Controls.TextBox)grid1.FindName(“Name”); System.Windows.Controls.TextBox txtSourname = (System.Windows.Controls.TextBox)grid1.FindName(“Sourname”); System.Windows.Controls.TextBox txtEmail = (System.

Windows.Controls.TextBox)grid1.FindName(“Email”); //Call SendEmail Method to create email SendEmail(txtName.Text, txtSourname.Text,

txtEmail.Text); } catch (Exception ex) { System.Windows.MessageBox.Show(“Error: “ +

ex.Message.ToString()); } }#endregion

Page 25: v2007 01 vbj73
Page 26: v2007 01 vbj73

26 VBJ N. 73 - Gennaio/Febbraio 2007

C#

Introduzione a C# 3.0

di DevLeap (www.devleap.com)

In questo articolo forniamo un’anticipazione su due delle numerose novità che saranno intro-dotte in C# 3.0. Questo linguaggio sta subendo un’evoluzione legata in gran parte alla necessità di fornire i costrutti sintattici necessari a LINQ (Language INtegrated Query), ma tutte queste evoluzioni saranno disponibili per qualsiasi tipo di uso del linguaggio. C# 2.0 ha già migliorato il linguaggio C# origina-le in vari aspetti, per esempio con l’introduzione dei generics che consentono di definire metodi e classi con tipi parametrici. C# 3.0 prosegue il cammino con una tendenza ai linguaggi funzio-nali che supportano uno stile di programmazio-ne più dichiarativo, elemento che è uno dei pila-stri di LINQ. In questo articolo ci concentriamo su due funzionalità particolari di C# 3.0.

Local type inferenceL’inferenza dei tipi è una caratteristica inte-

ressante per qualunque lin-guaggio, perché consente di scrivere meno codice mante-nendo tutte le caratteristiche di “tipizzazione forte” (strong typing). L’unico prezzo da pa-gare è un codice meno espli-cito nella definizione dei tipi da utilizzare, ma riteniamo che ciò non sia problematico laddove la dichiarazione del tipo non sia particolarmente significativa.C# 3.0 consente l’inferenza di tipi definendo le variabili tra-mite la keyword “var” al posto del tipo specifico. Questa tecnica non va confusa con la dichiarazione di una variabile di tipo Object. Quando si usa var, il compilatore inferisce il tipo dall’espressione utilizza-ta per inizializzare la variabi-le. Il codice IL risultante dalla compilazione contiene solo il tipo inferito e nessun riferi-mento a Object o var.Se scriviamo:

Local Type Inference e Object Initialization Expression

DevLeap è un gruppo di consulenti e autori specializzati nella formazione e consulenza per lo sviluppo di soluzioni basate sul Framework .NET di Microsoft. Possono essere contattati via email: [email protected]. I loro blog personali sono dispo-nibili all’indirizzo http://blogs.devleap.com/. A maggio 2007 terranno la quarta edizione della loro conferenza tecnica approfondita: per tutte le info http://devcon.devleap.com

Page 27: v2007 01 vbj73

27N. 73 - Gennaio/Febbraio 2007 VBJ

C#

C# 3.0 - .NET 3.5

public void ValidUse( decimal d ) {

var x = 2.3; // decimal

var y = x; // double

var r = x / y; // double

var s = “sample”; // string

var l = s.Length; // int

var w = d; // decimal

var p = default(string); // string

}

L’esempio seguente mostra invece al-cuni casi in cui la keyword var non è ammessa.

C# 3.0 - .NET 3.5 - Codice errato

class VarDemo {

var k = 0; // NO: var non si può usare nella

dichiarazione di membri

public void InvalidUseParameter( var x ) {} //

NO: var come tipo di un parametro

public var InvalidUseResult() { //

NO: var come tipo restituito

return 2;

}

public void InvalidUseLocal() {

var x; // NO: Errore di sintassi,

si aspetta ‘=’

var y = null; // NO: Non si può inferire una

variabile locale da ‘null’

}

// …

}

Il tipo di k potrebbe essere inferito dalla sua inizializzazione, ma var non è ammesso sulla definizione di variabili membro. Il tipo risultante da InvalidUseResult potrebbe essere inferito dallo statement return, ma anche questa sintassi non è ammessa.

Object initialization expressionIn C# è possibile inizializzare un membro o una variabile locale attraverso una singo-la istruzione.

C# 3.0 - .NET 3.5

int a = 5;

var b = a;

otteniamo un codice compilato assoluta-mente identico a:

int a = 5;

int b = a;

La parola chiave var ricorda il tipo VA-RIANT del buon vecchio ambiente COM, utilizzata in modo pervasivo in VB6, ma è tutt’altra cosa in quanto si tratta di una dichiarazione type safe: il compila-tore inferisce il tipo, esattamente come se fosse esplicitato nel codice. Questa sintassi potrebbe sembrare semplice-mente una scorciatoia per programma-tori pigri, tuttavia è l’unico modo per definire un tipo anonimo, altra caratteri-stica di C# 3.0 che magari affronteremo in articoli successivi.

La keyword var può essere usata solo per dichiarare variabili locali e non può essere usata per definire variabili membro o pa-rametri. L’esempio seguente mostra alcuni esempi del corretto uso di var: x, y e r sono tipi Double, d e w sono invece Decimal, mentre s e p sono stringhe; per finire l è un Integer. Da notare come la costante 2.3 definisca il tipo inferito da tre variabili e la keywork default sia un valore null che inferisce il tipo corretto su p.

C# 3.0 volge verso i linguaggi funzionali, che supportano uno stile di programmazione più

dichiarativa

Page 28: v2007 01 vbj73

28 VBJ N. 73 - Gennaio/Febbraio 2007

C#

C#

int i = 3;

string name = ‘Unknown’;

Cliente c = new Cliente( “Marco”, 37 );

Per inizializzare un oggetto più complesso è necessario un costruttore che attraverso dei parametri consenta di specificare lo stato interno iniziale del nuovo oggetto. Consideriamo il codice che segue.

C#

public class Cliente {

public int Eta;

public string Nome;

public string Nazione;

public Cliente( string nome, int eta) {

this.Nome = nome;

this.Eta = eta;

}

// …

}

L’istanza di Cliente viene inizializzata dal suo costruttore che prevede l’assegnazio-ne dei membri Nome e Eta. Se volessimo impostare il membro Nazione, ma non il membro Eta, dovremmo scrivere questo codice.

C#

Cliente c = new Cliente();

c.Nome = “Marco”;

c.Nazione = “Italia”;

C# 3.0 introduce una nuova sintassi per inizializzare gli oggetti: è una forma più breve che genera, dietro le quinte, del co-dice equivalente al precedente.

C# 3.0 - .NET 3.5

// Chiamata implicita al default constructor prima

di object initialization

Cliente c = new Cliente { Nome = “Marco”,

Nazione = “Italia” };

Le due sintassi usate per inizializzare l’og-getto di tipo Cliente sono equivalenti: una volta compilato, il codice richiama il co-struttore di default e assegna i due membri Nome e Nazione. I valori inseriti nella ini-tialization list (l’elenco tra parentesi graffe dopo il nome della classe da costruire) devono corrispondere a membri pubblici della classe da inizializzare.

È anche possibile richiamare un costrutto-re specifico anziché quello di default.

C# 3.0 - .NET 3.5

// Specifico il costruttore da chiamare

Cliente c1 = new Cliente() { Nome = “Marco”,

Nazione = “Italia” };

// Specifico il costruttore da chiamare

Cliente c2 = new Cliente( “Paolo”, 31 )

{ Nazione = “Italia” };

L’assegnazione a c2 è equivalente alla se-guente.

C#

Cliente c2 = new Cliente( “Paolo”, 31 );

c2.Nazione = “Italia”;

Uno dei vantaggi di questa nuova sintassi è poter inizializzare un oggetto all’interno di altre espressioni senza dover usare una

C# 3.0 consente l’inferenza di tipi definendo le variabili tramite la keyword var al

posto del tipo specifico

Page 29: v2007 01 vbj73

29N. 73 - Gennaio/Febbraio 2007 VBJ

C#

sintassi specifica, consentendo così la scrit-tura di blocchi di inizializzazione nidificati, come nel prossimo esempio.

C# 3.0 - .NET 3.5

public class Point {

int x, y;

public int X { get { return x; } set { x = value; } }

public int Y { get { return y; } set { y = value; } }

}

public class Rectangle {

Point tl, br;

public Point TL { get { return tl; } set { tl = value; } }

public Point BR { get { return br; } set { br = value; } }

}

// Nested object initializzer

Rectangle r = new Rectangle {

TL = new Point { X = 0, Y = 1 },

BR = new Point { X = 2, Y = 3 }

};

Il codice compilato è equivalente al se-guente.

C#

Rectangle rectangle2 = new Rectangle();

Point point1 = new Point();

point1.X = 0;

point1.Y = 1;

rectangle2.TL = point1;

Point point2 = new Point();

point2.X = 2;

point2.Y = 3;

rectangle2.BR = point2;

Rectangle rectangle1 = rectangle2;

La nuova sintassi risulta più comoda da usa-re oltre che più leggibile e può essere usata sia con i tipi reference che con i tipi value.Abbiamo visto due delle nuove caratteristi-che di C# 3.0. Durante la nostra conferenza di maggio, DevCon 2007, avremo sessioni dedi-cate e più approfondite su questi argomenti.

Page 30: v2007 01 vbj73
Page 31: v2007 01 vbj73

31N. 73 - Gennaio/Febbraio 2006 VBJ

ENTERPRISE

Business Intelligence Tecnologia e processo

di Fabio Testa

Per la definizione di Business Intelligence ci appoggiamo alla concettualizzazione di Howard Dresner, famoso analista del Gartner Group che ha coniato le parole Business Intelligence nel 1992:

“Business Intelligence (BI) è un ombrello concettuale al di sotto del quale trovano posto tecnologie a supporto dell’utente finale per l’accesso e l’analisi delle fonti di informazione quantitative”

In effetti possiamo vedere la BI sotto un duplice aspetto:

1) Come processo aziendale nel quale le or-ganizzazioni raccolgono le informazioni dai sistemi operazionali, dai sistemi di datawa-rehouse e da fonti eterogenee per stimare e valutare performance ed andamenti di indi-catori percettivi dell’andamento economico e di mercato

2) Come insieme di tecnologie volte alla trasfor-mazione di dati e informazioni in conoscen-za

Nei prossimi paragrafi ci concentreremo sull’aspetto tecnologico per riprendere il concetto di utilità di processo nelle conclusioni in cui sin-teticamente indicheremo il motivo che dovrebbe spinge-re una azienda ad investire in sforzi implementativi e rior-ganizzativi per l’intruduzione di un sistema di BI.

Organizzazione dei dati ed astrazione (Metadati)

Per comprendere come i me-tadati entrano e permeano l’intera organizzazione di un sistema di BI bisogna capire la differenza fondamentale tra “dato” e “metadato”.Un dato è ciò che è immedia-tamente presente alla cono-scenza. Esempi di dato sono: nome e cognome, indirizzo, codice fiscale, quantità ordi-nata.Un metadato è invece una collezione di dati contenen-te informazioni sul dato di riferimento (es. lunghezza e caratteri consentiti nel dato

Una panoramica sui sistemi di Business Intelligence

Fabio Testa si occupa di progettazione, consulenza e project management su software web/desktop based e di sistemi di DW ed ha lavorato nei settori servizi IT per Public utilities, PMI, banche e centri servizi bancari

Page 32: v2007 01 vbj73

32 VBJ N. 73 - Gennaio/Febbraio 2006

ENTERPRISE

comprende anche uno strumento che per-mette analisi (report ed altro) sull’utilizzo e sugli impatti di sviluppo sugli oggetti interni al sistema stesso.L’astrazione, nei sistemi di BI più struttu-rati, viene estesa anche al livello di design dei dati. In dettaglio le dimensioni e le mi-sure vengono visti come oggetti contenuti all’interno di classi e tutta la logica relazio-

nome e cognome, tipo numerico e nume-ro di decimali per la quantità acquistata, ecc.).La Figura 1 ci mostra in quale modo un moderno sistema di BI utilizza metadati memorizzati in repository (comunemente basi dati su DB relazionali) per rappre-sentare i dati, il tipo, la loro profondità, le gerarchie, ecc. Il sistema di BI usualmente

Figura 1 Repository

Figura 2 Astrazione di oggetti a livello di design

Page 33: v2007 01 vbj73

33N. 73 - Gennaio/Febbraio 2006 VBJ

ENTERPRISE

nale (entità/relazioni) è nascosta agli svi-luppatori di report, dashboard e prospetti di analisi trend. L’esempio riportato in Figura 2 può darci un’idea di come un prodotto di mercato implementa questa astrazione.

Organizzazione del dato ed analisiConcetto primario nell’analisi di dati dimensionali è OLAP. Dietro questo acronimo si nasconde la definizione On Line Analytical Processing, ovvero una filosofia di organizzazione dei dati differente dalla classica utilizzata per processi transazionali (OLTP) presente nella maggior parte dei sistemi di tipo “gestionale”.Il diverso approccio permette di fornire rapide risposte ad interrogazioni (query) di tipo dimensionale con performance ineguagliabili sui sistemi tradizionali (il concetto di dimensionale ci sarà chiaro tra poco).In pratica nell’approccio OLAP si fa rife-rimento al concetto di “Cubo” che è uno snapshot di un set di dati ristrutturato (Figura 3).

Le informazioni sono riportate su più di-mensioni (assi) e vengono preaggregate (MOLAP). Le query sono eseguite su que-sto sottoinsieme rielaborato di dati (data subset) con altissime performance. Basti

pensare che su sistemi OLAP ben calibrati l’esecuzione di una query costa solo lo 0,1% che su un sistema OLTP.La struttura dati è generalmente creata se-condo uno star schema o snowflake sche-ma (a fiocco di neve – Figura 4). A questo punto dovrebbe essere più chia-ro il concetto di dimensione e, quindi, di query dimensionale. Interrogando uno o più cubi OLAP opportunamente popolati si può accedere ai dati in due nuove modalità non presenti nelle classiche interrogazioni su DB relazionali:

a) Slice&diceÈ una modalità di analisi dinamica dei dati lungo le direttrici dimensionali. In

Figura 3 Cubo OLAP

Figura 4 Star e Snowflake schema

Page 34: v2007 01 vbj73

34 VBJ N. 73 - Gennaio/Febbraio 2006

ENTERPRISE

parole povere i dati presenti in un cubo OLAP possono essere “tagliati a fette” lungo le grandezze di analisi presenti nel cubo stesso, come si può osservare nella Figura 5.

b) Drill Down&UpÈ un metedo che permette la navigazio-ne dei dati in profondità o verso l’alto lungo gerarchie stabilite all’interno del cubo OLAP (vedi Figura 6)

Un ultimo importante concetto nella comprensione dei sistemi di BI basati su OLAP è la distinzione tra Multidimensio-nal OLAP (MOLAP) e Relational OLAP (ROLAP).Come già accennato, nei sistemi MOLAP i cubi vengono precalcolati ad intervalli di tempo prefissati in una operazione atomica che viene definita “processing”. Il risultato dell’elaborazione viene con-

servato in un array storage ottimizzato.I vantaggi di questo approccio riguardano sicuramente le alte performance sulle query, l’ot-timizzazione dei dati che occu-pano spazi ridotti sullo storage, l’indicizzazione in modalità nativa dei cubi e la possibilità di automazione dei calcoli al-l’interno delle strutture (valori precalcolati lungo le dimensioni del cubo).

Svantaggi di questo approccio sono i lunghi tempi di elaborazione per la pre-computazione dei cubi (riducibili solo con l’introduzione di caricamenti incrementali), difficoltà nelle interroga-zioni su cardinalità numerose (milioni di righe). L’approccio basato su ROLAP prevede invece una organizzazione del dato in un database di tipo relazione strutturato ap-positamente. Il database non richiede una fase di pre-computazione ed è quindi di-sponibile, dopo la fase di ETL, all’interro-gazione sulle sue tabelle principali oppure sulle tabelle preaggregate che permettono risposte più rapide.Questi sistemi permettono query su car-dinalità maggiori ed i tool di ETL sono in genere più rapidi nei caricamenti delle aggregazioni MOLAP.Di contro l’approccio ROLAP consente di

Figura 5 Slice&Dice

Figura 6 Drill

Page 35: v2007 01 vbj73

35N. 73 - Gennaio/Febbraio 2006 VBJ

ENTERPRISE

ottenere delle performance decisamente più basse rispetto ai cubi pre-aggregati e non sono previste tutte le feature di indi-

cizzazione nativa e gerarchizzazione pre-senti nel modello multidimensionale.

Figura 7 Trascinamento visuale

Figura 8 Report

Page 36: v2007 01 vbj73

36 VBJ N. 73 - Gennaio/Febbraio 2006

Figura 9 Speedometer&Barometer

Figura 10 Geographical Drill

ENTERPRISE

Presentazione del datoIl layer della presentazione del dato (pre-sentation layer) è ovviamente molto impor-tante nell’economia di un sistema di BI: esso rappresenta il front-end verso l’utente finale del DWH ed a valle della produzione di dipartimenti dati coerenti ed organizza-ti, permette la fruizione e rielaborazione degli stessi.Un buon layer di presentazione deve:

1. supportare flessibilmente tutti i formati di presentazione diffusi sul mercato

2. permettere la rappresentazione dei dati dalla più analitica a quella più sintetica (a colpo d’occhio)

3. permettere la personalizzazione spinta sul singolo utente (ogni utente può crea-re molte viste personalizzate dei dati)

4. permettere la formattazione e la stampa

senza richiedere conoscenze informati-che “da programmatore”

La rappresentazione del dato, la flessibi-lità di analisi e l’usabilità sono quindi la chiave di volta di un buon layer di pre-sentazione. Nel corso degli ultimi anni le tecniche e gli strumenti di presentazione si sono standardizzati e quasi tutti i prodotti di mercato convergono su funzionalità e concetti comuni.Per la presentazione del dato analitico gli strumenti si basano sui classici report con interfacce user friendly che permettono il trascinamento di dimensioni e misure sul report e la loro formattazione visuale (Figura 7).

Il risultato finale è quasi sempre un insie-me di tabelle, stile Excel, che contengono

Page 37: v2007 01 vbj73

37N. 73 - Gennaio/Febbraio 2006 VBJ

Figura 11 Analisi dei trend

ENTERPRISE

incroci di dati e grafici collegati agli stessi rinfrescabili a comando o su schedulazione (Figura 8).

Altro tipo di strumento sono i cruscotti – o dashboard – che permettono al manager una valutazione a supporto decisionale tramite un’osservazione “a colpo d’oc-chio”. Anche in questo campo i prodotti di mercato si attestano attorno alle stesse funzionalità. I cruscotti possono avere una o più misure, provenienti da fonti dati eterogenee come DB di DWH, fogli previsionali o tool di previsioning, che vengono poi graficamente rappresentate perché possano essere osservate nel tem-po e/o paragonate tra di loro. Sono usuali in questo campo misure su rapporti ed indici rappresentati graficamente come gli speedometer (misuratori di velocità nel tempo) ed i barometer. Tramite questi strumenti le velocità e i livelli sono misu-rabili nel tempo tramite il trascinamento di cursori temporali come quelli posti in basso rispetto alla Figura 9.

Altra tipologia interessante di strumenti sono quelli che permettono analisi geogra-fiche su cartina. Usualmente questi prodot-ti generano cartine geografiche interattive sulle quali sono possibili operazioni di drill geografico rappresentate nella Figura 10.

Spostandosi nel campo della previsione con utilizzo di modelli statistici, con ap-plicazione del calcolo delle probabilità, gli strumenti si raffinano e permettono di applicare funzioni built in o custom made ai dati presenti nel datawarehouse permet-tendo analisi basate su funzioni statistiche (varianza, devianza, correlazione, ecc.), matematiche e finanziarie.Le funzioni proprietarie o custom servo-no per elaborare i dati in risultanze per ranking, analisi dei trend e proiezioni (Fi-gura 11)

Distribuzione e notificaLa distribuzione dei report e l’alerting sono funzioni chiave per un moderno sistema di Business Intelligence. Il sistema di gestio-ne dei contenuti e degli alert deve permet-tere la consegna flessibile e controllata dei contenuti che devono essere distribuiti proattivamente ad un ampio numero di attori, sia all’interno della struttura azien-dale che verso l’esterno. Funzionalità imprescindibili del sistema di distribuzione e notifica sono:

1. Distribuzione dei report su ogni pos-sibile delivery point come portali, file server, e-mail, stampanti e file server in ogni formato standard di mercato (pdf, html, Excel, rtf e zip file);

Page 38: v2007 01 vbj73

38 VBJ N. 73 - Gennaio/Febbraio 2006

Business Intelligence (BI) è un ombrello concettuale

al di sotto del quale trovano posto tecnologie

a supporto dell’utente finale per l’accesso e l’analisi delle fonti di

informazione quantitative

ENTERPRISE

2. Consegna delle informazioni: immediata (on-demand), basata su eventi specifici (on-event) e periodica (on-schedule) tra-mite interfacce amministrative con le quali è possibile stabilire le modalità, le periodicità, i formati e gli eventi di trig-gering relativi alla distribuzione;

3. Personalizzazione fino al livello utente dell’interfaccia di fruizione dei contenu-ti, sia per quanto riguarda l’amministra-zione del sistema a livello super user fino alla personalizzazione controllata dell’utente finale, bilanciando la sicu-rezza del sistema e la significatività dei report/dati per l’utente finale.

ConclusioniL’introduzione di sistemi di Business Intelligence all’interno di una struttura aziendale significa prevedere investimen-ti corposi su infrastrutture tecnologiche (harware/software) e, sicuramente, una riorganizzazione sia nel modo di produrre che di considerare le informazioni dei vari comparti aziendali. Questi cambiamenti devono essere gestiti in modo da essere non solo decisi dal top management ma, soprattutto, accettati dal middle mana-gement e dagli impiegati che guardano

spesso alla “rivoluzione” con scetticismo e sospetto.Detto questo viene spontaneo chiedersi se “il gioco vale la candela”. La risposta è quasi sempre positiva in quanto l’adozione di questi sistemi/riorganizzazioni permet-te di produrre informazioni di business di alta qualità che possono essere usate per aumentare il vantaggio competitivo.Queste informazioni possono dare ai vari reparti organizzativi (pianificazione e con-trollo, marketing, vendite, ecc.) delle viste che consentono aggiustamenti strategici molto rapidi secondo varie direttrici di analisi:

1. cambiamenti nei comportamenti di spe-sa nei clienti

2. capacità produttive o di approvvigiona-mento dell’azienda

3. generiche previsioni di trend futuri 4. informazioni demografiche ed economi-

che5. cosa le altre aziende concorrenti stanno

operando sul mercato

In sintesi l’adozione di un sistema di Busi-ness Intelligence aumenta la comunicazio-ne fra i reparti nel coordinano delle attività e permette alle aziende di rispondere rapi-damente ai cambiamenti nelle preferenze del cliente, nelle condizioni finanziarie, di mercato e di tutte le variabili presenti nella supply-chain.

Bibliografia [1] Moss L. /Atre S. – “Business Intelligence Roadmap”, Addison-Wesley[2] Vercellis Carlo – “Business Intelligence - modelli matematici e sistemi per le deci-sioni”, McGraw-Hill Libri Italia

Riferimenti [5] http://www.intelligententerprise.com/ [6] http://www.businessintelligence.com/[7] http://www.business-intelligence.co.uk/[8] http://www.dmreview.com

Page 39: v2007 01 vbj73
Page 40: v2007 01 vbj73

.NET TOOLS

40 N. 73 - Gennaio/Febbraio 2007

Standard User Analyzer di Fabio Perrone

Uno strumento Microsoft per la sicurezza delle applicazioni

La sicurezza dei prodotti software è ormai di-venuta un requisito di cui non si può più fare a meno. È quindi necessario progettare, sviluppa-re e distribuire un’applicazione rispettando com-pletamente tutte le norme che regolano questo aspetto molto complesso e delicato dell’informa-tica attuale, poiché in caso di danni prodotti da un nostro programma, le conseguenze potreb-bero essere irreparabili. Esistono alcune buone norme per cercare di ridurre al minimo i rischi, tra le quali la principale è riuscire a programma-re senza avere privilegi amministrativi (che per esperienza personale so che ben pochi compio-no). Con l’uscita di Windows Vista è anche bene ricordare che persino gli amministratori eseguo-no la maggior parte dei programmi con privilegi standard, quindi diventa fondamentale essere certi che le nostre applicazioni non dipendano troppo pesantemente dal fatto che è necessario avere i privilegi amministrativi per poterle ese-guire. Il tool che andiamo ad esaminare questo mese si propone di controllare se una qualsiasi applicazione può avere dei problemi nell’accesso a file, al registro e a molte risorse del sistema operativo, diventando uno strumento di notevo-le importanza. L’interfaccia utente si presenta con due button, una serie di tab ed un menu con ben poche voci. Una volta scelta l’applicazione da eseguire e impostati gli eventuali parametri da passarle, è possibile lanciare il programma ed effettuare delle operazioni “potenzialmente pericolose”, quali scrittura su file, registro e così via. Come tutti i tool invasivi che devono monitorare

l’andamento di un programma, anche Stan-dard User Analyzer farà rallentare la nostra applicazione, perchè raccoglie una mole di dati necessaria per esaminare gli eventuali buchi di sicurezza. Usciti dall’applicazione da testare è necessario controllare i tab per vedere i dati raccolti. Il tab “File”elenca eventuali problemi di accesso ai file (fornendo il nome dei file con problemi), cioè la possibilità di scrivere determi-nati file solo se si è amministratori; il tab “Regi-stry” effettua la stessa raccolta di problemi dei file con le chiavi di registro; il tab “INI” elenca problemi con le API WriteProfile, funzioni che vanno a scrivere nel file win.ini, ovviamente modificabile solo dagli utenti amministrativi; il tab “Token” elenca eventuali controlli del-l’applicazione per identificativi espliciti, quali “BUILTIN\Administrators”; il tab “Privilege” elenca eventuali problemi di privilegi, quali l’opportunità di effettuare il debug dell’applica-tivo; il tab “Name Space” elenca problemi cau-sati dalla creazione di oggetti di sistema mentre “Other Objects” mostra errori dovuti ad accessi che non siano né di file né di chiavi di registro; infine il tab “Process” mostra se vengono creati dei processi che richiedono elevati privilegi per poter funzionare.Ognuno di questi tab presenta una griglia con righe contenenti le eventuali problematiche: facendo doppio clic su un problema qualsiasi vengono fornite informazioni dettagliate sulla gravità dell’errore e, manna per gli sviluppato-ri, lo stack trace della chiamata che ha genera-to il problema. Assai interessante il file creato (in maniera un po’ nascosta, a dire il vero) dallo SUA: un file xml posto nella directory tempo-ranea dell’utente che sta facendo girare l’appli-cazione, contenente tutte le informazioni della verifica. Questo file riveste un’importanza par-ticolare perchè è poi immediato costruirsi una

Page 41: v2007 01 vbj73

.NET TOOLS

41N. 73 - Gennaio/Febbraio 2007 VBJ

semplice applicazione .NET che scorra questo file e mostri i risultati della scansione. Le voci di menu permettono di filtrare le tipologie di messaggi (errori, warning o informativi) che il programma mostra: nella maggior parte delle occasioni è sufficiente mostrare solo gli errori.Due considerazioni per poter sfruttare comple-tamente le potenzialità di questo programma: la prima, banale, è di effettuare ovviamente i test con i privilegi amministrativi, cioè esegui-re SUA con un utente con altri privilegi; la se-conda, cercare di esplorare tutte le funzionalità di un’applicazione per riuscire ad esaurire tut-te le possibilità di potenziali problematiche.Concludendo, vista la rapidità di apprendi-mento e la semplicità di utilizzo dello Stan-dard User Analyzer e considerata l’uscita di Windows Vista con le sue numerosi restrizioni sull’argomento sicurezza, è bene mettere nel proprio arco anche la freccia rappresentata da questo strumento.

ProdottoStandard User Analyzer

Url di riferimento http://www.microsoft.com/downloads/details.aspx?FamilyId=DF59B474-C0B7-4422-8C70-B0D9D3D2F575&displaylang=en

Stato ReleaseStabile

Semplicità d’uso ªªªªªI pochi controlli presenti nell’interfaccia utente non presentano al-cun ostacolo per essere immediatamente operativi.

Utilità ªªªªªIndispensabile per testare la sicurezza delle proprie applicazioni.

Qualità prodotto ªªªª² Nei test sul prodotto eseguiti non abbiamo riscontrato particolari problemi, è ovvio che per controllare applicazioni particolarmente complesse richiede un PC particolarmente potente.

Qualità documentazione ªª²²²Niente di più che poche spiegazioni delle voci di menu. Sia il pro-gramma che la documentazione sono in lingua inglese.

Page 42: v2007 01 vbj73

.NET TOOLS

42 N. 73 - Gennaio/Febbraio 2007 2006

Seekafile di Raffaele Di Natale

Un servizio open source per l’indicizzazione e la ricerca di documenti

Chi non ha installato negli ultimi mesi, anche solo per provare, un tool di ricerca alternativo al “cerca” di Windows, come ad esempio la Google Desktop Search Bar o l’equivalente versione MSN? Avere la potenza di un motore di ricerca affidabile e collaudato per recupera-re i file sperduti nei meandri delle directory del nostro PC non è cosa da poco. Chi non ha avuto qualche dubbio sulla reale protezione della propria privacy? Una soluzione open, sicura, efficiente, facilmente configurabile, estendibile ed accessibile sia da applicativi web sia desktop potrebbe essere la risposta a queste domande.

L’applicazioneL’applicazione [1] si compone essenzialmente di due parti: Seekafile Server che rappresenta il servizio e Seekafile Manager che costituisce il suo pannello di controllo. Il servizio è testa-to sui sistemi Windows 2000/XP/2003 con .Net Framework 1.1. Dopo aver installato e configu-rato il servizio secondo le nostre preferenze è possibile realizzare da zero un’applicazione

che utilizza i servizi forniti da Seekafile, op-pure utilizzare ed eventualmente modificare gli applicativi di esempio a corredo del tool: la Desktop Search Application, che è una Form Application e una Web Application [2].

Un po’ di storiaIl server Seekafile utilizza un motore di indi-cizzazione e ricerca basato su Lucene.Net [3]. Quest’ultimo rappresenta il porting sotto C# del più famoso Java Lucene e si è sempre di-stinto per le elevate performance, per la capa-cità di assegnare un ranking ai risultati della ricerca, per la compattezza del file di indice e per molto altro ancora.

Come funzionaAl centro dell’applicazione troviamo l’indice:

tutto gira intorno ad esso. Infatti, le applicazioni puntano ad esso per reperire i file ricercati ed il server lo aggiorna continuamente sfruttando i dati a disposizione. Seekafile in-dicizza una o più directory predefi-nite mediante la console Seekafile Manager. Il server, girando in back-ground a bassa priorità, rileva con-tinuamente i cambiamenti avvenuti in tali directory, nuovi inserimenti, modifiche ed altro, aggiornando in tal modo l’indice (o gli indici). Ogni applicazione, web o desktop, che vuole effettuare una ricerca, non deve far altro che accedere al file di indice per recuperare i relativi file.

Figura 1 Il pannello di controllo e configurazione di Seekafile

Il server Seekafile utilizza un motore di

indicizzazione e ricerca basato su Lucene.Net

Page 43: v2007 01 vbj73

.NET TOOLS

43N. 73 - Gennaio/Febbraio 2007 VBJ

motore efficiente e ottimizzato per lavorare con questo formato di file. La soluzione adot-tata da Seekfile per risolvere tale problema è basata sull’uso degli IFilter.

Cenni su IFilterSeekafile utilizza gli IFilter [4] per estrar-re porzioni di testo puro a partire da file nei formati txt, html, Word, PowerPoint ed Excel. Chiaramente, un motore di ricerca capace di estrarre dati solo da questi file, po-trebbe sembrare comunque ben poca cosa, ma la potenza della soluzione sta appunto nella sua flessibilità dovuta agli IFilter. In-fatti, questa scelta consente di affidarsi ad una soluzione ufficiale Microsoft che fun-ziona e che difficilmente sarà abbandonata nel breve periodo (è utilizzata ad esempio nell’ambiente SharePoint Portal) ed inoltre esistono IFilter proposti da terze parti che consentono di effettuare l’estrazione di te-sto puro anche da file in altri formati. Per esempio la stessa Microsoft propone un IFil-ter per i file con estensione RTF [5] o XML [6]. Infine, esiste sempre la possibilità di costruirne uno ad hoc.

Tipi di file indicizzatiLa limitazione e la potenza del motore Lucene.Net risiede nel fatto che indicizza solo testo puro. Sebbene questo aspetto di primo acchito sembri escludere l’intero universo dei file che normalmente utiliz-ziamo, invece spiega proprio il successo di tale motore. Infatti, tutto ciò che è testo puro può essere tranquillamente elaborato da Lucene.Net e quello che non lo è deve essere semplicemente filtrato. Pensiamo ad esempio ai file del pacchetto Office o ai file in formato PDF. Il tempo sprecato in tale operazione è comunque recuperato da un

Figura 2 La Form Application di esempio

A corredo del tool sono fornite una Form

Application ed una Web Application

Page 44: v2007 01 vbj73

.NET TOOLS

44 N. 73 - Gennaio/Febbraio 2007 2006

Configurazione dell’ambienteDopo aver scaricato [7] ed installato il tool, la console di gestione denominata Seekafile Manager sarà immediatamente disponibile, tramite il menu programmi. A questo punto è necessario eseguire le seguenti fasi:

1. installazione del servizio;2. configurazione del servizio;3. avvio del servizio;4. utilizzo di un client per effettuare la

ricerca.

Per installare il servizio è sufficiente digi-tare Seekafile.Server.exe /i dal prompt dei comandi a partire dalla cartella di installa-zione del servizio. Oppure, molto più sem-plicemente, si può utilizzare il Manager, in maniera tale che in tempo reale otterremo anche lo stato del servizio. Seekafile Mana-ger consente inoltre di creare il file di indice e definire le cartelle da indicizzare. Sempre dall’ambiente Manager è possibile aggiun-gere ulteriori formati di file indicizzabili dal servizio, associando il relativo filtro prece-

dentemente installato. Dopo aver avviato il servizio dall’ambiente manager, non resta che utilizzare Seekfile tramite un client. Come anticipato, è possibile scaricare sia un client desktop denominato Desktop Search Application, sia una Web Application [2], ol-tre alla possibilità di testare direttamente il tutto mediante una live demo [8] (che rappre-senta la versione online del progetto relativo al client Asp.Net.).

Desktop Search ApplicationLe performance del motore di ricerca non possono essere apprezzate fino a quando non si esegue la prima ricerca. Dopo aver eseguito e configurato il client definendo

Figura 3 La Web Application di esempio

Seekafile utilizza gli IFilter per estrarre porzioni

di testo puro dai file indicizzati

Page 45: v2007 01 vbj73

.NET TOOLS

45N. 73 - Gennaio/Febbraio 2007 VBJ

l’index file (anche più di uno) utilizzato dal servizio, è necessario inserire il path di base della ricerca in modo da abbreviarne la de-scrizione nella fase finale di visualizzazione dei risultati. Sono stati realizzati due test con i quali sono state effettuate ricerche su un totale di 4248 file di tipi diversi. Nel pri-mo caso, utilizzando una ricerca semplice (è stata ricercata la parola computer) senza vincoli, la ricerca ha prodotto 53 elementi in poco più di 0,2 secondi; nel secondo caso, utilizzando una query più complessa ed in-tervenendo su alcuni vincoli (vedi Figura 2) sono stati trovati 71 elementi in meno di 0,3 secondi.

Asp.Net Client ApplicationL’esempio di Web Application, che utilizza il servizio Seekafile, è chiaro ed essenziale. Il funzionamento è speculare alla Desktop Application ad eccezione del fatto che la configurazione dell’ambiente, per poter utilizzare localmente il servizio, deve esse-re realizzata via codice. Infatti, dopo aver definito la posizione del file di indice e la stringa base di ricerca, non resta che vedere in azione questo servizio, che nella versio-ne web mette maggiormente in evidenza le proprie potenzialità. Come si evince dalla Figura 3, i tempi di risposta sono senz’altro più immediati se confrontati alla versione desktop, differenza dovuta ai tempi di popo-lamento del control che nella versione web sono quasi ininfluenti. Per approfondire infine le performance di Lucene.Net può risultare interessante visitare [9].

ProdottoSeekafile Server

Url di riferimento http://www.seekafile.org

Stato Releasev. 1.5 beta 3

Semplicità d’uso ªªªª²Essendo un servizio necessita di tanti elementi per poter essere utilizzato, ma una volta installato è davvero semplice utilizzarlo.

Utilità ªªªª²Come fare a meno di un tool open e completamente personaliz-zabile per ricercare i nostri file?

Qualità prodotto ªªªª² Si tratta di un’ottima soluzione, quando è utilizzata a regime, men-tre nei casi in cui si fanno test (con avvio e stop del servizio) sono stati riscontrati problemi.

Qualità documentazione ªª²²²La documentazione disponibile nel sito (in lingua inglese) è com-pleta ed il software a corredo è molto esplicativo.

ConclusioniIl tool ha risposto sempre in maniera pie-namente soddisfacente nei test effettuati; dal punto di vista della tempestività e della velocità dell’indicizzazione le performance sono eccellenti; l’unico significativo limite è legato, in alcune occasioni, al mancato riav-vio del servizio Seekafile.server in seguito ad un procedente stop. La documentazione disponibile è completa, anche se in lingua inglese, ed i progetti a supporto del tool sono sicuramente esaustivi.

Bibliografia e riferimenti[1]_http://www.seekafile.org[2]_http://www.seekafile.org/download.html[3]_http://www.dotlucene.net[4]_http://www.seekafile.org/ifilter-interface.html[5]_http://www.microsoft.com/sharepoint/server/techinfo/reskit/rtf_filter.asp[6]_http://www.microsoft.com/sharepoint/server/techinfo/reskit/XML_Filter.asp[7]_http://prdownloads.sourceforge.net/seekafile/Seekafile.Server-1.5-beta2.exe?download[8]_http://www.seekafile.org/demo/[9]_http://www.damnfastdotlucene.org/

Il tool ha risposto sempre in maniera

pienamente soddisfacente nei test effettuati

Page 46: v2007 01 vbj73

46 VBJ N. 73 - Gennaio/Febbraio 2007

Secunia Research ha scoperto delle vulnerabilità in varie applicazioni audio e multimediali dovute a un controllo ActiveX non sicuro. Il componente vul-nerabile, NCTAudioFile2.dll, è stato in origine sviluppato dalla NCT Company Ltd. (ora nota come Online Media Te-chnologies Ltd.), ed è presente in più di 80 prodotti di 32 diverse aziende software. Ciò significa che non solo certi prodotti NCTsoft sono vulnerabili, ma che lo sono anche gran parte delle applicazioni che utilizzano lo stesso componente.La vulnerabilità è dovuta a un boun-dary error nel controllo ActiveX NCTAudioFile2.AudioFile; in modo specifico, nella gestione del metodo SetFormatLikeSample(). Il passaggio di un argomento con lunghezza di circa 4124 byte provoca un buffer overflow sullo stack, rendendo possi-bile all’intruso l’esecuzione di codice arbitrario sul sistema dell’utente.Qual è un possibile scenario di attacco? L’exploit potrebbe essere ospitato su un sito web subdolo che un utente viene indotto a visitare. Poiché questa vulnerabilità riguarda un componente ActiveX, il successo dell’exploit richiede che sia utilizzato Internet Explorer per visitare il sito. Benché non siamo a conoscenza di alcun exploit pubblicamente dispo-nibile per questa vulnerabilità, in effetti crearne appositamente uno è abbastanza banale.Pertanto non è troppo chiedere agli utenti di prestare attenzione durante la navigazione in Internet, particolar-mente quando IE6 esegue automati-camente i controlli ActiveX.Lo scorso anno, Secunia Research ha scoperto vulnerabilità in 18 pro-grammi di compressione a causa di una libreria condivisa (unacev2.dll) che può essere oggetto di exploit per causare un buffer overflow sullo stack. Simili alle librerie condivise, i controlli ActiveX possono essere presenti anche in vari programmi essendo possibile licenziarne uno, se è richiesta la medesima specifica fun-zionalità nella propria applicazione.

In qualità di sviluppatore, è natural-mente vantaggioso utilizzare librerie condivise o acquistare la licenza di controlli ActiveX in modo che si possa ridurre il tempo di sviluppo del proprio prodotto. D’altra parte, vanno anche considerati i rischi inerenti alla sicu-rezza coinvolti nel farlo. Il fatto di non aver sviluppato in proprio la libreria o il componente originale non significa che ci si può astenere dal supportarlo, e quindi delegare al produttore origi-nale la creazione di una patch.In linea con la politica di divulga-zione delle vulnerabilità di Secunia, il produttore e i licenziatari noti del componente vulnerabile sono stati contattati ed è stato concesso loro tutto il tempo necessario per rispon-dere al nostro report. Ciò nonostan-te, non abbiamo ottenuto risposta dal produttore né da gran parte dei licenziatari.

A Gennaio Microsoft ha rilasciato 4 security patch

Ad inizio d’anno, Microsoft ha rila-sciato quattro security advisory, tre delle quali etichettate come critiche e una come importante. Diverse vulnerabilità sono state scoperte in Microsoft Excel e Outlook; nel Microsoft Vector Markup Language (VML) è stato individuato un buffer overflow e un errore nell’aritmetica senza segno, ed è stato individuato un errore nel correttore grammati-cale della versione Portoghese Brasi-liano di Microsoft Office; errori che permettono la potenziale esecuzione di codice remoto.Cinque vulnerabilità sono state scoperte in Microsoft Excel, che potrebbero compromettere un sistema vulnerabile e permettere a un intruso di eseguire sul sistema del codice arbitrario. Queste vulnerabili-tà possono essere oggetto di exploit processando record IMDATA appo-sitamente creati, record di colonne, record di palette o stringhe.MS Excel è uno dei programmi Win-

dows più diffusamente utilizzati; con una quota di mercato stimata attor-no al 95% [1].Per via della diffusione di Excel, gli utenti devono prestare ulteriore at-tenzione nell’accedere a spreadsheet da fonti o posizioni non trusted, ad esempio via download, come allegati alle email, o da condivisioni di rete.Windows Vector Markup Language (VML) è un linguaggio XML che pro-duce grafica vettoriale. Tra le applica-zioni di questo linguaggio vi è il ren-dering di aree in Google Earth [2], e la creazione di grafica vettoriale nelle applicazioni Microsoft Office [3].VML è uno degli standard grafici che permette agli sviluppatori di creare grafica ottimizzata in Internet Explo-rer. A causa di un difetto di sicurezza nel modo in cui VML processa le sezioni “recolorinfo”, può verificarsi un buffer overflow sullo heap, con la conseguenza che a un intruso è permesso eseguire codice arbitrario sul computer interessato.Un possibile scenario di attacco si ha quando a un utente viene inviata una email formattata in HTML, o se visita un sito web, che contiene l’exploit per questa vulnerabilità. Lo stesso giorno in cui questa vulnerabilità è stata resa nota pubblicamente, Mi-crosoft ha anche riportato che era già in circolazione un exploit.Agli utenti è consigliato di evitare di visitare siti web non di fiducia utiliz-zando Internet Explorer.L’azienda produttrice di antivirus Trend Micro ha riportato che uno script trojan, HTML_VMLFILL.I, stava sfruttando la vulnerabilità VML [4]. Lo script HTML può essere caricato in un sito web da utlilizzare come base per l’attacco, e gli ignari utenti pos-sono essere indotti a visitare questo sito. Secondo Trend Micro, lo script è in grado di effettuare il download di file da Internet, la natura dei quali dipende da chi conduce l’attacco. A causa della disponibilità di un exploit in circolazione, Secunia ha etichetta-to questa vulnerabilità come “estre-mamente critica”.

Report MensileGennaio 2007

Page 47: v2007 01 vbj73

47N. 73 - Gennaio/Febbraio 2007 VBJ

Una seconda vulnerabilità nel modo in cui VML gestisce i tipi shape è stata anche compresa nella release di questo mese. È stato scoperto che questa vulnerabilità causa la corru-zione della memoria e può essere utilizzata per referenziare la memoria controllata dall’utente, e permettere l’esecuzione di codice arbitrario.

[ 1 ] _ h t t p : / / n e w s . z d n e t . c o m /21009593_ 226030011.Html[2]_http://www.google.com/apis/maps/documentation/#XHT_ML_and_VML[3]_http://msdn.microsoft .com/workshop/author/vml/default.a sp [4]_http://www.trendmicro.com/v in fo/v i rusencyc lo/de fau l t5 . a sp?VName=HTML_VMLFILL.I

Agli utenti Microsoft è suggerito di eseguire il servizio Microsoft Update per assicurare che tutte le patch di sicurezza siano scaricate e installate. Per determinare se il proprio siste-ma è aggiornato con i più recenti aggiornamenti sulla sicurezza di Mi-crosoft si può utilizzare il prodotto Secunia Software Inspector: http://secunia.com/software_inspector/. Per ulteriori informazioni sulle vul-nerabilità di questo mese riscontrate nei prodotti Microsoft, si consultino i seguenti advisory di Secunia: http://secunia.com/advisories/23671/ http://secunia.com/advisories/23674/ http://secunia.com/advisories/23676/ http://secunia.com/advisories/23677/

Un attacco “0day” a Microsoft Word

Microsoft Word è stato l’obiettivo del primo attacco “zeroday” dell’an-no. Una vulnerabilità non divulgata in precedenza in Microsoft Word 2000 è stata riportata come breccia alla sicurezza utilizzata da un Trojan dropper per infiltrarsi nei computer, in base a un report di Symantec [1].Trojan.Mdropper.W, come è noto il Trojan, viene installato su un compu-

ter quando un utente apre un docu-mento Word appositamente creato. Questo Trojan è in grado di creare diversi file nel computer, e sono tutti dei backdoor Trojan. I backdoor Trojan sono una tipologia di malware che apre le porte e comunica con altri computer su Internet, il tutto senza la consapevolezza dell’utente. Questi Trojan, attraverso queste porte aperte, possono trasmettere informazioni riservate a chi conduce l’attacco, o essere utilizzate per rice-vere altro malware.La vulnerabilità in Microsoft Word che il Trojan.Mdropper.W utilizza è dovuta secondo quanto riferito a un errore nel modo in cui Microsoft Word esegue il parsing delle stringhe. Benché nessuna altra informazione sia disponibile da Microsoft, quest’ultima ha indicato di essere a conoscenza di “attacchi mirati, molto limitati” che utilizzano questa vulnerabilità [2].È la terza volta in due mesi che Word è stato il trampolino di lancio per at-tacchi “zero-day”. Per le tre vulnera-bilità (e per una ulteriore vulnerabili-tà non “zero-day”, sempre in Word), nel momento in cui scriviamo, non sono disponibili patch, e Microsoft non ha indicato un tempo stimato di rilascio della patch.Essendo Microsoft Word il program-ma di elaborazione documenti di default utilizzato da molti, può sem-brare un po’ strano che Microsoft sembra non abbia fretta di risolvere questi problemi di sicurezza. In base alla spiegazione fornita sul significato di “attacchi mirati, molto limitati” [3], si potrebbe ricavare l’impressione che poiché questi attacchi sono in genere specifici e rivolti solo a certe aziende, faccia parte della valutazione del ri-schio distinguere questi tipi di attacchi dagli “attacchi diffusi e di massa”.Tuttavia, questa differenziazione è superflua. Se o meno un attacco zero-day è diffuso o limitato, l’im-patto associato ad esso è tuttavia tangibile. E se o meno un attacco zero-day è diffuso o limitato non do-vrebbe rappresentare un elemento

nella risoluzione dei problemi. Il solo fatto che Microsoft Office è il leader di mercato dovrebbe essere una mo-tivazione sufficiente; si immagini la disponibilità di milioni di computer vulnerabili in tutto il mondo. Inoltre, Microsoft ha rilasciato pochissime informazioni su queste vulnerabilità zero-day, limitando la quantità di ma-teriale che i ricercatori sulla sicurezza possono consultare alla ricerca della causa delle vulnerabilità.Mentre il mondo attende gli aggior-namenti della sicurezza, la sola azione che gli utenti possono intraprendere è evitare l’apertura di documenti Word non provenienti da fonti fidate. Anche se la fonte sembra legittima, gli utenti devono tener presente che è abbastanza facile contraffare indi-rizzi email per farli sembrare legitti-mi. In questi tempi di globalizzazione, questo tipo di soluzione ha delle limitazioni intrinseche; diversi uffici in differenti continenti interagiscono giornalmente via email. E la natura di questi attacchi mirati significa che vengono attentamente concepiti e rivolti a uno specifico destinatario (ad esempio la divisione finanziaria o la divisione marketing) per dare al documento di exploit un’ulteriore aria di “autenticità”.Secunia ha etichettato questa recen-te vulnerabilità “0day” di Word come “estremamente critica” a causa della disponibilità del codice di exploit, e di report dei produttori del settore sicurezza di tentativi in corso di exploit.Per ulteriori informazioni su questa recente vulnerabilità di Microsoft Word, si consulti l’advisory: http://secunia.com/advisories/23950/

[1]_http://www.symantec.com/security_response/writeup.jsp? do-cid=2007011813043599& tabid=1 [2]_http://blogs.technet.com/msrc/archive/2007/01/26/microso ftsecurityadvisory932114posted.aspx [3]_http://blogs.technet.com/msrc/archive/2006/12/08/whatverylimitedtargetedattacksmeans.aspx

Page 48: v2007 01 vbj73

48 VBJ N. 73 - Gennaio/Febbraio 2007

Sun JRE non brilla con le GIF a larghezza zero

Una vulnerabilità in certe versioni del Sun Java Runtime Environment (JRE) è stata rivelata questo mese, che potrebbe causare un buffer overflow e permettere infine a un intruso di ottenere il controllo di un sistema.JRE è una potente utility sviluppata da Sun, che permette agli sviluppatori di aggiungere piccole applicazioni (ad esempio giochi o animazioni) ai siti web. Per visualizzare una pagina web che contiene componenti Java, JRE deve essere installato nel sistema di un utente. Poiché i siti web che espongono animazioni e altro contenuto dinamico sono sempre più diffusi, è probabile che JRE sia installato in gran parte dei computer connessi a Internet.

La vulnerabilità, rivelata da un anoni-mo attraverso la Zero Day Initiative, è dovuta al modo in cui JRE gestisce le immagini GIF con larghezza nulla. Se JRE processa un file immagine appositamente creato con larghezza zero, un intruso può ottenere l’ac-cesso al computer e eseguire pro-grammi arbitrari. Questi programmi possono essere di qualsiasi tipo: password cracker che sottraggono le credenziali bancarie, spyware e adware, programmi che trasformano i propri computer in “spam zombie” facendo sì che il proprio computer rallenti, ecc.Un attacco di questa natura ha esito positivo solo se l’utente visita un sito web in cui viene ospitato un exploit per questa vulnerabilità.Ad esempio, un utente può ricevere

un’email o un messaggio IM che li dirotta verso un certo sito web. Una volta che l’utente clicca sul sito e JRE inizia a processare i componenti del sito, il computer è stato compro-messo.Come è stato detto più volte, un utente deve evitare di visitare col-legamenti non di fiducia, partico-larmente se provengono da fonti ignote. Sun Java ha anche rilasciato degli aggiornamenti di sicurezza per il patching di questa vulnerabilità lo stesso giorno della divulgazione pub-blica. Se si ha in esecuzione JRE 5.0, o le versioni 1.4 o 1.3, è necessario eseguire immediatamente l’aggior-namento.Per ulteriori informazioni su questa vulnerabilità, si consulti l’advisory: http://secunia.com/advisories/23757/

Page 49: v2007 01 vbj73

Prodotti & News

49N. 73 - Gennaio/Febbraio 2007 VBJ

Skype Phone di SMC per reti civiche e hotspot

SMC Networks (www.smc.com) ha siglato un accordo con il wireless internet service provider (WISP) Gu-glielmo, che permetterà di usare lo Skype Phone di SMC come se fosse un cellulare, ma con costi estrema-mente più contenuti. È sufficiente re-gistrare il proprio telefono al servizio una prima volta per potervi accedere gratuitamente senza dover effettuare nessuna ulteriore autenticazione. È possibile anche, qualora ve ne fosse necessità, acquistare lo Skype Pho-ne di SMC direttamente on-line da Guglielmo.Il servizio è attivo nelle aree wireless realizzate da Guglielmo, che attual-mente coprono le città di Parma e Reggio Emilia oltre che diverse decine di hot spot pubblici sul terri-torio nazionale, ed è attualmente allo studio una estensione su altre città ed altre zone, fino a coprire tutto il territorio nazionale.

Per maggiori informazioni http://www.guglielmo.biz/HotSpotFinder.aspx

Magellan CrossoverGPS

Magellan, azienda leader nel mer-cato dei sistemi di navigazione auto e outdoor, annuncia la disponibilità in Europa dell’innovativo Magellan CrossoverGPS. Si tratta del primo dispositivo robusto e impermeabile IPX-4 progettato per la navigazione sia in auto che outdoor. Disponibile da subito a un prezzo indicativo di 399 Euro, Iva compresa, Magellan CrossoverGPS abbina la sofisticata esperienza di navigazione auto della linea Magellan RoadMateT, alle fun-zionalità di un ricevitore GPS por-tatile per il tempo libero, con tutta l’esperienza dell’azienda che per prima ha portato questa tecnologia sul mercato consumer.

Magellan CrossoverGPS, che viene commercializzato con mappe stradali e topografiche pre-caricate, guida gli utenti con la massima accuratezza - su strada e dove la strada non c’è - in modo da rendere loro possibile guidare, fare fuori strada, trekking, geocaching, navigare, pescare e molto di più - tutto con lo stesso dispositivo GPS.

Queste le principali funzionalità di Magellan CrossoverGPS:

• Display touch screen a colori da 3.5”• Dimensioni da 12,5x8,5x2,6 cm, peso di 235 grammi• Impermeabilità IPX-4• Fino a 8 ore di durata delle bat-terie• Numerosi schermi e campi per la navigazione outdoor: bussola, altime-tro, distanza a destinazione, errore cross track (XTE), tempo di arrivo stimato, ecc.• Custodia Sports GuardT per una fa-cile presa e una maggiore protezione• Prezzo indicativo di 399 Euro• Mappe stradali di tutta Europa pre-caricate

In stradaIl sistema offre visualizzazioni tri-dimensionali a volo d’uccello delle mappe, la funzionalità gratuita Smar-tDetourT per aiutare i guidatori ad evitare il traffico sulle autostrade, in-dicazioni SayWhereT con i nomi delle strade pronunciati e indirizzamento multi-destinazione ottimizzato per trovare le strade più veloci ed effi-cienti in caso si facciano numerose soste. Una directory che comprende quasi 2 milioni di punti di interesse aiuta l’utente a trovare ristoranti in base alla tipologia di cucina, aeropor-ti, distributori di benzina, hotel e altri servizi utili. Il dispositivo è anche un compagno di viaggio ideale perchè dotato di lettore MP3 integrato e vi-sualizzatore di foto per un maggiore intrattenimento. In aggiunta, gli uten-ti possono aggiungere aggiornamenti

in tempo reale sul traffico e a funzio-nalità di reindirizzamento per evitare ritardi ed arrivare a destinazione più velocemente

FuoristradaL’utente deve solo toccare lo scher-mo del Magellan CrossoverGPS per passare dalla navigazione in auto a quella outdoor o utilizzare le mappe base pre-caricate per creare e seguire direzioni specifiche o tornare indie-tro. Il dispositivo è compatibile con tutte le mappe certificate MapSendT su schede SD comprese quelle topo-grafiche e carte BlueNavT Marine. La funzionalità di navigazione outdoor consente di orientarsi usando le coordinate GPS di locazioni geogra-fiche, quali latitudine e longitudine di un punto di partenza e di una destinazione desiderata. Altre utili caratteristiche, quali la bussola e la capacità di salvare una determinata location come campo base, rendono Magellan CrossoverGPS semplice da utilizzare anche per chi non è esperto di navigazione. La batteria integrata offre fino a otto ore di durata in uso e molte di più in modalità stand-by, opzione che prevede lo spegnimento del display anche se il GPS continua a tenere traccia della posizione.

In navigazionePassando in modalità Marine, Cros-soverGPS passa automaticamente alle miglia nautiche per indicare le distanze e ai nodi per la velocità. Lo schermo Compass mostra l’XTE (CrossTrack Error) ed oltre, ed un Road Screen, che mostra una linea nera sullo schermo, indica la meta all’utente. L’utente può avvicinarsi al punto d’arrivo manovrando la barca di modo che la riga nera rimanga al centro dell’unità. Se la differenza tra la posizione e la direzione desiderata fa sì che la riga sia fuori dalla scher-mo, una grande freccia punterà a de-stra o a sinistra per dire al capitano come correggere la posizione.

Per maggiori informazioni www.magellangps.com

Potete inviare i vostri comunicati stampa all’indirizzo:[email protected]

Page 50: v2007 01 vbj73

Prodotti & News

50 VBJ N. 73 - Gennaio/Febbraio 2007

Arbor Networks annuncia l’iniziativa ATLAS

Arbor Networks, fornitore leader di sicurezza di rete core-to core e performance operativa per le reti mondiali, ha annunciato oggi l’ini-ziativa ATLAS (Active Threat Level Analysis System), un progetto in fasi multiple per lo sviluppo della prima rete al mondo di portata globale di analisi delle minacce con la collabo-razione della comunità dei service provider. Arbor sfrutterà l’iniziativa ATLAS per introdurre una serie di prodotti e servizi, il primo dei quali è un portale pubblico disponibile da oggi contenente informazioni e dati globali di alto livello. Il portale pubblico ATLAS include: una mappa globale delle minacce, informazioni sulle principali sorgenti di minaccia, un Threat Index che copre lo stato delle attività sospette, un Vulne-rability Risk Index che descrive in dettaglio come vengono sfruttate globalmente le vulnerabilità, ed i riassunti giornalieri degli attacchi registrati e degli eventi riguardan-ti la sicurezza. Si trova su http://atlas.arbornetworks.com.

L’iniziativa ATLAS utilizza una rete distribuita a livello mondiale di sen-sori darknet per fornire informazio-ni avanzate su attività di host/port scanning, exploit di tipo zero-day e propagazione di worm, eventi ri-guardanti la sicurezza e annunci di vulnerabilità, botnet e infrastrutture di phishing. Durante i prossimi 18 mesi, ulteriori prodotti e servizi sa-ranno resi disponibili grazie a questa iniziativa.I prossimi passi dell’iniziativa ATLAS includono la disponibilità di un servizio ad abbonamento che con-testualizzerà le informazioni basan-dosi su prospettive fisiche (globale, regionale, nazione o di città) o legate alle entità coinvolte (service provider, ASN, organizzazione, set-tore verticale, IP). Inoltre, il Secu-

rity Engineering & Response Team (ASERT) di Arbor contestualizzerà il contenuto, trasformando i dati raccolti da ATLAS in vera e propria business intelligence pronta all’uso per le aziende e i service provider.

Per i service provider, un abbona-mento ad ATLAS fornisce una solida infrastruttura di managed security intelligence, grazie alla quale essi possono fornire redditizi servizi di sicurezza gestita. Le aziende ade-renti possono alleviare il carico e la tensione di risorse di rete e di sicurezza già sotto sforzo eliminan-do la raccolta e l’analisi manuale di minacce specifiche in favore delle informazioni specificatamente gene-rate da ATLAS. Gli abbonati riceve-ranno anche apposite interfacce di programmazione (API) che permet-teranno facilmente di personalizzare e incorporare i contenuti diATLAS nei loro portali web di sicurezza. La terza fase dell’iniziativa ATLAS consisterà nell’integrare le infor-mazioni nei prodotti di rilevamento anomalie e visibilità di rete diArbor Networks: Peakflow SP e Peakflow X. Queste informazioni aggiuntive miglioreranno le capacità degli inge-gneri di sicurezza di rete nel capiremeglio l’ampiezza delle minacce interne a una rete specifica nel con-testo di altre reti e di Internet nel suo complesso.

Archos presenta Archo-slink

ARCHOS, leader tecnologico e pio-nere nel mercato dell’audio-video mobile, annuncia la disponibilità di ARCHOSLink, un software che per-mette di trasferire i podcast diretta-mente sul proprio lettore multime-diale ARCHOS. ARCHOSLink è già disponibile sul sito www.archos.com e si può scarirare gratuitamente nel-l’area ArchoSphere.

Questo software comprende i link per la sottoscrizione a diversi po-dcast compresi quelli dei partner di ARCHOS. L’utente ha accesso ai po-dcast preferiti con un solo click ed è in grado di migliorare la selezione utilizzando il motore di ricerca per abbonarsi a qualsiasi altro podcast di interesse. Il software, inoltre, av-visa gli utenti in caso di disponibilità di aggiornamenti del firmware e per-mette anche di scaricare e sincroniz-zare facilmente il nuovo firmware sul proprio dispositivo.

Il software ARCHOSLink è dotato di un’interfaccia intuitiva che aiuta a ercare i podcast, abbonarsi al servizio di feed preferito e trasfe-rire quelli scelti nel proprio lettore multimediale ARCHOS, grazie a un semplice comando di sincronizza-zione. Il software è basato su Win-dows Media Player 10, funziona sia collegato in modalità PC Hard Drive sia in quella Windows Media Device ed è compatibile con tutti i lettori multimediali ARCHOS della terza e quarta generazione.

È possibile inoltre personalizzare le opzioni di downloand e scegliere discaricare automaticamente i podcast ai quali si è abbonati, che si sincro-nizzano con il dispositivo quando è collegato al computer, oppure sca-ricare manualmente i contenuti se-lezionati. Si possono poi fissare dei parametri per il download, per man-tenere i contenuti aggiornati, secon-do data o numero di download. Una volta aggiornato il contenuto, tutti i podcast vengono rinominati con le informazioni relative alla fonte di origine e quindi classificati nella sezione podcast del lettore ARCHOS, rendendo più semplice la ricerca.ARCHOSLink notifica la disponibilità di nuovi contenuti grazie a un siste-ma di auto alert e installa automati-camente il nuovo firmware appena l’aggiornamento è disponibile. Inol-

Page 51: v2007 01 vbj73

Prodotti & News

51N. 73 - Gennaio/Febbraio 2007 VBJ

tre il software può essere utilizzato per sincronizzare altri file archiviati sul pc, come video, audio e foto.

Per decodificare i podcast nel for-mato video H.264 con l’audio AC3 è necessario il plug-in ARCHOS Video Podcast, che è già disponibile sul sito www.archos.com ed è venduto a $19.99.

Da Wind River un ambien-te completo per la diagno-stica ed il test

Wind River Systems, Inc. (NASDAQ: WIND), il leader globale nella De-vice Software Optimization (DSO), annuncia oggi la disponibilità di Lab Diagnostics di Wind River®, una soluzione per la diagnostica del software che accompagna il team di sviluppo attraverso tutto il ciclo di vita del dispositivo, consentendo una collaborazione dinamica in fase di debugging, di collaudo e di controllo di qualità (QA). Con Lab Diagnostics, Wind River estende la Device Software Optimization alle fasi di verifica e convalida del ciclo di sviluppo, garantendo importanti miglioramenti nella produttività lungo tutto il processo che porta al rilascio del prodotto. “È molto difficile isolare e cor-reggere difetti mentre il software gira,” dice Naren Nachiappan, vice president e general manager del device management di Wind River. “Wind River Lab Diagnostics forni-sce ai team di sviluppo una potente infrastruttura collaborativa per por-tare sul mercato prodotti migliori in tempi brevi grazie ad operazioni di diagnostica rapida e alle capacità di intervenire sul software mentre que-st’ultimo è in esecuzione. Una fase di implementazione estesa nel tem-po spesso riduce il tempo a dispo-sizione di un’azienda per collaudare un prodotto prima che venga messo

in produzione. I test tradizionalmen-te disponibili per le fasi di verifica e convalida si svolgono in una fase avanzata dello sviluppo, oppure richiedono ricompilazioni o cicli di reboot tanto dispendiosi in termini di tempo da limitare la capacità del team di effettuare test sull’applica-zione che gira.”

Wind River Lab Diagnostics aiuta a snellire le procedure di sviluppo e di collaudo dei device e in particolare:

* Permette agli sviluppatori di col-laudare e supportare l’applicazione a partire dalle prime fasi di proget-tazione.

* Permette agli sviluppatori di in-strumentare il codice in esecuzione su un device senza modificare i co-dici sorgente degli applicativi, senza dover ricompilare, riprogrammare nuovamente la memoria flash o interrompere il funzionamento del device.

* Garantisce analisi basate su fatti osservabili e sugli effettivi difetti del software, riducendo al minimo le analisi basate su deduzioni e ottimizzando il tempo che gli svilup-patori tradizionalmente trascorrono provando a riprodurre problemi.

* Porta il software a lavorare in con-dizioni al limite delle normali solle-citazioni legate all’utilizzo di certe applicazioni, per permettere osser-vazioni e aggiustamenti di dettaglio prima del rilascio sul mercato

* Crea una libreria costantemente aggiornata dei dati che consentono di rendere più rapido il supporto e di raccogliere informazioni da utilizza-re nelle future versioni del prodotto -anche quando il gruppo di sviluppo originario è già concentrato in fasi più avanzate dello sviluppo.

Wind River e Emerson Network, pro-duttore di piattaforme di hardware ba-sate su standard, stanno collaborando

allo sviluppo di una soluzione develop-run-manage implementata sulla piat-taforma MicroTCA di Emerson.Wind River Lab Diagnostics fa parte della linea di prodotto Wind River Device Management ed è disponibi-le in tutto il mondo. Le attuali piat-taforme supportano sistemi quali VxWorks 6.X, che gira prevalente-mente su PowerPC e su processori di architettura Intel, VxWorks 5.5.1 che gira su PowerPC e il sistema operativo Wind River Linux 1.4 che gira su PowerPC e sui processori di architettura Intel.

Magirus e Kaspersky Lab contro il malware

Magirus, distributore di riferimento nel mercato delle infrastrutture IT annuncia l’accordo di distribuzio-ne con Kaspersky Lab siglato per Italia, Spagna, Portogallo, Francia, Germania e UK. Kaspersky Lab è una società specializzata nello sviluppo di software contro virus, trojan, worm, spyware e adware e si con-traddistingue per la capacità di agire proattivamente contro ogni nuova minaccia. Con il completamento dell’acquisizione di Allasso, Magirus è sempre più focalizzata nell’ambito del secure networking e della sicu-rezza dei sistemi in generale. In que-sto ambito, la strategia dell’azienda prevista per il 2007 vede diversi ac-cordi che riguardano soluzioni sem-pre più innovative per i suoi partner di cui la partnership con Kaspersky ne è il primo esempio.

L’offerta di Kaspersky Lab com-prende un ampio ventaglio di so-luzioni aziendali per la sicurezza, capaci di offrire una protezione integrata anti-virus, anti-intrusione e anti-spam. Per la piccola e media azienda in particolare è disponibile Kaspersky Business Optimal, una suite di prodotti integrati facili da

Page 52: v2007 01 vbj73

Prodotti & News

52 VBJ N. 73 - Gennaio/Febbraio 2007

installare e da gestire, amministra-bili centralmente e con un appro-priato sistema di licensing. Ogni azienda può perciò implementare una soluzione perfettamente cali-brata sulle specifiche dimensioni e esigenze, per qualsiasi sistema operativo e applicazione.

Sul fronte della grande azienda Kaspersky propone invece la Corporate Suite, una soluzione multipiattaforma, scalabile e per-fettamente gestibile. Al momento dell’acquisto è di fatto sufficiente definire il numero di licenze neces-sarie: qualsiasi tipologia di nodi di rete riceverà adeguata protezione, workstations, fileserver, o mail sy-stem che sia.

Le specifiche soluzioni di Kaspersky sono in grado di proteggere la rete aziendale a tutti i livelli: i dispositivi mobili, i singoli desktop e portatili, il mail Gateway, i groupware server, i file server e via dicendo. L’intera architettura di rete riceve una pro-tezione efficace e continua, sempre aggiornata e flessibile per seguire gli sviluppi presenti e futuri dell’infra-struttura IT.

Per ulteriori informazioni www.magirus.com

Fast e Business Objects insieme per la business intelligence

Fast Search & Transfer™ (OSEAX: FAST.OL) (FAST™), azienda leader nello sviluppo di tecnologie e so-luzioni per l’enterprise search, an-nuncia una partnership con Business Objects, azienda di riferimento nel mercato della business intelligence (BI). Fast, inoltre, sarà parte attiva nella Business Objects Open Search Initiative (OSI), che ha come scopo

quello di fornire alle aziende un accesso ottimale ai dati di business intelligence attraverso un livello di accesso search-based.La combinazione tra Fast Enterpri-se Search Platform™ e Busines-sObjects™ XI Release 2 permetterà, grazie alle nuove funzionalità, di allargare e potenziare l’utilizzo della BI in azienda, creando piattaforme intelligenti capaci di abbracciare l’intera organizzazione.Fast ESP™ e BusinessObjects co-niugano un’avanzata tecnologia di ricerca e una potente soluzione di BI per identificare ed elabora-re rapidamente e facilmente le informazioni che provengono da report, “cruscotti” per il controllo del business, analisi, assieme a dati non strutturati, come email, note di lavoro, file di testo.

Grazie a uno strumento come Fast Contextual Insight™ è possibile associare i risultati che Business Objects ottiene dall’analisi dei dati strutturati – con tutte le informa-zioni importanti – all’interno di report e memo, consentendo in tal modo al management dell’azienda di comprendere a fondo le ragioni che hanno determinato quei parti-colari risultati. In sostanza, Fast ESP analizza e interpreta il significato nascosto all’interno dei testi e non i report stessi, offrendo una business intelligence di tipo contestuale, capace di colmare il vuoto tra com-prensione del problema e azione correttiva.

L’analisi dei dati non strutturati, l’estrazione dei metadati e le con-seguenti operazioni di matching, accorpamento e pulizia dei diversi repository dei dati strutturati, è in grado di offrire nuove fonti di anali-si per la comprensione delle dinami-che aziendali. Business Objects Data Integrator, che offre funzionalità di accesso alle banche dati strutturate,

viene integrato con il “fuzzy ma-tching” presente all’interno di Fast ESP per formare una combinazione unica tra strumenti di analisi, che viene già utilizzata dai clienti Fast nel mondo delle telecomunicazioni, dei servizi finanziari e delle directory online.

Sony con DotForce per lo Storage

Sony entra nel portafoglio delle tecnologie proposte da DotForce, come marchio fonda-mentale dell’offerta Storage del distributore di soluzioni di sicurez-za innovative. L’accordo con Sony consente al distributore di offrire ai propri partner soluzioni allo stato dell’arte dedicate alla protezione e memorizzazione dei dati aziendali. La vasta gamma di soluzioni Stor-Station di Sony è progettata per rispondere alle esigenze di capacità e prestazioni di tutti i clienti (pro-fessionisti, piccole aziende, dipar-timenti di grandi organizzazioni o grandi imprese con centri dati mis-sion-critical). Questi prodotti, che si basano sulla tecnologia AIT (Advan-ced Intelligent Tape), oggi arrivata alla versione AIT-5, sono ideali per una migrazione rapida, facile e conveniente dai formati su nastro meno recenti, come DAT e DLT. Inoltre, quando la costante crescita delle esigenze di backup e memo-rizzazione dei dati possa non essere soddisfatta con efficacia dalle unità a nastro standalone, Sony propone una gamma di prodotti automatizzati, dotati di capacità e livelli di presta-zioni diversi, grazie ai quali non è più necessario sostituire manualmente le cartucce a nastro. Le soluzioni di automazione su nastro Sony (auto-loader) offrono un’elevata capacità di memorizzazione, in uno spazio ridotto e a un prezzo accessibile.

Page 53: v2007 01 vbj73
Page 54: v2007 01 vbj73

54 VBJ N. 73 - Gennaio/Febbraio 2007

DATABASE

La Top 10 degli attacchi ai database

di Amichai Schulman, CTO, Imperva

Le infrastrutture dei database aziendali, che spesso custodiscono i “gioielli della Corona” di un’organizzazione, sono soggette ad un ampio range di possibili attacchi. I più critici di questi sono elencati di seguito, seguiti da consigli per attenuare il rischio di ognuno di essi.

1. Privilegi eccessiviQuando gli utenti (o le applicazioni) riescono ad ottenere privilegi di accesso ai database che ec-cedono quelli necessari alle loro funzioni, posso-no usarli per accedere ad informazioni riservate. Per esempio, un amministratore universitario il cui compito richiede un accesso a sola lettura ai record degli studenti, può indebitamente usare i propri privilegi eccessivi per cambiare i voti.La soluzione a questo problema (al di là di buone pratiche di reclutamento) è un controllo di ac-cesso a livello di query. Tale controllo restringe i privilegi al minimo indispensabile. La maggior parte delle piattaforme native di database offre questo tipo di possibilità (trigger, RLS...), ma il disegno manuale di questi strumenti li rende impraticabili in tutte le implementazioni tranne quelle più modeste.

2. Abuso dei privilegiGli utenti possono abusare di legittimi privilegi di accesso per scopi non autorizzati. Per esempio, un utente con privilegi di accesso a record di singoli pazienti attraverso un’applicazione client sanita-ria può richiamare i record di tutti i pazienti attraverso un client MS-Excel.La soluzione consiste in politiche di controllo degli accessi che si applicano non solo a quali dati è possibile accedere, ma anche al come. Rafforzando le politiche per ora del giorno, postazione, ap-plicazione client e volumi di dati ricercati, è possibile iden-tificare gli utenti che abusano dei loro privilegi.

3. Aumento non autorizzato dei privilegi

Chi attacca può trarre van-taggio da vulnerabilità nel software di gestione di data-base per convertire privilegi di accesso di basso livello in quelli di livelli superiori. Per

Amichai Schulman è cofondatore e CTO di Imperva, società di sviluppo di prodotti per la sicurezza e la conformità di database e applicazioni web.

Page 55: v2007 01 vbj73

55N. 73 - Gennaio/Febbraio 2007 VBJ

DATABASE

– ad esempio, sviluppatori o amministrato-ri di database possono “spegnere” l'audit. La maggior parte delle soluzioni di audit DBMS inoltre manca della necessaria gra-nularità. Per esempio, i prodotti DBMS ra-ramente scrivono nei log quali applicazioni sono state usate per accedere ai database, l’indirizzo IP sorgente e le query fallite.Gli apparecchi di audit basati sulla rete sono una buona soluzione. Tali apparecchi non dovrebbero avere alcun impatto sulle performance del database, operano indi-pendentemente dagli utenti e offrono una memorizzazione dei dati granulare.

7. Denial of ServiceL’attacco “Denial of service” (DoS) può essere attuato attraverso varie tecniche. Quelle più comuni includono buffer over-flow, corruzione di dati, flooding della rete e saturazione di risorse. Quest’ultima è specifica per l’ambiente database e fre-quentemente trascurata.La prevenzione contro il DoS dovrebbe essere praticata a livelli diversi, compren-dendo la rete, le applicazioni e i database. Le raccomandazioni relative ai database riguardano l’implementazione di IPS e il controllo della velocità della connessione. Aprendo rapidamente un grande numero di connessioni, i controlli sulla velocità del-la rete possono impedire ad utenti singoli di saturare le risorse del database server.

8. Vulnerabilità del protocollo database

Le vulnerabilità nel protocollo database possono permettere accesso, corruzione e disponibilità di dati non autorizzati. Per esempio, il worm SQL Slammer sfruttò la vulnerabilità di un server Microsoft SQL Server per eseguire codice di attacco su specifici server database.Attacchi sui protocolli possono essere sconfitti con il parsing e la validazione delle comunicazioni SQL in modo da as-sicurarsi che esse non siano malformate appositamente.

esempio, un attaccante potrebbe sfruttare una vulnerabilità di buffer overflow per accedere a privilegi amministrativi.La possibilità di aumento dei privilegi può essere evitata con una combinazione di controllo di accesso a livello di query e sistemi tradizionali di prevenzione intru-sioni (IPS). Il controllo di accesso a livello di query può individuare un utente che improvvisamente utilizza un’operazione SQL insolita, mentre un IPS può identifi-care una specifica minaccia documentata all’interno dell’operazione.

4. Vulnerabilità della piattaformaLe vulnerabilità nei sottostanti sistemi operativi possono portare ad accessi non autorizzati e corruzione dei dati. Per esem-pio, il worm Blaster sfruttò una vulnerabi-lità di Windows 2000 per far crollare i ser-ver presi di mira. Gli strumenti IPS sono ottimi per identificare e bloccare attacchi fatti apposta per sfruttare vulnerabilità note delle piattaforme database.

5. Iniezione SQLGli attacchi tramite iniezione di codice SQL riguardano utenti che vogliono sfrut-tare vulnerabilità nelle applicazioni web front-end e le stored procedure per ge-nerare query non autorizzate, spesso con privilegi elevati. Usando l’iniezione SQL, gli attaccanti potrebbero persino ottenere accesso incondizionato all’intero database.Il controllo di accesso a livello di query identifica query non autorizzate generate tramite applicazioni web e stored proce-dure.

6. Audit deboleUna politica di audit debole rappresenta un rischio in termini di conformità, deter-renza, individuazione, valutazione legale e recupero dati.Sfortunatamente, le capacità di audit dei DBMS nativi portano ad un degrado inac-cettabile delle prestazioni e sono soggette ad attacchi legati al livello dei privilegi

Page 56: v2007 01 vbj73

56 VBJ N. 73 - Gennaio/Febbraio 2007

DATABASE

9. Autenticazione deboleGli schemi di autenticazione debole per-mettono agli attaccanti di assumere l’iden-tità di utenti legittimi del database. Le strategie specifiche dell’attacco includono il brute force, il social engineering, ecc.La predisposizione di password o di auten-ticazione a due livelli è obbligatoria. Per facilitare la scalabilità e la facilità d’uso, i meccanismi di autenticazione dovrebbero essere integrati con infrastrutture azienda-li di gestione delle directory e degli utenti.

10. Esposizione di dati di backupAlcuni recenti attacchi di alto profilo han-no comportato il furto di nastri e hard-disk contenenti dati di backup.Tutti i backup dovrebbero essere crittografa-ti. In linea con questo suggerimento, alcuni produttori hanno suggerito che i futuri pro-dotti per database potrebbero non supporta-re la creazione di backup non crittografati. La crittografia di informazioni di database

di produzione on-line è una soluzione inade-guata per i controlli di diritto granulari.

ConclusioniSebbene i database e i loro contenuti siano vul-nerabili a minacce interne ed esterne, è possi-bile ridurre gli esiti degli attacchi ai minimi termini. Gestendo queste minacce, ci si ade-guerà allo standard delle aziende mondiali.

Riquadro 1 IMPERVA

Imperva è espositore a Infosecurity Europe 2007, il principale evento europeo dedica-to all’Information Security. Giunta alla 12a edizione, l’esposizione continua a fornire prodotti e servizi, oltre 300 espositori e 11.600 visitatori da ogni segmento dell’in-dustria. Si tiene dal 24 al 26 aprile al Grand Hall, Olympia (Londra). Per informazioni: www.infosec.co.uk.

Page 57: v2007 01 vbj73
Page 58: v2007 01 vbj73

58 VBJ N. 73 - Gennaio/Febbraio 2007

REPORTAGE

Soluzioni Symantec 2007

di Gionata Aladino Canova

Symantec ha presentato la nuova serie dei prodotti, per il 2007, in una cornice di tutta sicurezza. Infatti, a Vairano, la mat-

tina sono state illustrate le risposte di Symantec alle esigenze sempre più pressanti di sicurezza, particolarmente relative ad Internet, mentre il pomeriggio abbiamo partecipato ad un corso di guida sicura, che ci ha permesso di tornare sani e salvi a casa, per scrivere l’articolo.La presentazione è stata curata da Ed Kim, Product Management, Consumer Products Di-vision Symantec Corporation. Il suo discorso in sintesi:“Oggi è sempre più raro che si verifichino gravi e diffuse epidemie di virus, mentre si registra un aumento di attacchi multipli, più subdoli e fre-quenti, spesso guidati da motivi di lucro. A que-sta tendenza, Symantec ha risposto sviluppando nuove e sofisticate funzionalità di sicurezza per permettere agli utenti di continuare a svolgere le attività online in totale tranquillità e per assi-curare una protezione avanzata che identifica e

neutralizza automaticamente le minacce della rete senza costringere l’utente a prende-re decisioni difficili in merito alla sua sicurezza. Symantec non si è limitata a migliorare la tecnologia di queste solu-zioni, ma ha potenziato anche le performance di tutte le fun-zionalità di questi prodotti, dal tempo di caricamento ini-ziale alla scansione completa del sistema.”

La linea di prodotti è stata snellita per facilitare l’utente nella scelta dei medesimi, è stata curata l’usabilità con un lavoro di restyling delle interfacce e sono state messe in atto misure contro le più recenti tipologie di minacce. Un notevole sforzo è stato impiegato nel migliorare l’im-patto sulle prestazioni del PC a causa dell’installazione del-l’antivirus o di NIS. Secondo i dati proposti da Symantec, i nuovi Norton hanno un’ef-ficienza superiore alla media della concorrenza ed alle

Symantec conferma il suo impegno nel settore della sicurezza, con strumenti che rispondono alle più recenti esigenze, anche in termini di usabilità

Gionata Aladino Canova programma dai bei tempi del Sinclair Spectrum. Laureato in Informatica, è titolare della Aladino Informatica e socio di TDE Informatica srl. Sviluppa con Mi-crosoft Access, VB.NET e realizza siti in ASP/ASP .NET. Può essere contattato a [email protected]

Page 59: v2007 01 vbj73

59 N. 73 - Gennaio/Febbraio 2007

Norton Internet Security unisce alle certezze delle black list delle tecniche

euristiche

REPORTAGE

il Norton Antivirus. Per l’utente che naviga parecchio, o che comunque desidera una maggiore sicurezza, il pacchetto consiglia-to è il Norton Internet Security nel quale, in aggiunta all’antivirus, troviamo tutta una serie di funzionalità per la protezione da accessi indesiderati e per la protezione da frodi informatiche, come i siti fasulli. La soluzione completa ma non ancora di-sponibile, il Norton 360, include le funzioni del vecchio SystemWorks, per l’ottimizza-zione del PC e le procedure per il backup dei dati.

Le nuove minacce e le tecniche per difendersi

Per diversi anni, la tipologia delle minac-ce era piuttosto standard e si assisteva di anno in anno ad un aumento pressoché co-stante del numero dei virus, ma con poche

versioni precedenti; la scansione in tempo reale dei file non produce più il fastidioso dilatamento dei tempi di risposta nell’uso di Windows.

Norton AntiVirus 2007 è la soluzione che fornisce una protezione avanzata da virus, spyware e rischi correlati; mentre Norton Internet Security 2007 è la suite per la sicurezza che, oltre alla protezione anti-virus e anti-spyware di Norton AntiVirus, salvaguarda dai pericoli online più recenti attraverso una nuova e sofisticata tecnolo-gia anti-phishing, un firewall potenziato e strumenti di difesa dalle vulnerabilità del software. Norton 360, che non è ancora disponibile, integrerà le funzioni per l’ot-timizzazione del PC ed il salvataggio dei dati.

Meno prodottiNel tempo, la gamma dei prodotti Syman-tec si è costantemente ampliata, grazie anche all’acquisizione di prodotti di terze parti. Si sono anche create sovrapposizioni di programmi con funzioni simili, provo-cando confusione nell’utente che deve sce-glierne uno. Symantec ha così creato una linea di prodotti completamente nuova, come si vede in Figura 1, semplificando la scelta per l’utente finale. Il prodotto base è

Figura 1 Flessibilità dell’offerta Norton

Page 60: v2007 01 vbj73

60 VBJ N. 73 - Gennaio/Febbraio 2007

REPORTAGE

varianti sul tema. Da qualche anno, invece, si assiste ad un’evoluzione rapida non solo della qualità delle minacce, ma anche del tipo delle stesse e, infine, dei motivi per cui un PC viene attaccato.Sul fronte dei virus, da quando è nato il problema è stata una continua rincorsa tra l’offesa e la difesa. In principio ci si affidava a delle signature, ossia a delle stringhe che identificavano del codice malevolo all’inter-no di un file o di una certa zona di memoria o del disco. Tecnica in uso ancora oggi. Il problema sta nel fatto che, per riconoscere una minaccia tramite questa tecnica, essa deve essere stata analizzata in laboratorio, aver isolato un sistema per riconoscerla ed aver aggiornato l’antivirus. Oltre all’effetto finestra che intercorre tra la prima presen-tazione della minaccia e la distribuzione dell’aggiornamento dell’antivirus, esiste un problema più grande. Su internet esistono

ormai da tempo dei “compilatori” di virus, che consentono di creare velocemente va-rianti dei codici maligni esistenti anziché svilupparne di nuovi, ossia permettono di creare un nuovo virus anche a gente inesperta. Programmare un virus da zero richiede conoscenze notevoli, mentre usare certi tool è alla portata di qualsiasi smanet-tone. Può succedere che ci sia un’invasione di virus dalle caratteristiche simili, ma di-versi l’uno dall’altro per quanto riguarda la stringa di identificazione.In risposta a questa tendenza, Norton AntiVirus 2007 fornisce agli utenti una tecnologia rinnovata e potenziata, in grado di bloccare gli attacchi d’intere famiglie di worm e di virus senza richiedere un aggior-namento per ogni nuova minaccia.

Facciamo un altro esempio. Il phishing è quel fenomeno per cui un sito appare per

Figura 2 La nuova interfaccia grafica: pulita ed essenziale

Page 61: v2007 01 vbj73

61 N. 73 - Gennaio/Febbraio 2007

Per usare un’immagine pittoresca, il NIS analizza il DNA del sito alla ricerca di

segnali di allarme

REPORTAGE

quello che non è, ossia voi pensate di es-sere sul sito della vostra banca ed invece siete su un sito sostanzialmente identico di qualche pirata informatico che, con questo stratagemma, potrebbe carpirvi le credenziali per accedere al vostro account in banca.

Una soluzione consiste nell’elencare tutti i siti sicuri (white list) o, alternativamente, quelli non sicuri (black list). Ma ricadiamo nei problemi detti sopra, ossia l’effetto fi-nestra che intercorre dalla identificazione di un sito e l’aggiornamento della lista.

Come descritto più avanti, Norton Internet Security unisce alle certezze delle black list delle tecniche euristiche con le quali analizza un sito e tenta di capire se si tratti di un sito regolare o meno.

Norton Antivirus 2007Al primo avvio di tutta la nuova serie di prodotti, si nota la pesante revisione del-l’interfaccia a cui sono stati sottoposti, in modo da renderne più intuitivo possibile l’uso. Le informazioni presentate sono ridotte all’essenziale, come si vede in Fi-gura 2. Le operazioni più importanti sono disponibili con un click ed in ogni masche-ra l’attenzione è posta sulle informazioni importanti. La visualizzazione della cro-nologia degli eventi, ad esempio, è stata anch’essa ripulita e semplificata, come si vede in Figura 3.Norton AntiVirus è inoltre stato potenziato con l’integrazione di una soluzione in gra-do di rilevare nuove tipologie di virus che sfruttano i rootkit per non essere rilevate

Figura 3 La cronologia degli eventi: una schermata di facile lettura

Page 62: v2007 01 vbj73

62 VBJ N. 73 - Gennaio/Febbraio 2007

REPORTAGE

dai software per la sicurezza. Questa tec-nologia brevettata individua le minacce nascoste a tutti i livelli del sistema, com-prendendo le applicazioni, le impostazioni dell’utente e il livello kernel. In pratica, tra le altre cose, accede direttamente al disco fisso, scavalcando la gestione del File Sy-stem di Windows.Inoltre, viene rilevato e bloccato il traffi-co anomalo, tipico nel caso degli attacchi Denial of Service e, comunque, sintomo evidente di un attacco.Norton AntiVirus è stato ridisegnato per aumentare la velocità di risposta dell’inter-faccia grafica ed avere, così, un minor im-patto sull’usabilità del computer. Dispone inoltre di una nuova modalità di scansione in background, che riduce drasticamente l’impatto sulle prestazioni del PC; eseguen-do una scansione del sistema e riducendo ad icona la finestra che si presenta, Norton ci chiede se vogliamo attivare questa mo-

dalità, come mostrato in Figura 4.Per l’aggiornamento dei propri prodotti, Symantec utilizza una rete di 40.000 senso-ri che monitorizzano l’attività di rete in più di 180 nazioni, riportando attività anomale di spyware e adware, da più di 120 milioni di client, server e sistemi gateway.

Norton Internet SecurityIl nuovo Norton Internet Security 2007 è stato progettato per proteggere dal cre-scente numero di minacce sofisticate che mirano a rubare informazioni personali. Oltre alle funzionalità di Norton AntiVirus 2007, che fa parte del pacchetto, ne offre altre, mirate a bloccare gli aggressori e i contenuti on-line intrusivi e indesiderati; inoltre aiuta a nascondere il computer agli hacker ed è progettato per impedire la tra-smissione di informazioni riservate senza autorizzazione. NIS controlla ogni indirizzo URL visitato

Figura 4 La nuova modalità di scansione in background

Page 63: v2007 01 vbj73

63 N. 73 - Gennaio/Febbraio 2007

Figura 5 Navigare in sicurezza con l’analisi al volo dei siti effettuata da NIS

REPORTAGE

in base a una lista nera globale di siti Web noti per il furto di dati personali. Oltre a ciò viene impiegata una tecnologia euristi-ca avanzata per evitare che l’utente visiti pagine fraudolente: la cosiddetta prote-zione “zero-hour” da siti di phishing noti e sconosciuti. Grazie a questa innovativa tecnologia, l’utente è protetto anche nel caso in cui dovesse essere il primo visita-tore di un sito fraudolento. La protezione da phishing aggiunge una barra degli strumenti in Internet Explorer, visibile in Figura 5 e 6, che fornisce informazioni su ogni pagina Web visitata.L’icona del computer verde indica che non è stata rilevata nessuna minaccia all’inter-no del computer, come programmi spyware o keylogger, ad esempio. L’icona del globo indica, in generale, la sicurezza del sito, tramite diversi tipi di analisi. Symantec manutiene una lista di siti fraudolenti, e questo è il primo controllo che viene fat-to. Vengono effettuati controlli euristici sulle caratteristiche del sito come l’url ed il layout, per capire se si possa trattare di un falso. Infine viene analizzato il codice

sorgente della pagina visitata, ancora una volta alla ricerca di possibili minacce. Per usare un’immagine pittoresca, il NIS ana-lizza il DNA del sito alla ricerca di segnali di allarme.Il NIS blocca automaticamente programmi come i keystroke loggers, applicazioni in grado di rilevare i tasti premuti, e i Trojan, volti a sottrarre password ed altri dati ri-servati.

La funzionalità di Intrusion Prevention presente in Norton Internet Security 2007 offre una protezione completa dalle vulne-rabilità nel sistema operativo Windows e in altre applicazioni diffuse. Questi vuoti di sicurezza possono essere colmati da Norton Internet Security molto più veloce-mente di quanto non impieghi un produt-tore ad emettere una patch per risolvere il problema.

Norton Internet Security 2007 è studiato per funzionare con i dispositivi di rete domestiche più diffusi, integrandone le funzionalità di sicurezza per fornire un

Page 64: v2007 01 vbj73

64 VBJ N. 73 - Gennaio/Febbraio 2007

Figura 6

Il firewall è uno strumento importante: perché sia

efficace, deve essere ben configurato e, quindi, facile

da utilizzare

REPORTAGE

livello di protezione ancora più elevato. Inoltre, una componente potenziata di rile-vamento in rete fornisce automaticamente all’utente policy di sicurezza specifiche per tutte le reti a cui si collega, differenziando i blocchi ed i permessi a seconda del tipo di rete. Essere collegati da casa espone a rischi diversi che essere connessi a reti pubbliche.

Norton FirewallUn discorso a parte merita il Norton Firewall, incluso nel NIS (e ovviamente, nel 360). Il firewall è uno strumento impor-tante, oggi fondamentale per la sicurezza. Ma perché sia efficace, deve essere ben configurato. E per essere ben configurato, deve essere facile da utilizzare. La migliore

condizione si ha con un firewall hardware manutenuto da una società che si occupa di sicurezza. Gli aggiornamenti sono ga-rantiti, il firewall “fa” solo il firewall e non fa parte di un sistema più complesso, ma soprattutto si ha la certezza che sia ben configurato. I firewall software hanno sem-pre intimidito o annoiato l’utente comune con le continue domande su cosa un certo programma possa o non possa fare. Per cui, tanti utenti, alla fine lo hanno disattivato e, forse, ancora pù utenti lo hanno attivo ma configurato male.Symantec ha lavorato molto su questo problema, ottenendo un prodotto che non chiede quasi nulla. Infatti, tramite Control-lo automatico programmi, vengono confi-gurate automaticamente le impostazioni di accesso ad internet per i programmi, la prima volta che tentano di accedere ad internet. Ovviamente il tutto funziona gra-zie ad una lista di programmi riconosciuti sicuri da Symantec, lista che viene aggior-nata costantemente tramite Liveupdate.Il firewall può essere configurato manual-mente per i programmi non riconosciuti, oppure, abbandonando gli automatismi, essere gestito anche completamente a mano.

Page 65: v2007 01 vbj73

65 N. 73 - Gennaio/Febbraio 2007

REPORTAGE

ConclusioniSul fronte delle prestazioni, si vedono effettivamente miglioramenti nei tem-pi di risposta dell’interfaccia, anche se, ovviamente, un sistema senza antivirus resta decisamente più veloce. Il collo di bottiglia maggiore sembra essere l’hard disk, ma il test è stato effettuato su un portatile e, è noto, gli hard disk dei por-tatili sono sensibilmente più lenti degli hard disk di un sistema fisso.I prodotti recensiti sono tutti disponibili sul mercato, ad eccezione di Norton 360 (precedentemente battezzato “Genesis”) che era annunciato per fine 2006, ma ora già si è spostato il tutto al Marzo 2007 e la scadenza non sembra essere definitiva. In questo settore si sta sviluppando una forte concorrenza con Microsoft e la sua soluzione OneCare [1], Symantec con

Norton 360 e McAfee con il progetto Fal-con, attualmente in lavorazione. L’obiet-tivo di tutte queste soluzioni non è quel-lo di una semplice difesa del computer dai virus ma una più ampia tutela del sistema con aggiornamenti e funzioni di firewall compresi. Symantec ha pubbli-cato un comunicato ufficiale con il quale presenta il progetto ed anticipa le novità apportate. Un cenno a Norton Confidential, come prodotto separato, le cui funzioni sono incluse nel NIS poiché è disponibile an-che per Macintosh, visto che la sicurezza nella navigazione prescinde dal sistema operativo utilizzato.

Riferimenti[ 1 ] _ M i c r o s o f t _ O n e C a r e _ – _ h t t p : / /www.windowsonecare.com

Page 66: v2007 01 vbj73
Page 67: v2007 01 vbj73
Page 68: v2007 01 vbj73