Estudo de Caso Envelhecimento de Software - Switch cisco catalyst

535 visualizações

Publicada em

Apresentação realizada no Dep. de Ciência da Computação, na Universidade Federal de Uberlândia.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
535
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
8
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Estudo de Caso Envelhecimento de Software - Switch cisco catalyst

  1. 1. Estudo de caso: Cisco Catalyst Switch Apresentadores: Carlos Eduardo Dantas; e Guilherme Otávio de Sena 1
  2. 2. Roteiro • Introdução • Definições gerais; • Cisco; • Switch; • Catalyst; • Telnet; • Memory Leak. • Bug no Catalyst Switch; • Descrição; • Monitoramento; • Produtos afetados; • Soluções alternativas; • Correções. • O Fenômeno do Envelhecimento; • Estudando o caso. • Conclusão; • Referências. 2
  3. 3. INTRODUÇÃO 3
  4. 4. Introdução • Em 2000, a Cisco Systems relatou uma falha de Software afetando vários produtos de switch de rede, incluindo o Catalyst 2900,4000,5000 e 6000 [1]. • A falta estava relacionada com: • Serviço telnet oferecido por estes produtos; • Interface de gerenciamento Web permitindo que o administrador da rede tenha acesso às opções através de um console virtual remoto. • Os efeitos de ativação da falta era um vazamento de memória nos processos telnetd que implementavam estes serviços; • Com a memória física esgotada o Switch não executou quaisquer outros processos. 4
  5. 5. DEFINIÇÕES GERAIS 5
  6. 6. CISCO SYSTEMS • Cisco Systems, Inc. é uma empresa multinacional americana sediada em San Jose, Califórnia, que projeta, fabrica e vende equipamentos de rede [3]; • Oferece soluções para redes e comunicações, como Switches e Roteadores [3]. Figura 1 – Sede da Cisco em San Jose, USA [10] 6
  7. 7. SWITCH • Equipamento que interliga os computadores em uma rede, direcionando os dados enviados de um computador especificamente para outro [6]; • Possui maior eficiência do que HUBs [6]. Figura 2 – Imagem de um Switch Cisco [11] 7
  8. 8. CATALYST • Nome da marca para uma variedade de Switches de rede vendidos pela Cisco Systems [7]; • Projetado para atender clientes de pequenas e médias empresas, e até grandes redes corporativas e provedores de serviços [8]. Figura 3 – Imagem de um Switch Cisco Catalyst 6000 series [12]. 8
  9. 9. TELNET • Protocolo de rede utilizado na Internet ou redes locais [9].; • Proporciona uma ligação de um cliente a um intérprete de comando do lado servidor [9]; • O Telnet é provavelmente o protocolo de acesso remoto mais antigo. A primeira demonstração foi feita em 1969, muito antes de ser inventado o padrão Ethernet e antes mesmo da primeira versão do TCP/IP [9]. • Porta 23 Figura 4 – Execução do telnet em equipamentos Cisco [13]. 9
  10. 10. Memory Leak • Memory leak, ou vazamento de memória, é um fenômeno que ocorre em sistemas computacionais quando uma porção de memória, alocada para uma determinada operação, não é liberada quando não é mais necessária; • A ocorrência de vazamentos de memória é quase sempre relacionada a erros de programação e pode levar a falhas no sistema se a memória for completamente consumida; • O programa de computador incorretamente gerencia alocações de memória de tal forma que a memória que não é mais necessária não é liberada. 10
  11. 11. BUG NO CATALYST SWITCH 11
  12. 12. DESCRIÇÃO • Cisco Systems em [1] relatou uma falha de software afetando vários produtos de switch de rede, incluindo o Catalyst 2900, 4000, 5000 e 6000; • A falta estava relacionada com o serviço de gerenciamento fornecido por esses produtos (Telnet e interface web); • Vazamento de memória nos processos que implementaram esses serviços. • A acumulação de tais erros gradualmente degradou todo o estado do sistema em termos de disponibilidade de memória física. • Prejudicando serviço de encaminhamento de tráfego e gerenciamento. 12
  13. 13. DESCRIÇÃO • A incorreta liberação de memória acontecia sob duas circunstâncias: • Uma conexão telnet fechada devido à falha de autenticação; ou • Um login bem sucedido com duração extremamente curta. • A falta estava relacionada com o serviço telnet fornecido por esses produtos, bem como a sua interface de gerenciamento web permitindo que o administrador da rede tenha acesso às opções através de um console virtual remoto. 13
  14. 14. Figura 5 – Interface web Catalyst Switch 3550 Series [14]. 14
  15. 15. MONITORAMENTO • O comando “show process memory” vai indica aumento da variável “Holding” de memória depois de tentativas fracassadas de autenticação telnet. • O valor não irá diminuir ao longo do tempo, exceto quando um reboot, reload ou um ciclo de energia ocorre. 15
  16. 16. MONITORAMENTO • Allocated - a quantidade total de bytes que foram afetados pelo processo desde o router inicializado [15]; • Freed - a quantidade total de bytes que foram lançados por este processo [15]; • Holding - quantidade total de bytes atualmente ocupado por este processo. Esta é a coluna mais importante para a solução de problemas, porque mostra a quantidade real de memória atribuída a este processo [15]. • Holding não é necessariamente igual a Allocated subtraída de Freed Figura 6 – Comando “show process memory” [1]. 16
  17. 17. MONITORAMENTO • A versão 4.5 do Catalyst não inclui o comando "show process memory“; • Usar o comando "show mbuf total" para monitorar a memória do switch; • O que pode indicar o vazamento: • os valores de "free mbufs" ou "clusters" quando nunca aumentam; • o valor de "lowest free mbufs" tem um valor aproximado a zero ou zero; Figura 7 – Execução do comando “show mbuf total” [1]. 17
  18. 18. PRODUTOS AFETADOS • Séries Catalyst 4000 e 5000 executando as versões 4.5(2) até 5.5(4) e 5.5(4a). • Série Catalyst 6000 executando a versão 5.3(1)CSX, incluindo a versão 5.5(4) e 5.5(4a). • As versões 6.1 e 6.1b destas séries não foram afetadas nos testes, mas também foram geradas correções de código para estas versões, por medidas de precaução. 18
  19. 19. SOLUÇÕES ALTERNATIVAS • Usar outros dispositivos para controlar estritamente ou proibir o acesso de telnet para o switch, permitindo apenas as conexões de sua rede local; • Listas de controle de acesso no switch pode limitar a exploração remota da vulnerabilidade; • set ip permit enable telnet • set ip permit <addr> [mask] • O gerenciamento remoto do switch também pode ser desativado; • As soluções acima são fornecidas como uma opção; no entanto, a recomendação é atualizar o código corrigido, logo que possível. 19
  20. 20. CORREÇÕES • Catalyst Release 4.5(10) para Catalyst 4000 e 5000; • Catalyst Release 5.5(4b) para Catalyst 4000, 5000 e 6000; • Catalyst Release 6.1(1)b e 6.1(2) para Catalyst 6000. 20
  21. 21. O FENÔMENO DO ENVELHECIMENTO 21
  22. 22. ESTUDANDO O CASO • Considerando uma falha gerada no ambiente de desenvolvimento, ou seja, algum desenvolvedor falhou na prestação de seu serviço, resultando em uma falta interna dormente (AR Fault), presente no código-fonte do programa; • Ativada na presença de padrões específicos de ativação, denominados fatores de envelhecimento (Aging Factors): • Conexão telnet fechada devido à falha de autenticação; ou • Login bem sucedido que teve uma duração extremamente curta, via interface web. 22
  23. 23. ESTUDANDO O CASO • A AR Fault resulta na não liberação de memória alocada dinamicamente para o processo dentro do Switch; • A AR Fault ocasiona um erro (AR Error) - o vazamento de memória, cujos efeitos acumulados com o tempo de execução causam a degradação do sistema/aplicação - nesse caso, o serviço fornecido pelo Switch; • Esses efeitos acumulados em sucessivas ocorrências são denominados efeitos de envelhecimento (Aging Effects); • Provoca o deslocamento gradual do estado interno do sistema de correto para um estado de falha provável. Esses estados podem ser divididos em: • Saudável; • Falha provável; • Falha. 23
  24. 24. ESTUDANDO O CASO • Os efeitos de envelhecimento são classificados quanto à sua persistência: • Voláteis • Não Voláteis. • Em [1]: • “A series of failed telnet authentication attempts to the switch can cause the Catalyst Switch to fail to pass traffic or accept management connections until the system is rebooted or a power cycle is performed.” 24
  25. 25. ESTUDANDO O CASO • Depois de um certo tempo de execução interrupto do sistema, somado ao acúmulo de AR Error, acontecerá uma falha no sistema (AR Failure), impedindo o Switch de realizar quaisquer outros processos; • Encaminhamento de tráfego; • Conexões de gerenciamento. • Uma AR Failure acontece sempre na presença de condições ambientais. • Quantidade de memória disponível. • No caso em questão a memória varia de equipamento para equipamento. 25
  26. 26. ESTUDANDO O CASO Figura 8 – Diagrama representando o estudo do caso 26
  27. 27. CONCLUSÃO 27
  28. 28. CONCLUSÃO • As faltas, erros e falhas são relacionadas com o envelhecimento, pois os efeitos de envelhecimento não são reversíveis sem intervenção externa, no melhor caso, os efeitos param de se acumular como consequência da não ativação de AR Faults - na ausência de Aging Factors). • O problema relatado é relevância importância para indústria, devido grande utilização de redes de computadores e equipamentos Cisco – especialmente Catalyst Switches. 28
  29. 29. REFERÊNCIAS• GROTTKE, M., MATIAS JR., R, TRIVEDI, K.S.. The Fundamentals of Software Aging. 2008. 6 pág. Software Reliability Engineering Workshops. • [1] "http://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20001206- catalyst-memleak". Acesso em 30 de Março de 2015. • [2] "http://www.securityfocus.com/advisories/2948". Acesso em 30 de Março de 2015. • [3] "Cisco, Form 10-K, Annual Report, Filing Date Sep 12, 2012". secdatabase.com. Retrieved March 25, 2013". Acesso em 30 de Março de 2015. • [4] "http://www.ciscopress.com/articles/article.asp?p=25172&rl=1". Acesso em 30 de Março de 2015. • [5] "http://newsroom.cisco.com/press-release-content?type=webcontent&articleId=456320". Acesso em 30 de Março de 2015. • [6] "http://en.wikipedia.org/wiki/Network_switch#cite_ref-1". Acesso em 30 de Março de 2015. • [7] "http://en.wikipedia.org/wiki/Cisco_Catalyst#cite_note-1". Acesso em 30 de Março de 2015. • [8] "https://www.informit.com/library/content.aspx?b=CCNP_Studies_Switching&seqNum=7". Acesso em 30 de Março de 2015. • [9] "http://tools.ietf.org/html/rfc15". Acesso em 30 de Março de 2015. • [10] "http://news.theregistrysf.com/wp-content/uploads/2012/07/Cisco-Tower.jpg". Acesso em 30 de Março de 2015. • [11] "http://www.oficinadosbits.com.br/products/Informacao/Images/9157.jpg". Acesso em 30 de Março de 2015. • [12] "http://www.cisco.com/c/en/us/products/switches/nexus-6000-series- switches/index/_jcr_content/series_data_hero/data-hero-image/data-hero-image-trigger/parsys- for-c26v4/frameworkimage.img.jpg/n6k_large_photo.jpg". Acesso em 30 de Março de 2015. • [13] "https://araihan.files.wordpress.com/2010/07/11.jpg". Acesso em 30 de Março de 2015. • [14] "http://www.petri.com/images/csc_basics_of_cisco_switch_administration_b_04.jpg". Acesso em 30 de Março de 2015. • [15] "http://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/ios-software-releases-121- mainline/6507-mallocfail.html". Acesso em 30 de Março de 2015. • [16] "http://www.cisco.com/c/en/us/support/docs/switches/catalyst-4000-series- switches/18935-121.html". Acesso em 30 de Março de 2015. 29

×