Pessoas examinam um terminal

O que é um desvio de configuração?

Definição de desvio de configuração

O desvio de configuração ocorre quando uma rede, aplicação, dispositivo ou outro sistema de TI se afasta gradual e involuntariamente das configurações de referência pretendidas. Problemas de desempenho causados por desvios de configuração e o downtime subsequente podem custar às empresas milhares de dólares por minuto.

Em certa medida, o desvio de configuração é inevitável ao longo do ciclo de vida de um sistema. Pode ser causado por alterações manuais em uma rede que afetam a maneira como seus componentes interagem uns com os outros ou por ferramentas automatizadas que ajustam as configurações de maneiras não pretendidas pelos administradores. Sem a documentação adequada, alterações incompatíveis ou prejudiciais podem ser feitas à medida que os administradores antigos saem e os novos entram.

Um exemplo didático de desvio de configuração é o caso de um administrador aplicando uma correção a um servidor em um ambiente com balanceamento de carga, mas não aos outros. Mesmo que o sistema continue operando normalmente por enquanto, podem ocorrer problemas mais adiante. O servidor corrigido pode usar uma nova biblioteca incompatível com atualizações futuras da rede que assumem as condições originais, podendo levar a interrupções e ineficiências.

O desvio de configuração não representa apenas uma ameaça ao desempenho. Sistemas que se afastam das configurações pretendidas podem se tornar mais vulneráveis a agentes maliciosos e violações de dados. Por exemplo, se as regras de firewall não forem atualizadas à medida que novos recursos são adicionados a uma rede, os hackers poderão entrar sorrateiramente.

O desvio de configuração também pode afetar o status de conformidade. Uma organização pode falhar em uma auditoria se a documentação da rede descrever um conjunto de configurações de segurança, mas o ambiente de produção for diferente.

Os profissionais de DevOps e os administradores de sistemas têm ferramentas à sua disposição para evitar configurações incorretas e combater o desvio de configuração. Ferramentas de infraestrutura como código (IaC), como o Terraform, conectam a configuração de rede a um arquivo de configuração que serve como fonte da verdade. Os arquivos de configuração ajudam a garantir que novos recursos de rede sejam provisionados automaticamente no estado adequado, reduzindo o número de oportunidades de desvio

As ferramentas de observabilidade oferecem aos administradores visibilidade sobre métricas, registros e rastreamentos, ajudando-os a identificar desvios de configuração assim que ocorrem e a aplicar correções. A infraestrutura imutável limita o desvio ao descartar os servidores desatualizados em vez de aplicar correções. O desvio de configuração também é tratado por ferramentas de gerenciamento de configuração, como o Ansible.

Causas do desvio de configuração

O desvio de configuração é mais comumente causado por alterações manuais nas configurações do sistema, automação que dá errado, problemas no nível organizacional que criam inconsistências ou alguma combinação desses fatores.

Correções manuais

Correções manuais pontuais são a principal causa do desvio de configuração.

Uma "correção urgente", ou seja, uma solução aplicada fora do cronograma normal de atualizações, pode corrigir problemas imediatos e urgentes, como um servidor configurado com um valor de tempo limite incorreto e que, portanto, trava constantemente. Mas esse tipo de alteração de configuração pode causar problemas no sistema posteriormente:

  • Uma atualização posterior do sistema que não leve em consideração essas correções pode sobrescrevê-las, trazendo de volta o bug original.

  • A correção pode incluir uma dependência que não é contabilizada e é incompatível com atualizações futuras da rede.

  • Uma credencial de administrador temporária criada para a correção pode permanecer válida, tornando-se uma vulnerabilidade de segurança adicional.

O número de maneiras pelas quais erros humanos – ou simplesmente consequências imprevistas – podem tirar o sistema do estado em que "deveria" estar é quase ilimitado. Mesmo pequenas alterações podem se acumular de tal forma que o ambiente de produção em tempo real tem pouca semelhança com o repositório, repleto de bugs e riscos de segurança.

Automação desonesta

Sem testes e supervisão adequados, atualizações e processos automatizados podem fazer com que recursos importantes da rede se desviem de suas configurações originais.

A automação é tão boa quanto sua fonte de verdade. Por exemplo, se uma ferramenta de IaC depender de arquivos de configuração desatualizados para executar novos servidores, ela poderá acabar prejudicando o ambiente.As atualizações automáticas de software para aplicações e sistemas operacionais, como Microsoft Windows podem ser aplicadas em momentos diferentes em servidores distintos, causando divergências potencialmente prejudiciais. Além disso, essas atualizações podem não funcionar bem com a arquitetura de rede específica de uma organização, causando ainda mais problemas.

Até mesmo ferramentas destinadas a gerenciar configurações podem causar desvios em determinadas circunstâncias. Por exemplo, problemas de conectividade podem fazer com que o Ansible aplique uma atualização de configuração de forma desigual, deixando um servidor inalterado. Esse servidor irá gradualmente se distanciar de seu ambiente, podendo causar interrupções no serviço.

