Tyler Franta 589346 Unsplash

10 Dicas para Melhorar a Segurança do seu Site

por Blog Sucuri

Ter um site tornou-se mais fácil do que nunca devido à proliferação de excelentes ferramentas e serviços no espaço de desenvolvimento web. Os sistemas de gerenciamento de conteúdo (CMS), como WordPress, Joomla!, Drupal, Magento e outros, permitem que os proprietários de empresas criem uma presença online rapidamente. As arquiteturas altamente extensíveis do CMS, os plugins avançados e os módulos eficazes reduziram a necessidade de passar anos aprendendo o desenvolvimento da web antes de começar a criar um site.

A facilidade de lançar um negócio online ou site pessoal é ótima. No entanto, existem alguns efeitos colaterais negativos. Vimos muitos webmasters que não entendem como garantir que seu site seja seguro. Há um mal-entendido quando se trata da importância de proteger seu site e de quem é essa responsabilidade.

Hoje, vamos ver quais são os 10 principais passos que todos os proprietários de sites devem seguir para manter o site seguro.

1 – Atualize, atualize, atualize!

Isso é algo que não podemos enfatizar o suficiente aqui na Sucuri. Inúmeros sites são comprometidos todos os dias devido a software desatualizado e inseguro.

É extremamente importante atualizar seu site assim que um novo plugin ou versão do CMS estiver disponível. Essas atualizações podem conter apenas aprimoramentos de segurança ou corrigir uma vulnerabilidade.

A maioria dos ataques a sites é automatizada. Os bots estão constantemente verificando todos os sites que podem para qualquer oportunidade de exploração. Não é mais suficiente atualizar uma vez por mês ou mesmo uma vez por semana, porque é muito provável que os bots encontrem uma vulnerabilidade antes de corrigi-la.

É por isso que recomendamos o uso de um firewall de sites, que virtualmente corrige a falha de segurança assim que as atualizações forem lançadas.

Se você tem um site WordPress, eu pessoalmente recomendo o plugin ‘WP Updates Notifier‘ que envia um e-mail informando quando um plugin ou atualização básica do WordPress está disponível.

2 – Senhas

Ter um site seguro depende muito da sua postura de segurança. Você já pensou em como as senhas que você usa podem ameaçar a segurança do seu site?

Para limpar sites infectados, geralmente precisamos fazer login no site ou no servidor de um cliente usando os detalhes do usuário administrativo. É chocante como senhas root inseguras podem ser. Com logins como admin/admin você acaba não tendo nenhuma senha de verdade.

Existem muitas listas de senhas violadas online. Hackers irão combiná-los com listas de palavras do dicionário para gerar listas ainda maiores de senhas potenciais. Se as senhas que você usa estiverem em uma dessas listas, é apenas uma questão de tempo até que seu site seja comprometido.

Nossas dicas para você ter uma senha forte são:

  • Não reutilize suas senhas. Cada senha que você tem deve ser única. Um gerenciador de senhas pode facilitar isso.
  • Tenha senhas longas. Use mais de 12 caracteres. Quanto mais longa for a senha, mais tempo levará um programa de computador para decifrá-la.
  • Use senhas aleatórias. Os programas de quebra de senha podem adivinhar milhões de senhas em minutos, se contiverem palavras encontradas online ou em dicionários. Se você tiver palavras reais na sua senha, isso não é aleatório. Se você pode facilmente falar sua senha, isso significa que ela não é forte o suficiente. Mesmo usar substituição de caracteres (ou seja, substituindo a letra O com o número 0) pode não ser suficiente.

Existem vários gerenciadores de senhas úteis, como, por exemplo, “LastPass” (online) e “KeePass 2” (offline).

Essas ferramentas brilhantes armazenam todas suas senhas em um formato criptografado e podem facilmente gerar senhas aleatórias com o clique de um botão. Os gerenciadores de senhas tornam possível usar senhas fortes tirando o trabalho de memorizar senhas mais fracas ou anotá-las.

3 – Um Site = Um Lugar

Entendemos que hospedar muitos sites em um único servidor pode parecer ideal, especialmente se você tiver um plano de hospedagem ilimitado na web. Infelizmente, essa é uma das piores práticas de segurança que costumamos ver. Hospedar muitos sites no mesmo local cria uma superfície de ataque muito grande.

