Contêineres otimizam a experiência do desenvolvedor. A criação de aplicações em contêineres permite que os desenvolvedores as executem com fluidez em qualquer hardware, infraestrutura ou ambiente de nuvem. Problemas que podem surgir das diferenças no sistema operacional (OS) e na infraestrutura subjacente são abstraídos pelo tempo de execução do contêiner. No entanto, como em qualquer tecnologia, pode haver desvantagens no uso de contêineres. A complexidade de sua infraestrutura, se não for adequadamente considerada, pode representar sérios riscos à segurança; afinal, existem ameaças a eles em cada estágio do pipeline de desenvolvimento.
[Leia: Como o processo de desenvolvimento pode ter segurança e velocidade]
Para minimizar os riscos ao desenvolver em contêineres, aqui estão seis etapas que devs podem seguir:
Proteja o host do contêiner.
- Os contêineres devem ser hospedados em um OS focado nesta tecnologia. A superfície geral do ataque será reduzida se os serviços que não são necessários para hospedar seus workloads forem removidos.
- Ferramentas de monitoramento devem ser usadas para fornecer visibilidade sobre a saúde de seus hosts.
- Um forte conjunto de controles de segurança, como os disponíveis na solução Trend Micro Deep Security®, deve ser usado para proteger os sistemas de hospedagem de contêineres. A integridade desses sistemas, que executam todos os workloads do contêiner, será garantida se estiverem adequadamente protegidos.
Proteja o ambiente de rede.
- Aproveite os controles, como um sistema de prevenção contra intrusões (IPS) e a filtragem da Web para o tráfego que se desloca de norte a sul e da/para a Internet, a fim de interromper ataques e filtrar conteúdo malicioso.
- A fim de monitorar o tráfego entre contêineres, um IPS também deve ser implantado. O monitoramento interno do tráfego é fundamental para sua defesa, pois os atacantes que já conquistaram uma posição em uma rede podem, de forma rápida, se mover lateralmente para expandir seu alcance.
Proteja todo o seu stack de gestão.
- O registro de contêiner deve ser adequadamente protegido e monitorado.
- A instalação do Kubernetes deve estar bloqueada. Além disso, recursos como o Pod e as políticas de rede devem ser aproveitados para impor os padrões de segurança e desenvolvimento da sua organização.
- Ferramentas de segurança como o Deep Security Smart Check da Trend Micro devem ser usadas para verificar e validar a configuração de cada contêiner à medida que ele é adicionado ao registro. Isso garante que apenas os contêineres que atendem aos padrões de desenvolvimento e segurança da equipe estejam sendo implantados.
Crie sobre uma base segura.
- Revise e observe as comunicações das equipes de projeto em relação às dependências usadas nas aplicações. Quando uma parte do software é corrigida, essas alterações precisam ser integradas ao aplicação para reduzir riscos.
- Certifique-se de que os contêineres estão livres de malware ou vulnerabilidades conhecidas e não têm segredos expostos usando um scanner de imagem de contêiner, como o Deep Security Smart Check. Ele também irá fazer uma varredura de indicadores personalizados de comprometimento (IOCs). Ao usar um scanner de imagem de contêiner, você pode atenuar os riscos antes de continuar o desenvolvimento ou implantar na produção.
Proteja o pipeline da sua build.
- As estações de trabalho do desenvolvedor devem ser instaladas com fortes controles para endpoints, que podem ser encontrados na solução Trend Micro Apex One®. Isso ajuda a evitar malware, visitas a sites maliciosos e outros desafios de segurança e ameaças a contêineres.
- Um esquema de controle de acesso, que seja completo e consistente, deve ser implementado. Uma etapa crítica para proteger a integridade do seu pipeline é garantir que apenas usuários autorizados possam acessar repositórios de códigos, integrar filiais e acionar builds que são enviadas à produção.
- Os servidores que executam as ferramentas mencionadas também devem ser protegidos. O uso de ferramentas de segurança como o Trend Micro Deep Security pode fornecer um conjunto de controles fortes com overhead mínimo, ajudando sua equipe a cumprir metas e padrões de segurança.
Proteja sua aplicação.
- O código deve seguir as melhores práticas para melhorar sua qualidade. Afinal, erros simples ou más escolhas de design podem resultar em muitas vulnerabilidades de segurança. Investir tempo e esforço para garantir a qualidade do seu código sempre paga dividendos de segurança.
- Os controles de autoproteção em runtime devem ser usados para ajudar a unificar as vulnerabilidades e problemas de segurança em linhas de código específicas. Com isto, fecha-se a lacuna durante a análise de causa-raíz e permite-se obter melhores resultados de segurança.
Uma última palavra sobre a segurança de contêineres
O uso da tecnologia de contêiner aumenta a velocidade e a eficiência do processo de desenvolvimento, mantendo a consistência geral. No entanto, ameaças a contêineres começaram a ganhar força recentemente e é imperativo que eles sejam devidamente protegidos para impedir possíveis riscos para as organizações. Felizmente, apesar dos muitos aspectos do processo de desenvolvimento e da infraestrutura de suporte que os desenvolvedores precisam levar em consideração, as etapas mencionadas acima podem ajudar a proteger contêineres com eficácia.Para uma discussão mais aprofundada sobre fatores e desafios na segurança de contêineres, leia o White Paper da Trend Micro “Six Steps to Comprehensive Container Security“.