Segurança em ambientes Windows NT Fernando Antonio M. Cima [email protected] Via Internet...

50
Segurança em ambientes Windows NT Fernando Antonio M. Cima [email protected] Via Internet Informática CC UNICAMP 08-10-1998

Transcript of Segurança em ambientes Windows NT Fernando Antonio M. Cima [email protected] Via Internet...

Page 1: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Segurança em ambientes Windows NT

Fernando Antonio M. Cima

[email protected]

Via Internet Informática

CC UNICAMP 08-10-1998

Page 2: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Segurança em ambientes Windows NT

• Objetivos da segurança no Windows NT

• Usuários, prvilégios e grupos

• Processo de validação (login)

• Auditoria

• Segurança na rede

• Ataques e defesas

• Futuro: Service Pack 4 e Windows NT 5.0

Page 3: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Prólogo

Segurança no Windows NT: isto é possível?

• Sistema operacional recente (5 anos)

• Código-fonte proprietário, pouca (e péssima) documentação

• Má fama dos outros produtos da MS

• Pouca preocupação da MS com segurança

• Desconhecimento

Page 4: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Objetivos

• Preocupação com a segurança durante o projeto

• Controle de acesso aos recursos (user-level)

• Auditabilidade

• Padronização na segurança

• Segurança de rede integrada no SO

Page 5: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Certificação C2

• Avaliação da segurança do sistema segundo pelo National Computer Security Center da NSA, segundo os critérios do TCSEC (“Orange Book”).

• O Windows NT 3.5 Service Pack 3 certificado em Jul/1995 (sem rede).

• Windows NT 4.0 certificado preliminarmente em Set/1998 (com rede).

Page 6: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Critérios para Certificação C2

• Logon seguro

• Controle de acesso discricionário

• Auditoria

• Não-reutilização de objetos

– Diferença entre rating e certificação

Page 7: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Contas e usuários

• O NT controla o acesso aos seus recursos em nível de usuário.

• Base de usuários pode ser local ou pertencer a um domínio (mantida nos Controladores de Domínio)

• Cada usuário tem uma senha única associada, utlizada para a autenticação.

Page 8: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

SIDs

• Cada conta de usuário tem associado um SID (Security Identifier) que a identifica unicamente.

• Estrutura do SID:

S-1-5-21-2313843232-6739283392-1020

– Revision Number

– Identifier Authority

– Autoridade (identificador da máquina local ou domínio) - 48 bits

– Relative Identifier (RID) - 32 bits

Page 9: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

SIDs• Cada grupo (local ou global) também tem seu SID único

de identificação.

• Cada Windows NT pertencente a um domínio tem uma conta no domínio, onde consta o seu SID.– Senha trocada automaticamente a cada semana (configurável).

• Informação guardada no Security Account Database (HKEY_LOCAL_MACHINE\SAM\SAM) com acesso restrito mesmo aos administradores.

Page 10: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Security Account Database

Page 11: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

SIDs

• Na instalação do NT, é criado um SID para o computador. Apenas uma reinstalação altera este SID.

• Os domínios tem SID e são únicos para todos os DCs.

• O SID do computador é utilizado como base para os SID dos usuários

– User SID = Computer SID + RID

• RIDs iniciam em 1000 e vão sendo incrementados.

Page 12: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Privilégios• Permissão para usuários realizarem determinadas ações no

sistema.

• Ações pré-definidas pelo sistema operacional.

• Escopo do privilégio: válido para para a máquina local ou para os controladores de domínio.

• Armazenados na Security Account Database (HKEY_LOCAL_MACHINE\SECURITY), com acesso restrito.

Page 13: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Exemplos de privilégios

— Acessar o computador pela rede

— Logar localmente

— Alterar a hora do sistema

— Carregar e descarregar drivers

— Tomar posse de arquivos

— Desviar verificação transversal

• Cada privilégio tem um identificador (LUID), que é o mesmo em todos os NTs (ao contrário da documentação).

Page 14: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Privilégios na SAM

Page 15: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Processo de logon

• Logon: identificação e autenticação do usuário para uso dos recursos do sistema.

• Basicamente pode ser local (uso da console), pela rede ou por serviço.

• Após o processo de logon o usuário recebe um token, que o identifica e valida o acesso aos recursos.

• O LSA (Local Security Authority) é o responsável pela validação e geração dos tokens.

Page 16: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Logon local

Copyright 1998, Mark Russinovitch.

Page 17: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Logon com conta na rede

Copyright 1998, Mark Russinovitch.

Page 18: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Tokens de Acesso

Componentes:– SID do usuário

– SIDs dos grupos a que o usuário pertence.

– Privilégios atribuídos ao usuário

– SID do Owner

– Grupo primário (apenas no subsistema POSIX)

– ACL default

Page 19: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Segurança dos Objetos

• Todo objeto do sistema (arquivo, chave da registry, impressora, driver, compartilhamento, etc.) tem um associado a ele um descritor de segurança.

