Acesso ao limite do kernel do Linux para root com um botão?

4

É possível limitar o acesso a uma conta root dentro do kernel?

Quero dizer que, se eu pressionar um botão, o sistema detecta o botão sendo pressionado e, em seguida, permite o acesso à conta root na inicialização. Para mim, isso pode ser útil para impedir um ataque de hackers de um bug de um dos meus programas que têm uma porta aberta e talvez estejam vulneráveis a ataques!

Se eu puder limitar o movimento do invasor, talvez eu possa restringir as informações às quais ele pode ter acesso, sem comprometer dados confidenciais. Existe uma maneira especial de fazer isso? Permissões como como o Android gerencia o acesso, um parâmetro de inicialização ou outro kernel?

É possível?

    
por DarkXDroid 07.08.2013 / 13:59

2 respostas

4

Tudo é normalmente possível com o Linux / Unix, mas na maioria das vezes um invasor não está entrando pela porta da frente fazendo login na conta root. O vetor mais típico de ataque é que um processo que está sendo executado com privilégios elevados é direcionado para o ataque e, em seguida, uma fraqueza na funcionalidade dos aplicativos é determinada e explorada.

A abordagem mais geral é não executar seus aplicativos com privilégios tão elevados. Normalmente, você inicia o aplicativo como root, mas, em seguida, bifurca outra cópia do processo como um usuário alternativo.

Além disso, um chroot environment é usado para limitar a exposição do sistema de arquivos subjacente.

Se você passar pela segurança do servidor Referência da Red Hat abrange muito do que eu mencionei com mais detalhes, se você estiver interessado.

    
por 07.08.2013 / 16:18
1

Não conheço nenhuma implementação existente, mas você pode escrever um módulo PAM que exige que um botão seja pressionado.

No entanto, isso protegeria seu sistema apenas contra malware que, de alguma forma, obteve as credenciais usadas para efetuar login como root. Por exemplo, se você usar sudo e digitar sua senha para executar comandos como root e algum malware conseguir pegar sua senha, esse malware poderá executar sudo sem que você a detecte. Exigir um botão pressionado tornaria isso impossível.

Isso é praticamente inútil. O malware que pode fazer isso também pode aproveitar a primeira vez que você executar sudo e plantar algo que seja executado com privilégios de root. Esse não é o vetor de ataque mais comum: o malware geralmente obtém permissões de root explorando um bug no kernel ou em um programa que está sendo executado como root. Isso não exigirá o pressionamento de um botão porque, na medida em que qualquer um pode ver, é um comportamento perfeitamente normal: um programa já em execução fazendo o que está programado para fazer. O fato de que o programa está executando código fornecido pelo invasor em vez do que deveria estar fazendo não pode ser ajudado: o computador faz o que é dito, não necessariamente o que você gostaria que ele fizesse.

    
por 08.08.2013 / 02:40