Gostaria de saber, supondo que eu conecte um dispositivo não confiável (via porta USB ao meu sistema), quanto coloco meu sistema Linux em risco? Em particular, estou preocupado que, embora eu escreva udev
regras para bloquear qualquer coisa, exceto (ou seja, abordagem de lista branca) um determinado dispositivo, o kernel seria vulnerável de qualquer maneira?
O udev tem a capacidade de impedir que o kernel (supondo que seja modular) carregue módulos que normalmente seriam carregados como forma de interagir com um dispositivo usb?
O kernel tem a capacidade de se proteger de dispositivos USB, usando a estrutura de autorização USB . Você pode desabilitar todos os hosts na inicialização:
ou até mesmo desabilitar a autorização completamente, antes que os dispositivos sejam processados, passando
usbcore.authorized_default=0
na linha de comando do kernel (apenas certifique-se de que suasudev
regras habilitem qualquer dispositivo USB que você precise inicializar, como seu teclado).Feito isso, conectar um dispositivo USB não carregará novos módulos nem criará novos dispositivos. Para habilitar um novo dispositivo USB, você terá que autorizá-lo manualmente e acionar a sondagem do driver manualmente (consulte a documentação para obter detalhes).