Levando a Batalha para Nuvem — A Arte da Guerra

Numa guerra, os exércitos são compostos de várias partes, infantaria, cavalaria, arqueiros… Da mesma forma, temos várias camadas para proteger o nosso ambiente de infraestrutura de TI. A guerra do "chão" do nosso datacenter também é enfrentada nas "nuvens".

Valorizando a liberdade

Um antigo general chinês dizia que um grande exército não poderia ser mantido permanentemente, e isso por alguns motivos simples: um estado não tem recursos financeiros para manter uma grande quantidade de soldados profissionais e é necessário que as pessoas valorizem a liberdade, ou seja, cidadãos comuns podem ser convocados em tempos de guerra, mas eles também irão lutar com afinco por saber o valor de uma vida livre.

Assim, numa empresa, a equipe de segurança é o exército profissional, mas todos se beneficiam do resultado, mas para que a liberdade seja permanentemente mantida todos poderiam se engajar em um comportamento seguro.

Algumas táticas: Indicadores Públicos como índices de vulnerabilidades (total, por ambiente, por sistema operacional), eventos de ataques, eventos de bloqueio…

Fortificando a entrada do castelo

No mundo antigo, tínhamos um castelo com bem poucas entradas, assim, no datacenter convencional, temos poucas entradas, protegidas por firewalls, sistemas de deteção de intrusão, tráfego de dados protegido por criptografia…

Mas na nuvem é como o mundo moderno, as fronteiras não são protegidas com simples muros, e não há como ter uma única entrada para o seu país/ambiente… assim precisamos proteger múltiplos pontos de entrada e escalar a proteção junto com o fluxo de dados/pessoas.

Difícil escapar das rachaduras na armadura, quanto mais velha a armadura mais rachaduras, assim ocorre com nossos ambientes, quanto mais dias se passam, mais vulnerável ele fica, pela descoberta de novos problemas. Na nuvem isso ainda não muda, principalmente se você esta migrando servidores virtualizados da sua infraestrutura para a nuvem. Quem já esta indo para o mundo dos containers tem outros desafios…

Algumas táticas: firewall (controle granular de conectividade entre aplicações), gerenciamento de patches de segurança, sistema de detecção de intrusão, criptografia de dados, gerenciamento de identidade…

Evitando espiões

Mas se muitas pessoas podem entrar, como saber que ela esta autorizada? Que ela é ela mesma? Posso analisar suas credenciais, verificar padrões (nome/sobrenome, sexo, idade, país de origem…), mas além de padrões, será que é uma tentativa elaborada de ofuscação? Apesar de parecer autêntico, o comportamento não parece ser bem intencionado. Será que dá para deixar ele entrar num lugar que parece ser o nosso território/ambiente mas é uma simulação para ver o que ele vai fazer? Enfim, não seria legal saber que certas coisas podem ocorrer antes mesmo de efetivar?

Não, os malwares não acabaram, e mesmo na nuvem precisamos ainda nos preocupar com eles.

Pior ainda, temos vários tipos e técnicas de ataques… Higienizar nosso ambiente, impedindo a geração de tráfego inválido ou não desejado, pode ter um impacto financeiro na nuvem, porque em caso de geração de muito tráfego de rede, pode significar altos custos…

Algumas táticas: antimalware com funcionalidades modernas de análise de comportamento/machine learning, tecnologia de análise de ameaças avançadas (sandbox), estratégias e tecnologias de proteção contra ataques de negação de serviços

Levando o inimigo para o perímetro

Tudo é feito para evitar que inimigos entrem no nosso território, mas se entrarem (passando pela polícia de fronteira) e detectarmos isso já dentro do nosso território, podemos ativar novas linhas de defesas para empurrar os intrusos de volta para o controle de perímetro. Para higienizar nosso ambiente, termos menos coisas para olhar e diminuir o trabalho dos policiais…

Ou seja, poderíamos pegar informações, da polícia local para barrar os intrusos — algo que alguns chamariam de resposta automatizada a incidentes, detecto que algo que não deveria passar esta passando, e crio uma regra sob demanda, mas para isso tenho que conseguir detectar e classificar ameaças (bandidos comuns) e ameaças avançadas (bandidos que planejaram um ataque específico).

