Protegendo seu PC com GNU/Linux [Parte 3/4: Intermediário]

Esta é a 3ª parte do Guia de Segurança para GNU/Linux. Para obter o máximo deste tutorial, siga as etapas fornecidas para cada tarefa com um computador executando GNU/Linux ou uma máquina virtual com GNU/Linux como o sistema operacional. Como matéria complementar, é importante que tenha lido a 1ª Parte e a 2ª Parte deste Guia além dos artigos “Mitos sobre Linux“.

Eita prezados, enfim… Estamos chegando a conclusão deste guia, esta é a penúltima parte deste tutorial. Obrigado à todos que acompanharam a série até esta etapa. Mas, vamos ao conteúdo.


Malwares para GNU/Linux

Malware é a abreviação de software mal-intencionado. Qualquer programa ou arquivo cujo propósito seja danificar ou interromper um sistema de computador ou rede é um malware.

De uma forma geral, para um malware espalhar-se entre sistemas e para causar danos, o programa ou arquivo precisa ser executado. Embora haja alguns com possibilidade de autoexecução, este ainda é um conceito geral. Desta forma, diferente de outros sistemas, o GNU/Linux foi desenvolvido de forma que seus usuários não estejam executando sob a conta “root”.

Mesmo em sistemas rodando com o SUDO, que permite ao usuário temporariamente adquirir poderes de root, para que seja executado o usuário precisa digitar ou solicitar estas permissões, ou seja, os programas e arquivos não possuem a liberdade de executarem sem permissão explícita.

Sem a habilidade de executar programa neste estado de login, o malware não consegue instalar-se ou propagar-se através de um sistema GNU/Linux devido às permissões do usuário. O recurso de segurança de permissões do usuário está integrado no GNU/Linux e é uma ferramentas mais efetivas contra a propagação do malware. (Jeffrey Orloff, IBM Developer Works, 2008).

Mesmo o Sistema GNU/Linux sendo projetado com um maior nível de segurança, ainda há vários outros motivos para se preocupar com os malwares. Portanto, executar varreduras ativamente para verificar se há malware ajuda a evitar a sua propagação.

Por exemplo, devido as configurações e níveis de acesso diferentes, o malware executável criado para Windows não executará em um computador GNU/Linux, a menos que o usuário utilize softwares de emulação como o WINE. Porém, em si tratando deste software específico, a infecção não passará do diretório do usuário. Mesmo assim, ainda é algo para com que se preocupar.

O malware pode ser construído para atacar vulnerabilidades específicas que são independentes de plataforma. Por exemplo, há diversos programas maliciosos que exploram brechas em navegadores (Chrome, Firefox, etc), leitores de PDF, softwares para escritório (como LibreOffice, OpenOffice, etc), e clientes de e-mail (Thunderbird, etc).

Outro exemplo é proveniente do malware para várias plataformas que é codificado para responder diferentemente, dependendo do sistema operacional do host. Se o malware detectar o Windows, ele ataca como tal. Se o Red Hat for detectado, diferentes comandos são executados, assim por diante. (Jeffrey Orloff, IBM Developer Works, 2008).


Protegendo contra malware

Além de exploração em falhas específicas de softwares que rodam em diversas plataformas, há malwares que são projetados especificamente para o GNU/Linux, embora menos comum mas não improvável. Isto ocorre principalmente em Servidores que rodam esta plataforma, estes são os maiores alvos dos ataques.

1 – Proteção contra rootkits

Há muito tempo, os rootkits têm sido o calcanhar de Aquiles dos administradores do GNU/Linux. Eles fazem parte da mesma família de software que os cavalos de tróia. Um método rootkit é um conjunto de ferramentas que possibilita que um hacker tenha acesso à conta root (de administrador) em seu computador. Estes pacotes de malware têm diferentes nomes, tais como tOrn e ARK, mas o resultado final é o mesmo: seu computador ou rede não fica mais sob seu controle.

Utilizaremos nesta seção o rkhunter, a fim de lutar contra rootkits e outras possíveis explorações. Este software é bastante útil para varrer seu PC e verificar arquivos suspeitos que podem ter sido instalados por um atacante para obter controle do seu computador.

O rkhunter está disponível em várias distribuições como o Ubuntu, Debian, Linux Mint, Fedora, Mageia, CentOS, Red Hat e seus derivados.

1.1 – Instalando o rkhunter

Instalação no Debian, Ubuntu, Linux Mint e derivados

Digite o comando abaixo (não é necessário estar logado como root, caso o sudo esteja instalado).

Instalação no RHEL, CentOS e derivados

Em distribuição RHEL-based, o rkhunter encontra-se no repositório EPEL. Portanto, é necessário instalá-lo primeiro:

Se o comando acima não surtir efeito e/ou não houver pacote disponível, vamos baixar e instalar manualmente com Wget e RPM:

CentOS e RHEL 5.x

CentOS e RHEL 6.x

