O maior fator é o tipo de acesso que o invasor possui. Se eles têm acesso físico, você está ferrado. Se você está preocupado apenas com acesso remoto, isso depende do que você está executando; boa configuração é tudo. Um servidor linux padrão provavelmente executaria ftp, ssh, http, https e mysql. O SSH é seguro, mas eu não permitiria logins raiz, e uma boa senha em todas as contas é essencial. O FTP é um acerto ou um erro. Se você tem VSFTP e chroot seus usuários, é muito seguro. Várias outras versões possuem vulnerabilidades conhecidas. O HTTP provavelmente será sua área mais vulnerável. Sua maior preocupação aqui é qualquer coisa que execute arquivos no sistema ou faça upload de arquivos para o sistema. A injeção de SQL é MUITO difícil se o seu site for feito em PHP5. Um grupo de estudantes de segurança e eu tentamos injeções de SQL em um site PHP5 não autorizado por semanas e não obtiveram êxito. Com o MySQL, certifique-se de usar um usuário não root e restrinja-o ao login apenas no servidor Apache.
Existem alguns plugins do Firefox para testar as vulnerabilidades do site: acesse-me, xss-me e sql me injete
Algumas coisas importantes que eu sempre faria nas competições para garantir a segurança:
netstat
- verifique portas e conexões abertas,
w
- quem está logado, por quanto tempo,
- Verifique os logs para logins,
- histórico do bash para comandos executados,
ps
- executando comandos,
/etc/passwd
para usuários extras
/etc/sudoers
para acesso ao sudo.
Normalmente, depois de obter acesso, um invasor deseja obter raiz. Atualmente, existem algumas vulnerabilidades de escalonamento de privilégios por aí que permitiriam que um usuário normal ganhasse root. Depois disso, eles desejam abri-lo para acesso posterior adicionando usuários e abrindo portas traseiras.
Aqui está o site de defesa cibernética da minha escola. Fique à vontade para olhar ao redor e fazer algumas perguntas: https://thislink.doesntexist.org/