Nos EUA, a Casa Branca recomendou que as empresas tecnológicas adoptassem linguagens de programação "memory-safe", como Rust, para reduzir vulnerabilidades.
Não é habitual ver políticos a falar de coisas como linguagens de programação, sobre as quais é muito pouco provável que tenham algum conhecimento técnico. No entanto, a recomendação de uso de linguagens de programação memory-safe não deixa de ter a sua validade.
Olhando-se para os casos de vulnerabilidades críticas, existe uma enorme quantidade que tem como origem os chamados erros "out of bounds", em que falhas na alocação de memória permitem que os atacantes tenham acesso a zonas de memória que não seria suposto aceder-se. A partir desse momento, embora o mais provável seja que qualquer tipo de manipulação resulte no crash da app (ou do sistema), por vezes isso abre a porta para que se consiga efectuar o roubo de dados ou, nos casos mais graves, assumirem o controlo sobro o sistema - podendo efectuar todo o tipo de operações remotas, espiar os utilizadores e tudo o que façam no computador, etc.
De forma simplificada, para quem se interessar por isto mas nunca tiver mexido em programação, quando um programa pergunta ao utilizador algo como o seu username e password, é necessário definir um espaço de memória onde essa informação vai ser guardada. Dependendo da linguagem de programação, pode ser necessário especificar o tamanho desse espaço de memória, por exemplo, admitindo que o nome possa ter até 100 caracteres, e a password tenha 80 caracteres. Se não se fizer as devidas validações, uma pessoa que escrevesse um nome com 200 caracteres iria fazer com que esses dados ultrapassassem o espaço que tinha sido reservado, sobrepondo-se em espaços a não seria suposto ser possível aceder. E com isso, podemos escrever código malicioso que pode vir a ser executado pelo programa, dando origem a todo o tipo de dores de cabeça.
O curioso é que, mesmo sabendo-se que isto está na origem de grande parte das vulnerabilidades, década após década continuam a ser cometidos estes mesmos erros, levando a este apelo que se utilizem linguagens de programação que dispensam esta necessidade da validação manual do tamanho dos espaços de memória, fazendo isso de forma automática.
Subscrever:
Enviar feedback (Atom)
Sem comentários:
Enviar um comentário (problemas a comentar?)