Questões organizacionais

No nível organizacional, problemas com o pipeline de integração contínua/entrega contínua (CI/CD) e práticas de DevOps podem levar a problemas de configuração.

Quando as equipes de desenvolvimento, operações e segurança estão isoladas umas das outras, a confusão, a falta de comunicação e a resolução inadequada de problemas são inevitáveis. Além das práticas técnicas divergentes, as equipes dentro de uma organização podem ter suas próprias práticas de gestão de mudanças. Algumas organizações não possuem nenhum processo formal de gestão de mudanças.

A falta de práticas claras e estabelecidas para realizar e documentar alterações pode levar a registros de alterações inconsistentes, alterações não autorizadas e fluxos de trabalho com aprovação não aplicada. Em última análise, administradores, desenvolvedores e engenheiros podem contornar completamente o processo de gestão de mudanças.

Riscos de desvios de configuração

O desvio de configuração representa riscos significativos à segurança, ao desempenho e ao status de conformidade de um sistema.

Cibersegurança

O desvio de configuração pode aumentar consideravelmente a superfície de ataque de uma organização ao criar exceções nas políticas de segurança que permanecem desconhecidas para os administradores e, portanto, não corrigidas.

Por exemplo, uma credencial criada para aplicar uma correção de emergência pode permanecer ativa, vulnerável a hackers que podem usá-la para fins maliciosos. Da mesma forma, um engenheiro pode criar uma exceção a uma regra de firewall que ele nunca mais revoga, enfraquecendo significativamente a postura de segurança geral da rede. Os desenvolvedores podem ativar uma aplicação com controles de segurança incompletos para testes e nunca desativá-la, criando outra vulnerabilidade de segurança para agentes maliciosos explorarem.

Da mesma forma, cada nova aplicação, endpoint ou outro recurso adicionado a um sistema pode causar desvios de configuração se os controles de segurança adequados não forem aplicados. Por exemplo, adicionar um novo servidor sem configurar o sistema de detecção e resposta de endpoint (EDR) adequadamente pode criar um link fraco. Um simples erro na configuração de microsserviço pode levar a que um grande número de ativos desprotegidos entrem na rede.

Desempenho

Juntamente com a cibersegurança, o desempenho da rede é o risco mais significativo, e caro, representado pelo desvio de configuração.

Veja o exemplo de um servidor que tem uma experiência de tráfego mais pesado do que seus equivalentes. Este servidor pode ter o tamanho do seu pool de conexões aumentado por meio de uma correção urgente para melhorar o desempenho. Como esse servidor está atrás de um balanceador de carga, o balanceador define automaticamente uma política para direcionar mais tráfego para distribuir a carga do servidor de maneira mais uniforme.

Quando o servidor é substituído durante uma nova implementação, a correção urgente que aumentou seu pool não está mais em vigor, e o servidor trava devido ao tráfego adicional. A correção original aplicada ao tráfego de velocidade é o desvio. Quando não são levadas em consideração, alterações adicionais na rede podem levar a downtime dispendiosos até que a causa seja identificada.

Conformidade

O desvio de configuração pode fazer com que uma organização deixe de cumprir as normas, mesmo sem estar ciente disso. Quando o estado de uma rede diverge do que uma organização "pensa" que está fazendo (ou do que sua documentação afirma que está fazendo), a organização corre o risco de não conformidade. Mesmo que a não conformidade não seja intencional, a organização ainda pode enfrentar multas e taxas.

Tomemos o exemplo da Lei de portabilidade e responsabilidade de planos de saúde (HIPAA). A HIPAA exige que as organizações usem determinados métodos de criptografia para proteger dados confidenciais em trânsito e em repouso.

Digamos que um administrador precise integrar um sistema legado à sua rede em conformidade com a HIPAA, e esse sistema legado usa um método de criptografia desatualizado. Caso esse método de criptografia não seja abordado, a integração deixará a organização em desacordo com a HIPAA.

AI Academy

Preparando-se para a IA com a nuvem híbrida

Liderada pelos principais líderes da IBM, o currículo dessa experiência foi desenvolvido para ajudar líderes empresariais a terem o conhecimento necessário para priorizar os investimentos em IA capazes de estimular o crescimento.

Como fazer correções e evitar desvios de configuração

A detecção de desvio (a prática de rastrear alterações na rede e identificar divergências em relação ao estado pretendido) requer uma combinação de ferramentas, incluindo infraestrutura como código, GitOps, infraestrutura imutável e observabilidade.

Infraestrutura como código (IaC)

A infraestrutura como código, a prática de provisionar e gerenciar a infraestrutura de TI usando scripts em vez de processos manuais, é uma das ferramentas mais poderosas para o gerenciamento de desvios de configuração.

A IaC ajuda a lidar com o desvio de configuração, transformando o estado desejado da rede em um código com controle de versão com o qual cada componente da rede pode ser comparado.