E precisamos que estas tecnologias se "conversem" para que trocando informações de inteligência, possamos levar uma informação de segurança de uma camada inferior para as camadas superiores de perímetro.

Algumas táticas: sistema avançado de proteção para datacenter em multi-camadas (nível de rede e nível de servidor), tecnologia para análise de ameaças avançadas, sistema de relacionamento de eventos de segurança…

Fogo amigo

Nem tudo que nos indisponibiliza é mal intencionado, se formos confundidos com o inimigo em uma guerra podemos sofrer com o fogo amigo, da mesma maneira mudanças indesejadas ou feitas fora do processo habitual podem ter efeito impactante, imagine se alguém subiu um arquivo de configuração novo no configuration manager, ou alguém fez uma mudança fora da janela de mudança (porque esqueceu ou estava ajudando a executar uma atividade que foi esquecida de ser inserida na mudança — já viram este filme em algum lugar?).

Responder rapidamente à pergunta: "Quando e onde foi a última alteração?", pode simplificar muito o troubleshooting e diminuir bastante o tempo de uma indisponibilidade…

Claro que ainda terá uma pergunta importante: "Quem alterou?".

Em ambientes estáticos isso já é difícil, imaginem em um ambiente dinâmico? Automatizar é bom, quando automatizamos a solução, mas também podemos automatizar problemas, e garantir que continuamente teremos visibilidade das alterações, e/ou até mesmo gerarmos indicadores, pode tornar a nossa vida na nuvem muito mais fácil.

Algumas táticas: verificação de integridade de arquivos, análise de logs de eventos de aplicações e sistema operacional

Quem quer ser envenenado?

Soldados com armamento funcionando e com mantimentos, soldados prontos para a guerra. Como saber que tudo esta do jeito que deveria estar? Que a comida esta íntegra (não foi envenenada ou não esta estragada)? Que os armamentos estão funcionando corretamente? Que nada foi desviado, e que não estão tentando interceptar nossas comunicações?

Ambientes de nuvem são (ou podem ser) muito dinâmicos, como sabermos que tudo esta do jeito que estava, ou ainda, que aquilo que existiu somente durante poucas horas, estava íntegro durante seu breve tempo de vida? Como manter registros de ambientes efêmeros? Como simplificar a análise dos eventos sem ser inundados por uma pilha de dados que individualmente não significam muita coisa?

Algumas táticas: verificação de integridade de arquivos, análise de logs de eventos de aplicações e sistema operacional

Saber que vamos entrar em guerra

Se tivermos informações sobre o comportamento do mundo, se tivermos dados o suficiente, poderíamos saber que provavelmente vamos entrar (ou que já estamos) em guerra, podendo ou impedir um grande problema, ou diminuir bastante o impacto, seria bom ter um serviço de inteligência…

Isso não é ciência do futuro, já dispomos de meios de ter uma compreensão melhor do que esta ocorrendo em nossos ambientes, com isso é possível fazer novas perguntas e descobrir causas de problemas onde seria muito difícil de descobrir só com um olhar humano…

Algumas táticas: SIEM (security information and event management), analytics, big data…

Olhando para frente

O mundo da Nuvem possibilita um acesso a evoluções tecnológicas muito mais rapidamente, não leva mais de 10 a 5 anos para ver que o mundo esta mudando/mudou, tudo fica mais rápido, o ciclo de vida das aplicações é mais curto, mas por outro lado bater a 50Km/h é diferente de bater a 300Km/h. Portanto, é necessário usar novas abordagens tecnológicas para gerenciar e evitar grandes problemas neste novo mundo…

Vai ser muito mais difícil manter disponíveis os sistemas em Nuvem se mantivermos o mesmo mindset tecnológico, mesmas ferramentas e o mesmo modelo operacional (cheio de silos e com muitos processos), o mesmo modelo moroso de adoção de novas tecnologias e/ou processos.

Conceitualmente temos os mesmos desafios tecnológicos, mas a forma de materializar as soluções e de como gerenciar a informação esta mudando muito. A tendência é que tudo seja programado (inclusive a Infraestrutura!!!) equilibrando custos e níveis de serviço, e que tenha um espaço maior para um trabalho de engenharia e inteligência de gerenciamento, e diminuir bastante a quantidade de execução de atividades puramente operacionais.