Erro aleatório no Linux

0

Algum tempo atrás, lembro de ter lido um artigo sobre randomização na computação e como aleatório você pode realmente ter um sistema. O artigo surgiu, se não me engano, por causa de alguma alteração aparentemente pequena no código, mas resultou em uma grande vulnerabilidade de segurança. Não consigo encontrar o artigo, e não consigo me lembrar de qual bug foi especificamente. Pesquisando na web com nada além de uma lembrança vaga de algum bug que foi corrigido há alguns anos acaba por ser mais difícil do que eu gostaria que fosse. No entanto, eu descobri isso . Parece caber na descrição, mas apenas toca em openssl.

Eu estava me perguntando se, por acaso, esse bug era mais amplo do que apenas números aleatórios no openssl, e na verdade atrapalhava todo o pool de entropia. Se esse bug não tem nada a ver com o pool de entropia, então: houve algum bug desse tipo (um que causou redução significativa na entropia e, portanto, randomização previsível)? Em caso afirmativo, gostaria de saber quais distros eram / são vulneráveis e onde encontrar os relatórios desses bugs.
Se tal bug não existe ... Eu tive uma noite terrível (insônia), que tem sido conhecida por causar alucinações e delírios em pessoas ... me perdoe.

Para quem possa interessar:
A razão para eu perguntar isso é porque eu estou trabalhando em algum código, e nós estamos obtendo um monte de Higgs-Bugson relatórios de erros. Estivemos investigando o que poderia estar causando certos problemas, e apenas tem algo relacionado à randomização previsível.
Eu não posso entrar em muitos detalhes, dado que eu, infelizmente, não estou trabalhando para uma empresa de código aberto, e tive que assinar um NDA.

    
por Elias Van Ootegem 24.09.2013 / 09:46

1 resposta

3

Geradores de números aleatórios de software não são a única fonte de entropia no sistema. Na verdade, eles não são fontes de entropia - os software RNGs usam fontes externas de entropia para fornecer entropia ao sistema. A fonte real é sempre uma física (seja um RNG de hardware dedicado, sensores de temperatura, entrada de áudio, tempo de pacotes de rede, entradas de usuário ou mesmo os estados internos da CPU (que para uma CPU virtual não são estritamente" físicos "em algum sentido) - você nomeia isso.

Agora, como para a sua pergunta: como Mat menciona em seu comentário, a maioria dos bugs é devido a desleixada design / codificação (/ testes) - eu iria tão longe a ponto de dizer que é 100%. Meu palpite é que seu código está experimentando algum tipo de condição de corrida que é tratada mal (se é que é). Então, em certo sentido, é relacionado a entropia (como condição de corrida é um evento aleatório). Culpar um RNG é uma afirmação ousada, pelo menos - a menos que você esteja usando números aleatórios para ativá-lo, caso em que parece mais um recurso.

A propósito, se um RNG quebrado fosse a causa de seus problemas, você os veria de maneira bastante previsível. Em relação ao erro do Debian OpenSSL - eu não acho que nenhuma outra distribuição além das baseadas no Debian (incluindo o Ubuntu) tenha sido atingida por ele. No entanto, o erro em si é bastante educativo da perspectiva de como isso poderia ter acontecido em primeiro lugar.

    
por 24.09.2013 / 11:17