O que é um Backport?
Backporting é quando uma correção ou atualização de software é retirada de uma versão recente do software e aplicada a uma versão mais antiga do mesmo software.
Um backport é mais comumente usado para corrigir falhas de segurança em software antigos ou versões mais antigas do software que ainda são suportadas pelo desenvolvedor. Em muitos casos, o usuário mantém a versão mais antiga do software porque a versão mais recente apresenta problemas de estabilidade ou pode ser incompatível com a aplicação downstream.
Como funciona o backporting
Backporting é um termo genérico para qualquer atividade que aplique atualização ou correção de uma versão mais recente do software para uma versão mais antiga.
Esse processo pode ser tão simples quanto atualizar várias linhas de código; também pode envolver uma grande revisão distribuída em vários arquivos de código.
No último caso, aplicar um backport pode ser impraticável em comparação com a atualização para a versão mais recente do software. No entanto, em casos selecionados, poderá ser necessário manter uma aplicação legada se a versão mais recente da aplicação apresentar problemas de estabilidade que possam impactar operações de missão crítica.
O processo de backporting
O backporting é um processo de várias etapas. Aqui descrevemos as etapas básicas para desenvolver e implementar um backport:
- Identifique a falha de segurança na versão do software que requer uma correção ou atualização.
- Determine quais correções, atualizações ou modificações estão disponíveis para resolver esse problema em versões posteriores do mesmo software.
- Adapte a modificação para ser compatível com a versão mais antiga do código.
- Realize testes robustos para garantir que o código ou pacote de backport mantenha a funcionalidade completa dentro da arquitetura de TI, além de corrigir a falha de segurança subjacente.
- Resolva quaisquer efeitos colaterais indesejados identificados na etapa anterior.
- Implemente a correção de backport.
Quem é responsável pelo backporting?
O backporting requer acesso ao código-fonte do software. Dessa forma, o backport pode ser desenvolvido e fornecido pela equipe de desenvolvimento principal para software de fonte fechada. Isso pode ser feito como parte de uma correção oficial ou correção de bug. Para software de fonte aberta, como Linux, um backport pode ser fornecido por terceiros e então enviado para a equipe de desenvolvimento de software.
Onde o backporting se encaixa no gerenciamento de vulnerabilidades
O backporting tem muitas vantagens, embora não seja de forma alguma uma solução simples para problemas complexos de segurança. Além disso, depender de um backport a longo prazo pode introduzir outras ameaças à segurança, cujo risco pode superar o do problema original.
Problemas e considerações comuns sobre backporting
Custos de suporte e manutenção de longo prazo
Backports podem ser uma maneira eficaz de abordar falhas de segurança e vulnerabilidades em versões mais antigas de software. No entanto, cada backport introduz uma quantidade considerável de complexidade na arquitetura do sistema e pode ser caro de manter.
Por exemplo, o Python 2.7.18 foi a versão oficial final do Python 2. Para permanecer atualizada com a correção de segurança e continuar aproveitando todos os novos desenvolvimentos que o Python tem a oferecer, a organização precisava atualizar para Python 3 ou começar a congelar os requisitos e se comprometer com o suporte de longo prazo. A equipe de ciência de dados da CrowdStrike enfrentou exatamente esse dilema. Este artigo explora o processo de tomada de decisão da equipe, bem como as etapas que a equipe tomou para atualizar aproximadamente 200 mil linhas de Python em um framework moderno.
Efeitos colaterais do backporting
Conforme discutido em nossa publicação do blog Python, cada backport pode criar muitos efeitos colaterais indesejados no ambiente de TI. Assim como uma aplicação de software upstream afeta todas as aplicações downstream, o mesmo ocorre com um backport aplicado ao software principal. Isso também é verdade se o backport for aplicado dentro do kernel.
Implicações de segurança adicionais e vulnerabilidade
Backporting é uma técnica comum para resolver um bug conhecido no ambiente de TI. Ao mesmo tempo, confiar em uma base de código legada introduz outras implicações de segurança possivelmente significativas para a organização. Depender de código antigo ou ultrapassado pode resultar na introdução de fragilidades ou vulnerabilidades em seu ambiente. Esses problemas afetam não apenas a aplicação principal, mas também todas as bibliotecas dependentes e aplicações bifurcadas em repositórios públicos. É importante considerar como cada backport se encaixa na estratégia geral de segurança da organização, bem como na arquitetura de TI. Isso se aplica tanto à aplicação de software upstream quanto ao kernel em si.
Confusão de numeração
O backporting poderá dar aos usuários uma falsa sensação de segurança se o processo de enumeração não for totalmente compreendido. Por exemplo, os usuários podem ler relatórios da mídia sobre a atualização de seu software para resolver problemas de segurança. Porém, o que eles realmente fazem é instalar um pacote de atualização do fabricante e não a última versão upstream da aplicação. Nesse cenário, o usuário ainda está executando uma versão upstream mais antiga do software com pacotes de backport aplicados. Isso não oferece a funcionalidade de segurança completa e os benefícios de operar a versão mais recente do software. Os usuários devem verificar novamente para ver o número da atualização de software específico para garantir que ele esteja atualizado para a versão mais recente.