Antivírus, Antimalware, Antiphishing no CentOS ou Cloudlinux com ClamAV

Este post também está disponível em: English (Inglês)

O AntiVírus ClamAV é bastante utilizado em servidores linux. Possui um mecanismo antivírus eficiente para detectar trojans, vírus, malware, phishing e outras ameaças. Como padrão o ClamAV disponibiliza algumas assinaturas antivírus que são atualizadas através de seu repositório padrão, porém, principalmente em Servidores Web, com PHP, Python etc… onde são instalados todo tipo de aplicação, incluindo WordPress, Joomla… ou MailServers que recebem phishing , vírus, trojans, nos mais diversos arquivos e formatos, se faz necessário assinaturas adicionais para o ClamAV.

Na Web existem vários projetos e sites que oferecem assinaturas grátis ou pagas para o ClamAV, porém é muito importante identificar a qualidade destas assinaturas, é bastante comum encontrar assinaturas que irão gerar o que chamamos de “falso positivo” .

A eXtremeSHOK através do GitHub criou um projeto com nome ClamAV-unofficial-sigs que reúne várias assinaturas confiáveis, disponíveis na Web para o ClamAV, mantendo tudo sempre atualizado .

Além das assinaturas disponíveis pelo projeto, vamos adicionar parte das assinaturas confiáveis que utilizamos com nossos clientes de Gerenciamento de Servidor Linux.

Vamos abordar a seguir o passo a passo para a correta instalação e configuração do ClamAV-unofficial-sigs em servidores CentOS e CloudLinux.

Instale o repositorio epel-release

yum -y update
yum -y install epel-release
yum -y update

Verifique em seu firewall e abra se necessário as portas:

rsync: TCP porta 873
wget/curl : TCP porta 443

Instale o ClamAV e componentes:

yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

Configure o SELinux para permitir o Clamav ( Se Selinux estiver habilitado)
** Verifique se o Selinux está habilitado. Se estiver desabilitado pule este passo.

sestatus

Se o resultado for enable prossiga (se disable pule para usuário ClamAV):

setsebool -P antivirus_can_scan_system 1
setsebool -P clamd_use_jit 1

Crie o grupo e usuário para o ClamAV

groupadd clamav
useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav

Crie o diretório, altere grupo e usuário para ClamAV

mkdir /var/clamav
chown clamav.clamav /var/clamav

Removendo Example 

sed -i '/^Example$/d' /etc/clamd.d/scan.conf

Edite o arquivo scan.conf

nano /etc/clamd.d/scan.conf

Localize LocalSocket e substitua por:

LocalSocket /var/run/clamd.scan/clamd.sock/g

A seguir no shell do linux cole o bloco abaixo:

cat << EOF > /etc/tmpfiles.d/clamav.conf
/var/run/clamd.scan 0755 clam clam
EOF
mv /usr/lib/systemd/system/clamd\@scan.service /usr/lib/systemd/system/clamd\@scan.old
cat << EOF > /usr/lib/systemd/system/clamd\@scan.service
# Run the clamd scanner
[Unit]
Description = clamd scanner (%%i) daemon
After = syslog.target nss-lookup.target network.target
[Service]
Type = simple
ExecStart = /usr/sbin/clamd --foreground=yes
Restart = on-failure
IOSchedulingPriority = 7
CPUSchedulingPolicy = 5
Nice = 19
PrivateTmp = true
MemoryLimit=500M
CPUQuota=50%%
[Install]
WantedBy = multi-user.target
EOF
systemctl daemon-reload

Configurando o FreshClam, cole o bloco abaixo:

sed -i '/^Example$/d' /etc/freshclam.conf
sed -i '/REMOVE ME/d' /etc/sysconfig/freshclam
cat << EOF > /usr/lib/systemd/system/clam-freshclam.service
# Run the freshclam as daemon
[Unit]
Description = freshclam scanner
After = network.target

