snmp baseado em slides gentilmente cedidos pelo prof. joão henrique kleinschmidt da ufabc

104
SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC.

Upload: sofia-mateos

Post on 07-Apr-2016

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

SNMPBaseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC.

Page 2: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

2

Gerência Internet: Introdução À exemplo do que ocorre com a abordagem

da ISO, a arquitetura SNMP define também um modelo de comunicação e um modelo de informação.

Essa arquitetura tem incorporado várias inovações ao longo de sua existência, de forma que existem atualmente três versões: SNMPv1 SNMPv2 SNMPv3

Page 3: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

3 SNMPv1

Page 4: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

4

SNMPv1: Especificações Principais especificações relativas à

primeira versão do protocolo SNMP (SNMPv1):

RFC Título1155 Structure and identification of management

information for TCP/IP-based internets1157 Simple Network Management Protocol (SNMP)1212 Concise MIB definitions1213 Management Information Base for Network

Management of TCP/IP-based internets: MIB-II (Updated by RFC 2011, RFC 2012, RFC 2013)

Page 5: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

5

Mensagens SNMPv1 Do gerente para o

agente: get getnext set

Do agente para o gerente: getresponse trap

Page 6: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

6

Formato da mensagem e das PDUs SNMPv1

Page 7: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

7

SNMPv1: Comunidades Um nome de comunidade representa um

relacionamento entre um agente e um (ou vários) gerentes, definindo características de autenticação e controle de acesso.

O nome de comunidade não é encriptado, o que restringe muitas vezes a gerência à simples monitoração.

Page 8: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

8

SNMPv1: Operações de Leitura As operações de leitura dos valores de um ou mais

objetos gerenciados são iniciadas pelos gerentes com o envio de PDUs GetRequest ou GetNextRequest.

Essas PDUs são endereçadas à porta UDP 161 do agente SNMPv1 remoto.

Page 9: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

9

SNMPv1: Respostas da Leitura As PDUs GetRequest e GetNextRequest são

replicadas atomicamente com o envio de PDUs GetResponse.

Page 10: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

10

SNMPv1: Operações de Escrita As operações de escrita dos valores de um ou

mais objetos gerenciados são iniciadas pelos gerentes com o envio de PDUs SetRequest.

Essas PDUs também são endereçadas à porta UDP 161 do agente SNMPv1 remoto.

Page 11: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

11

SNMPv1: Respostas da Escrita As PDUs SetRequest também é replicada

atomicamente com o envio de uma PDU GetResponse.

Page 12: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

12

SNMPv1: Mensagem Trap A PDU Trap é uma notificação assíncrona

utilizada pelo agente SNMP para informar um ou mais gerentes sobre algum evento significativo.

Essa PDU é endereçada à porta UDP 162 do(s) gerente(s).

Page 13: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

13

SNMPv1: Regras de Codificação PDUs e objetos gerenciados são codificados para

transmissão usando-se BER (Basic Encoding Rules).

Em BER, cada elemento é estruturado como uma lista TLV (Type, Length, Value).

Page 14: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

14

SNMPv1: Deficiências Deficiências observadas no SNMPv1:

Inabilidade em coletar um grande volume de dados Não é possível obter visões consistentes de tabelas de

objetos gerenciados. Escalabilidade limitada

Modelo é fortemente centralizado em torno de uma única estação de gerência.

Ausência de mecanismos eficazes de segurança Nome de comunidade não sofre encriptação, inibindo

a realização de operações mais sensíveis.

Page 15: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

15 SNMPv2

Page 16: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

16

Gerência Internet: SNMPv2 Um conjunto de RFCs referenciadas como

SNMP-seguro foram emitidas com o status de Proposed Standard em julho de 1992.

O SNMP-seguro endereçava exclusivamente aspectos de segurança ausentes no SNMPv1.

Outra abordagem denominada SMP (Simple Management Protocol) foi emitida também em julho de 1992 sob a forma de oito documentos (não RFCs) submetidos à IETF.

Page 17: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

17

Gerência Internet: SNMPv2 Além de endereçar aspectos de desempenho e

funcionalidade, o SMP incorporava também as melhorias de segurança propostas pelo SNMP-seguro.

Após a publicação do SNMP-seguro e do SMP, surgiu um consenso na comunidade Internet de que era hora de se criar uma segunda versão para o SNMP.

Dois grupos de trabalho foram formados: um deles endereçava aspectos de segurança, enquanto o outro endereçava os demais aspectos. O esforço combinado foi publicado como Internet Standards em Março de 1993.

