segunda-feira, 29 de outubro de 2018
O kernel do Linux agora é livre de vírus: uma vitória para a segurança, menos despesas gerais e melhor para o Clang
Confira !!
Com o kernel Linux 4.20 em desenvolvimento, agora ele está efetivamente livre de VLA ... Os arrays de comprimento variável (VLAs) que podem ser convenientes e fazem parte do padrão C99, mas podem ter consequências não intencionais.
Os VLAs permitem que os comprimentos de array sejam determinados em tempo de execução em vez de tempo de compilação. O kernel do Linux há muito tempo se baseia em VLAs em diferentes partes do kernel - incluindo dentro de estruturas - mas acontecendo há meses (e anos se contando os esforços do kernel em Clang) foi remover o uso de arrays de comprimento variável dentro do kernel. Os problemas com eles são:
- O uso de matrizes de comprimento variável pode adicionar uma pequena sobrecarga de tempo de execução ao código devido à necessidade de determinar o tamanho da matriz em tempo de execução.
- VLAs dentro de estruturas não são suportados pelo compilador LLVM Clang e, portanto, um problema para aqueles que querem construir o kernel fora do GCC, o Clang suporta apenas os VLAs no estilo C99.
- Indiscutivelmente, o mais importante é que pode haver implicações de segurança dos VLAs em torno do uso da pilha do kernel.
Linus Torvalds também expressou seu descontentamento no passado sobre o uso de VLA com comentários como " USANDO O VLA'S É ACTIVELY STUPID! Ele gera muito mais código e muito código _slower_ (e código mais frágil) do que usar um tamanho de chave fixa . "
Particularmente ao longo dos últimos ciclos houve código eliminando o uso do kernel de VLAs e isso continuou até agora para este ciclo do Linux 4.20 ~ 5.0. Havia mais de 200 pontos no kernel confiando nos VLAs, mas agora, como no último código Linux Git, ele deveria estar basicamente acabado.
Kees Cook enviou o pedido pull hoje para a remoção de VLA que agora permite que o sinalizador de compilador "-Wvla" emita um aviso caso qualquer array de tamanho variável seja encontrado dentro do código C do kernel. Isso ajudará a impedir que novos códigos utilizem VLAs inadvertidamente e também identifique qualquer código persistente do kernel que ainda confia nesse comportamento.
Kees Cook escreveu que ainda pode haver alguns lugares onde os VLAs possam ser encontrados ".pode haver mais alguns VLAs escondidos em randconfigs difíceis de serem encontrados, mas nada grande foi abalado no último mês no linux-next. Deveríamos estar basicamente livres de VLAs agora! Wheee :) "
Fonte
Até a próxima !!
Marcadores: Linux, Android, Segurança
#dev linux,
#Linux,
#Notícia
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário