Quando o assunto é Cloud Security, você já se perguntou se os dados da sua empresa estão seguros na nuvem?
Quando pensamos em armazenamento de dados na nuvem, é muito comum nos depararmos com a crença de que armazenando dados na nuvem, não é mais necessário se preocupar com a segurança das aplicações.
É claro que as grandes empresas que trabalham com este tipo de serviço investem pesado em Cloud Security. Mas será que deixar tudo a cargo delas basta para manter os seus dados e aplicações seguras?
Neste artigo, vamos abordar os cuidados que devemos tomar ao utilizar servidores online para armazenar dados de forma a garantir a segurança na nuvem e, consequentemente, das suas aplicações.
Armazenamento em nuvem x fragilidades
É certo que a chegada dos containers na estrutura das empresas é uma grande mudança na forma como estas criam e estruturam seus conjuntos de serviços.
O maior impacto certamente veio para a área de desenvolvimento, que passou a ter um maior controle sobre os serviços, que agora podem ser criados diretamente por seus desenvolvedores para dar suporte às suas aplicações.
No entanto, mesmo com estas vantagens, não podemos deixar de observar que esta facilidade também trouxe algumas questões relacionadas à segurança que devem ser trabalhadas.
É aí que se faz necessário abordar Cloud Security: com a criação de serviços de forma cada vez mais rápida, as ferramentas de segurança utilizadas nem sempre conseguem acompanhar a evolução das novas estruturas.
Onde vemos problemas?
Quando falamos em Cloud Security, adoção de soluções de containers tem facilitado bastante o processo de desenvolvimento.
No entanto, não podemos deixar de notar que também trouxe novos desafios para as equipes de segurança e também de desenvolvimento.
Isso quer dizer que a facilidade na construção de novas soluções baseadas em geração de containers a partir de arquivos de configuração ou mesmo de novas imagens baixadas de fontes, que nem sempre são as mais confiáveis, pode trazer para a estrutura uma gama de novas vulnerabilidades.
Utilizando-se destas vulnerabilidades, atacantes passam a ter ainda mais possibilidades de infiltração em aplicações e até mesmo na própria infraestrutura que dá suporte a estas aplicações.
Porque validar as imagens dos containers
Assim, como já sugerimos em outro artigo nosso, a validação da segurança das imagens, bem como a validação das fontes, é importante para garantir a segurança dos containers.
O conhecimento de sua estrutura e de como ela está funcionando é fundamental para manter a segurança.
Segundo o Gartner, em 2021 50% das empresas terão em suas estruturadas (IaaS) um serviço ou mesmo uma API disponibilizada à Internet de forma incorreta. Isso expõe as aplicações a novos pontos de ataque.
A presença de mais serviços diretamente ligados à Internet de forma insegura já faz parte de nosso dia-a-dia, visto a quantidade de vazamentos de dados ocasionados por falhas em configurações de serviços como por exemplo o S3 da Amazon (AWS).
No entanto isso não é uma exclusividade da AWS, muitos serviços de outros fornecedores também são disponibilizados de forma desprotegida.
A importância de validações em Cloud Security se torna ainda mais evidente quando observamos o resultado de pesquisa feita pela Tripware em parceria com a Dimension Research.
A pesquisa menciona que 60% dos entrevistados declararam que suas empresas tiveram problemas de segurança em container no último ano, o que é um dado bastante alarmante.
No entanto, grande parte dos entrevistados afirmaram não terem certeza sobre quais eram os mecanismos de segurança empregados em seus containers, assim como na segurança da nuvem.
Isso acaba resultando em um alto preço pago por esta falha, muitas vezes com um impacto bastante significativo: tanto financeiro, quanto na imagem da empresa perante o seu público.
Buscando soluções em armazenamento em nuvem
Mas nem tudo está perdido: uma das possíveis soluções para o problema de segurança em nuvem, assim como de container está no processo de deploys destas soluções.
É importante que o processo de deploy seja bem estruturado, além de passar por uma validação rigorosa.
Além disso, a aplicação de uma estrutura de containers imutáveis no armazenamento em nuvem proporciona aos sistema, como um todo, mais segurança e controle.
Imutabilidade do container
O conceito de imutabilidade, onde o container utilizado não sofrerá mudanças no decorrer de seu uso, pode ser uma das ferramentas de segurança dentro da nova caixa de ferramenta do DevSecOps.
Portanto, ao pensar em Cloud Security, a imutabilidade pode tornar mais fácil a implementação de segurança em containers.
Isto porque uma vez definidos os parâmetros de criação do container, este permanecerá com a mesma característica até seu uso não ser mais necessário.
E quando houver a demanda de uma mudança, novas diretrizes podem ser criadas e novas imagens geradas.
Mas e os sevidores mutáveis?
O conceito acima descrito contradiz a ideia dos servidores mutáveis, tradicionais no uso de estruturas internas e ou mesmo de cloud, o que, como vimos acima, poderia comprometer a segurança na nuvem.
O grande problema dos servidores mutáveis seria justamente as diversas mudanças pelas quais ele passa, e isto dificultaria ainda mais a gestão e o controle de segurança em nuvem e também a aplicação.
Cuidado: entendemos que manter um servidor mutável pode ter suas vantagens, mas no quando analisamos o grande cenário, as desvantagens podem ser muito maiores!
O grande problema é que pode-se chegar a um ponto em que há tantas mudanças no servidor, que uma destas mudanças pode acabar influenciando no comportamento de outro componente, introduzindo assim uma ou várias vulnerabilidades, comprometendo a segurança na nuvem.
Micro-Serviços ganham visibilidade em Cloud Security
Quando juntamos os conceitos de containers, imutabilidade e microsserviços podemos dizer que é possível disponibilizar uma aplicação em poucas horas.
Isto permite que uma solução seja construída com base em pequenos blocos de serviços individuais, cada um em seu container.
Isso do ponto de vista de uma estrutura de desenvolvimento é excelente!
Porém, do ponto de vista de segurança na nuvem, traz cada vez mais complexidade, o que pode comprometer a segurança da aplicação.
Agora precisamos imaginar que, quando colocamos mais containers e mais micro-serviços disponíveis na Internet, estamos literalmente multiplicando a superfície de ataque de nossa estrutura.
Para que isso não tenha reflexos indesejados, o processo de validação contínua das aplicações deve ser reforçado e bem estruturado dentro de nossas equipes de desenvolvimento.
Como reforçar a Cloud Security
Vimos acima que quando falamos de desenvolvimento ágil com armazenamento em nuvem e container, juntamos os conceitos de containers, imutabilidade e microsserviços.
Sendo assim, não podemos deixar de colocar listar aqui alguns pontos importantes quando falamos de segurança na nuvem relacionados aos microsserviços.
1. Criptografia como defesa dos dados manipulados
Um dos primeiros pontos que precisamos entender é que temos como obrigação a defesa de todos os dados que estamos manipulando.
Tendo isso em mente, uma primeira recomendação é a adoção de criptografia em dados que estejam em trânsito ou mesmo armazenados.
2. Monitoramento de comportamento dos microsserviços
Se imaginarmos que muitos destes microsserviços manterão o contato e a troca de dados entre eles, é importante que haja um processo de monitoramento para que seja possível a descoberta de alguma anomalia na comunicação.
3. Automação de políticas de segurança
Como comentamos, ao colocarmos em nossa estrutura containers e micro-serviços aumentamos a complexidade de nossa estrutura, desta forma não podemos perder o foco na administração de todos os componentes que gerenciamos.
Pensando nisso, uma boa prática para atuar em segurança de containers é a automação das políticas de segurança que serão aplicadas à todas as camadas de serviços e estrutura disponibilizada. Isso reduz a possibilidade de erros quando da operação.
Uma mudança na perspectiva de Cloud Security
Neste interessante artigo sobre o assunto, Dror Davidoff, co-fundador e CEO da Acqua Security, afirma que temos que ampliar a perspectiva para além do modelo Shift Left – um velho conhecido das equipes de desenvolvimento.
Temos que pensar em proteção de estruturas, por isso ele aborda o conceito de Shift Up.
Pensar em Shift Up é pensar em proteção com foco na camada de aplicação – isso quando pensamos em camadas de rede.
Este pensamento faz sentido quando observamos como as novas estruturas de containers podem trazer mais riscos quando comprometidas, consequentemente afetando a segurança da nuvem.
Isto quer dizer que a preocupação em entender melhor como estas novas estruturas funcionam deveria ser uma prioridade das equipes de desenvolvimento, mesmo antes de buscar implementar isso como solução.
Portanto, ter um olhar mais cuidadoso nos aspectos abordados neste artigo é importante porque só assim podemos melhorar a Cloud Security como um todo.
Porque ferramentas não bastam para manter a segurança na nuvem
Dentro do que observado, grande parte das empresas ainda continua usando como abordagem de segurança o uso de ferramentas.
No entanto, as ferramentas isoladas não são uma solução, e sem o devido cuidado e validação dos resultados podem até mesmo comprometer a segurança das aplicações.
Este acaba sendo um dos problemas mais comuns que empresas sem um alto grau maior de maturidade enfrenta, quando que estas mesmas ferramentas não estão devidamente preparadas para estas validações.
Nestes casos, para garantir a segurança em Cloud Security a melhor ação é criar mecanismos de validação executados por profissionais experientes e que possam buscar por fragilidades que uma ferramenta não conseguiria.
A criatividade humana em ataques a nuvem
Quando falamos em um tema tão complexo como Cloud Security, é importante ressaltar que do outro lado não está uma ferramenta fazendo um ataque, mas sim um forte oponente com conhecimento e imaginação, capaz de criar novos modos de burlar mecanismos de segurança.
Ou seja, somente um humano pode compreender e simular a complexidade das ações de outro ser humano, o que ainda não é possível ser perfeitamente simulado por ferramenta nenhuma sozinha.