Università di Roma “La Sapienza”

              Facoltà di Scienze Matematiche Fisiche e Naturali
                Laurea t...
Obiettivo di Stage

Studio di fattibilità, analisi e sviluppo di due Plug-in per il sistema
                              ...
Obiettivo di Stage
Problemi legati all’integrazione di un sistema PcP-EE in un Dominio
                           Active D...
Obiettivo di Stage
           La soluzione ai problemi : Plug-in AD e Plug-in GINA


•   Il Plug-in AD legge gli utenti
  ...
Attività di Stage

            Acquisizione di conoscenza su:
PcP-EE, Directory LDAP-Based, Active Directory e GINA.




 ...
Sistema PcP-EE
 Tipico scenario di applicazione di un Sistema PcP-EE all’interno di una
                                  ...
Sistema PcP-EE
                                         L’architettura


• PcP-EE DB Server: raccoglie tutti i dati
dell’ ...
Sistema PcP-EE
            Relazione fra i Plug-in ed i strumenti di PcP-EE




                                       Plu...
Directory LDAP-Based
                 Studi e Ricerche riguardanti il Plug-in AD


• Una directory è una sorta di database...
Active Directory
• E’ il servizio di directory dei server Windows 2000-2003.




• Consente alle aziende di integrare i si...
Active Directory
         Tecnologie per l’accesso ad Active Directory




• ADSI (Active Directory Service Interface)
Le ...
ADSI
                        Vantaggi nell’utilizzare ADSI

• Spesso nelle aziende esistono
directory diverse che svolgono...
ADSI
                           Vantaggi nell’utilizzare ADSI

       •Caratteristica                                •Bene...
Winlogon
                             Introduzione al Plug-in GINA

• Winlogon.exe è il processo responsabile
dell'impleme...
GINA
                      Introduzione al Plug-in GINA
• Una DLL di supporto del Winlogon è la
cosiddetta “GINA”.

• Ques...
Realizzazione Plug-in AD
                       Scelte progettuali




• Linguaggio : Borland Delphi 7 (Scelta aziendale)....
Realizzazione Plug-in AD
                             Interfaccia




• Dominio a cui collegarsi




• Elenco utenti




•...
Realizzazione Plug-in AD
                       La funzione ADsGetObject




• E’ la funzione che restituisce il puntatore...
Realizzazione Plug-in AD
                   La funzione ADsBuildEnumerator




• Questa funzione crea un oggetto enumerato...
Realizzazione Plug-in AD
                                  Il codice

La funzione ADsEnumerateObjects prende in input un c...
Realizzazione Plug-in AD
                                        Il codice
• La procedura Button1.click viene eseguita qua...
Realizzazione Plug-in AD
                                         Il codice



• La procedura trUserChange viene eseguita ...
Plug-in AD
  Filmato
Realizzazione Plug-in GINA
                       Scelte progettuali




• Linguaggio : C.



• Compilatore : Microsoft Vi...
Realizzazione Plug-in GINA
                             Scelte progettuali
Riscrivere totalmente GINA per catturare userna...
GINASTUB
                  La funzione WlxLoggedOutSAS




• E’ una funzione di GINA che viene invocata da Winlogon quando...
GINASTUB
                      La struttura pMprNotifyInfo




• la variabile pszOldPassword e diversa dal valore nullo so...
GINASTUB
                           Il codice
Nota : La username e la password vengono memorizzate solo dopo
aver chiamato...
GINASTUB
 Filmato
Conclusioni

• Il sistema PcP-EE si dimostra sicuramente innovativa, nonostante la sua
semplicità concettuale.
• Un punto ...
Bibliografia
• Heinz Johner, Larry Brown, Franz-Stefan Hinner, Wolfgang Reis, Johan
Westman, “Understanding LDAP”, IBM, 19...
Upcoming SlideShare
Loading in …5
×

Enterprise Distributed Software Firewalling: GINA and Active Directory