Você precisa estar ciente de que a contaminação cruzada de sites é muito comum e ocorre quando um site é afetado negativamente por sites vizinhos no mesmo servidor devido ao mau isolamento no servidor ou à configuração da conta.

Por exemplo, um servidor contendo um site pode ter uma única instalação do WordPress com um tema e 10 plugins que podem ser alvos de um invasor. Se você hospedar 5 sites em um único servidor, um invasor pode ter três instalações do WordPress, duas instalações do Joomla, cinco temas e 50 plugins que podem ser alvos em potencial. Para piorar a situação, uma vez que um invasor encontrou um exploit em um site, a infecção pode se espalhar facilmente para outros sites no mesmo servidor.

Isso pode resultar na invasão de todos os seus sites ao mesmo tempo. Além disso, torna o processo de limpeza muito mais demorado e difícil. Os sites infectados podem continuar a se reinfectar, causando um loop infinito.

Depois que a limpeza for bem-sucedida, você precisará redefinir suas senhas. Cada senha associada a cada site no servidor deve ser alterada depois que a infecção tiver desaparecido. Isso inclui todos os seus bancos de dados do CMS e os usuários do Protocolo de Transferência de Arquivos (File Transfer Protocol – FTP) para cada um desses sites. Se você pular essa etapa, todos os sites poderão ser reinfectados novamente e você voltará à estaca zero.

4 – Acesso Responsável do Usuário

Esta regra aplica-se apenas a sites com vários usuários ou logins. É importante que todos os usuários tenham a permissão adequada de que precisam para realizar seu trabalho. Se permissões superiores forem necessárias momentaneamente, conceda-as, mas, em seguida, reduza-as quando o trabalho estiver concluído. Este é um conceito conhecido como Privilégio Mínimo.

Por exemplo, se alguém quiser escrever uma postagem de blog para você, verifique se a conta não tem privilégios de administrador completos. A conta do seu colaborador só deve ter a capacidade de criar novas postagens e editar suas próprias postagens porque não é necessário que tenha a capacidade de alterar as configurações do seu site.

Ter funções de usuário e regras de acesso cuidadosamente definidas limitará quaisquer erros que possam ser cometidos. Também reduzirá as consequências de contas comprometidas, além de proteger contra danos causados por usuários “desonestos”. Essa é uma parte frequentemente negligenciada do gerenciamento de usuários: monitoramento. Se várias pessoas compartilham uma única conta de usuário e uma alteração indesejada é feita por esse usuário, como você descobre qual pessoa da sua equipe foi a responsável?

Depois de ter contas separadas para cada usuário, você pode ficar de olho no comportamento delas, analisando os registros e conhecendo suas tendências habituais, como quando e onde normalmente acessam o site. Dessa forma, se um usuário fizer login em uma hora estranha ou em um local suspeito, você poderá investigar.

Manter os registros de auditoria é vital para se manter informado sobre qualquer alteração suspeita em seu site. Um log de auditoria é um documento que registra os eventos em um site para que você possa identificar anomalias e confirmar com a pessoa responsável que a conta não foi comprometida.

Sabemos que pode ser difícil para alguns usuários executar logs de auditoria manualmente. Se você tem um site WordPress, pode usar nosso plugin de segurança gratuito ao baixá-lo do repositório oficial do WordPress.

5 – Altere as Configurações Padrão do CMS!

Os aplicativos CMS de hoje (embora fáceis de usar) podem ser complicados do ponto de vista da segurança para os usuários finais. De longe, os ataques mais comuns contra sites são totalmente automatizados. Muitos desses ataques dependem de os usuários terem apenas configurações padrão.

Isso significa que você pode evitar um grande número de ataques simplesmente alterando as configurações padrão ao instalar seu CMS de sua escolha.

Por exemplo, alguns aplicativos do CMS podem ser gravados pelo usuário, permitindo que o usuário instale as extensões desejadas.

Existem configurações que você pode precisar ajustar para controlar os comentários, os usuários e a visibilidade das informações do usuário. As permissões de arquivo (que discutiremos mais adiante) são outro exemplo de uma configuração padrão que pode ser reforçada.

Você pode alterar esses detalhes padrão ao instalar o seu CMS ou posteriormente, mas não se esqueça de fazê-lo.

6 – Seleção de Extensão

