Agora mais do que nunca, estamos vivendo em um mundo onde as 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 resultam em 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, muitas vezes com consequências devastadoras.
Em 2016, Equifax sofreu uma catastrófica violação de dados, onde milhões de registros altamente confidenciais de clientes foram roubados após uma série de lapsos 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.
De fato, meses antes da violação, Equifax foi alertada sobre uma potencial vulnerabilidade 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 o quão crucial é a 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 medidas básicas de segurança que você pode tomar para proteger seu sistema contra invasores.
Vetores de Ataque Cibernético
Os invasores 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 previsíveis, como password1234, representam um risco potencial para seu sistema. Quanto mais curta e menos complexa for a senha, maiores são as chances de seu sistema ser comprometido.
3. Phishing
Phishing é uma técnica de engenharia social onde o atacante envia ao alvo um e-mail que parece ser de uma instituição legítima ou de alguém que 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 se faz passar pelo 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 maliciosos, como vírus, trojans, worms e ransomware, projetados para se espalhar rapidamente e tomar o sistema da vítima como refém em troca de um resgate.
Tais ataques podem ser paralisantes e podem paralisar os negócios de uma organização. Alguns malwares podem ser inseridos 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 o servidor divulgar 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 risco enorme 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 de Homem-no-meio
Comumente abreviado como MITM, o ataque de homem-no-meio envolve um invasor interceptando informações entre dois pontos com o objetivo de interceptação ou modificação do 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 local, geralmente é onde você começaria.
É 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 os pacotes corrige quaisquer brechas que possam estar presentes nas versões existentes de aplicativos.
Para Ubuntu / Debian distribuições:
$ sudo apt update -y $ sudo apt upgrade -y
Para RHEL / CentOS distribuições:
$ 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 em 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 sua porta correspondente que é 443.
$ sudo ufw allow 443/tcp
Em seguida, recarregue para que as mudanças 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 desnecessárias no firewall. Ter múltiplas portas que não estão sendo usadas apenas aumenta o cenário de ataque.
5. Proteja 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 que apareçam como mostrado.
PermitRootLogin no
Depois de desativar o usuário root para login remoto, 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 vá para outro PC Linux – preferencialmente o seu 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
Depois de 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ê pode usar para fazer login. Mantenha-a segura e, preferencialmente, faça backup na nuvem.
Finalmente, 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 alta prioridade ao começar a configurar o seu servidor Linux. Neste guia, destacamos algumas das medidas básicas de segurança que você pode tomar para fortalecer o seu servidor. No próximo tópico, vamos mais fundo e analisamos etapas adicionais que você pode tomar para endurecer o seu servidor.