Page 18: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

18

Gerência Internet: SNMPv2 Após anos de experiência como SNMPv2, um Grupo

de Trabalho da IETF revisou as especificações. O resultado dessa revisão foi um novo conjunto de

RFCs, emitidas em 1996. Os sofisticados mecanismos de segurança do

SNMPv2 foram substituídos por outro baseado em nomes de comunidade, como é utilizado no SNMPv1.

Por essa razão, o SNMPv2 atualmente vigente também é conhecido como SNMPv2c (Community-based).

Page 19: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

19

SNMPv2: Especificações

RFC Título1901 Introduction to Community-Based SNMPv22578 Structure of Management Information Version 2

(SMIv2)2579 Textual Conventions for SMIv22580 Conformance Statements for SMIv23416 Protocol Operations for SNMPv23417 Transport Mappings for SNMPv23418 Management Information Base for SNMPv23584 Coexistence Between Version 1, Version 2, and

Version 3 of the Internet-standard Network Management Framework

Page 20: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

20

SNMPv2: SMIv2 A SMI definida para o SNMPv2 é um

superconjunto daquela definida para o SNMPv1. Ela estabelece mecanismos mais elaborados para

a definição de objetos gerenciados e MIBs. As melhorias providas concentraram-se nas

seguintes áreas: Definição de objetos Tabelas conceituais Definição de notificações Módulos de informação

Page 21: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

21

SMIv2

Page 22: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

22

Mensagens SNMPv2 e 3 Do gerente para o agente:

get getnext Set getbulk inform report

Do agente para o gerente: getresponse trap getbulkresponse inform report

Page 23: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

23

Formato da mensagem e das PDUs SNMPv2

Page 24: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

24

SNMPv2: Respostas de Leitura As PDUs GetRequest e GetNextRequest são

replicadas com o envio de PDUs Response – neste caso, porém, respostas parciais são permitidas.

Page 25: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

25

SNMPv2: GetBulkRequest As PDUs GetBulkRequest foi criada

especificamente para a tarefa de coleta volumosa de dados.

Essa PDU tem dois campos não encontrados em quaisquer outras PDUs: non-repeaters e max-repetitions.

Page 26: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

26

SNMPv2: GetBulkRequest non-repeaters: Qtde. de variáveis presentes em variablebindings para as quais uma única instância é retornada.

max-repetitions: Qtde. de instâncias a serem retornadas para as variáveis restantes de variablebindings.

Page 27: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

27

SNMPv2: GetBulkRequest Exemplo de utilização da PDU GetBulkRequest:

Page 28: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

28

SNMPv2: SetRequest PDUs SetRequest são replicadas com PDUs

Response. O processamento que ocorre na troca dessas

PDUs difere um pouco daquele que ocorre no SNMPv1.

Page 29: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

29

SNMPv2: InformRequest PDUs InformRequest são trocadas entre

gerentes SNMPv2, sendo replicadas por PDUs Response.

Elas introduzem descentralização à arquitetura SNMP.

Page 30: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

30

SNMPv2: InformRequest Exemplo de utilização da PDU InformRequest:

Page 31: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

31

SNMPv2: Trap As PDU TRAP SNMPv2 difere em formato daquela

definida para o SNMPv1. Porém, assim como acontece no SNMPv1, nenhuma réplica é emitida.

Page 32: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

32

SNMPv2: Avaliação Vantagens introduzidas pelo SNMPv2:

SMI mais elaborada, com maior número de tipos e facilidades de manipulação de tabelas.

Facilidade de coleta volumosa de dados, mediante criação de uma PDU especializada em tal tarefa.

Modelo mais descentralizado, também viabilizado através de uma PDU especialmente criada para tal.

Deficiência ainda observada: Ausência de mecanismos eficazes de segurança

na troca de PDUs entre gerentes e agentes.

Page 33: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

33 SNMPv3

Page 34: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

34

SNMPv3 Vários grupos independentes começaram a trabalhar

em melhorias de segurança para o SNMPv2. Duas abordagens sobressaíram-se: SNMPv2u e

SNMPv2*. Elas serviram como insumo para o Grupo de Trabalho SNMPv3 da IETF, em Março de 1997.

Em Janeiro de 1998, esse grupo produziu uma série de documentos com o status de Proposed Standard.

Em Dezembro de 2002, estes documentos foram atualizados e receberam o status de Internet Standard.

