October 2005 Blog Posts

[Security 07] Impariamo a difendere i nostri segreti

Le web application, per come le conosciamo, spesso necessitano di nascondere alcuni dati che possono essere classificati come segreti. Nel caso in cui essi esistano, è necessario metterli in sicurezza da (li lascio in inglese perchè fa + figo) : rogue administrators web malicious users Le Spie. I Rogue AdministratorsQuesti ed altri utenti privi di scrupoli possono avere la possibilità di leggere segreti.Per esempio, un amministratore WebServer non dovrebbe essere in grado di leggere le credenziali di accesso al Server SQL della rete aziendale. Le mura sono cadute ma posso difendermi ancora.Immaginando FileAuthorizaionModule come una reale protezione alle problematiche relative all'accesso...

posted @ Thursday, October 27, 2005 10:39 AM | Feedback (30)

il 9 dicembre ed il tanto sospirato 70-315

Ho deciso che è il momento di fare il grande salto.Ho appena terminato la procedura di prenotazione per l'esame 70-315 Developing and Implementing Web Applications with Microsoft Visual C#.NET and Microsoft Visual Studio.NET A dirla tutta, il manuale per il 70-315 l'ho già studiato questa estate. (grazie luciano)In questo mese che manca all'esame lo ristudierò per la seconda volta sperando che vada tutto bene.Se avete suggerimenti o consigli, questi sono decisamente graditi!Ciao e Che dio me la mandi buona!

posted @ Monday, October 24, 2005 12:57 PM | Feedback (34)

[Security 06] Windows Authentication : Impersonate di credenziali specificate nel registro di sistema

L'elemento identity nel web.config supporta due attributi opzionali: username password Questi, permettono di specificare le fixed identity da impersonificare nell'applicazione web che abbiamo sviluppato.    userName="registry:HKLM\SOFTWARE\YourSecureApp\             identity\ASPNET_SETREG,userName"   password="registry:HKLM\SOFTWARE\YourSecureApp\             identity\ASPNET_SETREG,password" Il codice sopra riportato mostra come utilizzare delle credenziali archiviate nel registro. Questa operazione è stata resa possibile dall'impiego del tool aspnet_setreg.exe. Il quale può essere scaricato da questo Url .Cosa è aspnet_setreg.exeaspnet_setreg è una utility che può essere utilizzata per codificare ed archiviare questi attributi nel registro di sistema sotto una chiave sicura.Prima di partire è necessario utilizzare la funzione CryptProtectData con la flag CRYPTPROTECT_LOCAL_MACHINE, la quale di fatto codifica le credenziali inserite. Questo passo va effettuato perchè qualunque persona...

posted @ Monday, October 24, 2005 9:31 AM | Feedback (97)

Quake 4

Finalmente è uscito anche in Italia :)Il classico buon vecchio ritorno alle origini.. (Quake2).

posted @ Friday, October 21, 2005 3:29 PM | Feedback (28)

[Security 05] Sicurezza - Configurabile o Programmatica?

[INTRO]Ricordiamo che per impersonificare l'utente chiamate della risorsa attraverso la Windows Authentication è necessario il codice che segue nel Web.config o nel Machine.config < SPAN><><authentication mode="="Windows" />< SPAN>< identity impersonate="true" /> [/INTRO]Quando viene messa in gioco l'autenticazione Windows in accoppiata con Impersonation le seguenti opzioni di sicurezza sono disponibili.Windows ACLsL'utente ha richiesto una risorsa. ASP.NET FileAuthorizaionModule esegue un access check per la tipologia di file richiesto il quale deve essere mappato nella ISAPI ASP.NET. Per fare questo utilizza l'access token dell'utente che ha effettuato la richiesta.Per i file che non sono mappati nella ISAPI, IIS esegue un access check, sempre utilizzando l'access token dell'utente...

posted @ Friday, October 21, 2005 10:20 AM | Feedback (41)

[Security 04] Porsi le giuste domande

Ideare e realizzare strategie di autorizzazione per applicazioni web distribuite è una delle task più impegnative che si possono presentare in fase di analisi.Come parte una analisi ?Ponendosi domande intelligenti.Che cosa s'intende per domande intelligenti?In un ambiente Enterprise "ideale" le domande da proporsti potrebbero essere le seguenti: Dove dovrei utilizzare sistemi di autorizzazione e con quale meccanismo? Che meccanismo di autentificazione dovrei utilizzare? Dovrei utilizzare Active Directory Service per l'autorizzazione o dovrei utilizzare un sistema di verifica basata su fonte dati (DB)? ...