Por exemplo, no Terraform, quando uma alteração é feita, a ferramenta de IaC compara o arquivo de estado (a visão mais atualizada da plataforma da rede) com os arquivos de configuração declarados, ou seja, os arquivos que dizem o que a rede "deveria" ser. O Terraform então resolve as discrepâncias entre o arquivo de estado e a configuração declarada, atualizando a infraestrutura para corresponder ao arquivo de configuração, reduzindo as chances de desvios.

Quando as organizações impõem um controle de acesso rigoroso às ferramentas de IaC, isso pode reduzir ainda mais as oportunidades de desvios. Ao limitar o acesso da IaC apenas a indivíduos autorizados que precisam dela, as organizações limitam a capacidade de alterar as configurações de infraestrutura em geral. E quando as alterações são feitas, elas passam pelo processo de controle de versão da IaC, mitigando ainda mais o risco de desvio.

GitOps

O GitOps é uma prática de DevOps que usa o repositório de código aberto Git como a fonte única da verdade para arquivos de configuração. O GitOps ajuda muitas organizações a implementar a IaC com máxima eficiência e segurança.

As práticas do GitOps se concentram no uso de automação para validar o estado da rede em relação ao estado desejado armazenado no Git em tempo real. As plataformas GitOps podem verificar continuamente as redes, detectar configurações incorretas e sinalizá-las ou aplicar correções, tornando qualquer desvio que ocorra temporário. E como todas as alterações estão vinculadas ao Git, todas são rastreadas com um autor, registro de data e hora e descrição.

Infraestrutura imutável

A infraestrutura imutável mitiga o desvio de configuração ao diminuir drasticamente o número geral de oportunidades para alterar a configuração da rede.

A infraestrutura imutável é a prática de substituir, e não modificar, servidores e outros recursos de TI quando são necessárias alterações.

Por exemplo, digamos que um servidor precise de uma atualização de segurança. Em vez de aplicar a atualização ao servidor existente, os administradores desativariam o servidor e o substituiriam por um novo e atualizado.

A infraestrutura imutável utiliza ferramentas de IaC para implementar automaticamente novos sistemas, conforme descrito no código, quando são necessárias alterações. Cada novo componente adicionado à rede corresponde automaticamente ao estado desejado.

As três práticas de IaC, GitOps e infraestrutura imutável estão intimamente interligadas. As ferramentas de IaC definem as imagens para os componentes de rede, enquanto o GitOps facilita a implementação, cria um registro abrangente da rede e evita discrepâncias.

Observabilidade

Os três pilares da observabilidade (registros, métricas e rastreios) também têm um papel a desempenhar na prevenção de desvio de configuração.

Uma plataforma de observabilidade, por exemplo, pode detectar que as métricas em um servidor (como tempos de resposta ou uso de CPU) estão divergindo significativamente dos servidores que deveriam ter configurações idênticas. Essa divergência é um possível sintoma de desvio. Da mesma forma, discrepâncias nos registros de taxa de erro para cada servidor podem indicar desvio se um servidor tiver um número anormalmente alto de erros de um determinado tipo. Os rastreamentos da cadeia de chamadas de uma aplicação também podem revelar locais com desvios e variações inesperadas.

Detecção de desvio

A detecção de desvio é a prática de comparar o estado real de uma rede com o estado desejado para detectar discrepâncias. Embora, hipoteticamente, se possa realizar esse processo manualmente, muitos provedores de nuvem e IaC oferecem ferramentas com funcionalidade de detecção de desvios, o que ajuda a automatizar e simplificar um projeto que, de outra forma, seria demorado.

Por exemplo, o AWS Config registra as configurações dos módulos AWS, sinaliza qualquer coisa que se desvie do estado desejado e ajuda a corrigir os desvios. As avaliações de integridade do Terraform verificam se as configurações reais da infraestrutura correspondem às configurações registradas no arquivo de estado do espaço de trabalho e validam continuamente se os recursos atendem às verificações necessárias definidas nas configurações do sistema.

O Terraform Enterprise compara as condições com o arquivo de estado ou atualiza o arquivo de estado para refletir as condições reais, revelando as alterações. Ferramentas de gerenciamento de configuração, como o Ansible e o Puppet, também podem ser usadas para detecção de desvios.

Autores

Derek Robertson

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Soluções relacionadas
IBM Instana Observability

Aproveite o poder da IA e da automação para resolver problemas de forma proativa em todo o stack de aplicações.

Explore o IBM Instana Observability
Soluções de AIOps

Descubra como a IA para operações de TI fornece os insights de que você precisa para ajudar a impulsionar o desempenho excepcional dos negócios.

Explore as soluções de AIOps
Serviços de consultoria em tecnologia

Promova uma transformação digital escalável com a experiência do setor da IBM Consulting.

Explore os serviços de consultoria de tecnologia
Dê o próximo passo

Descubra como a IA para operações de TI oferece os insights necessários para ajudar a impulsionar um desempenho excepcional nos negócios.

  1. Conheça o Instana Observability
  2. Explore o IBM AIOps