A "melhor prática" geralmente não é executar software que requer que você use uma estrutura vulnerável (ou, digamos, uma versão mais antiga do Java), mas isso nem sempre é uma resposta aceitável, infelizmente. Para a maioria das empresas (aquelas que não são baseadas em tecnologia ou TI, pelo menos), a TI atende às necessidades de negócios, e não o contrário, para que você nem sempre consiga usar essa resposta e jogue um sistema fora porque é um risco de segurança.
Nesses cenários, a única coisa que você realmente pode fazer é conter o servidor vulnerável o máximo possível. Limite o acesso do usuário tanto quanto possível. Coloque na lista de permissões os IPs mínimos ou faixas de IP no firewall. Use anti-vírus no servidor, se possível, e até o nível de registro (e dedique tempo para verificar os logs, é claro). Descarregue o máximo possível e, se possível, use um proxy que não seja vulnerável para aceitar conexões de clientes. (Por exemplo, coloque um servidor RDS, defina o servidor vulnerável para somente aceitar conexões de rede do servidor RDS e faça com que os usuários usem o servidor RDS para acessar o aplicativo em seu servidor vulnerável.)
E, claro, certifique-se de que o CYA informe ao gerenciamento que você identificou um risco de segurança com esse sistema, portanto a decisão de continuar usando-o (e quaisquer brechas de segurança que possam surgir) é de sua responsabilidade, não sua.