8 dicas essenciais para proteger o servidor de aplicativos da Web

Na maioria dos casos, os servidores de aplicativos da Web precisam ser acessíveis publicamente, o que significa que estão expostos a todos os tipos de ameaças.

Muitas dessas ameaças são previsíveis e facilmente evitáveis, enquanto outras são desconhecidas e podem pegá-lo desprevenido. Para minimizar a possibilidade deste último caso, oferecemos uma lista de dicas essenciais para manter os servidores de aplicações web o mais seguros possível.

Antes de começar com a lista de dicas, você precisa entender que um servidor de aplicativos da Web não é uma ilha. O servidor é o componente central no farm de aplicativos Web que possibilita a hospedagem e a operação de um aplicativo Web. Portanto, para proteger, é preciso levar em consideração todos os componentes que o cercam e proteger todo o ambiente da aplicação web.

Um ambiente básico para hospedar e executar aplicativos da Web inclui o sistema operacional (Linux, Windows), o software do servidor da Web (Apache, Nginx), um servidor de banco de dados. Se algum desses componentes for invadido, os invasores poderão obter acesso e executar todas as ações maliciosas que desejarem.

Uma primeira e básica dica para proteger um ambiente como o descrito acima é ler as diretrizes de segurança e a lista de melhores práticas para cada um dos componentes. Dito isso, vamos revisar várias diretrizes de segurança de bom senso que se aplicam a quase todos os ambientes de aplicativos da Web.

O firewall desmistificou

Você pode ficar tentado a verificar rapidamente este item, pensando: “Sorte minha, já tenho um firewall protegendo minha rede”. Mas é melhor você segurar seus cavalos.

Seu firewall pode estar cuidando das fronteiras de sua rede, mantendo os bandidos fora e os mocinhos dentro, mas com certeza está deixando uma porta aberta para invasores invadirem seu servidor de aplicativos web.

Como?

Simples: seu firewall de rede deve pelo menos permitir tráfego de entrada nas portas 80 e 443 (ou seja, HTTP e HTTPS), e não sabe quem ou o que está passando por essas portas.

O que você precisa para proteger seu aplicativo é um firewall de aplicativo da Web (WAF) que analisa especificamente o tráfego da Web e bloqueia qualquer tentativa de explorar vulnerabilidades, como scripts entre sites ou injeção de código. Um WAF funciona como um antivírus e antimalware típico: ele procura padrões conhecidos no fluxo de dados e o bloqueia quando detecta uma solicitação maliciosa.

  6 melhores derivados do Ubuntu para conferir

Para ser eficaz, o WAF precisa ter seu banco de dados constantemente atualizado com novos padrões de ameaças, para poder bloqueá-los. O problema com a prevenção de ataques baseada em padrões é que seu aplicativo da Web pode ser um dos primeiros alvos de uma nova ameaça da qual seu WAF ainda não está ciente.

Por esses motivos, seu aplicativo da Web precisa de camadas de proteção adicionais além do firewall de rede.

Verificar vulnerabilidades específicas da Web

Novamente, não pense que seu servidor de aplicativos da web está livre de vulnerabilidades apenas porque seu scanner de segurança de rede diz isso.

Os scanners de rede não podem detectar vulnerabilidades específicas do aplicativo. Para detectar e eliminar essas vulnerabilidades, você deve submeter os aplicativos a uma série de testes e auditorias, como testes de penetração, verificação de caixa preta e auditoria de código-fonte. Nenhum desses métodos é à prova de balas, no entanto. Idealmente, você deve executar o maior número possível deles para eliminar todas as vulnerabilidades.

Por exemplo, scanners de segurança, como Invicti, certifique-se de que nenhum código explorável chegue ao ambiente de produção. Mas pode haver vulnerabilidades lógicas que só podem ser detectadas por auditoria manual de código. A auditoria manual, além de custar muito, é um método humano e, portanto, sujeito a erros. Uma boa ideia para fazer esse tipo de auditoria sem gastar muito é incorporá-la no processo de desenvolvimento, principalmente educando seus desenvolvedores.

Eduque seus desenvolvedores

Os desenvolvedores tendem a pensar que seus aplicativos são executados em mundos ideais, onde os recursos são ilimitados, os usuários não cometem erros e não há pessoas com intenções implacáveis. Infelizmente, em algum momento, eles precisam enfrentar problemas do mundo real, especialmente aqueles relacionados à segurança da informação.

Ao desenvolver aplicativos da Web, os codificadores devem conhecer e implementar mecanismos de segurança para garantir que estejam livres de vulnerabilidades. Esses mecanismos de segurança devem fazer parte do guia de melhores práticas que a equipe de desenvolvimento deve cumprir.

A auditoria de qualidade de software é usada para garantir a conformidade com as melhores práticas. As práticas recomendadas e a auditoria são as únicas maneiras de detectar vulnerabilidades lógicas, como (por exemplo) passar parâmetros não criptografados e visíveis dentro de uma URL, que um invasor pode alterar facilmente para fazer o que deseja.

  Como obter status enviado e visto para e-mails do Gmail

Desative a funcionalidade desnecessária

Supondo que os aplicativos da Web sejam o mais livre de erros possível e o farm da Web esteja protegido, vamos ver o que pode ser feito no próprio servidor para protegê-lo contra ataques.