CentOS e RHEL 7.x

1.2 – Trabalhando com o RKHunter

Assim que o rkhunter tiver sido instalado com êxito, você poderá executá-lo para verificar várias explorações em seu desktop. Execute:

rkhunter-check
Exemplo de execução inicial do rkhunter

Se o rkhunter estiver executando apropriadamente, você começa a visualizar uma lista de diretórios com a palavra OK ou Aviso (Warning) próxima a eles. Quando iniciado, o rkhunter executa vários tipos de varreduras. Após a conclusão de uma varredura, você começa a próxima pressionando Enter.

Os diferentes tipos de varreduras são:

  • Diretórios;
  • Exploração do desktop;
  • Portas que são comumente utilizadas para acesso à porta dos fundos;
  • Arquivos de inicialização, grupos e contas, arquivos de configuração do sistema e o sistema de arquivos;
  • Aplicações.

Após todas as varreduras serem concluídas, o rkhunter fornece um relatório e cria um arquivo de log com os resultados.

Assim como qualquer outro software, é preciso mantê-lo sempre atualizado regularmente de forma que ele possa detectar as vulnerabilidades e explorações mais recentes:

1.3 – Instalando o CHKRootkit

Para uma proteção um tanto mais abrangente, você pode instalar o chkrootkit e executá-lo junto com o rkhunter.

A maioria dos softwares antivírus não executa apropriadamente junto com um programa antivírus de outra empresa, mas os caçadores de rootkit executarão simbioticamente com outro, como é o caso do chkrootkit.

Instalação no Debian, Ubuntu, Linux Mint e derivados

Para instalar, basta executar o comando abaixo:

Instalação no RHEL, CentOS e derivados

Como o chkrootkit é um software construído em linguagem C, será necessário a instalação das bibliotecas e compiladores essenciais. Em seguida, o download da versão recente do software.

Após download do pacote, vamos descompactar e instalar:

1.4 – Trabalhando com o CHKRootkit

Após a instalação, para executá-lo digite em seu terminal:

Assim como o rkhunter, se o chkrootkit descobrir algo fora do normal, você será informado do possível problema. Nenhum destes programas realmente exclui arquivos do seu computador. Se você for alertado a algo por qualquer um dos programas, pesquise a exploração ou vulnerabilidade que foi relatada e certifique-se não trata-se de um falso-positivo. Em seguida, determine as etapas necessárias para eliminar a ameaça.

Algumas vezes, você só precisa atualizar o sistema operacional ou outro software. Outras vezes, pode ser necessário localizar um programa falso e eliminá-lo (purgá-lo) do sistema.

2 – Instalando antivírus

Embora não seja um costume ouvirmos sobre um PC com Linux infectado por vírus, não quer dizer que isso não acontece.

Usar o Linux não o torna imune a vírus.

Uma das soluções mais conhecidas pelos usuários do GNU/Linux é o ClamAV. É um antivírus de código aberto que está em constante desenvolvimento. O programa é instalado para o repositório principal (Debian, Ubuntu e derivados).

Há uma solução semelhante para sistemas Windows, o ClamWin: uma solução antivírus gratuita e de código aberto (FOSS) para Windows que serve como front-end para o agente de varredura de código aberto ClamAV.

2.1 – Instalando e atualizando o ClamAV (e ClamTK)

Você poderá instalar o software normal para execução em terminal (ClamAV) ou a versão com interface gráfica – GUI (ClamTK, vide imagem abaixo).

Após instalar o ClamAV, é possível especificar se deseja executá-lo manualmente ou continuamente ao conectá-lo a um daemon.

Janela principal do ClamTK

Instalação no Debian, Ubuntu, Linux Mint e derivados

Instalação do ClamAV no RHEL, CentOS e derivados

Em distribuição RHEL-based, o clamav encontra-se no repositório EPEL. Portanto, é necessário instalá-lo primeiro:

Se o comando acima não surtir efeito e/ou não houver pacote disponível, realize o processo para download e instalação manual, indicado anteriormente (neste artigo) para CentOS e RHEL 5.x, 6.x e 7.x, procedimento informado na instalação do rkhunter.

Instalação do ClamTK (GUI para ClamAV) no RHEL, CentOS e derivados

Para instalar o ClamTK, será preciso fazer um download do repositório. Os arquivos binários (ou source) podem ser encontrados em: https://dave-theunsub.github.io/clamtk/

Atualizando o ClamAV

Logo após instalar o ClamAV, geralmente é necessário atualizá-lo, ou seja, atualizar as definições de vírus. As definições de vírus são padrões de código que são exclusivos a diferentes programas de malware. Scanners antivírus comparam os conteúdos dos seus arquivos com os padrões de código em um banco de dados de definições de vírus.

Para atualizar execute:

O comando freshclam não causa nenhuma atualização automática subsequente em suas definições de vírus. A cada vez que desejar obter as definições mais recentes, deve executar o comando novamente. Após realizar a atualização inicial, você poderá julgar conveniente utilizar o argumento -v no comando para primeiro verificar se suas definições estão ou não atualizadas: 

Agora que você atualizou suas definições de vírus, está pronto para iniciar o ClamAV. Para executar uma varredura manual da sua pasta inicial, acesse o prompt do terminal e insira clamscan. Quando o comando clamscan for concluído, você visualizará um relatório de quantos diretórios e arquivos foram varridos e quantos arquivos infectados foram localizados.

Se uma correspondência for localizada, o programa alertará que há um arquivo infectado em seu computador e impede que o código em tal arquivo seja executado.

2.2 – Outras soluções de antivírus

Vale lembrar que é sempre bom pesquisar a melhor solução que se adeque a sua situação. Assim sendo, segue abaixo alguns links de outras soluções de antivírus que podem atender aos requisitos de seu sistema ou ambiente.

Quando se trata de um bom antivírus, livre nem sempre significa melhor. A melhor dica é testar e pesquisar sempre.

Quick links: 7 melhores antivírus para Linux

  1. ClamWin
  2. Bitdefender
  3. Sophos
  4. Comodo
  5. Avast Core Security
  6. F-PROT
  7. ESET NOD32 Antivirus 4

Utilizando um Firewall

Seguindo as etapas de prevenção e proteção, o que deve manter em execução para filtro de todo o tráfego é o Firewall. Por padrão, a maioria das distribuições já possuem uma tabela de regras e filtros de tráfego (o IPTables) e outras distros já implementam inclusive um Firewall básico por linha de comandos o UFW.

Verifique se está com o UFW instalado e ativo em sua distribuição:

comando: ufw status

Caso esteja instalado, mas não ativo, então execute:

Porém, se ainda não estiver instalado, basta executar (Debian, Ubuntu e derivados):

Verifique o processo de instalação para sua distribuição.

Na instalação, as configurações padrão para este firewall possibilitam todo o tráfego de entrada e saída por padrão. Para fazer um uso efetivo do firewall, você precisa criar regras para bloquear acessos indevidos tanto de entrada quanto de saída.

Embora o UFW seja bastante simples de configurar, ele é um software firewall também poderoso, e pode ser operado via linha de comando e através de uma interface gráfica.

Distribuições como o Ubuntu já trazem o UFW instalado por padrão com a função de trabalhar via linha de comando, outras como o Linux Mint trazem o UFW com a sua interface, o GUFW, por padrão.

Nas distros que essa interface não é oferecida, você pode instalar facilmente pela loja do seu sistema, ou através do comando de instalação informado anteriormente.

Usar o GUFW é muito simples,  basta ler as informações que ele te entrega. Se você não quiser pensar muito, apenas ative ele nas configurações padrão.

gufw-status
Interface gráfica do Firewall GUFW
gufw-rules
GUFW, implementação regras simples de filtro de tráfego

Conclusão

Percebemos com esta etapa que mesmo sistemas aparentemente “invulneráveis” são também alvos constantes de ataques. Tanto o CHKRoot quanto o RKHunter não excluem de fato nenhum arquivo, porém alertam sobre os riscos nestes e que podem (ou não) estar infectados ou serem utilizados em ataques. Após a varredura é sempre bom que pesquise a exploração ou vulnerabilidade que foi relatada e certifique-se de que o que foi localizado não é um positivo falso.

Com a utilização do Firewall, você poderá acompanhar o registro do tráfego de tudo que foi liberado ou bloqueado e verificar se houve (ou está tendo) alguma tentativa de acesso indevido.

Dica: não adianta instalar estes softwares e confiar que tudo estará OK. É necessário estar sempre acompanhando e validando os relatórios apresentados e, em seguida, determine as ações necessárias para mitigar a ameaça.

Saiba que muitas das vezes, você só irá precisar atualizar o sistema operacional ou outro software. Outras vezes, pode ser necessário localizar um programa falso e purgá-lo (removê-lo) do seu sistema.

Espero que tenha aproveita as etapas repassadas neste guia. Vale lembrar que você não precisa aplicar todas as soluções aqui apresentadas. Avalie sempre seu ambiente e sistemas e aplique sempre e melhor solução pra você.


Viu algum erro ou gostaria de adicionar alguma sugestão a essa ou outra matéria? Colabore, clique aqui.


Fontes

Andre H O Santos

Pentester, Especialista em Segurança de Redes e Testes de Invasão, Programador, Consultor e Professor de T.I.. Geek Inveterado, Apaixonado por Segurança da Informação e Louco por GNU/Linux. Dedica grande parte do seu tempo para criar soluções que ajudem dezenas de milhares de pessoas com dicas e artigos em Tecnologia e Segurança da Informação. Possui algumas Certificações em Ethical Hacking, Cabling System, Linux e Administração de Redes.

Você pode gostar...

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

1 × 4 =