INFN Sec. Group

Sicurezza nei sistemi NT

v 1.0 - 21/07/98 - L.Dell'Agnello

Le seguenti note sono riferite essenzialmente a NT4.


Indice

Il problema delle Password
Attacchi via rete
Problemi vari
Raccomandazioni Pratiche
Concusioni
 

Il problema delle password

La gestione delle password in NT e` simile allo Unix con le seguenti differenze:

  • Il file di password e` contenuto nel SAM (Security Accounts Manager) del registry e quindi non e` normalmente accessibile agli utenti (o almeno non dovrebbe esserlo!!!), a differenza di Unix (dove le password criptate, a meno di non utilizzare il meccanismo delle shadow password, sono contenute in  /etc/passwd che e` leggibile).
  • Verificare che SAM non sia leggibile da parte degli utenti !
     

  • SAM contiene le hash password, come in Unix, ma nell'algoritmo di generazione non viene utilizzato, a differenza di Unix, il "salt" (2 caratteri random).

  •  

    Quindi 2 utenti con la stessa password hanno anche la stessa entry nel SAM; inoltre un attacco con il dizionario e` molto piu` efficace.

  • Le password sono "case-sensitive" ed hanno una lunghezza massima di 14 caratteri (contro gli 8 di Unix), portando quindi il tempo necessario per un attacco per "forza bruta" da 2258 a 6 * 1014 anni.

  •  

    Cio` viene pero` vanificato  dagli utenti se vengono scelte password "facili", corte etc...

    E` consigliabile quindi che il gestore utilizzi regolarmente, analogamente allo Unix, programmi che simulano un attacco con il dizionario.
    Sono disponibili sia la versione NT del programma Crack , che NTCrack .
     
  • Nel SAM sono memorizzati sia l'hash value LanManager (algoritmo DES), sia quello Windows/NT (algoritmo MD4), ovvero 2 stringhe di 16 byte ulterioremente criptate con DES. Poiche` pero` la chiave e` nota, e` possibile, tramite il programma pwdump, decriptare queste stringhe per poi sottometterle eventualmente ad un attacco con il dizionario.

  •  

    Si noti  che, se da una parte e` vero che per poter usare pwdump e` necessario avere accesso in lettura al database utenti SAM (o avere privilegio di Administrator), un potenziale pericolo puo` pero` venire dal Web (ad es. il pwdump potrebbe essere inserito in ActiveX)o dai mail MIME.

       
    Per vanificare l'attacco tramite pwdump e` possibile installare la Service Pack 3.
    Inoltre e` assolutamente consigliabile bloccare l'esecuzione automatica di procedure ActiveX da account privilegiati; in generale e` consigliabile compiere da Administrator solo task di sistema!
     
  • Altro problema deriva dalla facilita` con il quale puo` essere effettuato lo "sniffing" delle password su ethernet non strutturate. Inoltre le piu` vecchie versioni di SMB (al pari dell'attuale tcp/ip...) non criptano le password inviate su rete; NT supporta questa caratteristica per compatibilita`.
  • E` anche possibile usare la hash password direttamente senza conoscere la password originale (cioe` in "chiaro"), tramite una versione opportunamente modificata di un client NT (ad es. modificando Samba).
  • Verificare che SAM non sia leggibile da parte degli utenti!

 

Attacchi via rete