O SNMPv3 incorpora as funcionalidades definidas nas versões anteriores e adiciona mecanismos de segurança à arquitetura.

Page 35: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

35

Evolução da Arquitetura SNMP

Page 36: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

36

Especificações SNMPv3RFC Título Data3410 Introduction and Applicability Statements for

Internet-Standard Management FrameworkDez. 2002

3411 An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks(Updated by RFC 5343, RFC 5590)

Dez. 2002

3412 Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)(Updated by RFC 5590)

Dez. 2002

3413 Simple Network Management Protocol (SNMP) Applications

Dez. 2002

3414 User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)(Updated by RFC 5590)

Dez. 2002

3415 View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)

Dez. 2002

Page 37: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

37

Arquitetura SNMP atual

Page 38: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

38

+------------------------------+ | Network | +------------------------------+ ^ ^ ^ | | | v v v +-------------------------------------------------------------------+ | +--------------------------------------------------+ | | | Transport Subsystem | | | | +-----+ +-----+ +-----+ +-----+ +-------+ | | | | | UDP | | TCP | | SSH | | TLS | . . . | other | | | | | +-----+ +-----+ +-----+ +-----+ +-------+ | | | +--------------------------------------------------+ | | ^ | | | | | Dispatcher v | | +-------------------+ +---------------------+ +----------------+ | | | Transport | | Message Processing | | Security | | | | Dispatch | | Subsystem | | Subsystem | | | | | | +------------+ | | +------------+ | | | | | | +->| v1MP |<--->| | USM | | | | | | | | +------------+ | | +------------+ | | | | | | | +------------+ | | +------------+ | | | | | | +->| v2cMP |<--->| | Transport | | | | | Message | | | +------------+ | | | Security | | | | | Dispatch <--------->| +------------+ | | | Model | | | | | | | +->| v3MP |<--->| +------------+ | | | | | | | +------------+ | | +------------+ | | | | PDU Dispatch | | | +------------+ | | | Other | | | | +-------------------+ | +->| otherMP |<--->| | Model(s) | | | | ^ | +------------+ | | +------------+ | | | | +---------------------+ +----------------+ | | v | | +-------+-------------------------+---------------+ | | ^ ^ ^ | | | | | | | v v v | | +-------------+ +---------+ +--------------+ +-------------+ | | | COMMAND | | ACCESS | | NOTIFICATION | | PROXY | | | | RESPONDER |<->| CONTROL |<->| ORIGINATOR | | FORWARDER | | | | Application | | | | Applications | | Application | | | +-------------+ +---------+ +--------------+ +-------------+ | | ^ ^ | | | | | | v v | | +----------------------------------------------+ | | | MIB instrumentation | SNMP entity | +-------------------------------------------------------------------+

Page 39: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

39

Gerente SNMPv3

Page 40: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

40

Gerente SNMPv3 O Dispatcher pode ser compreendido como um simples gerente

de tráfego.

Page 41: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

41

Gerente SNMPv3 O Subsistema de Processamento de Mensagens prepara

mensagens para transmissão e processa mensagens recebidas.

Page 42: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

42

Gerente SNMPv3 O Subsistema de Segurança realiza funções de autenticação e

privacidade.

Page 43: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

43

Agente SNMPv3

Page 44: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

44

Agente SNMPv3 O Subsistema de Controle de Acesso provê serviços de

autorização para controlar o acesso às MIBs para leitura e escrita de valores de objetos gerenciados.

Page 45: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

45

Fluxo de Mensagens Fluxo originado por um Gerador de Comandos ou um Gerador de

Notificações.

Page 46: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

46

Fluxo de Mensagens Fluxo originado por um Respondedor de Comandos.

Page 47: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

47

Formato da Mensagem SNMPv3

Page 48: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

48

Formato da Mensagem SNMPv3 msgVersion: setado para snmpv3 (3).

Page 49: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

49

Formato da Mensagem SNMPv3 msgID: identificador único usado por duas entidades SNMP para

coordenação de mensagens de solicitação e resposta. Vai de 0 até 231-1.

Page 50: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

50

Formato da Mensagem SNMPv3 msgMaxSize: tamanho máximo da mensagem enviada ou recebida

por uma entidade SNMP. Vai de 484 até 231-1 octetos.

Page 51: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

51

Formato da Mensagem SNMPv3 msgFlags: um octeto contendo três flags nos seus três dígitos

menos significativos: reportableFlag, provFlag e authFlag.

Page 52: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

52

