DevOps e segurança: da tela preta ao ppt

      Comentários desativados em DevOps e segurança: da tela preta ao ppt

Anteriormente, os administradores de sistemas freqüentemente eram responsáveis ​​pela segurança de algumas atividades como: aplicação de patches, construção de firewalls, aplicação de práticas de segurança. O trabalho geralmente envolvia muitas tarefas manuais, ferramentas únicas e técnicas esotéricas.

Aqui vem o DevOps

Com o passar do tempo, as operações de segurança e as operações de manutenção evoluíram. O movimento DevOps surgiu como uma tentativa de construir a ponte entre pessoas que escrevem código, pessoas que mantêm a infraestrutura para executá-la e pessoas que tomam as decisões comerciais. Essas mudanças colocaram ênfase no novo conjunto de técnicas e valores. Essas técnicas e valores podem ser benéficas ou problemáticas para a postura de segurança.

Ao longo dos anos, de uma forma ou de outra, fui responsável pela construção, execução e aprimoramento de infra-estruturas de produtos para empresas em que trabalhei ou para seus clientes. De alguma forma, muitas coisas que emergem na paisagem do DevOps parecem bastante familiares se forem vistas do ângulo certo.

Trabalhando para algumas empresas de ramo financeiro ou da saúde, onde as exigências para a segurança do desenvolvimento são ligeiramente superiores ao padrão constantemente ocorre: “ei, temos dados de processamento de pagamentos e potencialmente milhões em multas regulatórias”, tive a oportunidade de repensar muitas idéias por trás de construir processos seguros de forma moderna. De alguma forma, muitos conceitos do DevOps se encaixam perfeitamente na imagem.

Este post é um descritivo sobre modelos mentais que tornam o DevOps benéfico para a segurança, em vez de ser prejudicial. Olhando para o DevOps através de seus valores, o DevOps é tudo sobre o desempenho do negócio através da inovação técnica, ou seja:

  1. Melhorando a entrega de valor ao cliente: entregando de forma contínua, confiável, previsivelmente, através de cenários automatizados.
  2. Melhorando o gerenciamento de mudanças e a criação de valor: usando integração contínua e testando tudo, infraestrutura programática, experiência de usuário testável.
  3. Melhorando a recuperação de falhas: prevenção de incidentes, gerenciamento de incidentes, compreensão das causas, repetição.

No final, o negócio pode cobrar clientes mais rápido e com mais freqüência: apenas porque mais valor é entregue mais rápido, com consistência crescente. Tudo isso é alcançado usando certos processos e ferramentas. Quando usado de forma cega, isso traz muito dano.

Condução cega

A segurança é um “show stopper” (confesso que a primeira vez que ouvi essa expressão achei completamente sem sentido – tipo frase de efeito) invisível para todos os valores acima mencionados se feito de forma errada:

  1. Impacto do mundo real: os vazamentos de dados do cliente e as interrupções de serviço arruínam qualquer valor que você pretende entregar mais rápido. Os processos judiciais e as multas do regulador não afetarão apenas os desenvolvedores, em muitos casos eles irão controlar as empresas afetadas fora do negócio.
  2. Mais causas para impactos prejudiciais: mudanças mais rápidas, feitas ao mesmo tempo que prejudicam a segurança e a confiabilidade, introduzirão mais vazamentos, mais interrupções no serviço e danos indiretos também: seus sistemas serão usados ​​para danificar outros.
  3. Mesmo corrigindo as coisas rapidamente vira uma ameaça: a recuperação de falhas, que coloca “tempo para voltar à produção” primeiro, sem considerações de segurança, é um caminho freqüente para introduzir inconsistências de segurança em um sistema.

Ao mesmo tempo, DevOps consciente da segurança poderia aumentar significativamente a postura de segurança:

  1. Melhorar a confiabilidade de valor: otimize para confiabilidade, repetibilidade e previsibilidade da entrega de valor, e a velocidade seguirá organicamente. Use controles de segurança programáticos e consistentes.
  2. Melhorar a verificação de valor: otimize o gerenciamento de alterações para o estado determinista de qualquer código onde o estado inclui o status de segurança do código verificado automaticamente.
  3. Prepare-se para os maus momentos: agregue métricas para resposta a incidentes e controles de backup para mitigação de ameaças.

Se a sua empresa tem uma política de segurança e desenvolvedores e operadores conscientes da segurança, ou você está ansioso para começar, as ferramentas do DevOps podem trazer muita segurança de processo / infraestrutura a partir do zero do dia, então ajude a evoluir para uma postura de segurança consistente.

Transformando DevOps em práticas para segurança