Page 20: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Acesso aos objetos

• Todo processo tem um token associado, e todo objeto um descritor de segurança.

• O Security Reference Monitor (SRM) compara a ACL do objeto com a informação do token, e valida ou não o acesso.

O SRM também compara o token com o SACL e registra o acesso ou não na auditoria do sistema.

Page 21: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Auditoria

• Registra as atividades do sistema, incluindo o acesso aos

objetos (requisito C2).

• Vem por default desabilitada.

• Nível de auditoria é configurável por máquina ou por

controladores de domínio.

• Os registros são gravados no Visualizador de Eventos, na

fila de Segurança.

• Envolve um gasto em performance.

Page 22: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

AuditoriaUser Manager

Page 23: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Auditoria

• Objetos auditáveis:

– Arquivos e diretórios (NTFS apenas)

– Registry

– Impressoras

– Remote Access Services

• O sistema pode ser configurado para parar quando o registro de auditoria chegou ao limite (requisito C2).

Page 24: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Segurança de rede

• Como o NT armazena as suas senhas

• Compartilhamento de arquivos - SMB e NetBIOS

• Validação pela rede

• Acesso anônimo

Page 25: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Senhas

• O Windows NT armazena um hash da senha, resultado de uma transformação de mão-única (OWF).

• Por compatibilidade, dois hashes são armazenados:

– LAN Manager

– Windows NT

• Estes dados ficam na Security Account Database, no arquivo %systemroot%\config\SAM.

Page 26: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Hash LAN Manager

• LAN Manager

– Senhas case-insensitive são convertidas para 14 bytes e divididas em duas entidades de 7 bytes (56 bits).

– Cada parte é usada para encriptar um número conhecido de 8 bytes.

– Os resultados são concatenados gerando um hash de 16 bytes.

Page 27: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Hash Windows NT

• Windows NT

– Senhas são convertidas para Unicode (mantendo o case).

– É gerado um hash de 16 bytes utilizando o algoritmo MD4.

Page 28: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

SMB

• Shared Message Block.

• Protocolo utilizado pelo compartilhamento de recursos na Rede Microsoft.

• Utiliza NetBIOS como API de comunicação.

• Independente do protocolo de transporte (funciona sobre TCP/IP, IPX/SPX e NetBEUI).

• Utilizado por todos os SOs da Microsoft e por outras plataformas (Digital Pathworks, SAMBA).

Page 29: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Acesso via SMB

• Determinação do nome da máquina e do serviço (UDP

137)

• Abertura da conexão de dados (TCP 139), informando o

nome do servidor

• Negociação do dialeto SMB utilizado*

• Autenticação

• Abertura de compartilhamentos e acesso aos dados

Page 30: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Envio das senhas no SMB

• Dependendo do dialeto, a senha pode ser enviada sem

criptografia ou codificada por desafio e resposta.

• O cliente utiliza os hashes de 16-bytes, com padding de 5

bytes (total 21 bytes), para criar 3 entidades de 7 bytes.

• Cada uma encripta um desafio de 8 bytes, tendo no final

uma resposta de 24 bytes, que é enviada ao servidor.

• O cliente sempre envia os dois desafios (LAN Manager e

Windows NT).

Page 31: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Conexões anônimas (null sessions)

• Serviços podem rodar no contexto da conta pré-definida

LocalSystem, que não possui senha.

• Ao estabelecer uma sessão SMB, estes enviam nome do

usuário e senha vazios (null).

• Permite a comunicação de rede entre serviços do sistema

do NT.

• Exemplo: atribuição de permissões e privilégios após o

estabelecimento de uma relação de confiança.

Page 32: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Ataques e Vulnerabilidades

• Ataques a senhas (crack)

• Ataques ao SMB

• Negação de serviço

• Elevação de privilégios

• Estouro de buffers

• Cavalos de Tróia

Page 33: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Ataques a senhas (crack)

• Obtenção das hashes das senhas do NT e quebra das senhas,

por dicionário ou força bruta.

• Hashes pode ser obtidos:

– Acesso remoto a registry (requer privilégio de administrador)

– Arquivo SAM de senhas, obtido na máquina local ou no Emergency

Repair Disk

– Hashes capturados no tráfego da rede

• Devido a fragilidade da encriptação LAN Manager, o ataque

de força bruta pode ser feito com bastante sucesso.

Page 34: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

L0phtCrack

Page 35: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Proteção contra o L0phtCrack

• Uso do utilitário syskey.exe, incluído no Service Pack 3, para criptografia dos hashes de senha.

• Controle do acesso aos diretórios %systemroot%\config e %systemroot%\repair, que contém os arquivos da SAM.

• Acesso restrito aos Emergency Repair Disks.

• Proteção física dos servidores.

Page 36: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Ataques via SMB

• Utilização de conexões anônimas para obter informação sobre usuários e grupos.

• Tentativas de logon utilizando as contas descobertas, com senhas óbvias ou por dicionário.– A auditoria do NT NÃO registra o endereço IP de onde provêm as

