O que torna o Linux mais seguro?
Privilégios
Uma das vantagens de se utilizar do SO Linux é seu nível de acesso, que é separado em níveis de privilégio, como por exemplo o popularmente conhecido comando root, no qual permite o usuário realizar um maior número de ações no Linux diferenciando de um usuário comum que seu acesso aos dados é restrito devido a seu baixo nível de privilégio. Ou seja, tomar controle ou afetar gravemente o SO torna-se uma tarefa árdua, pois o acesso de usuário comum não recebe as mesmas permissões do root, isto é, ele poderá apenas usar arquivos e programas locais, mitigando possíveis danos ao SO como um todo.
Em Linux qualquer objeto é identificado como arquivo e isto independente do que seja, por exemplo uma impressora ou até mesmo um diretório, sendo programado desta maneira em virtude é possível restringir o acesso aos arquivos cruciais para o seu funcionamento evitando interrupções geradas por terceiros.
Gerenciamento de memória
O Acesso de memória e seu gerenciamento possuem grande importância no quesito de segurança em um SO, sendo realizado de diversas adaptações com base no SO no qual ele está sendo aplicado.
Em alguns dos sistemas operacionais atuais utilizam-se do paradigma de endereçamento de memória linear, no qual o espaço proferido ao usuário e o kernel são pouco destacados uns dos outros.
No caso mencionado anteriormente, a memória tem sua alocação onde o endereço de espaço físico foi previamente determinado, sendo assim, o acesso a mesma é disponível para entrada, sua segurança fica ameaçada, pois em alguns casos é possível que o malware tenha controle sobre a memória, desta forma, derrubando com poucas dificuldades o SO.
O diferencial do Linux neste quesito é a maneira na qual o mesmo lida com esta situação, onde o usuário se encontra em um espaço separado do kernel. Sendo assim, o real endereço físico alocado em qualquer processo não será exibido de maneira padrão ao usuário. Ao utilizar por exemplo a system call fork(), os endereços gerados nos processos de parentes e crianças serão os mesmo que foram atribuídos aos endereços virtuais. Isto ocorre, pois as aplicações possuem acesso apenas ao endereço virtual os quais lhe foram fornecidos onde o mesmo é mapeado no endereço físico.
Devido a isto, é possível evitar quaisquer tipos de dano que sejam direcionados ao espaço do real endereço físico, esta maneira de manejar a memória torna o Linux demasiadamente seguro se comparado a outros SOs.
LOG
Log é um arquivo gerado pelo sistema e nele contém informações sobre os acessos a arquivos e a sistemas. Se uma pessoa tentar acessar um arquivo com senha o administrador poderá ver quem tentou acessar por meio do log. O log não grava somente quando um usuário tenta acessar, mas também grava tentativas falhas e até mesmo problemas de segurança e falhas. Ou seja, quando se tem um arquivo de log atualizado, ações preventivas no Linux se tornam mais eficientes.
Informações como kernel, aplicativos e serviços são armazenados no arquivo de log. E para diferentes informações existe diferentes tipos de logs e em sua maioria os arquivos de logs são armazenados no diretório /ver/log.
Gravando eventos do sistema
SELinux (System Events Linux) trata-se de uma ferramenta Linux capaz de melhorar a segurança, no qual permite ao usuário e administrador ter um controle maior no acesso dos dados. O mesmo providencia um controle de acesso obrigatório flexível (MAC), sistema montado internamente pelo Kernel do Linux. Para quaisquer processos e aplicações que estejam sendo executadas como usuário, possuirá as permissões para acessar objetos como arquivos, sockets e etc.
De maneira geral, quando algum arquivo é criado por alguma pessoa ele o terá lido, concedendo permissões para escrever além de garantir acesso a usuários e grupos, até mesmo alterando o responsável pelo arquivo. Isto pode resultar em arquivos críticos tornando-se expostos para usuários que não requerem qualquer tipo de acesso ao sistema. Os administradores do sistema não são capazes de reforçar a segurança para qualquer arquivo no SO.
Em um cenário onde o desenvolvedor encontra-se executando um arquivo de se diretório local e talvez visualize arquivos de log. Abrindo a possibilidade de que utilizando o comando “sudo” ou “su” torne o sistema vulnerável. Para evitar tal situação, SELinux realiza os requisitos do controle de acesso com a possibilidade de serem melhorados. Com isto, o administrador do sistema tem a liberdade de definir quais processos e usuários podem realizar. Sendo está a razão pela qual o SELinux eleva a segurança do Linux a um alto patamar.
Em poucas palavras, os administradores do sistema devem ser os responsáveis pela decisão de definir o quão restritivas devem ser as políticas em seu ambiente de servidor. MAC Kernel é responsável por auxiliar na segurança do sistema originados das aplicações em que se existe a chance de algum dano ser causado ao sistema. Sendo este um alto grau de segurança proporcionado ao Linux.
