Enterprise Distributed Software Firewalling: GINA and Active Directory

31
Università di Roma “La Sapienza” Università di Roma “La Sapienza” Facoltà di Scienze Matematiche Fisiche e Naturali Facoltà di Scienze Matematiche Fisiche e Naturali Laurea triennale in Tecnologie Informatiche Laurea triennale in Tecnologie Informatiche Sicurezza delle reti in ambiente Enterprise: Sicurezza delle reti in ambiente Enterprise: controllo degli accessi in un firewall software controllo degli accessi in un firewall software distribuito con Active Directory e GINA distribuito con Active Directory e GINA Responsabile interno : Responsabile interno : Prof. Luigi V. Mancini Prof. Luigi V. Mancini Studente : Eugenio De Santis Studente : Eugenio De Santis Responsabile esterno : Responsabile esterno : Dott. Roberto Battistoni Dott. Roberto Battistoni

Transcript of Enterprise Distributed Software Firewalling: GINA and Active Directory

Page 1: Enterprise Distributed Software Firewalling: GINA and Active Directory

Università di Roma “La Sapienza”Università di Roma “La Sapienza”

Facoltà di Scienze Matematiche Fisiche e NaturaliFacoltà di Scienze Matematiche Fisiche e NaturaliLaurea triennale in Tecnologie InformaticheLaurea triennale in Tecnologie Informatiche

Sicurezza delle reti in ambiente Enterprise: Sicurezza delle reti in ambiente Enterprise: controllo degli accessi in un firewall software controllo degli accessi in un firewall software

distribuito con Active Directory e GINAdistribuito con Active Directory e GINA

Responsabile interno : Responsabile interno : Prof. Luigi V. ManciniProf. Luigi V. Mancini Studente : Eugenio De SantisStudente : Eugenio De Santis Responsabile esterno : Responsabile esterno : Dott. Roberto BattistoniDott. Roberto Battistoni

Page 2: Enterprise Distributed Software Firewalling: GINA and Active Directory

• 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.

Studio di fattibilità, analisi e sviluppo di due Plug-in per il sistema PcP-EE

Obiettivo di StageObiettivo di Stage

Page 3: Enterprise Distributed Software Firewalling: GINA and Active Directory

Obiettivo di StageObiettivo di Stage

Problemi legati all’integrazione di un sistema PcP-EE in un Dominio Active Directory

• Due logon interrattivi. Gli utenti dovranno eseguire un primo logon per l’autenticazione di Windows ed un secondo per PcP-EE.

• 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.

Page 4: Enterprise Distributed Software Firewalling: GINA and Active Directory

Obiettivo di StageObiettivo di Stage

La soluzione ai problemi : Plug-in AD e Plug-in GINA

• 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.

• 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.

Page 5: Enterprise Distributed Software Firewalling: GINA and Active Directory

Attività di StageAttività di Stage

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

Realizzazione documentazione aziendale.

Implementazione dei prototipi di plug-in.

Page 6: Enterprise Distributed Software Firewalling: GINA and Active Directory

Sistema PcP-EESistema PcP-EE

Tipico scenario di applicazione di un Sistema PcP-EE all’interno di una LAN

• Il Sistema PcP-EE controlla tutto il traffico all’interno della LAN (la maggior parte delle intrusioni avvengono da client nella stessa rete aziendale)

• Il Firewall perimetrale controlla tutto il traffico in entrata e in uscita da Internet.

Page 7: Enterprise Distributed Software Firewalling: GINA and Active Directory

Sistema PcP-EESistema PcP-EE

L’architettura

• 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.

• Policy Server: autentica e invia le policy ai diversi client.

• Monitor Console: management dei log di PcP-EE.

• Policy Management Tool: applicazione di management per la definizione di gruppi di macchine, ruoli aziendali, profili e regole di firewalling.

• PcP-EE DB Server: raccoglie tutti i dati dell’ ambiente PcP-EE.

Page 8: Enterprise Distributed Software Firewalling: GINA and Active Directory

Plug-in AD

Plug-in GINA

Sistema PcP-EESistema PcP-EE

Relazione fra i Plug-in ed i strumenti di PcP-EE

• Plug-in GINA: si trova in ogni singolo host.

• Plug-in AD: è integrato nel Policy Managament Tool.

Page 9: Enterprise Distributed Software Firewalling: GINA and Active Directory

Directory LDAP-BasedDirectory LDAP-Based

• 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.

Studi e Ricerche riguardanti il Plug-in AD