Mesmo que as ferramentas sejam apenas uma parte do fenômeno do DevOps, é uma parte bastante importante disso. Do ponto de vista das práticas tradicionais de desenvolvimento seguro, muitas abordagens do DevOps não são apenas “compatíveis” – elas são perfeitas. Vamos dar uma olhada.

Teste tudo!

Teste funcional como teste de segurança de aplicativos dinâmicos: Em primeiro lugar, você quer saber que os controles de segurança do seu aplicativo realmente funcionam.

Testar funções de segurança em testes funcionais e executar testes não funcionais específicos contra vulnerabilidades conhecidas permite garantir que os controles de segurança funcionem conforme esperado em cada iteração de integração contínua. Sem comentar que confirma se sua fábrica está seguindo as melhores práticas de desenvolvimento seguro.

Coisas para tentar:

Análise de código-fonte como teste de segurança de aplicativos estáticos: vale a pena investir esforços para garantir que as vulnerabilidades detectáveis ​​sejam detectadas automaticamente.

Reduzindo o risco de vulnerabilidade escaneando fontes com ferramentas de análise de código estático / testes de segurança de aplicativos estáticos para código possivelmente vulnerável durante as iterações de CI.

Coisas para tentar: lista OWASP de algumas ferramentas SAST, uma lista de ferramentas clássicas, muitas modernas emergindo diariamente.

Bloqueio ou paralelo? Obviamente, quando desenvolvendo para segurança, testes de segurança devem estar bloqueando, sem mi-mi-mi.

Coleta de dados de auditoria e operacional

O uso da Metrics DevOps para monitorar e ajustar os ambientes de desenvolvimento e produção são um contexto importante para registros de auditoria relevantes para a segurança. Ser reunidos, de forma segura, podem fazer a detecção de intrusão e a resposta a incidentes estelares.

Configurações automáticas 101

Ao longo dos anos, tive várias ocasiões para ter configurações automáticas na construção de firewalls e no controle de acesso, e enquanto algumas coisas estavam taxando as operações, é a maneira mais simples de ter padrões seguros, firewalls consistentes e alguma confiança em seu sistema de controle de acesso.

Além disso, a segurança positiva para algo parecido com o firewall de aplicativos significa enumerar todos os cenários possíveis de mover em torno de gráficos de final HTTP com parâmetros e coisas relacionadas, fácil para insiders esconder um canal para extrair dados.

Gerando regras de firewall programaticamente, se feito corretamente, é um grande salvador da pátria.

Configurações automáticas orquestradas

Orquestrar várias ferramentas de configuração automática é onde a magia começa: imagine que você conhece o papel e o endereço de cada nó no sistema. Agora, imagine que você pode acessar a lista com base no modelo a seguir e, basicamente, modelou positivamente a configuração do iptables, criando instantaneamente uma parcela significativa de ameaças.

Conheça os seus limites

Investir na automação não deve ser religioso. Prevenir ataques e gerenciar incidentes em andamento ainda é um processo de tomada de decisão de um ser humano sob o estresse, e deve ser pensado com calma. Lembre: o ótimo é inimigo do bom.

Coisas que podem ser automatizadas, devem ser. O resto deve ser orquestrado de forma a que um ser humano, que deveria realmente tomar decisões importantes, não só terão todas as métricas e registros de auditoria relevantes, mas também agirão de forma rápida, eficiente e em vastas infra-estruturas de hoje também.

Ficando sério e pragmático

Depois que suas ferramentas infra-estruturais foram ajustadas, você já está muito à frente de muitos ambientes de desenvolvimento e produção. No entanto, independentemente da quantidade de trabalho que você colocou, não vale a pena se ainda existe uma maneira simples de montar um ataque contra sua infra-estrutura. A segurança é um jogo assimétrico: você precisa se defender contra todas as ameaças, enquanto os atacantes devem encontrar apenas uma fraqueza para ter sucesso.

E assim, políticas e procedimentos de segurança ainda são necessários. Tendo construído partes da infra-estrutura necessária, as próximas etapas serão mais simples: compreender o modelo de risco e os objetivos de segurança, avaliar o estado atual, definir lacunas em processos, técnicas, elaborar um plano de desenvolvimento e, finalmente, voltar para engenharia, mas com um plano de construção abrangente.

Conclusão

Se o profissional DevOps considerar que o DevOps é sobre o aprimoramento do valor do negócio e o valor do negócio inclui continuidade e segurança do negócio – de repente, as ferramentas caem no lugar e ajudam as necessidades operacionais adjacentes.

Se o praticante de DevOps está apenas entusiasmado com ferramentas e linguagem extravagante – é um presságio para o fim dos tempos. E se você adicionar segurança na equação, o fim pode ser mais do que apenas um desenvolvimento e manutenção ineficientes, mas todos os contos típicos do fim do mundo se tornam realidade.