banner
Centro de notícias
entrega instantânea

Security Think Tank: para proteger o código de forma eficaz, verifique a cada etapa

Jun 23, 2023

Maksim Kabakou - O Melhor De Maksim Kabakou

Já faz um bom tempo desde que fiz qualquer codificação real e, embora tenha feito codificação em nível de máquina, aprendi inicialmente Algol e Fortran, ambas linguagens de alto nível.

Em meus mais de 20 anos em segurança e garantia da informação, a questão da codificação segura aumentou em importância. Muitas violações de segurança bem-sucedidas ocorreram por meio de procedimentos de codificação e manutenção precários, mas o papel do ambiente operacional e quaisquer funções de manutenção em segundo plano não devem ser negligenciados, eles podem, de fato, ser críticos.

Uma grande parte da codificação segura é garantir que qualquer entrada para um pedaço de código tenha permissão para se originar de uma fonte conhecida – verificada – e que a entrada seja submetida a rigorosa verificação de limite e conteúdo e, se a entrada não estiver em conformidade, então esses dados são completamente destruídos.

Da mesma forma, a saída de um pedaço de código deve vir apenas de dentro do próprio código e enviada para destinos conhecidos – verificados – e não deve usar memória fora do que foi alocado. O código em si só deve acessar e usar locais de memória alocados e E/S do sistema, as funções de manutenção também devem limpar quaisquer locais de memória temporários após o uso.

O sistema operacional sob o qual qualquer código é executado deve alocar, monitorar e controlar o uso de memória para impedir que um trecho de código viole a memória alocada para outros trechos de código.

O sistema operacional deve permitir apenas a execução de código verificado (certificado ou sinalizado), o código não verificado deve ser isolado, impedido de ser executado e uma saída de erro.

Deve-se observar que esta pode ser uma operação multinível em que, por exemplo, você tem um sistema host e um sistema operacional executando vários hosts virtuais ou suportando vários contêineres - sem esquecer que um host virtual também pode estar executando uma série de contêineres criando um ambiente muito complexo.

Existem algumas ferramentas de teste de software, contêiner e sistema operacional no mercado, mas, a menos que sua organização tenha seu próprio departamento de TI que esteja desenvolvendo, mantendo e implantando código, você provavelmente procurará terceirizar qualquer trabalho de teste e revisão necessário para uma agência competente.