Não vejo como você possivelmente usaria o UFW para evitar esse tipo de ataque.
Se tudo, exceto o 80/443, for negado ao acesso público e você tiver especificado apenas alguns IPs específicos para o acesso ssh, o problema está no aplicativo, não na configuração da rede.
Nem toque nas regras de firewall nesta instância.
Você precisa se proteger de:
- Senhas fracas
- Links "Admin page" óbvios, ou seja, website.com/admin, website.com/phpmyadmin
- Senhas incorporadas no seu código
- Injeções de SQL e outras diversas vulnerabilidades de código da Web / banco de dados.
Para aumentar a segurança do seu servidor, você pode fazer o Apache executar o chroot'ed, para que ele seja separado do sistema principal por uma camada virtual.
Você também pode implementar o FIM (gerenciamento de integridade de arquivos) para garantir que os arquivos que não devem ser alterados não sejam alterados (exemplo: a configuração do apache / php)
ou você pode escrever um script para registrar todos os comandos executados pelo root / apache e enviá-lo por e-mail periodicamente.
Coisas assim são o que você deve olhar depois de configurar seu firewall (o que você fez)