Scrittura di codice protetto: procedure consigliate MGB 2003 Scrittura di codice protetto: procedure consigliate Marco Russo .NET Consultant & Trainer DevLeap © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Argomenti trattati Processo di sviluppo protetto MGB 2003 Argomenti trattati Processo di sviluppo protetto Modellizzazione delle minacce Contenimento dei rischi Procedure ottimali per la protezione © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Prerequisiti di sessione MGB 2003 Prerequisiti di sessione Esperienza di sviluppo con Microsoft Visual Basic®, Microsoft Visual C++® o C# Livello 200 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Processo di sviluppo protetto Modellizzazione delle minacce MGB 2003 Agenda Processo di sviluppo protetto Modellizzazione delle minacce Contenimento dei rischi Procedure ottimali per la protezione © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Miglioramento del processo di sviluppo delle applicazioni MGB 2003 Miglioramento del processo di sviluppo delle applicazioni Prendere in considerazione la protezione All'inizio del processo Nel corso dello sviluppo Fino alla distribuzione Durante tutte le fasi di verifica del software Non smettere di cercare bug di protezione fino alla fine del processo di sviluppo © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Struttura di protezione SD3 MGB 2003 Struttura di protezione SD3 SD3 Architettura e codice protetti Analisi delle minacce Riduzione delle vulnerabilità Protezione come caratteristica di progettazione Protezione per impostazione predefinita Riduzione della superficie di attacco Disattivazione delle funzioni non utilizzate per impostazione predefinita Utilizzo di privilegi minimi Protezione nella distribuzione Protezione: rilevamento, difesa, ripristino e gestione Processo: guide all'esecuzione delle operazioni, guide all'architettura Utenti: formazione © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Cronologia di sviluppo protetto dei prodotti MGB 2003 Cronologia di sviluppo protetto dei prodotti Procedure di verifica completate Progettazione completata Concetto Codice completato Commer- cializzazione Post- commercializzazione Verifica delle vulnerabilità di protezione Valutazione della conoscenza relativa alla protezione durante l'assunzione di membri del team Determinazione dei criteri di approvazione della protezione Esecuzione di verifiche esterne Analisi delle minacce Apprendimento e perfezionamento Esecuzione di verifiche di team della protezione Formazione dei membri del team Verifica della mutazione dei dati e dei privilegi più ridotti possibili Risoluzione dei problemi di protezione, verifica del codice rispetto alle linee guida di protezione = Attività continue © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Protezione come caratteristica di progettazione MGB 2003 Protezione come caratteristica di progettazione Aumentare la consapevolezza in fatto di protezione del team di progettazione Prevedere una formazione continua Combattere gli atteggiamenti come "Ciò che non conosco non potrà crearmi problemi" Prendere in considerazione la protezione fin dalla fase di progettazione Definire gli obiettivi di protezione del prodotto Implementare la protezione come una funzione chiave del prodotto Utilizzare la modellizzazione delle minacce durante la fase di progettazione © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Processo di sviluppo protetto Modellizzazione delle minacce MGB 2003 Agenda Processo di sviluppo protetto Modellizzazione delle minacce Contenimento dei rischi Procedure ottimali per la protezione © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Definizione di modellizzazione delle minacce MGB 2003 Definizione di modellizzazione delle minacce La modellizzazione delle minacce è un'analisi basata sulla protezione che: Consente al team di un prodotto di identificare i punti in cui il prodotto è più vulnerabile Consente di valutare le minacce a un'applicazione Ha come obiettivo quello di ridurre i rischi di protezione complessivi Consente di individuare le risorse Consente di rilevare le vulnerabilità Consente di identificare le minacce Dovrebbe essere alla base delle specifiche di progettazione relative alla protezione © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Vantaggi della modellizzazione delle minacce MGB 2003 Vantaggi della modellizzazione delle minacce Migliore comprensione dell'applicazione Individuazione di bug Identificazione di bug di progettazione complessi Integrazione dei nuovi membri del team Definisce piani di testing per la protezione ben progettati Minaccia Vulnerabilità Risorsa © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Processo di modellizzazione delle minacce MGB 2003 Processo di modellizzazione delle minacce Identificazione delle risorse 1 Creazione di una panoramica dell'architettura 2 Scomposizione dell'applicazione 3 Identificazione delle minacce 4 Documentazione delle minacce 5 Classificazione delle minacce 6 Processo di modellizzazione delle minacce © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Processo di modellizzazione delle minacce Fase 1: identificazione delle risorse Creare un elenco di risorse da proteggere tra cui: Dati riservati, come database di clienti Pagine Web Disponibilità del sistema Altri componenti che, se danneggiati, impedirebbero il corretto funzionamento dell'applicazione © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Identificazione della funzione dell'applicazione Creazione di un diagramma dell'architettura dell'applicazione Identificazione delle tecnologie Processo di modellizzazione delle minacce Fase 2: creazione di una panoramica dell'architettura Autorizzazioni NTFS (autenticazione) Autorizzazione di file Autorizzazione di URL Ruoli di .NET(autenticazione) Ruolo definito dall'utente SSL (privacy/integrità) Limite di attendibilità Marcella Monica Alberto IIS Autenticazione anonima basata su form IPSec ASP .NET (identità del processo) Microsoft Autenticazione di Microsoft Windows® SQL Server™ © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Processo di modellizzazione delle minacce Fase 3: scomposizione dell'applicazione Scomporre l'applicazione Creare un profilo di protezione basato sulle tradizionali aree di vulnerabilità Esaminare l'interazione tra i diversi sottosistemi Utilizzare i diagrammi DFD o UML Identificazione dei limiti di attendibilità Identificazione del flusso di dati Identificazione dei punti di ingresso Identificazione di codice privilegiato Documentazione del profilo di protezione © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Processo di modellizzazione delle minacce Fase 4: identificazione delle minacce Creazione del team Identificazione delle minacce Minacce alla rete Minacce all'host Minacce all'applicazione © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Processo di modellizzazione delle minacce Identificazione delle minacce mediante STRIDE Tipi di minacce Esempi Spoofing Falsificazione di messaggi di posta elettronica Riproduzione di pacchetti di autenticazione Tampering Alterazione di dati durante la trasmissione Modifica dei dati contenuti nei file Repudiation Eliminazione di un file importante e negazione di tale operazione Acquisto di un prodotto e negazione di tale operazione Information disclosure Esposizione di informazioni in messaggi di errore Esposizione di codice su siti Web Denial of service Saturazione di una rete con pacchetti SYN Saturazione di una rete con pacchetti ICMP contraffatti Elevation of privilege Sfruttamento di sovraccarichi buffer per ottenere privilegi di sistema Ottenimento di privilegi di amministratore in maniera illegale © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Visualizzazione dei dati sullo stipendio MGB 2003 Processo di modellizzazione delle minacce Identificazione delle minacce mediante l'utilizzo di strutture di attacco 1.0 Visualizzazione dei dati sullo stipendio (I) 1.1 Il traffico non è protetto (E) 1.2 L'hacker visualizza il traffico 1.2.1 Intercettazione del traffico mediante l'analizzatore di protocolli 1.2.2 Ascolto del traffico del router 1.2.2.1 Il router non è provvisto di patch (E) 1.2.2.2 Compromissione del router 1.2.2.3 Tentativo di indovinare la password del router Minaccia 1 (I) Visualizzazione dei dati sullo stipendio 1.1 Il traffico non è protetto 1.2 L'hacker visualizza il traffico 1.2.1 Intercettazione del traffico mediante l'analizzatore di protocolli 1.2.2 Ascolto del traffico del router 1.2.2.1 Il router non è provvisto di patch 1.2.2.2 Compromissione del router 1.2.2.3 Tentativo di indovinare la password del router © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Processo di modellizzazione delle minacce Fase 5: documentazione delle minacce Utilizzare un modello per documentare le minacce Lasciare vuoto il campo Rischio (per il momento) Descrizione della minaccia Inserimento di comandi SQL Obiettivo della minaccia Componente di accesso ai dati Rischio Tecniche di attacco L'hacker aggiunge comandi SQL al nome utente utilizzato per creare una query SQL Contromisure Utilizzare un'espressione regolare per convalidare il nome utente e una stored procedure con parametri per accedere al database © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Processo di modellizzazione delle minacce Fase 6: classificazione delle minacce Utilizzare la seguente formula: Rischio = probabilità * potenziale del danno Utilizzare il modello DREAD per classificare le minacce Damage potential (potenziale del danno) Reproducibility (riproducibilità) Exploitability (sfruttabilità) Affected Users (utenti interessati) Discoverability (identificabilità) © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Visualizzazione dei dati sullo stipendio MGB 2003 Processo di modellizzazione delle minacce Esempio: classificazione delle minacce Minaccia 1 (I) Visualizzazione dei dati sullo stipendio 1.1 Il traffico non è protetto 1.2 L'hacker visualizza il traffico 1.2.1 Intercettazione del traffico mediante l'analizzatore di protocolli 1.2.2 Ascolto del traffico del router 1.2.2.1 Il router non è provvisto di patch 1.2.2.2 Compromissione del router 1.2.2.3 Tentativo di indovinare la password del router Damage potential (potenziale del danno) Affected users (utenti interessati) - oppure - Danno Reproducibility (riproducibilità) Exploitability (sfruttabilità) Discoverability (identificabilità) Probabilità © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Codifica in base a un modello di minaccia MGB 2003 Codifica in base a un modello di minaccia Utilizzare la modellizzazione delle minacce per: Determinare i componenti più pericolosi dell'applicazione Assegnare priorità agli sforzi per implementare la protezione Assegnare priorità alle continue verifiche del codice Determinare le tecniche di contenimento delle minacce da utilizzare Determinare il flusso di dati © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Processo di sviluppo protetto Modellizzazione delle minacce MGB 2003 Agenda Processo di sviluppo protetto Modellizzazione delle minacce Contenimento dei rischi Procedure ottimali per la protezione © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Opzioni di contenimento dei rischi MGB 2003 Opzioni di contenimento dei rischi Opzione 1: non intraprendere alcuna misura Opzione 2: avvisare l'utente Opzione 3: eliminare il problema Opzione 4: correggere il problema Controllo © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Processo di contenimento dei rischi MGB 2003 Processo di contenimento dei rischi Identificare la categoria, ad esempio: spoofing Selezionare le tecniche, ad esempio: autenticazione o protezione di dati riservati Scegliere la tecnologia, ad esempio: Kerberos Tipo di minaccia (STRIDE) Tecnica di contenimento Tecnologia Spoofing Autenticazione NTLM Certificati X.509 Chiavi PGP Autenticazione di base Digest Kerberos SSL/TLS © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Tecniche di contenimento di esempio MGB 2003 Tecniche di contenimento di esempio Client Server Dati permanenti Dati di autenticazione Dati di configurazione STRIDE SSL/TLS IPSec RPC/DCO con Privacy Firewall Limitazione dell'utilizzo delle risorse per le connessioni anonime Controllo di accesso avanzato Firme digitali Controllo Rete non protetta © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Processo di sviluppo protetto Modellizzazione delle minacce MGB 2003 Agenda Processo di sviluppo protetto Modellizzazione delle minacce Contenimento dei rischi Procedure ottimali per la protezione © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Esecuzione con i privilegi più ridotti possibili MGB 2003 Esecuzione con i privilegi più ridotti possibili Dottrina di protezione nota: Un'applicazione dovrebbe essere eseguita con i privilegi minimi necessari per il funzionamento L'elevazione dei privilegi può avere conseguenze disastrose Codice dannoso in esecuzione in un processo altamente privilegiato viene eseguito con privilegi elevati Molti virus si diffondono perché il destinatario dispone di privilegi di amministratore © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Dimostrazione 1 Protezione delle applicazioni ASP .NET Analisi dei privilegi delle applicazioni ASP .NET Limitazione dei livelli di attendibilità delle applicazioni ASP .NET Sandboxing di codice privilegiato Utilizzo di assembly sottoposti a sandboxing © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Riduzione della superficie di attacco MGB 2003 Riduzione della superficie di attacco Esporre solo interfacce dell'applicazione limitate e ben documentate Utilizzare solo i servizi richiesti dall'applicazione I virus Slammer e CodeRed non si sarebbero diffusi se determinate funzioni fossero state disattivate per impostazione predefinita ILoveYou (e altri virus) non si sarebbero diffusi se la funzione di script fosse stata disattivata Disattivare tutte le funzioni non necessarie © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Non ritenere attendibile l'input dell'utente MGB 2003 Non ritenere attendibile l'input dell'utente Convalidare tutto l'input Considerare dannoso tutto l'input fino a prova contraria Cercare dati validi e rifiutare tutto il resto Vincolare, rifiutare e sterilizzare l'input dell'utente mediante Verifiche dei tipi Verifiche della lunghezza Verifiche dell'intervallo Verifiche del formato Validator.ValidationExpression = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"; © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Dimostrazione 2 Convalida di Windows Form Visualizzazione di un'applicazione in cui non viene eseguita la convalida Aggiunta della convalida dell'input Convalida del form completo © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Difesa a più livelli (1 di 3) Utilizzo di più gatekeeper MGB 2003 Difesa a più livelli (1 di 3) Utilizzo di più gatekeeper SQL Server IPSec Firewall ISA IIS Firewall ISA SSL © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Verifica della protezione MGB 2003 Difesa a più livelli (2 di 3) Applicazione di misure appropriate per ogni livello Verifica della protezione Verifica della protezione Applicazione.dll Verifica della protezione Protezione delle risorse mediante un ACL Applicazione.exe Verifica della protezione Applicazione.dll © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Difesa a più livelli (3 di 3) Utilizzo di ACL efficienti per le risorse Progettare gli ACL nell'applicazione dall'inizio Applicare gli ACL a file, cartelle, pagine Web, impostazioni del Registro di sistema, file di database, stampanti e oggetti presenti in Active Directory Creare ACL personalizzati durante l'installazione dell'applicazione Includere ACE DENY Non utilizzare DACL NULL © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Protezione non basata sul nascondimento MGB 2003 Protezione non basata sul nascondimento Non nascondere le chiavi di protezione nei file Non fare affidamento su chiavi del Registro di sistema non documentate Supporre sempre che un hacker abbia a disposizione le stesse informazioni dello sviluppatore © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Utilizzo dell'API di protezione dei dati (DPAPI, Data Protection API) per la protezione di informazioni riservate Due funzioni DPAPI: CryptProtectData CryptUnprotectData Due archivi per i dati crittografati mediante DPAPI: Archivio dell'utente Archivio del computer © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Dimostrazione 3 DPAPI Memorizzazione delle stringhe di connessione in Web.config Crittografia delle stringhe di connessione mediante DPAPI Installazione dell'utilità Aspnet_setreg Utilizzo di attributi crittografati in un file di configurazione Concessione di autorizzazioni sulle chiavi del Registro di sistema © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Gestione degli errori (1 di 2) MGB 2003 Gestione degli errori (1 di 2) DWORD dwRet = IsAccessAllowed(…); if (dwRet == ERROR_ACCESS_DENIED) { // Security check failed. // Inform user that access is denied } else { // Security check OK. // Perform task… } Cosa succederebbe se IsAccessAllowed() restituisse ERROR_NOT_ ENOUGH_MEMORY? Assicurarsi che un eventuale errore del codice si verifichi in modo protetto © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Gestione degli errori (2 di 2) MGB 2003 Gestione degli errori (2 di 2) Operazioni sconsigliate: Rivelazione di informazioni in messaggi di errore Utilizzo di risorse a lungo dopo un errore Operazioni consigliate: Utilizzo di blocchi di gestione delle eccezioni per evitare la propagazione degli errori al chiamante Scrittura di errori sospetti in un log eventi <customErrors mode="On"/> © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Verifica della protezione MGB 2003 Verifica della protezione Coinvolgere i team di testing all'inizio dei progetti Utilizzare la modellizzazione delle minacce per sviluppare la strategia di verifica della protezione Prevedere i possibili attacchi e verificare il livello di protezione Automatizzare gli attacchi con script e linguaggi di programmazione di basso livello Inviare numerosi dati non validi Eliminare o negare l'accesso a file o voci del Registro di sistema Eseguire le verifiche con un account che non disponga di privilegi di amministratore Conoscere il nemico e conoscere se stessi Conoscere le tecniche e le tecnologie utilizzabili dagli hacker Conoscere le tecniche e le tecnologie utilizzabili dai tester © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Come imparare dagli errori MGB 2003 Come imparare dagli errori Se si rileva un problema di protezione, imparare dall'errore Come si è verificato l'errore di protezione? Lo stesso errore è presente in altre parti del codice? Come avrebbe potuto essere impedito? Cosa è necessario modificare per evitare il ripetersi di questo tipo di errore? È necessario aggiornare materiale di formazione o strumenti di analisi? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Riepilogo della sessione MGB 2003 Riepilogo della sessione Processo di sviluppo protetto Modellizzazione delle minacce Contenimento dei rischi Procedure ottimali per la protezione © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 Fasi successive Per essere sempre aggiornati nel campo della protezione Abbonarsi ai bollettini sulla protezione all'indirizzo: http://www.microsoft.com/security/security_bulletins/alerts2.asp (in lingua inglese) Informazioni aggiornate relative alla protezione Microsoft sono disponibili all'indirizzo: http://www.microsoft.com/security/guidance/ (in lingua inglese) Accesso a materiale di formazione aggiuntivo sulla protezione Seminari di formazione on-line e con istruttore sono disponibili all'indirizzo: http://www.microsoft.com/seminar/events/security.mspx (in lingua inglese) Per trovare un CTEC di zona che offre corsi di formazione pratica, visitare l'indirizzo: http://www.microsoft.com/italy/traincert/Default.mspx © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Ulteriori informazioni MGB 2003 Ulteriori informazioni Sito Microsoft dedicato alla protezione (per tutti gli utenti) http://www.microsoft.com/italy/security Sito MSDN dedicato alla protezione (per sviluppatori) http://msdn.microsoft.com/security (in lingua inglese) Sito TechNet dedicato alla protezione (per professionisti IT) http://www.microsoft.com/italy/technet/ sicurezza.asp © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.