Seidor
Chica mirando unos datos

06 de setembro de 2023

Desenvolvimento de aplicativos em ambientes Cloud: aspectos-chave em relação à segurança

De acordo com o Relatório “The State of Cloud-Native Security 2023” publicado no mês passado de março, 78% dos responsáveis por DevOps exigem maior segurança em suas ferramentas desde o primeiro dia. Não é estranho, já que, segundo este mesmo relatório, a frequência de novos deployments aumentou 67% nos últimos 12 meses.
E é que a segurança na nuvem não depende apenas da infraestrutura cloud e sua operação, mas também da segurança nos processos de desenvolvimento. As inegáveis vantagens do desenvolvimento de aplicações cloud-native (CNAPP) vêm acompanhadas de importantes riscos de segurança, em parte pelo contínuo trânsito de dados, e em parte pela fragmentação das ferramentas utilizadas no processo de desenvolvimento.

Linhas mestras

As práticas e tecnologias de desenvolvimento modernas (CI/CD, contêineres, serverless, etc.) requerem uma abordagem integrada com capacidades que ofereçam uma proteção conectada ao longo do ciclo de vida da aplicação, bem como a garantia de que os serviços em nuvem cumprem com as melhores práticas de segurança enquanto permitem que os desenvolvedores trabalhem, com múltiplos e exaustivos controles de segurança para proteger contra vulnerabilidades, vazamentos, ataques de malware e infrações de conformidade regulatória.
Estes seriam alguns dos aspectos essenciais a serem considerados:

  • Segurança na pipeline: É um passo prévio e fundamental para garantir a segurança. É recomendável realizar uma análise contínua de logs e imagens de contêineres, incluindo aquelas localizadas em instâncias Open Source, bem como varreduras exaustivas da pipeline CI/CD.
  • Proteção de aplicações: A automação da segurança deve permitir a proteção dos processos de desenvolvimento contra as principais ameaças para aplicações em servidores, APIs, contêineres, plataformas serverless, etc.
  • Proteção do sistema operacional do host. Em geral, todos os contêineres compartilham o mesmo kernel, por isso será essencial sua proteção contra vulnerabilidades e ataques na camada do host.
  • Segurança no armazenamento. O sistema deve analisar qualquer tipo de arquivo em busca de malware e integrar a segurança em workflows personalizados com suporte para todos os tipos de plataformas de armazenamento em nuvem.
  • Proteção de contêineres. Também neste aspecto é recomendável um nível máximo de controle sobre eventos e notificações para atender aos requisitos de segurança e conformidade regulatória, incluindo uma monitorização exaustiva do tráfego nos contêineres.
  • Segurança nos processos de DevOps. A integração de APIs específicas permite melhorar os ciclos de desenvolvimento e reduzir os tempos de entrega, mas também é um aliado para reduzir os pontos de contato e o fator humano.
  • Segurança da rede: É certo que este aspecto inclui numerosos elementos para a proteção do tráfego de rede: firewalls, sistemas de detecção de intrusões, monitoramento, gestão de ativos e componentes... O objetivo é reduzir ao máximo a superfície de ataque.
  • Segurança Open Source. Outro aspecto fundamental, especialmente se considerarmos que uma grande parte do código que circula é de código aberto. Será necessário ter visibilidade sobre as vulnerabilidades dos ambientes open source, incluindo a gestão de riscos de licença.

Codificação segura: Principais riscos segundo o OWASP.

O OWASP Top 10 é um documento de conscientização padrão para desenvolvedores e segurança de aplicações web, reconhecido mundialmente pelos desenvolvedores como o primeiro passo para uma codificação mais segura.

As empresas devem adotar este documento e iniciar o processo de garantir que suas aplicações web minimizem esses riscos. Utilizar o OWASP Top 10 é talvez o primeiro passo mais eficaz para mudar a cultura de desenvolvimento de software da organização. A seguir, é mostrado cada um desses riscos:

  • A01. Ruptura do controle de acesso. Permite que os atacantes comprometam os dados obtendo acesso com privilégios ou a apropriação de contas. 94% dos aplicativos testados apresentaram esse tipo de problema.
  • A02. Falhas criptográficas. São falhas relacionadas com a criptografia que frequentemente levam à exposição de dados confidenciais ou ao controle dos sistemas. Costumam ser mais um sintoma do que uma causa raiz.
  • A03. Injeção. Esta categoria (injeções SQL, injeções JavaScript) refere-se à inserção de código malicioso na aplicação, apresentando a segunda maior quantidade de casos. O Cross-site Scripting agora faz parte desta categoria.
  • A04. Design inseguro. Uma nova categoria em relação a relatórios anteriores que faz referência aos riscos relacionados a falhas no design. OWASP recomenda elementos como threat modeling, padrões e arquiteturas de referência.
  • A05. Erros de configuração. Cada vez mais comuns devido ao uso da nuvem como ambiente de desenvolvimento e ao desenvolvimento com imagens de contêineres. 90% das aplicações testadas pela OWASP apresentaram algum tipo de erro desse tipo.
  • A06. Falhas nos componentes. Um problema conhecido, mas difícil de avaliar. Normalmente, essas vulnerabilidades provêm do uso de frameworks ou bibliotecas desatualizadas que são fáceis de explorar.
  • A07. Falhas de identificação e autenticação. Má gestão das sessões, senhas fracas ou não limitar a taxa de tentativas de login continuam sendo um problema, mas menos crítico devido à crescente disponibilidade de frameworks padronizados.
  • A08. Falhas de integridade nos dados e no software. Uma categoria adicionada no último relatório que se refere às vulnerabilidades no software, dados críticos e pipelines de CI/CD.
  • A09. Falhas de registro e monitoramento. As falhas nesta categoria podem afetar a capacidade da sua empresa de detectar e responder a possíveis brechas, pois dificultam a visibilidade, os alertas sobre incidentes e a análise forense.
  • A10. Falsificação de solicitações do lado do servidor. Adicionada no último relatório, é um problema relativamente mensurável e monitorável. Ocorre quando os atacantes fazem com que os servidores realizem solicitações não autorizadas.
