Velocidade de adição de segurança ao kernel do Linux

Por José Pina Miranda | 16 Novembro 2015 | 3 min. de leitura

O artigo “The kernel of the argument” do The Washington Post, cuja leitura recomendo, apresenta argumentos contra e a favor ao aumento da velocidade de adição de características de segurança ao kernel do Linux que, contribuam para um kernel mais seguro e que, em último caso, permita “auto proteger-se”.

O Linux é um sistema operativo rápido, flexível e gratuito, tendo passado a ser um dos sistemas operativos mais utilizado e pode ser encontrado no mais variado tipo de dispositivos: servidores, desktops, laptops, carros, dispositivos médicos, telefones (por exemplo, o Android é baseado no kernel do Linux e, em Setembro de 2015 havia mais de 1,400,000,000 de dispositivos Android activos), tablets, IoT (Internet of Things), e muitos outros. O Linux funciona em quase todos os CPUs e é famoso por permitir que os computadores (em especial, servidores Web) executem vários programas ao mesmo tempo durante anos, sem necessidade de reboots.

O focus de Linus Torvalds, o famoso criador e gestor do kernel do Linux, direcciona-se para a estabilidade, fiabilidade e desempenho do kernel, que poderiam ser colocados em causa se o focus se centrasse na segurança. O desenvolvimento do kernel deve ser gradual e evolutivo, tendo como objectivo corrigir problemas e bugs (security bugs are just “normal bugs”) e, adaptar-se a novo hardware, sem nunca “quebrar o espaço do utilizador” (i.e., sem nunca fazer parar de trabalhar algo de que um utilizador depende).

Security of any system can never be perfect. So it always must be weighed against other priorities — such as speed, flexibility and ease of use — in a series of inherently nuanced trade-offs. This is a pro­cess, Torvalds suggested, poorly understood by his critics.

Torvalds argumenta ainda que o kernel não pode ser o único responsável por toda a segurança de um dispositivo, havendo outras camadas que podem ser adicionadas para essa fim. Ou seja, o kernel não deve abdicar da sua fiabilidade e desempenho, já que quem precisar de segurança adicional, irá utilizar outras camadas (por exemplo, o SELinux, desenvolvido pela NSA, é uma camada avançada de segurança que pode ser adicionada directamente sobre o kernel) ou outros dispositivos específicos (por exemplo, firewall).

Muitos especialistas na área da segurança acham que esta aproximação à segurança é demasiado passiva, raiando a indiferença, já que o kernel de um sistema operativo é a parte essencial do software de qualquer dispositivo – é o kernel que permite que as aplicações comuniquem com o hardware do dispositivo. Nessa perspectiva, nada no dispositivo é seguro se o kernel do sistema operativo não o for.

Em Agosto, Konstantin Ryabitsev da Linux Foundation, efectua uma apresentação em que compara as características de segurança dos carros produzidos na década de 1960 à segurança actualmente existente nas infra-estruturas tecnológicas (redes, servidores, desktops, laptops, aplicações, sistemas operativos, …).

Nesse mesmo mês, James Morris, propõe a criação de um novo tópico de segurança (“Kernel Hardening” ou “Kernel Self Protection“) no âmbito do kernel Linux, para discutir como resolver melhor as vulnerabilidade oriundas dos bugs do kernel.

“We have some measures in place, although we are really not doing everything we can” wrote James Morris, maintainer of ­Linux’s exterior defenses against attackers.

No Linux Kernel Summit anual que decorreu no final de Outubro em Seoul, James Morris e Kees Cook (engenheiro de segurança Linux a trabalhar para a Google) efectuaram uma apresentação em que enumeram 12 problemas do kernel Linux que necessitam de atenção urgente.

Torvalds várias vezes afirmou – e reiterou após a conferência de Seoul – que está aberto à adição de novas características de segurança ao kernel Linux, desde que os custos em performance sejam razoáveis.

Contudo não se afigura que “razoável” signifique o mesmo para Torvalds e para Kess Cook.