Formato da Mensagem SNMPv3 Comentários sobre o msgFlags:

Se reportFlag for setado em 1, uma PDU Report deve ser enviada (caso das PDUs Get/SetRequest e Inform). O contrário ocorre quando ela é setada em 0 (caso para PDUs Response, Trap e Report).

Para os bits privFlag e authFlag, o comportamento é o seguinte:

Page 53: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

53

Formato da Mensagem SNMPv3 msgSecurityModel: indica qual modelo de segurança foi utilizado

para o preparo da mensagem. Vai de 0 até 231-1. Valores reservados são 1 (SNMPv1), 2 (SNMPv2) e 3 (SNMPv3).

Page 54: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

54

Formato da Mensagem SNMPv3 msgGlobalData: contém parâmetros necessários pelo Subsistema

de Processamento de Mensagens para coordenação das mensagens.

Page 55: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

55

Formato da Mensagem SNMPv3 msgSecurityParameters: contém parâmetros relacionados ao

Subsistema de Segurança, não sendo portanto interpretados pelo Subsistema de Processamento de Mensagens ou o Dispatcher.

Page 56: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

56

Formato da Mensagem SNMPv3 contextEngineID: identifica inequivocamente uma entidade

SNMP.

Page 57: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

57

Formato da Mensagem SNMPv3 contextName: identifica inequivocamente um contexto particular

dentro do escopo de um contextEngineID associado.

Page 58: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

58

Formato da Mensagem SNMPv3 scopePDU: informação necessária pelas aplicações de

processamento das PDUs. Contém uma PDU num contexto que é inequivocamente identificado pelos campos contextNAME e contextEngineID.

Page 59: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

59

Conceitos de Segurança Confidencialidade (Sigilo): apenas o remetente e o

destinatário pretendido devem “entender” o conteúdo da mensagem remetente cifra (codifica) msg destinatário decifra (decodifica) msg

Autenticação: remetente e destinatário querem confirmar a identidade um do outro

Integridade e não-repudiação de Mensagem: remetente e destinatário querem garantir que a mensagem não seja alterada (em trânsito ou após) sem que isto seja detectado

Disponibilidade e Controle de Acesso: os serviços devem estar acessíveis e disponíveis para os usuários

Page 60: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

60

Melhorias de Segurança USM – User-based Security Model VACM – View Access Control Model

Page 61: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

61

USM – User-based Security Model O USM (User-based Security Model) do SNMPv3

oferece proteção contra os seguintes ataques: Modificação da informação Mascaramento Modificação do fluxo de mensagens Observação do conteúdo de mensagens

Porém, o USM não protege contra os seguintes ataques: Negação de serviço Análise de tráfego

Page 62: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

62

Núcleo com Autoridade Conceito de Núcleo com Autoridade

(authoritative engine): Se uma mensagem contiver uma PDU que requer

uma resposta (Get, GetNext, GetBulk, Set ou Inform), então seu receptor será o núcleo com autoridade.

Se uma mensagem contiver uma PDU que não requer uma resposta (Trap, Response ou Report), então seu emissor será o núcleo com autoridade.

Conclusão: Considerando um modelo simples gerente-agente, é

o agente quem possui o núcleo autorizado.

Page 63: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

63

Núcleo com Autoridade Qual a importância desta definição?

A pontualidade da mensagem é determinada em relação ao relógio mantido pelo núcleo com autoridade As mensagens enviadas contêm o valor de

relógio deste núcleo e o receptor (sem autoridade) pode sincronizar com este relógio

Processo de localização de chave, permite que uma entidade principal possua chaves armazenadas em múltiplos núcleos (engines)

Page 64: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

64

ObjetosObjetos snmpEngineBoots e snmpEngineTime: São mantidos por núcleos autorizados, sendo

inicialmente setados em 0. snmpEngineTime é incrementado a cada

segundo, até chegar a 231− 1. Nesse valor, snmpEngineBoots é incrementado e snmpEngineTime é setado em 0 e recomeça a ser incrementado.

se o sistema for reinicializado, snmpEngineBoots será incrementado e snmpEngineTime será setado em 0 e recomeçará a ser incrementado.

Page 65: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

65

Objetos Interpretação dada para esses objetos:

snmpEngineBoots representa a quantidade de vezes em que o núcleo autorizado foi (re)inicializado desde a sua configuração original.

snmpEngineTime representa a quantidade de segundos decorridos desde a última (re)inicialização do núcleo autorizado.