Uma dica básica de bom senso é reduzir o número de pontos de entrada potencialmente vulneráveis. Se os invasores puderem explorar qualquer um dos componentes do servidor da Web, todo o servidor da Web poderá estar em perigo.

Faça uma lista de todas as portas abertas e serviços ou daemons em execução no seu servidor e feche, desative ou desligue os desnecessários. O servidor não deve ser usado para nenhuma outra finalidade além de executar seus aplicativos da Web, portanto, considere mover todas as funcionalidades adicionais para outros servidores em sua rede.

Use ambientes separados para desenvolvimento, teste e produção

Desenvolvedores e testadores precisam de privilégios nos ambientes em que trabalham que não deveriam ter no servidor de aplicativos ativo. Mesmo se você confiar cegamente neles, suas senhas podem facilmente vazar e cair em mãos indesejadas.

Além de senhas e privilégios, nos ambientes de desenvolvimento e teste, geralmente há backdoors, arquivos de log, código-fonte ou outras informações de depuração que podem expor dados confidenciais, como nomes de usuário e senhas de banco de dados. O processo de implantação do aplicativo da Web deve ser feito por um administrador, que deve garantir que nenhuma informação confidencial seja exposta após a instalação do aplicativo no servidor ativo.

O mesmo conceito de segregação precisa ser aplicado aos dados do aplicativo. Testadores e desenvolvedores sempre preferem dados reais para trabalhar, mas não é uma boa ideia conceder a eles acesso ao banco de dados de produção, ou mesmo a uma cópia dele. Além de preocupações óbvias com a privacidade, o banco de dados pode conter parâmetros de configuração que revelam as configurações internas do servidor – como endereços de terminais ou nomes de caminhos, para citar alguns.

Mantenha o software do servidor atualizado

Por mais óbvio que possa parecer, essa é uma das tarefas mais negligenciadas. A SUCURI descobriu que 59% dos aplicativos CMS estavam desatualizados, o que está sujeito a riscos.

Novas ameaças aparecem todos os dias, e a única maneira de evitar que elas prejudiquem seu servidor é sempre instalar os patches de segurança mais recentes.

Mencionamos anteriormente que os firewalls de rede e os scanners de segurança de rede não são suficientes para impedir ataques a aplicativos da web. Mas eles são necessários para proteger seu servidor de ameaças comuns de segurança cibernética, como ataques DDoS. Portanto, certifique-se de ter esses aplicativos sempre atualizados e que estejam protegendo efetivamente seu aplicativo de negócios.

  12 melhores softwares de marketing por e-mail premium para negócios em crescimento

Restringir acesso e privilégios

Uma medida básica de segurança é manter o tráfego de acesso remoto — como RDP e SSH — criptografado e encapsulado. Também é uma boa ideia manter uma lista reduzida de endereços IP de onde o acesso remoto é permitido, certificando-se de que qualquer tentativa de log remotamente de qualquer outro IP seja bloqueada.

Os administradores ocasionalmente concedem às contas de serviço todos os privilégios possíveis porque sabem que, ao fazer isso, “tudo funcionará”. Mas essa não é uma boa prática, pois os invasores podem usar vulnerabilidades nos serviços para penetrar no servidor. Se esses serviços forem executados com privilégios de administrador, eles poderão capturar todo o servidor.

Um bom equilíbrio entre segurança e praticidade exige que cada conta — tanto contas de login quanto contas de serviço — tenha os privilégios necessários para realizar seu trabalho e nada mais.

Por exemplo, você pode definir contas diferentes para um administrador realizar tarefas diferentes: uma para fazer backups, outra para limpar arquivos de log, outras para alterar a configuração de serviços e assim por diante. O mesmo se aplica a contas de banco de dados: um aplicativo geralmente precisa apenas de permissões para ler e gravar dados e não para criar ou descartar tabelas. Portanto, ele deve ser executado com uma conta com privilégios limitados para realizar as tarefas que ele precisa executar.

Fique de olho nos logs do servidor

Os arquivos de log estão lá por um motivo.

Os administradores devem monitorá-los regularmente para detectar qualquer comportamento suspeito antes que ele cause algum dano. Ao analisar os arquivos de log, você pode descobrir muitas informações para ajudar a proteger melhor o aplicativo. Se ocorrer um ataque, os arquivos de log podem mostrar quando e como ele começou, ajudando a controlar melhor os danos.

Você também deve ter um procedimento automatizado para excluir arquivos de log antigos ou remover informações desatualizadas, para evitar que consumam todo o espaço de armazenamento disponível no servidor.

Dica bônus: mantenha-se informado

Há muitas informações gratuitas e úteis na Internet que você pode usar para beneficiar seu aplicativo da web. Não perca nenhuma nova postagem em blogs de segurança respeitáveis ​​(como este) e mantenha-se informado sobre o que está acontecendo no setor de segurança e web.

Tutoriais, cursos, vídeos e livros também são fontes de conhecimento útil. Pratique gastar uma ou duas horas por semana apenas para se manter informado sobre as notícias do setor — isso lhe dará a tranquilidade de saber que você está fazendo a coisa certa para manter seus aplicativos protegidos.