Agora mais do que nunca, estamos vivendo em um mundo onde organizações são constantemente bombardeadas por violações de segurança motivadas pela aquisição de dados altamente sensíveis e confidenciais, que são altamente valiosos e proporcionam uma grande recompensa financeira.
É bastante surpreendente que, apesar de estarem em alto risco de sofrer um ciberataque potencialmente devastador, a maioria das empresas não está bem preparada ou simplesmente ignora os sinais de alerta, frequentemente com consequências devastadoras.
Em 2016, a Equifax sofreu uma violação de dados catastrófica, onde milhões de registros altamente confidenciais de clientes foram roubados após uma série de falhas de segurança. Um relatório detalhado indicou que a violação poderia ter sido evitada se as medidas de segurança corretas tivessem sido implementadas pela equipe de segurança da Equifax.
Na verdade, meses antes da violação, a Equifax foi alertada sobre uma vulnerabilidade potencial em seu portal da web que comprometeria sua segurança, mas infelizmente, o aviso foi ignorado com graves consequências. Muitas outras grandes corporações têm sido vítimas de ataques, que continuam a crescer em complexidade a cada momento que passa.
Não podemos enfatizar o suficiente a importância da segurança do seu sistema Linux. Você pode não ser uma instituição financeira de alto perfil que é um alvo potencial para violações, mas isso não significa que você deva baixar a guarda.
A segurança deve ser a principal preocupação ao configurar seu servidor Linux, especialmente se ele estiver conectado à internet e acessado remotamente. Ter habilidades básicas de segurança é essencial para proteger seu servidor Linux.
Neste guia, focamos em algumas das medidas básicas de segurança que você pode tomar para proteger seu sistema de intrusos.
Vetores de Ataque Cibernético
Os intrusos explorarão uma variedade de técnicas de ataque para acessar seu servidor Linux. Antes de explorarmos algumas das medidas que você pode tomar para proteger seu sistema, vamos explorar alguns dos vetores de ataque comuns que um hacker pode usar para infiltrar sistemas.
1. Ataques de Força Bruta
A brute-force attack is an attack where the hacker uses trial and error to guess the login credentials of the user. Usually, the intruder will use automated scripts to continuously gain entry until the right combination of the username and password is obtained. This kind of attack is most effective where weak & easily guessable passwords are used.
2. Credenciais Fracas
Como mencionado anteriormente, credenciais fracas como senhas curtas e facilmente adivinháveis como senha1234 representam um risco potencial para seu sistema. Quanto mais curta e menos complexa for a senha, maiores serão as chances de seu sistema ser comprometido.
3. Phishing
O phishing é uma técnica de engenharia social onde o atacante envia ao usuário um e-mail que aparenta ser de uma instituição legítima ou de alguém com quem você conhece ou faz negócios.
Geralmente, o e-mail contém instruções que levam a vítima a divulgar informações sensíveis ou pode conter um link que a direciona a um site falso que imita o site da empresa. Uma vez que a vítima tenta fazer login, suas credenciais são capturadas pelo atacante.
4. Malware
Malware é a abreviatura de software mal-intencionado. Envolve uma ampla gama de aplicativos nocivos, como vírus, trojans, worms e ransomware, que são projetados para se espalhar rapidamente e sequestrar o sistema da vítima em troca de um resgate.
Tais ataques podem ser paralisantes e podem paralisar os negócios de uma organização. Alguns malwares podem ser injetados em documentos, como imagens, vídeos, word ou documentos do PowerPoint e embalados em um e-mail de phishing.
5. Ataques de Negação de Serviço (DoS)
A DoS attack is an attack that limits or impacts the availability of a server or computer system. The hacker floods the server with traffic or ping packets that render the server inaccessible to users for prolonged durations.
A DDoS (Distributed Denial of Service) attack is a kind of DoS that employs multiple systems that flood a target with traffic rendered it unavailable.
6. Ataque de Injeção de SQL
A sigla para Structured Query Language, SQL é uma linguagem usada para se comunicar com bancos de dados. Permite que os usuários criem, excluam e atualizem registros no banco de dados. Muitos servidores armazenam dados em bancos de dados relacionais que usam SQL para interagir com o banco de dados.
Um ataque de injeção de SQL explora uma vulnerabilidade SQL conhecida que faz com que o servidor divulgue informações sensíveis do banco de dados que, de outra forma, não o faria, injetando código SQL mal-intencionado. Isso representa um enorme risco se o banco de dados armazenar informações pessoais identificáveis, como números de cartão de crédito, números de segurança social e senhas.
7. Ataque Man-in-the-Middle
Comumente abreviado como MITM, o ataque de homem-no-meio envolve um invasor interceptando informações entre dois pontos com o objetivo de interceptar ou modificar o tráfego entre as duas partes. O objetivo é espionar a vítima, corromper os dados ou roubar informações sensíveis.
Dicas Básicas para Segurança do seu Servidor Linux
Depois de analisar as possíveis portas de entrada que um invasor pode usar para invadir seu sistema, vamos rever algumas das medidas fundamentais que você pode tomar para proteger seu sistema.
1. Segurança Física
Pouca atenção é dada ao local físico e à segurança do seu servidor, no entanto, se você vai ter seu servidor em um ambiente no local, geralmente é aí que você começa.
É importante garantir que seu servidor esteja seguro em um data center com energia de backup, conectividade de internet redundante e resfriamento suficiente. O acesso ao data center deve ser restrito apenas a pessoal autorizado.
2. Atualize seus Repositórios e Pacotes do Sistema
Uma vez que o servidor esteja configurado, o primeiro passo a tomar é atualizar os repositórios e pacotes de software de aplicativos da seguinte maneira. Atualizar o pacote corrige quaisquer brechas que possam estar presentes nas versões existentes de aplicativos.
Para distribuições Ubuntu / Debian:
$ sudo apt update -y $ sudo apt upgrade -y
Para distribuições RHEL / CentOS:
$ sudo yum upgrade -y
3. Habilite um Firewall
A firewall is an application that filters incoming and outgoing traffic. You need to install a robust firewall such as the UFW firewall and enable it to only allow the required services and their corresponding ports.
Por exemplo, você pode instalá-lo no Ubuntu usando o comando:
$ sudo apt install ufw
Uma vez instalado, ative-o da seguinte maneira:
$ sudo ufw enable
Para permitir um serviço como HTTPS, execute o comando:
$ sudo ufw allow https
Alternativamente, você pode permitir a porta correspondente, que é 443.
$ sudo ufw allow 443/tcp
Em seguida, recarregue para que as alterações entrem em vigor.
$ sudo ufw reload
Para verificar o status do seu firewall, incluindo serviços permitidos e portas abertas, execute
$ sudo ufw status
4. Desligue quaisquer serviços/portas desnecessárias
Além disso, considere desligar quaisquer serviços e portas inutilizadas ou desnecessárias no firewall. Ter múltiplas portas que não estão sendo usadas apenas aumenta o cenário de ataque.
5. Segure o protocolo SSH
As configurações padrão do SSH não são seguras e, portanto, algumas alterações são necessárias. Certifique-se de impor as seguintes configurações:
- Desative o usuário root para login remoto .
- Habilite a autenticação SSH sem senha usando chaves públicas/privadas SSH .
Para o primeiro ponto, edite o arquivo /etc/ssh/sshd_config e modifique os seguintes parâmetros para aparecer como mostrado.
PermitRootLogin no
Depois de desativar o usuário root de fazer login remotamente, crie um usuário regular e atribua privilégios sudo. Por exemplo.
$ sudo adduser user $ sudo usermod -aG sudo user
Para habilitar a autenticação sem senha, primeiro acesse outro PC Linux – preferencialmente o seu próprio PC e gere um par de chaves SSH.
$ ssh-keygen
Em seguida, copie a chave pública para o seu servidor
$ ssh-copy-id user@server-IP
Após fazer login, certifique-se de desabilitar a autenticação por senha editando o arquivo /etc/ssh/sshd_config e modificando o parâmetro mostrado.
PasswordAuthentication no
Tenha cuidado para não perder sua chave privada SSH, pois essa é a única maneira que você poderá usar para fazer login. Mantenha-a segura e, preferencialmente, faça um backup na nuvem.
Por fim, reinicie o SSH para aplicar as alterações
$ sudo systemctl restart sshd
Resumo
Em um mundo com ameaças cibernéticas em evolução, a segurança deve ser uma prioridade alta enquanto você configura seu servidor Linux. Neste guia, destacamos algumas das medidas básicas de segurança que você pode tomar para fortalecer seu servidor. No próximo tópico, aprofundaremos e analisaremos etapas adicionais que você pode tomar para proteger ainda mais seu servidor.