Propósito desses objetos: permitir a sincronização entre núcleos SNMP.

Page 66: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

66

Formato da Mensagem SNMPv3 msgAuthoritativeEngineID: identificador do núcleo com

autoridade envolvido na troca dessa mensagem.

Page 67: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

67

Formato da Mensagem SNMPv3 msgAuthoritativeEngineBoots: valor do snmpEngineBoots no

núcleo com autoridade envolvido na troca dessa mensagem.

Page 68: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

68

Formato da Mensagem SNMPv3 msgAuthoritativeEngineTime: valor do snmpEngineTime no

núcleo com autoridade envolvido na troca dessa mensagem.

Page 69: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

69

Formato da Mensagem SNMPv3 msgUserName: o usuário (principal) em cujo interesse a mensagem

está sendo trocada.

Page 70: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

70

Formato da Mensagem SNMPv3 msgAuthenticationParameters: Null se a autenticação não

estiver sendo utilizada nessa troca. Caso contrário, esse é um parâmetro de autenticação (para o USM, um código de autenticação de mensagem HMAC – Hash-based Message Authentication Code).

Page 71: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

71

Formato da Mensagem SNMPv3 msgPrivacyParameters: Null se a privacidade não estiver sendo

utilizada nessa troca. Caso contrário, esse é um parâmetro de privacidade (para o USM, um valor usado para formar o IV (Initial Vector) do modo CBC (Cipher Block Chaining ) do algoritmo DES (Data Encryption Standard). A RFC3826 apresenta o uso do AES (Advanced Encryption Standard)

Page 72: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

72

Sincronização

Page 73: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

73

Sincronização

Page 74: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

74

Estabelecimento de janelas de tempo

As mensagens devem ser recebidas dentro de uma janela de tempo razoável para evitar atrasos e ataques de reprodução (replay)

Fatores determinantes para o projeto: precisão dos relógios envolvidos atrasos fim-a-fim frequência de sincronização

Implicação dos erros cometidos no projeto: janelas muito pequenas rejeitarão mensagens

autênticas. janelas muito grandes aumentarão a vulnerabilidade

aos ataques por réplica ou atraso.

Page 75: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

75

Estabelecimento de janelas de tempo

Page 76: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

76

Estabelecimento de janelas de tempo

Page 77: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

77

Sincronização e Janelas de TempoObservação: Os mecanismos de sincronização e janelas de

tempo só podem ser aplicados se:1. Autenticação for empregada.2. A mensagem for considerada autêntica via HMAC.

Essa restrição é essencial porque o escopo da autenticação inclui os campos msgAuthoritativeEngineID, msgAuthoritativeEngineBoots e msgAuthoritativeEngineTime.

Page 78: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

78

Descoberta O USM requer o uso de um processo de descoberta

para obter informação suficiente sobre núcleos com autoridade antes de qualquer comunicação.

Através da descoberta, um núcleo SNMP sem autoridade aprende o valor do ID do núcleo com autoridade e entra em sincronismo com esse núcleo.

O processo de descoberta é composto por dois passos, sendo o primeiro deles obrigatório. O segundo é dado apenas quando a autenticação for necessária. A ser descritos a seguir.

Page 79: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

79

Descoberta Passo 1: núcleo sem autoridade aprende a ID do núcleo

com autoridade.

Page 80: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

80

Descoberta Passo 2: núcleo sem autoridade estabelece sincronismo

com núcleo com autoridade.

Page 81: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

81

USM: Funções Criptográficas No USM, são utilizadas duas funções

criptográficas: autenticação e privacidade. Para suportá-las, cada núcleo SNMP mantém um

par de chaves authKey e privKey para cada um dos núcleos com os quais se comunica.

Os valores de authKey e privKey servem de subsídio para a geração e verificação dos campos msgAuthenticationParameters e msgPrivacyParameters.

Porém, eles não são acessíveis através do SNMPv3.

Page 82: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

82

Geração de Parâmetros de Autenticação e Privacidade

Page 83: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

83

MIB usmUser

Page 84: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

84

Criação da Mensagem junto ao USM

Page 85: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

85

Recepção da Mensagem junto ao USM

Page 86: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

86

Gerência de Chaves Os pares authKey e privKey usados na

comunicação entre um núcleo SNMP e vários outros núcleos são, na verdade, derivados de um único par de chaves.

As chaves authKey e privKey são chamadas de chaves locais.

A gerência de chaves lida com a criação do par de chaves originais e com a geração e atualização das chaves locais.

Page 87: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

87

Gerência de Chaves: geração do par de chaves original

As chaves de autenticação e privacidade originais (string de bits) são geradas a partir de senhas.

O processo de geração dessas chaves não utiliza nenhum repositório externo especializado no armazenamento de chaves.

Além disso, ele aumenta a lentidão na execução de ataques do estilo força bruta.

É composto por dois passos.

Page 88: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

88

Gerência de Chaves: geração do par de chaves original

Page 89: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

89

Gerência de Chaves: geração de chaves locais

Consiste no processo, composto por dois passos, para a geração de subchaves (chaves locais).

Objetiva evitar as seguintes medidas: Um usuário tenha que relembrar pares de

chaves cuja quantidade aumenta com a adição de novos sistemas gerenciados.

Um adversário aprenda uma chave para um agente e esteja apto a personificar qualquer outro agente para qualquer usuário, ou vice-versa.

Page 90: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

90

Geração de chaves originais e chaves locais

Page 91: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

91

VACM – View-based Access Control Model

Determina se o acesso a objetos gerenciados numa MIB local por entidades remotas deve ser permitida.

Utiliza uma MIB que define a política de controle de acesso para este agente, tornando possível configurações remotas.

Define cinco elementos: Grupos, Nível de Segurança, Contextos, Visões de MIB e Política de Acesso.

Page 92: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

92

Grupos Grupo: é definido como um conjunto de

tuplas <securityName,securityModel>, ao qual associa-se um groupName. securityName e securityModel são

equivalentes aos campos msgUserName e msgSecurityModel da mensagem SNMPv3.

Page 93: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

93

Nível de Segurança Nível de Segurança: obtido a partir do

campo msgFlags da mensagem SNMPv3. Apenas relembrando... noAuthNoPriv authNoPriv authPriv

Page 94: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

94

Contextos Contexto: trata-se de um subconjunto de

objetos gerenciados numa MIB local. Uma determinada entidade SNMP é

identificada por um contextEngineID. Esta entidade pode manter vários

contextos diferentes. Cada um destes contextos é identificado

por um contextName diferente.

Page 95: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

95

Visões de MIB Visão de MIB: é definida em termos de uma

coleção, ou família, de subárvores de MIBs. Uma tabela que faz uso de subárvores para

definir subconjuntos de objetos gerenciados possui os seguintes parâmetros: Subtree: OID que identifica a subárvore. Mask: permite refinar a identificação da

subárvore no nível de objetos gerenciados individuais.

Type: informa se a subárvore está incluída ou excluída da Visão.

Page 96: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

96

Política de Acesso Política de Acesso: baseia-se nos seguintes

parâmetros: A entidade solicitando o acesso (principal). O nível de segurança empregado na solicitação. O modelo de segurança utilizado para

processamento da mensagem de solicitação. O contexto da MIB para a solicitação. O objeto gerenciado solicitado. O tipo de acesso solicitado (leitura, escrita ou

notificação).

Page 97: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

97

MIB VACM (View-based Access Control Model)

Page 98: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

98

Lógica do VACM

Page 99: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

99

Parâmetros da MIB VACM Parâmetros da MIB VACM para configuração inicial “Semi-

Security”.

Page 100: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

100 SNMP: Limitações do Modelo

Page 101: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

101

SNMP: Limitações do Modelo Escalabilidade e eficiência

Aumento do overhead da rede Aumento de atrasos (latência) Capacidade de processamento do gerente Limite de segmento do gerente

Page 102: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

102

SNMP: Limitações do Modelo Escalabilidade e eficiência

Transferência ineficiente de grande quantidade de dados Limitação do get-next Get-bulk overshoot effect Tamanho máximo de mensagem SNMP –

datagrama UDP Ausência de mecanismos de compressão Baixa eficiência do BER Protocolo de transporte não confiável (UDP)

Page 103: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

103

SNMP: Limitações do Modelo Segurança

Mecanismo de comunidades limitado (v1/v2) Não pode ser considerado como autenticação Texto da comunidade trafega em claro

Configurações complexas no SNMPv3 Mecanismo de Chaves Compartilhadas

inseguro (v3) Dificuldade de atravessar Firewalls

Page 104: SNMP Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC

104

SNMP: Limitações do Modelo Gerenciamento Integrado e

Configurações de redes Modelo de informações limitado Não orientado a objetos Não hierárquico Difícil programação de Interfaces de

Gerenciamento mais aprimoradas devidos às limitações