posted @ Thursday, October 20, 2005 3:40 PM | Feedback (62)

[Security 03] ASP.NET Authorization Options

Nel post precedente abbiamo parlato di Granularità dove abbiamo introdotto i gate che ASP.NET mette a disposizione.Le modalità di autorizzazione di ASP.NET vengono definite "Opzioni di Accesso" e possono essere utilizzate da Web Applications,WebServices e Componenti Remoti.  Le opzioni disponibili sono:URL Authorization . Questo meccanismo di autorizzazione può essere impostato nei file di configurazione dell'applicazione (webconfig) e della macchina (machineconfig). L'Opzione URL permette di ristringere l'accesso a specifici files e cartelle grazie all'utilizzo del namespace URI (Uniform Resource Identifier). Sarà così possibile permettere l'accesso a cartelle o files (percorsi web) a determinati utenti (regole di eccezione). I filtri di accesso possono...

posted @ Wednesday, October 19, 2005 1:24 PM | Feedback (65)

[Security 02] Gatekeepers,Gates e la Granularità

S'identifichi GateKeeper come la tecnologia responsabile di un Gate. Un Gate rappressenta un ACP (Access Control Point) per l'applicazione. Tutte le tecnologie Core IIS ASP.NET Web Services Remoting Enterprise Services Sql Server 2000 Windows 2000 presentano dei GateKeepers. Le richieste devono obbligatoriamente passare per una serie di Gates prima di passare a stato Allowed e quindi venire processate dal sistema. In questo post verranno illustrate la serie di cancelli che vengono attraversati per ogni tecnologia core.Internet Information Services mette a disposizione un Gate quando si autentifica l'utente (è dato per scontato che Anonymous authentication venga disabilitata). IIS Web Permissions può essere utilizzata...

posted @ Wednesday, October 19, 2005 12:20 PM | Feedback (21)

[Security 01] Principi di Sicurezza

Da alcuni mesi ho deciso di approfondire l'aspetto sicurezza nel mondo dello sviluppo di applicazioni .NET. La categoria Security sarà da considerarsi come il mio diario di viaggio verso questo mondo che, per mancanza di tempo, mi sono deciso solo ora ad affrontare. La prima pagina (come d'obbligo) inizia con alcuni fondamenti relativi alla sicurezza. Niente di pratico.. solo raccomandazioni. Utilizzare account con permessi LimitatiProcessi che eseguono script o eseguono cidice dovrebbero girare sotto account (least) per limitare potenziali danni che possono essere eseguiti se il codice è corrotto. L'account ASPNET viene considerato un modello di (least account).Questa decisione è stata presa dal team...

posted @ Wednesday, October 19, 2005 11:07 AM | Feedback (30)

[OT] La skin di winamp del momento

Decisamente interessante la skin proposta da Winamp.com Per chi non lo sapesse è la skin del film Corpse Bride, dedicata tutta al nuovo capolavoro di Tim Burton.

posted @ Tuesday, October 18, 2005 11:10 AM | Feedback (16)

100 Inviti Gmail

Mi sono rimasti gli ultimi 100 inviti Gmail da girare.Se ne volete uno potete contattarmi via feedback,ricordatevi di allegare la vostra email a cui mandare l'invito. Ciao :)

posted @ Monday, October 17, 2005 5:20 PM | Feedback (23)

Cambiare l'aspetto grafico di un WebService

Mi sembra ieri quando chiesi al mio mentore "ma la grafica dei webservice da dove viene ? "Beh a quei tempi era già tanto se si riuscivano a fare connessioni a database Microsoft Access e così rimasi senza una risposta per tanto tempo.. almeno fino ad oggi Se anche voi come me volete modificare l'aspetto dei vostri webservice (per divertimento o necessità), beh sappiate che la vostra soluzione si trova in un file presente nella path  x:\windows\Microsoft.NET\Framework\'VERSIONE'\CONFIG dove 'VERSIONE' sta per la versione del framework da voi utilizzataIn questa cartella ci sono numerosi file, molti dei quali li conoscete sicuramente. Il file che...

posted @ Friday, October 7, 2005 11:51 AM | Feedback (25)

Sicurezza WebService : L'autentificazione di Windows