Sono disponibili su Internet alcuni programmi che, sfruttando le debolezze strutturali dell'attuale implementazione di tcp/ip su NT, permettono di portare vari tipi di attacchi. Citiamo i piu` diffusi con la relativa "cura" (piu` o meno efficace!).

  • winnuke Manda in crash tutte le macchine basate su Windows (ma e` efficace anche per  alcune versioni Unix) tramite un Out of Band Message che distrugge lo stack IP. Sorgente (c, perl, perl5, tcl/tk) ampiamente disponibile su Internet :-))  Un reboot risolve il problema contingente.

  • Soluzioni:
    • Service pack 3 (per NT). Non risolve pero` tutti i problemi: l'attacco risulta ancora efficace se effettuato da MAC/OS.
    • Filtro sul router Filtrando le porte UDP 137-138 e la porta TCP 139 sul router si elminano potenziali pericoli esterni, ma non gli attacchi interni ! Inoltre per permettere l'accesso da altri siti "trusted" sara` necessario fare delle Access List.
  • land  Provoca un Denial of Service inviando un pacchetto SYN proveniente dallo stesso indirizzo e dalla stessa porta del destinatario (e quindi contraffatto!).

  • Per maggiori dettagli, si veda CERT Advisory CA-97.28.
    Soluzione:
     
  • latierra Questo programma, evoluzione di land, manda in crash Windows 95 e causa un altissimo consumo di CPU (anche fino al 100%) a NT4 (anche con SP3) . L'attacco portato e` uguale a quello di  land, ma  su un intervallo di porte specificato dall'utente (funziona ad es. anche con la porta 139). Ogni qualvolta NT chiude una porta, il programma ne interroga un'altra, ritornando alla precedente quando questa si sblocca.

  • Soluzione:
    • ?
  • teardrop  Provoca un Denial of Service  agendo sull'incapacita` da parte di NT (ma agisce anche su Linux con versione di kernel precedente alla 2.0.32!) di gestire correttamente il riassemblaggio di  datagrammi frammentati e sovrapposti , mandando in loop il processo.

  • Per maggiori dettagli, si veda CERT Advisory CA-97.28.
    Soluzione: Red Button Bug Colpisce Windows NT 3.5x e 4.0. Sfruttando le risorse messe a disposizione dal gruppo Everyone (anche se l'account Guest e' disabilitato, come consigliato), permette l'accesso via rete, senza username e password, alle risorse disponibili a Everyone.
    Per maggiori dettagli si veda: RedButton FAQ
    Soluzione :
    • Il gruppo Everyone deve essere sostituito con un nuovo gruppo contenente tutti gli utenti ed i gruppi legali.

    • I permessi devono essere cambiati per tutti i "registry" ed i "file system".
      Se possibile attivare il filtro sul router.
  • SP 3
vulnerabilita` del WINS server su NT 4.0 (non risolto con SP3) mandando un flusso di pacchetti UDP casuali (per dimensione e contenuto) alla porta 137 di un WINS server, questo servizio si ferma dopo 5 secondi.

 

Problemi vari

  • Pentium bug Blocca i PC con processore Pentium, Pentium MMX (non agisce pero` sui Pentium Pro e Pentium II), indipendemente dal sistema operativo.

  • Soluzione:
    • Risolto sulle ultime versioni di Linux (dalla 2.1.63)
  • Accesso da DOS ad Un file system NTFS (ntfs130.zip)
 

Raccomandazioni pratiche

Service Pack 3

Per ovviare a vari problemi di sicurezza la Microsoft ha rilasciato alcune HotFix, successivamente incluse nella Service Pack 3.
Attenzione: sono stati segnalati problemi di incompatibilita` con l'ultima distribuzione di NT4!

Essa, tra l'altro, include:

  • Criptazione (opzionale) del SAM con una chiave a 128 bit, univoca per ogni host, rendendo inutile quindi pwdump (a meno di non conoscere la chiave!).
  • Ovviamente risolto un problema, se ne crea un altro: il sistema deve conoscere la chiave per permettere l'accesso agli utenti, ma non e`ovvia la scelta della sua locazione (sul sistema stesso, su un floppy o inserita manualmente al boot?).
     

  • firma SMB. E` un aggiornamento del protocollo di autenticazione SMB (aka CIFS). Le novita`:
    • autenticazione reciproca fra client e server
    • autenticazione del messaggio
    Questa opzione e` disabilitata di default sui server ed abilitata sui client (per compatibilita`). Per maggiori dettagli, si veda la nota Q163272 della Microsoft.
Filtro sul router

