![Featued image for: TikTok to Open Source ‘Cloud-Neutralizing’ Edge Accelerator](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706065456_TikTok-abrira-acelerador-de-borda-neutralizador-de-nuvem-de-codigo-150x150.png)
TikTok abrirá acelerador de borda ‘neutralizador de nuvem’ de código aberto
24 de janeiro de 2024![Usando um portal do desenvolvedor para gerenciamento de API](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706067110_Usando-um-portal-do-desenvolvedor-para-gerenciamento-de-API-150x150.jpg)
Usando um portal do desenvolvedor para gerenciamento de API
24 de janeiro de 2024Fazer um check-up odontológico de rotina é algo que muitas pessoas adiam. Quer estejam um pouco nervosos em ir ao dentista, seja uma despesa que não querem incorrer ou estejam sobrecarregados demais para encaixá-la em sua agenda lotada, é um item de manutenção regular que é fácil de adiar ou despriorizar.
Nesse sentido, proteger contêineres é semelhante a verificações de rotina. Contribui para a boa saúde do ecossistema, mas há muitas razões pelas quais os engenheiros adiam a importante manutenção de segurança dos seus contentores. É importante que o gerenciamento de TI compreenda essa resistência, bem como o impacto que o não reforço ou aplicação regular de patches nos contêineres tem na segurança dos aplicativos.
Proteger contêineres revela uma lacuna de habilidades
Os scanners de vulnerabilidade produzem muitos dados, o que pode ser esmagador para os engenheiros, mesmo aqueles versados em segurança. A quantidade de ruído comparada às informações úteis relatadas é significativa.
Em muitas empresas, os engenheiros não têm conhecimento e treinamento em segurança para compreender a gravidade das vulnerabilidades críticas, muito menos o conhecimento para localizá-las e mitigá-las. A mitigação pode exigir que os engenheiros façam alterações no código ou talvez o DevOps faça alterações na imagem base do contêiner de sua propriedade, dependendo da estrutura da organização.
De acordo com o Relatório de Contêineres Públicos Slim.AI de 2022, apenas 26% dos desenvolvedores estão confiantes de que possuem o conhecimento necessário para proteger contêineres para uso em produção. Os desenvolvedores e DevOps podem reconhecer a necessidade de corrigir determinados pacotes, mas os pacotes ainda raramente são corrigidos. Os profissionais de segurança devem fazer investimentos significativos de tempo para triagem e roteamento de vulnerabilidades antes que elas cheguem aos engenheiros, dependendo do apetite ao risco e da estrutura organizacional da empresa. Este processo pode ser bastante penoso e, à medida que as empresas crescem, a triagem e o encaminhamento tornam-se mais difíceis e podem ocupar uma parte significativa do tempo alocado no acordo de nível de serviço (SLA).
Mesmo quando o processo de triagem é eficiente e pode filtrar as vulnerabilidades mais pertinentes e acionáveis, a mitigação pode não ser uma tarefa simples ou rápida. Por exemplo, mesmo que o seu scanner indique que um patch está disponível, o patch pode estar disponível para um pacote vulnerável usado indiretamente, deixando a dependência direta sem patch. Algumas horas do tempo de um engenheiro vão pelo ralo sem nenhum produto discernível ou valor de segurança obtido. E ainda pode exigir um esforço significativo para substituir o pacote que você está usando diretamente. Frustrante!
Se todas as estrelas estiverem alinhadas e um patch estiver disponível para o pacote que você está usando, o engenheiro pode precisar fazer alterações no código para se alinhar com as novas APIs do pacote para corrigir alterações importantes introduzidas na biblioteca. Isso pressupõe que a cobertura do teste seja suficiente para evitar que o comportamento do código mude negativamente. Ah, mas espere — então você poderá encontrar a mesma vulnerabilidade em outros locais do mesmo contêiner, às vezes ainda usada indiretamente pelo código. Mais horas perdidas, menos estabilidade no código e nenhuma alteração na contagem de vulnerabilidades de verificação. Mais frustração!
Na verdade, lidar com uma única vulnerabilidade pode ser doloroso, e a frustração pode rapidamente se espalhar pelo vasto cenário de contêineres, cada um abrigando potencialmente milhares de vulnerabilidades. As organizações podem supervisionar centenas de contêineres, culminando em um excedente alarmante de perda de tempo, frustração crescente e uma preocupante ausência de valor tangível do produto. Para piorar a situação, embora possa levar “algumas horas” para fazer uma atualização secundária da versão do pacote quando você tiver patches consistentes e manutenção do pacote em vigor, isso não chega nem perto do tempo necessário para atualizar uma versão principal ou substituir um pacote chegando ao fim de sua vida útil.
Fazendo um paralelo com a analogia do exame odontológico: se você não visita o dentista regularmente, quando finalmente o fizer, a visita provavelmente será muito mais longa (e muito mais desagradável).
Desafios organizacionais para atualizações de contêineres
Deixando de lado os desafios técnicos e de lacuna de conhecimento para fazer atualizações de pacotes e abordar vulnerabilidades, também existem sérios obstáculos do ponto de vista organizacional, especialmente em termos de priorização de trabalho.
Muitos engenheiros consideram a proteção de contêineres um trabalho tedioso que não agrega valor ao produto. Mesmo quando as organizações de segurança pressionam fortemente pela resolução, a gestão de engenharia pode não priorizar ou incentivar a segurança dos contentores porque a segurança raramente é uma métrica de engenharia. “Bom trabalho, engenharia, por não ter uma violação de segurança e entregar menos valor ao produto”, disse nenhum CEO, jamais. A engenharia raramente vê a segurança dos contêineres como uma atividade que impacta os resultados financeiros. Portanto, geralmente não é considerado uma prioridade, a menos que as equipes de segurança sejam excepcionalmente eficazes em trazê-lo à tona em doses medidas.
Isso é verdade até que um cliente se recuse a implantar uma nova versão devido a vulnerabilidades não resolvidas ou recentemente descobertas. A liderança da empresa então se envolve, e a questão passa a ser subitamente a maior prioridade, pois impacta diretamente a receita.
Voltando à analogia odontológica: se você negligenciou seus exames de rotina, pode precisar de um tratamento de canal e, de repente, é uma situação em que todos podem trabalhar. Não é ideal.
Mesmo as organizações de engenharia (e CEOs) que implementam salvaguardas para evitar a introdução de novas vulnerabilidades durante o processo de desenvolvimento (como o uso de ganchos de pré-comprometimento) não são seguras. Novas vulnerabilidades estão sempre sendo introduzidas e descobertas, o que impõe uma grande carga aos engenheiros para resolvê-las quando são encontradas, bem depois de o código ser desenvolvido e enviado. Novas vulnerabilidades podem aparecer em códigos que não são alterados há algum tempo, exigindo esforço e tempo significativos que paralisam todos os outros trabalhos do engenheiro.
Melhores práticas de manutenção de segurança
Um cenário melhor é quando uma empresa é proativa na correção de vulnerabilidades, comunica antecipadamente aos seus clientes sobre as vulnerabilidades encontradas e explica como e quando elas serão abordadas. Uma empresa que adopte esta abordagem não só reduzirá as surpresas e os simulacros de incêndio e ganhará a confiança dos seus clientes, mas também poupará muito trabalho às organizações que verificam e redigitalizam os seus contentores à medida que são libertados.
Reservar um tempo para exames regulares evita experiências muito mais dolorosas no futuro. Da mesma forma, mesmo que possa parecer um incômodo fazer pequenos investimentos diariamente para manter os pacotes que você usa atualizados, é muito melhor do que a alternativa: se você negligenciar as atualizações regulares, o preço que você paga em tempo e as alterações significativas serão muito maiores. mais alto.
Os impactos negativos da despriorização da manutenção regular das atualizações dos contentores não devem ser subestimados. Como diz o ditado: “Um grama de prevenção vale um quilo de cura”. Aqui estão algumas estratégias de prevenção e remediação que podem ajudar sua organização a manter um bom estado de saúde dos contêineres.
Desloque para a esquerda para detecção e prevenção
- Digitalize tudo o tempo todo e o mais rápido possível. O melhor lugar é no ambiente de desenvolvimento integrado (IDE) enquanto os desenvolvedores trabalham nos recursos. Dessa forma, as vulnerabilidades podem ser identificadas à medida que são introduzidas no código ou, pelo menos, à medida que o código é enviado para CI/CD.
- Digitalize continuamente com vários scanners para permitir a detecção precoce. A chave é encontrar vulnerabilidades antes que seus clientes o façam (e isso se torna um exercício de simulação de incêndio com a alta administração).
- Minimize o código desnecessário usando imagens de base menores e construções e redução de contêineres em várias etapas, removendo o código não utilizado do contêiner.
- Automatize as atualizações de pacotes para usar a versão estável mais recente sempre que possível.
- Inclua uma avaliação de segurança como parte do processo de design à medida que novos pacotes forem introduzidos.
- Forneça ampla educação em segurança aos engenheiros da equipe para que eles entendam a importância de manter o código e tenham autonomia para tomar decisões melhores com antecedência.
Estratégias para Remediação
- Melhore o roteamento capturando a propriedade e os mantenedores de contêineres para que você possa atribuir responsabilidades de correção à equipe responsável pelo tipo de vulnerabilidade e ao gerenciador de pacotes.
- Garanta que os líderes de segurança e engenharia colaborem bem, tenham bons contratos em vigor e utilizem um processo de triagem adequado com base na configuração do sistema. Isto inclui redução de ruído e anotações quando aplicável. Observe que as anotações são correções.
- Certifique-se de que seu pipeline de CI/CD seja moderno e que seu software seja exaustivamente testado para que a aplicação de patches seja o mais rápida e automatizada possível, sem degradar a qualidade do software.
- Use pacotes bem mantidos com autores respeitáveis e uma comunidade significativa. Se você ainda não tiver um, adicione um processo de verificação para as dependências da sua cadeia de suprimentos que considere esses fatores.
Assim como ninguém quer ser surpreendido com uma emergência odontológica — especialmente uma que poderia ter sido evitada com um check-up regular — as equipes de engenharia não querem ser surpreendidas por vulnerabilidades que poderiam ter sido resolvidas com atualizações regulares de contêineres. Os líderes de engenharia precisam priorizar a importante tarefa de educar e incentivar os desenvolvedores a digitalizar, automatizar, testar e reduzir contêineres como parte da manutenção regular de contêineres. Isso é vital para a saúde do seu ecossistema e, mais importante, para o relacionamento com os clientes.
A postagem Por que proteger contêineres é como ir ao dentista apareceu pela primeira vez no The New Stack.