[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d
Restart = on-failure
IOSchedulingPriority = 7
CPUSchedulingPolicy = 5
Nice = 19
PrivateTmp = true
[Install]
WantedBy = multi-user.target
EOF
systemctl daemon-reload
freshclam
systemctl enable clam-freshclam.service
systemctl start clam-freshclam.service

Habilitar, Iniciar e verificar se está tudo ok com status:

systemctl enable clamd@scan
systemctl start clamd@scan
systemctl status clamd@scan

Instalando Dependências:

yum -y install bind-utils rsync	

Instalação do clamav-unofficial-sigs:

mkdir -p /usr/local/sbin/
wget https://raw.githubusercontent.com/extremeshok/clamav-unofficial-sigs/master/clamav-unofficial-sigs.sh -O /usr/local/sbin/clamav-unofficial-sigs.sh; chmod 755 /usr/local/sbin/clamav-unofficial-sigs.sh
mkdir -p /etc/clamav-unofficial-sigs/
wget https://raw.githubusercontent.com/extremeshok/clamav-unofficial-sigs/master/config/master.conf -O /etc/clamav-unofficial-sigs/master.conf
wget https://raw.githubusercontent.com/extremeshok/clamav-unofficial-sigs/master/config/user.conf -O /etc/clamav-unofficial-sigs/user.conf

Se sua distribuição linux é CentOS 7 ou CloudLinux 7 copie e cole as instruções abaixo:

os_conf="os.centos7-atomic.conf"
wget "https://raw.githubusercontent.com/extremeshok/clamav-unofficial-sigs/master/config/os/${os_conf}" -O /etc/clamav-unofficial-sigs/os.conf

**Nota: para outras distribuições Linux, acesse o link abaixo, e em “Operating System Specific Install” , selecione a melhor opção para seu Linux. clamav-unofficial-sigs

Antes de seguir para o próximo passo, cadastre-se em dois sites que oferecem excelentes assinaturas para o ClamAV.


1 – MalwarePatrol Free
Crie sua conta grátis em : https://www.malwarepatrol.net/free-guard-upgrade-option/
Será exibido em seu browser “Password/Receipt:”
Guarde esta informação, precisaremos dela no próximo passo.


2 – SecuriteInfo Free

Crie sua conta grátis em : https://www.securiteinfo.com/clients/customers/signup
Você receberá um e-mail com um link para ativar sua conta, após a ativação , receberá outro email com seu usuário e senha para login no site.
Faça login e acesse : https://www.securiteinfo.com/clients/customers/account
Clique na aba Setup, verá uma URL a frente de DatabaseCustomURL
Precisamos localizar seu identificador individual que é composto por uma sequencia de 128 caracteres.
Na url a frente de DatabaseCustomURL copie a sequencia após
https://www.securiteinfo.com/get/signatures/
até “/”

Guarde estas informações, vamos utilizá-las no próximo passo.

Os outros repositórios utilizados pelo clamav-unofficial-sigs não necessitam de cadastro, apenas para conhecimento, irei citá-los abaixo:

Yara Rules: https://github.com/Yara-Rules/rules
Urlhaus: https://urlhaus.abuse.ch/
Linux Malware Detect Assinaturas: https://www.rfxn.com/projects/linux-malware-detect/


** Existem na web muitas assinaturas grátis para o ClamAV, infelizmente muitas geram falso positivos na detecção do Virus/Malware. É muito importante verificar na comunidade e outros meios a confiança destas novas assinaturas.

Vamos adicionar no arquivo de configuração que iremos abordar a seguir, dois novos repositórios adicionais de assinaturas para o ClamAV.

MailOrder: https://www.mailborder.com/
MalwareExpert: https://malware.expert/



Configuração das assinaturas para o Clamav:

Edite o arquivo user.conf :

nano /etc/clamav-unofficial-sigs/user.conf

Localize e remova o # das seguintes linhas:

securiteinfo_authorisation_signature="YOUR-SIGNATURE-NUMBER"

Substitua YOUR-SIGNATURE-NUMBER pelo código com 128 caracteres que guardou ao seguir os passos acima em SecuriteInfo Free

A seguir vamos adicionar mais algumas assinaturas.

localize e remova o # das linhas:

declare -a additional_dbs=(
#ftp://ftp.example.net/pub/sigs.ndb
#http://www.example.org/sigs.ldb
)

apague as linhas em negrito(cinza) acima e cole o conteúdo abaixo :

http://cdn.malware.expert/malware.expert.ndb
http://cdn.malware.expert/malware.expert.hdb
http://cdn.malware.expert/malware.expert.ldb
http://cdn.malware.expert/malware.expert.fp
http://sigs.mailborder.com/sigwhitelist.ign2
http://sigs.mailborder.com/sanesecurity.ftm
http://sigs.mailborder.com/junk.ndb
http://sigs.mailborder.com/jurlbl.ndb
http://sigs.mailborder.com/phish.ndb
http://sigs.mailborder.com/rogue.hdb
http://sigs.mailborder.com/scam.ndb
http://sigs.mailborder.com/spamimg.hdb
http://sigs.mailborder.com/spamattach.hdb
http://sigs.mailborder.com/blurl.ndb
http://sigs.mailborder.com/foxhole_generic.cdb
http://sigs.mailborder.com/foxhole_filename.cdb
http://sigs.mailborder.com/malwarehash.hsb
http://sigs.mailborder.com/hackingteam.hsb
http://sigs.mailborder.com/winnow_malware.hdb
http://sigs.mailborder.com/winnow_malware_links.ndb
http://sigs.mailborder.com/winnow_extended_malware.hdb
http://sigs.mailborder.com/winnow.attachments.hdb
http://sigs.mailborder.com/winnow_bad_cw.hdb
http://sigs.mailborder.com/bofhland_cracked_URL.ndb
http://sigs.mailborder.com/bofhland_malware_URL.ndb
http://sigs.mailborder.com/bofhland_phishing_URL.ndb
http://sigs.mailborder.com/bofhland_malware_attach.hdb
http://sigs.mailborder.com/crdfam.clamav.hdb
http://sigs.mailborder.com/porcupine.ndb
http://sigs.mailborder.com/porcupine.hsb
http://sigs.mailborder.com/spam.ldb
http://sigs.mailborder.com/spear.ndb
http://sigs.mailborder.com/spearl.ndb
http://sigs.mailborder.com/foxhole_js.cdb

Execute o Script abaixo para baixar pela primeira vez todas as assinaturas e finalizar algumas configurações. Este processo pode demorar um pouco, aguarde até o final.

/usr/local/sbin/clamav-unofficial-sigs.sh --force

O Script a seguir irá instalar instruções para manter atualizado o sistema e assinaturas:

/usr/local/sbin/clamav-unofficial-sigs.sh --install-cron

O Script a seguir irá instalar instruções para o logrotate referente a clamav-unofficial-sigs:

/usr/local/sbin/clamav-unofficial-sigs.sh --install-logrotate
/usr/local/sbin/clamav-unofficial-sigs.sh --install-man


Nota final: Clientes da HelpSysAdmin de Gerenciamento de Servidor possuem estas e muitas outras assinaturas confiáveis para o ClamAV.