A extensibilidade de aplicativos do CMS é algo que os webmasters geralmente adoram, mas também pode representar uma de suas maiores fraquezas. Existem plugins, complementos e extensões que fornecem virtualmente qualquer funcionalidade que você possa imaginar. Mas como saber qual deles é seguro ou não?

Aqui está uma lista das coisas que sempre procuro ao decidir quais extensões usar:

  • Quando a extensão foi atualizada pela última vez: se a última atualização foi há mais de um ano, fico preocupado que o autor tenha parado de trabalhar nela. Eu prefiro usar extensões que estão sendo ativamente desenvolvidas porque isso indica que o autor estaria disposto a implementar uma correção se problemas de segurança fossem descobertos. Além disso, se uma extensão não receber mais suporte do seu autor, ela poderá parar de funcionar se as atualizações principais causarem conflitos.
  • A idade da extensão e o número de instalações: Uma extensão desenvolvida por um autor estabelecido que possui numerosas instalações é mais confiável do que uma com um pequeno número de instalações lançadas por um desenvolvedor iniciante. Os desenvolvedores experientes têm uma ideia melhor sobre as melhores práticas de segurança, além de uma menor probabilidade de prejudicar sua reputação inserindo códigos maliciosos em suas extensões.
  • Fontes legítimas e confiáveis: faça o download de plugins, extensões e temas de fontes legítimas. Fique atento às versões gratuitas piratas e infectadas com malware. Existem algumas extensões cujo único objetivo é infectar tantos sites quanto possível com malware.

7 – Backups

Ter um site invadido não é algo que você gostaria de vivenciar, mas você não quer ser pego de surpresa caso o pior aconteça.

Ter backups de sites é crucial para recuperar seu site de um grande incidente de segurança. Embora não deva ser considerado um substituto para ter uma solução de segurança de site, um backup pode ajudar a recuperar arquivos danificados.

Uma boa solução de backup deve atender aos seguintes requisitos:

  • Primeiro, eles precisam estar fora do site. Se os backups estiverem armazenados no servidor do seu site, eles estarão tão vulneráveis a ataques quanto qualquer outra coisa que esteja lá. Você deve manter seus backups fora do site porque deseja que os dados armazenados sejam protegidos contra hackers e falhas de hardware. Armazenar backups em seu servidor da web também é um grande risco de segurança. Esses backups contêm invariavelmente versões não corrigidas do seu CMS e suas extensões, oferecendo aos hackers acesso fácil ao seu servidor.
  • Em segundo lugar, seus backups devem ser automáticos. Você faz tantas coisas todos os dias que ter que lembrar de fazer o backup do seu site pode ser impensável. Use uma solução de backup que possa ser agendada para atender às necessidades do seu site.
  • Para terminar, tenha uma recuperação confiável. Isso significa ter backups de seus backups e testá-los para garantir que eles realmente funcionem. Você desejará vários backups para redundância. Ao fazer isso, você pode recuperar arquivos de um ponto antes que o hack ocorreu.

8 – Arquivos de Configuração do Servidor

Conheça seus arquivos de configuração do servidor web:

  • Servidores Apache usam o arquivo .htaccess,
  • Servidores Nginx usam nginx.conf,
  • Servidores Microsoft IIS usam web.config.

Na maioria das vezes encontrados no diretório web raiz, os arquivos de configuração do servidor são muito poderosos. Eles permitem que você execute regras do servidor, incluindo diretivas que melhoram a segurança do seu site.

Se você não tiver certeza sobre qual servidor da web você usa, coloque a URL do seu site no Sitecheck e clique em: Website Details.

Veja algumas regras que recomendo que você pesquise e adicione ao seu servidor:

  • Evite a navegação no diretório: impede que usuários mal-intencionados visualizem o conteúdo de todos os diretórios do site. Limitar as informações disponíveis aos invasores é sempre uma precaução de segurança útil.
  • Evite hotlinking de imagens: embora isso não seja estritamente uma melhoria de segurança, impede que outros sites exibam as imagens hospedadas no seu servidor da web. Se as pessoas começarem a criar hotlinking de imagens do seu servidor, o limite de largura de banda do seu plano de hospedagem poderá ser rapidamente consumido, exibindo imagens para o site de outra pessoa.
  • Proteja arquivos confidenciais: você pode definir regras para proteger determinados arquivos e pastas. Os arquivos de configuração do CMS são um dos arquivos mais importantes armazenados no servidor da web, pois contêm os detalhes de login do banco de dados em texto simples. Outros locais, como áreas administrativas, podem ser bloqueados. Você também pode restringir a execução do PHP em diretórios que contêm imagens ou que permitem uploads.