Protección

Segurança em cada fase do processo

A definição de níveis aceitáveis de segurança e privacidade desde o início de cada projeto ajuda as equipes de DevOps a compreender os riscos, identificar e corrigir erros durante o desenvolvimento e aplicar esses níveis ao longo de todo o projeto.

1. Diseño

Durante esta fase será necessário levantar questões fundamentais de segurança e privacidade, antecipando todos os vetores de ataque e vulnerabilidades. A definição dos níveis aceitáveis de segurança e privacidade no início de um projeto ajuda uma equipe a compreender os riscos associados a problemas de segurança, corrigir falhas de segurança durante o desenvolvimento e aplicar os níveis adequados de segurança e privacidade ao longo de todo o projeto.

2. Implementação

Antes de inserir o código no repositório, será necessário realizar revisões para aumentar a qualidade geral e reduzir o risco de erros. A análise de código-fonte é um elemento chave na revisão de código estático para encontrar possíveis vulnerabilidades no código que não está sendo executado. Da mesma forma, será necessário prevenir os ataques por injeção com a validação de entradas para evitar que dados com formato incorreto sejam armazenados no banco de dados ou desencadeiem erros em outros componentes. A codificação de saídas fornece defesas por camadas para aumentar a segurança do sistema como um todo.

Também será essencial separar os dados de produção, e não utilizá-los para desenvolvimento, testes ou qualquer outro fim diferente do estabelecido. E, claro, seguir outras boas práticas como a anonimização para todo o processo, ou evitar o armazenamento em cache de conteúdo confidencial.

3. Verificação

Esta fase passa por verificar que o código cumpre os princípios de segurança e privacidade que foram estabelecidos nas fases anteriores. Inclui, por exemplo, a busca e correção de vulnerabilidades nas dependências da aplicação.

Outra boa prática é testar a aplicação em estado operacional. Os testes dinâmicos de segurança de aplicações (DAST, na sigla em inglês) permitem analisá-las enquanto estão em execução para buscar vulnerabilidades como danos na memória, configurações de servidor inseguras, ataques de script entre sites, injeção de código, etc. Os testes de vulnerabilidades, por sua vez, consistem em induzir um erro introduzindo dados aleatórios ou com formato incorreto, o que ajuda a revelar possíveis problemas de segurança antes da passagem para produção.

Por último, a revisão da superfície de ataque após a conclusão do código ajudará a garantir que as mudanças no design e na implementação foram levadas em consideração, e que os novos vetores de ataque foram revisados e mitigados. Por sua vez, os testes de penetração (ou pentesting) são ataques simulados para encontrar as vulnerabilidades de segurança e todos os sistemas que poderiam ter acesso às aplicações, sua funcionalidade e seus dados.

DevSecOps: uma nova forma de conceber o desenvolvimento

De acordo com um relatório publicado em 2020, 92% dos profissionais de TI não acreditam que sua organização esteja preparada para proteger os serviços de nuvem pública. Isso acontece porque não depende apenas da segurança como parte da equipe de desenvolvedores e operadores, mas também da própria infraestrutura de segurança.

DevSecOps é a prática de integrar os testes de segurança em cada etapa do processo de desenvolvimento de software. Inclui ferramentas e processos que incentivam a colaboração entre desenvolvedores, especialistas em segurança e equipes de operações para criar um software que seja eficiente e seguro.

Os benefícios são múltiplos e perfeitamente visíveis: redução no tempo de entrega, detecção precoce e automática de vulnerabilidades, desenvolvimento de novas funcionalidades de forma segura, melhorias na colaboração e comunicação entre equipes e garantia de conformidade regulatória, entre outros.

Em suma, hoje em dia, a nuvem é um espaço preferencial na criação de aplicativos e serviços, e métodos como o DevSecOps são fundamentais para o funcionamento da infraestrutura e segurança da tecnologia nas empresas. Mas apenas uma estratégia integral e que seja implementada desde o início de cada projeto permitirá agilizar os tempos, reduzir os custos e garantir a segurança no desenvolvimento.

Talvez te interesse

BASE | SCRUM

BASE melhora a experiência do usuário com o redesenho de seu novo eCommerce

BASE

TEKA | IoT

TEKA tomou uma importante decisão estratégica e tecnológica ao contar com a SEIDOR como parceira tecnológica para implantar uma solução que permitia conectar seus eletrodomésticos à internet e transformá-los em eletrodomésticos inteligentes.

TEKA
24 de agosto de 2023

Segurança na Nuvem: estratégia integral imprescindível para a proteção de dados na nuvem

Segundo a última pesquisa da Cybersecurity Insiders, 95% das organizações estão preocupadas com a segurança de seus ambientes na nuvem (Cloud Security), enquanto uma em cada quatro confirma um incidente de segurança na nuvem nos últimos 12 meses. De fato, segundo dados da Gartner, este setor será o que mais crescerá em investimento para 2023.

SEIDOR