Alla domanda, esiste un modo alternativo ma allo stesso tempo efficace per mettere in sicurezza un WebService che non sia la strada dei Certificati Lato Client?.Si è possibile e la risposta è nella autentificazione di Windows. Uno dei più grandi errori che si commettono durante lo sviluppo di WS, è quella di pensare che si sta sviluppando qualcosa di "diverso", "particolare". Bene non è così. Per proteggere un WebService è quindi possibile integrare la protezione di Windows.Per fare questo è necessario impostare la modalità di autentificazione "Integrated Windows Security", questa voce si raggiunge dal menù proprietà di ogni singolo Virtual Server...

posted @ Thursday, October 6, 2005 8:06 PM | Feedback (38)

Internet Explorer Developer Bar Beta

Idea forse ripresa dal plugin di Firefox? IE Tool Bar Beta propone tool interessanti quali il righello  ed altri interessanti strumenti di validazione del codice della pagina che si sta visualizzando.Altre funzioni riguardano Outlining di specifici tag html, il resize per simulare uno show a 800x600 e così via. Rispetto a FireFox manca il supporto per editare i CSS in real time.. tutte piccole cose che potevano essere utili anche a IE users.  Per visualizzare la barra al termine dell'installazione basta andare nella barra di internet explorer e selezionare la voce Developer Toolbar

posted @ Wednesday, October 5, 2005 4:23 PM | Feedback (1259)

Microsoft Expression

Io almeno non lo sapevo "Microsoft Expression™ takes the many sides of your creative personality to all new levels. Professional design tools give you greater flexibility to create sophisticated applications and content. Innovative technologies enable faster and richer interface development for Windows applications or the Web. Compatibility between products increases all levels of your personal productivity."http://www.microsoft.com/products/expression/en/default.aspx

posted @ Tuesday, October 4, 2005 5:54 PM | Feedback (44)

ASP.NET 2.0's Data Caching Techniques

Girando su internet nel cofee break ho trovato questo interessante articolo di Alex Homer sulle nuove tecniche di data caching che verranno introdotte in .NET 2. Fondamentalmente questo sistema non fa altro che tenere in cache i dati fin tanto che questi non sono cambiati all'interno della fonte dati. Tutto questo avviene attraverso l'implementazione di tabelle di supporto/stored procedures e triggers. L'operazione è possibile anche con Sql Server non 2005 (in cui questa feature è già disponibile) tramite una operazione di "pre-setup". Per fare questo sarà necessario eseguire il tool aspnet_regsql.exe da riga di comando. Gli verranno passati valori  di : Server Name Username Password Database...

posted @ Monday, October 3, 2005 4:04 PM | Feedback (14)

Utilizzare WMI per lavorare con IIS e gli utenti di Windows

Per programmare IIS si può ricorrere non solo ad ADSI ma anche al Windows Management Interface.Come già anticipato in alcuni post precedenti WMI è molto più veloce in fase di esecuzione di ADSI..Il codice, che segue, mostra come conteggiare gli application Pool ed i Virtual Servers installati.Plus aggiungo anche del codice per conteggiare gli utenti attivi in locale nella macchina su cui gira l'applicazione.Per lavorare con WMI in .NET dobbiamo referenziare il namespace System.Management Conteggio degli utenti in localeprivate int CountUsers(){System.Management.ManagementScope ms = new ManagementScope(”\root\CIMv2?);System.Management.ObjectQuery oq = new ObjectQuery(”SELECT * FROM Win32_Account where LocalAccount = true”);ManagementObjectSearcher query1 = new ManagementObjectSearcher(ms,oq);ManagementObjectCollection queryCollection...

posted @ Saturday, October 1, 2005 2:56 PM | Feedback (20)

ADSI IIS 05 Recuperare la versione di IIS

Per recuperare la versione di Internet Information Services sulla quale sta girando la nostra applicazione possiamo ricorrere all'interrogazione diretta del metabase attraverso il namespace "System.DirectoryServices".Come? In questo modo: W3SVC = new DirectoryEntry("IIS://localhost/W3SVC/Info"); Console.WriteLine(W3SVC.Properties["MajorIIsVersionNumber"].Value.ToString()); Console.WriteLine(W3SVC.Properties["MinorIIsVersionNumber"].Value.ToString()); Creiamo un oggetto DirectoryEntry collegato al ramo Info della gerarchia W3SVC, il quale offre numerose informazioni relative alla versione di IIS in uso.Le due interessate a questo post sono MajorVersionNumberMinorIISVersionNumber Le quali contengono i valori int relativi alla versione di IIS in uso.

posted @ Saturday, October 1, 2005 2:50 PM | Feedback (17)