9 – Instale SSL

SSL é o acrônimo para Secure Sockets Layer. É a tecnologia de segurança padrão para estabelecer um link criptografado entre um servidor da web e um navegador.

Fiquei hesitante em incluir o SSL como uma dica para melhorar a segurança do seu site, pois há muitas informações enganosas que sugerem que a instalação do SSL resolverá todos os seus problemas de segurança.

Vamos esclarecer isso: o SSL não protege seu site contra ataques mal-intencionados e não impede a distribuição de malware.

Escrevemos um artigo no blog para explicar a diferença entre SSL e segurança do site.

O SSL criptografa as comunicações entre o Ponto A e o Ponto B – também conhecido como servidor do site e navegador do visitante. Essa criptografia é importante por um motivo específico, pois impede que qualquer pessoa seja capaz de interceptar esse tráfego, conhecido como ataque Man in the Middle (MITM). O SSL é uma ótima maneira de proteger senhas e informações de cartão de crédito (assim como outros dados confidenciais) e iniciativas como Let’s Encrypt tornaram seu acesso gratuito.

Com o empurrão do Google para rotular o site HTTP como “Não seguro”, o SSL é crucial para todos os sites. Forçar HTTPS é inevitável para sites de comércio eletrônico e para qualquer site que aceite envios de formulários com dados de usuário confidenciais ou Informações de Identificação Pessoal (Personally Identifiable Information – PII).

O certificado SSL protege as informações de seus visitantes em trânsito, o que, por sua vez, protege você das multas e dos problemas legais que acompanham o fato de ser considerado em desacordo com o PCI DSS.

Se você está pensando em instalar o SSL no seu site, leia nosso guia para saber mais.

10 – Permissões de Arquivos

As permissões de arquivo definem quem pode fazer o que a um arquivo.

Cada arquivo tem 3 permissões disponíveis e cada permissão é representada por um número:

  • Leitura‘ (4): Visualizar os conteúdos do arquivo.
  • Gravação‘ (2): Mudar os conteúdos do arquivo.
  • Execução‘ (1): Run the program file or script.

Se você quiser permitir várias permissões, basta somar os números, por exemplo para permitir leitura (4) e gravação (2), você configura a permissão de usuário para 6. Se você quiser permitir a um usuário leitura (4), gravação (2) e execução (1), defina a permissão de usuário para 7.

Existem também 3 tipos de usuários:

  • Dono – Geralmente o criador do arquivo, mas isso pode ser alterado. Apenas um usuário pode ser o proprietário.
  • Grupo – Cada arquivo recebe um grupo e qualquer usuário que faça parte desse grupo receberá essas permissões.
  • Público – Todos os outros.

Então, se você quiser que o proprietário tenha acesso de leitura e gravação, o grupo tenha acesso somente de leitura e o público não tenha acesso, as configurações de permissão de arquivo devem ser:

Write, Read, Execute

Quando você visualiza as permissões de arquivo, aparecerá como 640.

As pastas também têm a mesma estrutura de permissões. A única diferença é que o sinalizador “execução” permite tornar o diretório seu diretório de trabalho. Geralmente é o que você quer.

A maioria das instalações de CMS tem todas as permissões configuradas corretamente por padrão. Então, por que passei tanto tempo explicando como as permissões funcionam? Ao procurar por soluções para erros de permissão, em toda a web, você encontrará pessoas mal informadas aconselhando-o a alterar as permissões de arquivo para 666 ou permissões de pasta para 777.

Esse conselho normalmente corrigirá quaisquer erros de permissão, mas é um conselho terrível do ponto de vista da segurança.

Se você definir uma permissão de arquivo para 666 ou permissão de pasta para 777, você acaba de permitir que *qualquer pessoa* insira códigos maliciosos ou exclua seus arquivos!

Conclusão

Se você seguir essas etapas relativamente simples, aumentará a segurança do seu site. Embora elas não garantam que seu site nunca seja invadido, interromperão a grande maioria dos ataques automatizados, reduzindo seu risco.

Estar ciente desses problemas e compreendê-los fornecerá informações valiosas sobre como a tecnologia subjacente funciona. Isso também ajudará a torná-lo um melhor operador de site.