919 views
824 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
919
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Enterprise Distributed Software Firewalling: GINA and Active Directory

  1. 1. Università di Roma “La Sapienza” Facoltà di Scienze Matematiche Fisiche e Naturali Laurea triennale in Tecnologie Informatiche Sicurezza delle reti in ambiente Enterprise: controllo degli accessi in un firewall software distribuito con Active Directory e GINA Responsabile interno : Prof. Luigi V. Mancini Studente : Eugenio De Santis Responsabile esterno : Dott. Roberto Battistoni
  2. 2. Obiettivo di Stage Studio di fattibilità, analisi e sviluppo di due Plug-in per il sistema PcP-EE • Plug-in AD. Integrazione del database degli utenti di un Dominio Active Directory nel Sistema PcP-EE. • Plug-in GINA. Hijacking delle credenziali di Windows.
  3. 3. Obiettivo di Stage Problemi legati all’integrazione di un sistema PcP-EE in un Dominio Active Directory • Gestione del database degli utenti non centralizzata. L’amministratore di rete dovrà gestire separatamente gli utenti del Dominio Active Directory e del sistema PcP- EE. • Due logon interrattivi. Gli utenti dovranno eseguire un primo logon per l’autenticazione di Windows ed un secondo per PcP-EE.
  4. 4. Obiettivo di Stage La soluzione ai problemi : Plug-in AD e Plug-in GINA • Il Plug-in AD legge gli utenti del Dominio Active Directory e li passa al sistema PcP-EE che si occuperà di gestirli. L’amministratore di rete, potrà decidere se schedulare tale operazione oppure utilizzarla on-demand. • Il Plug-in GINA “cattura” il nome utente e la password digitate nella finestra di logon di Windows e le passa al sistema PcP-EE in maniera totalmente trasparente all’utente.
  5. 5. Attività di Stage Acquisizione di conoscenza su: PcP-EE, Directory LDAP-Based, Active Directory e GINA. Realizzazione documentazione aziendale. Implementazione dei prototipi di plug-in.
  6. 6. Sistema PcP-EE Tipico scenario di applicazione di un Sistema PcP-EE all’interno di una LAN • Il Firewall perimetrale controlla tutto il traffico in entrata e in uscita da Internet. • Il Sistema PcP-EE controlla tutto il traffico all’interno della LAN (la maggior parte delle intrusioni avvengono da client nella stessa rete aziendale)
  7. 7. Sistema PcP-EE L’architettura • PcP-EE DB Server: raccoglie tutti i dati dell’ ambiente PcP-EE. • Policy Management Tool: applicazione di management per la definizione di gruppi di macchine, ruoli aziendali, profili e regole di firewalling. • Monitor Console: management dei log di PcP-EE. • Policy Server: autentica e invia le policy ai diversi client. • Software Agent PcP-EE: è presente su ogni host aziendale da proteggere con sistema operativo Microsoft; utilizza le regole inviate dal Policy Server ed invia i log ad esso.
  8. 8. Sistema PcP-EE Relazione fra i Plug-in ed i strumenti di PcP-EE Plug-in AD • Plug-in AD: è integrato nel Policy Managament Tool. • Plug-in GINA: si trova in ogni singolo host. Plug-in GINA
  9. 9. Directory LDAP-Based Studi e Ricerche riguardanti il Plug-in AD • Una directory è una sorta di database contenente oggetti. • Gli oggetti in una directory sono organizzati in un albero chiamato DIT (Directory Information Tree). • Ciascun oggetto è identificato univocamente mediante un valore chiave chiamato DN (Distinguished Name). • Esempio : Il DN di John Smith è uguale a “cn=JohnSmith,o=IBM,c=DE” (si compone dalla foglia alla radice). • Una directory LDAP-Based è una directory che supporta il protocollo LDAP. • Active Directory è l’implementazione Microsoft di una directory LDAP-Based.
  10. 10. Active Directory • E’ il servizio di directory dei server Windows 2000-2003. • Consente alle aziende di integrare i sistemi che non utilizzano Windows con le applicazioni per Windows, in modo da consolidare le directory e semplificare la gestione dell'intero sistema operativo di rete.
  11. 11. Active Directory Tecnologie per l’accesso ad Active Directory • ADSI (Active Directory Service Interface) Le librerie specifiche messe a disposizione da Microsoft. • LDAP (Light Weight Directory Access Protocol) Le API standard per accedere a basso livello ad una directory da applicazioni c e c++. • NETAPI (Network Management Functions) Fanno parte delle API di Win32 e offrono funzionalità di accesso e di controllo delle reti.
  12. 12. ADSI Vantaggi nell’utilizzare ADSI • Spesso nelle aziende esistono directory diverse che svolgono ruoli diversi. Le applicazioni client utilizzano API specifiche per ogni directory a cui devono accedere. • Con ADSI è possibile accedere a diverse directory utilizzando dei provider specifici per ogni directory e un codice ad alto livello indipendente dal provider stesso. Il meccanismo è molto simile alla tecnologia ODBC per accedere ai database.
  13. 13. ADSI Vantaggi nell’utilizzare ADSI •Caratteristica •Beneficio Open Ciascun produttore di software può implementare un ADSI Provider. DS-independent La stessa applicazione può lavorare su più directory. Java support Oggetti ADSI sono accessibili a Java mediante Java COM. Security ADSI supporta meccanismi di autenticazione autorizzazione. Simple programming model E’ semplice da programmare poichè I sviluppatori non devono conoscere le API specifiche di ciascuna directory OLE Automation Server Ogni OLE Automation Controller (per esempio, Visual Basic, Perl, Rexx, C/C++, e atri) possono essere usati per sviluppare applicazioni directory-enabled. Extensible Possono essere aggiunti nuovi oggetti e funzioni.
  14. 14. Winlogon Introduzione al Plug-in GINA • Winlogon.exe è il processo responsabile dell'implementazione del logon interattivo. • Esso tocca vari aspetti tra cui l'autenticazione delle credenziali dell'utente anche attraverso i protocolli di rete , lo screen saver e altre operazioni di startup. • Per l’utente, winlogon non è visibile se non aprendo il Task Manager o qualche altra utility. • Esso è comunque fondamentale per il sistema poiché, utilizzando GINA, crea la sessione utente e lancia la shell (solitamente Explorer). • Winlogon non appena avviato, registra come propria la sequenza di tasti Ctrl-Alt-Canc (anche chiamata Secure Attention Sequence, SAS) in modo che applicazioni quali Trojan Horse non possano recuperare informazioni sugli account.
  15. 15. GINA Introduzione al Plug-in GINA • Una DLL di supporto del Winlogon è la cosiddetta “GINA”. • Questa DLL implementa le funzioni di Input/Output con l'utente, i dialoghi per l'inserimento di username, password e dominio e gestisce lo screen saver. • Autenticazioni tramite impronte digitali, scansione della retina, badge, Smart Card e così via sono di solito implementati tramite una GINA particolare. • La GINA è una DLL che può essere rimpiazzata. In pratica il Winlogon durante le sue transizioni di stato e su particolari eventi invoca funzioni esposte da GINA.
  16. 16. Realizzazione Plug-in AD Scelte progettuali • Linguaggio : Borland Delphi 7 (Scelta aziendale). • Librerie per accedere ad Active Directory : ADSI. • Piattaforma : Windows 2000/XP (famiglia NT).
  17. 17. Realizzazione Plug-in AD Interfaccia • Dominio a cui collegarsi • Elenco utenti • Attributi degli utenti
  18. 18. Realizzazione Plug-in AD La funzione ADsGetObject • E’ la funzione che restituisce il puntatore ad un oggetto di una directory. • lpszPathName è la stringa che identifica l’oggetto ricercato (varia a seconda del service provider utilizzato). • riid identifica l’interfaccia dell’oggetto a cui collegarsi. • ppObject l’oggetto in cui memorizzare i dati.
  19. 19. Realizzazione Plug-in AD La funzione ADsBuildEnumerator • Questa funzione crea un oggetto enumeratore per uno specifico oggetto contenitore (per esempio un oggetto che contiene utenti di una directory). • pADsContainer è il puntatore all’oggetto contenitore da enumerare. • ppEnumVariant è la variabile che conterrà l’enumeratore. Nota : Una volta eseguito ADsBuildEnumerator per creare un enumeratore è necessario chiamare la funzione ADsEnumerateNext per passare ad un nuovo oggetto del contenitore ed infine chiamare ADSFreeEnumerator per rilasciare l’oggetto enumeratore.
  20. 20. Realizzazione Plug-in AD Il codice La funzione ADsEnumerateObjects prende in input un contenitore di oggetti ADSI ed il puntatore ad una funzione. Per ciascun oggetto contenuto nel contenitore, se non nullo, esegue la funzione passata come parametro.
  21. 21. Realizzazione Plug-in AD Il codice • La procedura Button1.click viene eseguita quando si fa click sul bottone connetti dell’interfaccia. • E’ da notare la connessione alla directory utilizzando il provider WinNT che restituisce tutti gli oggetti del dominio specificato nella variabile dom. • Successivamente vengono filtrati gli oggetti (solo gli utenti). • Viene “pulita” la treeview contenente l’elenco degli utenti. • Viene chiamata la funzione ADsEnumerateObjects passando come parametri il contenitore degli utenti (dom) e la funzione AddToTree.
  22. 22. Realizzazione Plug-in AD Il codice • La procedura trUserChange viene eseguita quando si fa click su un utente nella lista degli utenti dell’interfaccia. • Viene richiesto alla directory il singolo oggetto utente. • Se l’oggetto è diverso dal valore nullo vengono riempiti i campi corrispondenti.
  23. 23. Plug-in AD Filmato
  24. 24. Realizzazione Plug-in GINA Scelte progettuali • Linguaggio : C. • Compilatore : Microsoft Visual C++. • Piattaforma : Windows 2000/XP (famiglia NT).
  25. 25. Realizzazione Plug-in GINA Scelte progettuali Riscrivere totalmente GINA per catturare username e password ? No. Scrivere GINASTUB. • L’idea di fondo è stata quella di creare una DLL, di nome ginastub che si interpone tra Winlogon e la GINA originale. • Quando Winlogon invoca una funzione (ad esempio wlxNegotiate) di ginastub, quest’ultima memorizza i parametri passati da Winlogon ed esegue la corrispondente funzione della GINA originale.
  26. 26. GINASTUB La funzione WlxLoggedOutSAS • E’ una funzione di GINA che viene invocata da Winlogon quando riceve un evento SAS (ad esempio la combinazione CTRL-ALT-CANC) e nessun utente ha ancora eseguito il logon. • Il parametro che contiene la username e la password digitate dall’utente è la struttura pMprNotifyInfo.
  27. 27. GINASTUB La struttura pMprNotifyInfo • la variabile pszOldPassword e diversa dal valore nullo solo in caso di una operazione di “cambio password”.
  28. 28. GINASTUB Il codice Nota : La username e la password vengono memorizzate solo dopo aver chiamato la funzione WlxLoggedOutSAS della GINA originale ed aver verificato che il logon sia andato a buon fine.
  29. 29. GINASTUB Filmato
  30. 30. Conclusioni • Il sistema PcP-EE si dimostra sicuramente innovativa, nonostante la sua semplicità concettuale. • Un punto a sfavore è che oggi il mercato non è ancora pronto ad un prodotto simile anche se virus, attacchi di hacker, worms ed altri problemi legati alla sicurezza informatica sono una realtà di cui tutti hanno coscienza. • Il sistema PcP-EE risulta essere in generale “abbastanza” invasivo all’interno delle reti aziendali, richiede infatti una configurazione accurata e un sistema di gestione efficace ed efficiente. Questa prerogativa può in qualche modo scoraggiare gli amministratori di rete nell’utilizzare un prodotto come PcP-EE. • C’è anche da dire però, che oggi, nella maggior parte delle macchine aziendali, vengono installati Personal Firewall freeware e non (come Zone Alarm o Sygate) che per quanto possano essere efficaci non prevedono una gestione centralizzata in ambienti Enterprise ma solo una gestione locale del traffico di rete.
  31. 31. Bibliografia • Heinz Johner, Larry Brown, Franz-Stefan Hinner, Wolfgang Reis, Johan Westman, “Understanding LDAP”, IBM, 1998. • Gerald Carter, “LDAP System Administration”, O’Reilly,2003. • Microsoft Corporation, “Using ADSI, LDAP, and Network Management Functions With Active Directory”, Microsoft, 2002. • Microsoft Corporation, “Microsoft Active Directory Service Interfaces (White Paper realizzato da Microsoft)”, Microsoft, 2002. • Sito di supporto allo sviluppo Microsoft (http://msdn.microsoft.com). • Deepak Shenoy, “Active Directory Service Interfaces Interfaces”, Agni Software, 2003. • Battistoni, Fontana, Angelucci, quot;[SE_T-04-0009] TIPRT Progetto di PcP EE 2004 [1.2].docquot;, Secure Edge s.r.l., 2004.

×