tentativas inválidas de logon.

• Acesso a compartilhamentos e a registry, em busca de informação e de outras senhas.

Page 37: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Proteção contra ataques via SMB• Filtragem do tráfego SMB para prevenir acessos externos a

rede (portas UDP 137 e 138, TCP 139).

• Lockout das contas no caso de excesso de tentativas inválidas de logon; utilização de senhas complexas (filtros de senhas).

• Limitar os logons de rede dos usuários privilegiados (utilitário passprop.exe do Resource Kit).

• Ativar a auditoria para logons e gerência de grupos e usuários.

Page 38: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Negação de Serviço

• Não causam acesso indevido, mas interrompem o funcionamento da máquina ou de serviços.

• Grande aumento com a utilização maciça na Internet.

• Bastante utilizados entre usuários de IRC, ambientes estudantis e pelos “wannabe hackers”.

• Qualquer componente do sistema acessível pela rede pode estar sujeito a um ataque deste tipo.

Page 39: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Negação de Serviço

• Ataques a pilha TCP/IP:– Land

– Teardrop

– Ping of Death/Boink

• Ataques ao NETBIOS sobre TCP/IP– Win Nuke

• Ataques contra RPC:– Snork

• Outros serviços (Simple TCP/IP services, IIS, WINS, DNS)

Page 40: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Estouro de buffers

• Envio de dados inválidos a um programa, com o intuito de ultrapassar os buffers de entrada e sobrescrever o código em execução com outro código.

Este código é então executado com o mesmo privilégio do código original.

• Extremamente comum em ambientes Unix; raro (por enquanto) em ambientes Windows NT.

Page 41: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Elevação de privilégios

• Permite a um usuário comum obter privilégios a que não tinha direito, normalmente via estouro de buffers em processos com privilégios.

• Exemplos:

– GETADMIN

– GETPRIV

• Podem ser executados diretamente pelo usuário localmente na máquina ou remotamente via web (CGI) ou outras formas.

Page 42: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Proteção contra DoS e estouro de buffers

• Colocar o menor quantidade possível de serviços e programas rodando em modo privilegiado.

• Auditar o código privilegiado; desenvolver o código com preocupação com a segurança.

• Instalar o Service Pack e Hotfixes mais recentes.

Page 43: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Cavalos de Tróia

• Trojan horses - Programas que alegam ou aparentam ser inofensivos mas executam tarefas maliciosas.

• Podem estar disfarçados em utilitários, arquivos attachados em mensagens de correio eletrônico e controles ActiveX, entre outros.

• Extremamente disseminados: BackOrifice e NetBUS.

• Única solução: educação do usuário.

Page 44: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Outras Medidas

• Permissões adequadas em arquivos, diretórios e compartilhamentos.

– Checklists da Microsoft e da NSA

• Política de senhas:

– expiração

– prazo mínimo para a troca

– memória das últimas senhas

– bloqueio da conta após vários logons inválidos

Page 45: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Futuro

• Novas features de segurança:– Security Configuration Editor (Service Pack 4)

• Novos ataques:– Trojans

– Kernel-mode Drivers

Page 46: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Security Configuration Editor

• Ferramenta de análise e configuração de segurança,

disponível no futuro Service Pack 4.

• Definição de templates de segurança, com configuração de

privilégios, permissões e auditoria associada.

• Análise da configuração atual em relação ao template.

• Implementação das recomendações do template na

máquina.

Page 47: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Security Configuration Editor

Page 48: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Novos Ataques

• Novos Trojans– Netbus provavelmente apenas o primeiro de uma série.

– Trojans mais invisíveis e mais letais.

• Kernel-mode Drivers– Ainda relativamente desconhecidos.

– Execução em modo privilegiado, acessíveis em modo de usuário.

– Ataques de negação de serviço e estouro de buffer.

Page 49: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Apêndice

Material utilizado na elaboração desta palestra:

• Windows NT 3.5 Guidelines for Security, Audit and Control. Microsoft Corp., Microsoft Press, 1994.

• Windows NT Security. Mark Russinovich, Windows NT Magazine, Maio e Junho de 1998.

• Windows NT 4.0 Server Resource Kit. Microsoft Corp., Microsoft Press, 1994.

• NT Vulnerabilities and Defenses. Dominique Brezinski, Windows NT Magazine, Agosto 1998.

Page 50: Segurança em ambientes Windows NT Fernando Antonio M. Cima cima@via-net.com.br Via Internet Informática CC UNICAMP 08-10-1998.

Apêndice

Material utilizado na elaboração desta palestra (cont.):

• CIFS - Common Insecurities Fail Scrutiny. *hobbit*, http://avian.org

• On NT Password Security. Jos Visser, http://www.osp.nl.

• Mensagens da lista NT-Security (http://www.iss.net), por Paul Leach, Jeremy Allison e Paul Ashton.

• Security Configuration Editor. Documentação do Service Pack 4 Beta 1.43, Microsoft Corp.