Per bloccare accessi indesiderati dall'esterno della propria LAN a server NT, e` possibile filtrare, tramite un firewall o direttamente sul router le porte UDP 137, 138 e TCP 139.
Ad es. su un router Cisco, e` possibile definire una access list:

access-list 101 deny udp any any range 137-138
access-list 101 deny tcp any any eq 139
access-list 101 permit ip any any

Per permettere l'accesso ad altri domini "trusted" situati su altra LAN (ad es. il CNAF), la precedente access-list dovra` essere preceduta da una istruzione del tipo:

access-list 101 permit ip 131.154.3.0 255.255.255.0 any

Questa access list deve essere applicata all'interfaccia seriale:

ip access-group 101 in
 

Un'altra precauzione da usare e` disabilitare il servizio SERVER su tutte le workstation che non offrono risorse alle altre.
 

Protezione del Registry
 

  • Server NT condiviso

  • Per  accessi remoti al registry:
    1. Crea un nuovo gruppo utenti (ad es. Every User).
    2. Includi tutti i tuoi utenti in questo gruppo.
    3. Con User Manager sostituisci il gruppo Everyone con Every User in tutti i privilegi.
    4. Con RegAdmin sostituisci Everyone con Every User propagando i permessi su tutta la struttura sottostante per le seguenti chiavi:
    5. HKEY_LOCAL_MACHINE (HARDWARE,SAM,SECURITY,SOFTWARE,SYSTEM)
      HKEY_USERS  (.DEFAULT, SID dell'utente attuale)

      Nota: fra parentesi sono indicate le rispettive sottochiavi

  • workstation NT o server NT stand-alone

  • Se il server NT e` usato solo per la condivisione di file, e` possibile non condividere il registry dando (tramite RegAdmin) l'accesso None al gruppo NETWORK, propagando i cambiamenti su tutte le chiavi.
    Si noti pero` che:
    1. l'Administrator dovra` fare login su console per amministrare l'utenza.
    2. Per rendere stabili i cambiamenti e` necessario creare la chiave :
    \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg
Protezione dei File system
 
  • Nuova installazione
    1. da Windows NT File Manager assegna i seguenti permessi a C:\ drive (propagandoli su tutta la struttura):
    2. Full Control Administrators
      Full Control SYSTEM

    3. Con FileAdmin dai i seguenti permessi ai gruppi degli utenti:
    4. List Only C:\ (propaga)
      Add C:\TEMP Read %SYSTEMROOT% (Propaga)
      No Access %SYSTEMROOT%\Config
      No Access %SYSTEMROOT%\Repair
      Change %SYSTEMROOT%\system32\Spool\Printers
      Add %SYSTEMROOT%\system32\Spool\Profiles

    5. Da FileAdmin crea il gruppo CREATOR OWNER con i seguenti permessi:
    6. Full Control C:\TEMP
      Full Control C:\Users (Propaga)

  • Installazione preesistente
    1. Crea un nuovo gruppo utenti (ad es. Every User);
    2. Includi tutti gli utenti in questo gruppo;
    3. Usa Windows NT User Manager per sostituire Everyone con Every User ;
    4. Con FileAdmin sostituisci Everyone con Every User su tutti i drive, propagando i permessi su tutta la struttura!
 

Concusioni

    In general I advise the following:
    • Protect administrative access to your Windows/NT computer as best as you can. Create only a small (manageable) amount of administrators and teach them the ways of security.
    • Do not make a Windows/NT server accessible from the Internet for common file and print server access. This decreases the vulnerability for attacks with modified clients and other SMB-related programs.
    • Only logon as an administrator in order to perform specific administrative tasks. Do not logon as an administrator for tasks such as mail reading or web browsing.
    • Enable the security features of your browsers and mail readers. Do not run UPO's (such as ActiveX controls). Java applets seem secure enough, but ActiveX is a gaping security leak, waiting to be exploited!
    • Have your users choose good passwords. Run Crack yourself to verify this (there might be ethical or legal aspects involved in doing so, check this with your local legal department)! o In a secure environment, apply Microsofts HotFix.