Page 10: Enterprise Distributed Software Firewalling: GINA and Active Directory

Active DirectoryActive 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.

Page 11: Enterprise Distributed Software Firewalling: GINA and Active Directory

Active DirectoryActive 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.

Page 12: Enterprise Distributed Software Firewalling: GINA and Active Directory

ADSIADSI

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.

Page 13: Enterprise Distributed Software Firewalling: GINA and Active Directory

ADSIADSI

Vantaggi nell’utilizzare ADSI

Possono essere aggiunti nuovi oggetti e funzioni.Extensible

Ogni OLE Automation Controller (per esempio, Visual Basic, Perl, Rexx, C/C++, e atri) possono essere usati per sviluppare applicazioni directory-enabled.

OLE Automation Server

E’ semplice da programmare poichè I sviluppatori non devono conoscere le API specifiche di ciascuna directory

Simple programming model

ADSI supporta meccanismi di autenticazione autorizzazione.Security

Oggetti ADSI sono accessibili a Java mediante Java COM.Java support

La stessa applicazione può lavorare su più directory.DS-independent

Ciascun produttore di software può implementare un ADSI Provider.

Open

•Beneficio•Caratteristica

Page 14: Enterprise Distributed Software Firewalling: GINA and Active Directory

WinlogonWinlogon

• 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.

Introduzione al Plug-in GINA

Page 15: Enterprise Distributed Software Firewalling: GINA and Active Directory

GINAGINA

• 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.

Introduzione al Plug-in GINA

Page 16: Enterprise Distributed Software Firewalling: GINA and Active Directory

Realizzazione Plug-in ADRealizzazione Plug-in AD

Scelte progettuali

• Linguaggio : Borland Delphi 7 (Scelta aziendale).

• Librerie per accedere ad Active Directory : ADSI.

• Piattaforma : Windows 2000/XP (famiglia NT).

Page 17: Enterprise Distributed Software Firewalling: GINA and Active Directory

Realizzazione Plug-in ADRealizzazione Plug-in AD

Interfaccia

• Dominio a cui collegarsi

• Elenco utenti

• Attributi degli utenti

Page 18: Enterprise Distributed Software Firewalling: GINA and Active Directory

Realizzazione Plug-in ADRealizzazione 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.

Page 19: Enterprise Distributed Software Firewalling: GINA and Active Directory

Realizzazione Plug-in ADRealizzazione 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.

Page 20: Enterprise Distributed Software Firewalling: GINA and Active Directory

Realizzazione Plug-in ADRealizzazione 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.

Page 21: Enterprise Distributed Software Firewalling: GINA and Active Directory

Realizzazione Plug-in ADRealizzazione Plug-in ADIl 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.

Page 22: Enterprise Distributed Software Firewalling: GINA and Active Directory

Realizzazione Plug-in ADRealizzazione Plug-in ADIl 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.

Page 23: Enterprise Distributed Software Firewalling: GINA and Active Directory

Plug-in ADPlug-in AD

Filmato

Page 24: Enterprise Distributed Software Firewalling: GINA and Active Directory

Realizzazione Plug-in GINARealizzazione Plug-in GINA

Scelte progettuali

• Linguaggio : C.

• Compilatore : Microsoft Visual C++.

• Piattaforma : Windows 2000/XP (famiglia NT).

Page 25: Enterprise Distributed Software Firewalling: GINA and Active Directory

Realizzazione Plug-in GINARealizzazione 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.

Page 26: Enterprise Distributed Software Firewalling: GINA and Active Directory

GINASTUBGINASTUB

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.

Page 27: Enterprise Distributed Software Firewalling: GINA and Active Directory

GINASTUBGINASTUB

La struttura pMprNotifyInfo

• la variabile pszOldPassword e diversa dal valore nullo solo in caso di una operazione di “cambio password”.

Page 28: Enterprise Distributed Software Firewalling: GINA and Active Directory

GINASTUBGINASTUB

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.

Page 29: Enterprise Distributed Software Firewalling: GINA and Active Directory

GINASTUBGINASTUB

Filmato

Page 30: Enterprise Distributed Software Firewalling: GINA and Active Directory

ConclusioniConclusioni

• 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.

Page 31: Enterprise Distributed Software Firewalling: GINA and Active Directory

BibliografiaBibliografia• 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, "[SE_T-04-0009] TIPRT Progetto di PcP EE 2004 [1.2].doc", Secure Edge s.r.l., 2004.