Aller à : navigation, rechercher

SAMBA - Bloquer les cryptolocker ransomware sur vos serveurs de fichiers samba


Pour accéder aux autres documentations Samba4, cliquez ici : Autres documentations Samba

Besoins d'accompagnement, n'hésitez pas à nous contacter chez http://www.tranquil.it

Objectif

L'intérêt de cette documentation est de coupler l'outil fail2ban a la fonction d'audit de samba afin de:

  • bloquer l'accès au serveur cifs en cas de détection de fichier avec extension de cryptolocker sur le serveur
  • envoyer un mail d'alerte en cas d'activation du fail2ban

Installation

Installation fail2ban et ssmtp (pour envoie de mail à technique@mondomaine.fr).

apt-get install fail2ban ssmtp

Configuration de l'envoi d'email en cas de détection de ransonware

Configurer le ssmtp pour utiliser le zimbra comme relais mail

echo -e "mailhub=srvmail.$(hostname -d)\nrewriteDomain=mondomaine.fr\nFromLineOverride=YES"  > /etc/ssmtp/ssmtp.conf


Configuration de l'audit dans samba

Modification du fichier /etc/samba/smb.conf. Dans la section global, rajouter

[global]
   ...
   full_audit:failure = none
   full_audit:success = pwrite write rename
   full_audit:prefix = IP=%I|USER=%u|MACHINE=%m|VOLUME=%S
   full_audit:facility = local7
   full_audit:priority = NOTICE

Après dans chaque section, rajouter la ligne ci-dessous

[partages]
   ...
   vfs objects = full_audit

Configuration du fail2ban pour les ransomware

Créer le fichier de configuration /etc/fail2ban/filter.d/samba.conf

!!! Penser à ajouter manuellement ou automatiquement toute nouvelles extensions de ransonware découverte !!!

[Definition]
failregex = smbd.*\:\ IP=<HOST>\|.*\.locky$
           smbd.*\:\ IP=<HOST>\|.*_Locky_recover_instructions\.txt$ 
           smbd.*\:\ IP=<HOST>\|.*\.vvv$
           smbd.*\:\ IP=<HOST>\|.*how_recover.*\.html$
           smbd.*\:\ IP=<HOST>\|.*how_recover.*\.txt$
           smbd.*\:\ IP=<HOST>\|.*\.aaa$
           smbd.*\:\ IP=<HOST>\|.*\.crjoker$
           smbd.*\:\ IP=<HOST>\|.*\.cryptotorlocker.*$
           smbd.*\:\ IP=<HOST>\|.*\.ecc$
           smbd.*\:\ IP=<HOST>\|.*\.encrypted$
           smbd.*\:\ IP=<HOST>\|.*\.exx$
           smbd.*\:\ IP=<HOST>\|.*\.ezz$
           smbd.*\:\ IP=<HOST>\|.*\.frtrss$
           smbd.*\:\ IP=<HOST>\|.*\.hydracrypt_ID.*$
           smbd.*\:\ IP=<HOST>\|.*\.micro$
           smbd.*\:\ IP=<HOST>\|.*\.r5a$
           smbd.*\:\ IP=<HOST>\|.*\.ttt$
           smbd.*\:\ IP=<HOST>\|.*\.vault$
           smbd.*\:\ IP=<HOST>\|.*\.xxx$
           smbd.*\:\ IP=<HOST>\|.*gmail.*\.crypt$
           smbd.*\:\ IP=<HOST>\|.*recover_instruction.*\..*$
           smbd.*\:\ IP=<HOST>\|.*restore_fi.*\..*$
           smbd.*\:\ IP=<HOST>\|.*want your files back\..*$
           smbd.*\:\ IP=<HOST>\|confirmation\.key$
           smbd.*\:\ IP=<HOST>\|cryptolocker\..*$
           smbd.*\:\ IP=<HOST>\|decrypt_instruct.*\..*$
           smbd.*\:\ IP=<HOST>\|enc_files\.txt$
           smbd.*\:\ IP=<HOST>\|help_decrypt.*\..*$
           smbd.*\:\ IP=<HOST>\|help_recover.*\..*$
           smbd.*\:\ IP=<HOST>\|help_restore.*\..*$
           smbd.*\:\ IP=<HOST>\|help_your_file.*\..*$
           smbd.*\:\ IP=<HOST>\|how to decrypt.*\..*$
           smbd.*\:\ IP=<HOST>\|how_recover.*\..*$
           smbd.*\:\ IP=<HOST>\|how_to_decrypt.*\..*$
           smbd.*\:\ IP=<HOST>\|how_to_recover.*\..*$
           smbd.*\:\ IP=<HOST>\|howto_restore.*\..*$
           smbd.*\:\ IP=<HOST>\|howtodecrypt.*\..*$
           smbd.*\:\ IP=<HOST>\|install_tor.*\..*$
           smbd.*\:\ IP=<HOST>\|last_chance\.txt$
           smbd.*\:\ IP=<HOST>\|readme_decrypt.*\..*$
           smbd.*\:\ IP=<HOST>\|readme_for_decrypt.*\..*$
           smbd.*\:\ IP=<HOST>\|recovery_file\.txt$
           smbd.*\:\ IP=<HOST>\|recovery_key\.txt$
           smbd.*\:\ IP=<HOST>\|vault\.hta$
           smbd.*\:\ IP=<HOST>\|vault\.key$
           smbd.*\:\ IP=<HOST>\|vault\.txt$
           smbd.*\:\ IP=<HOST>\|your_files\.url$
           smbd.*\:\ IP=<HOST>\|recovery+.*\..*$
           smbd.*\:\ IP=<HOST>\|.*\.cerber$
           smbd.*\:\ IP=<HOST>\|.*decrypt my file.*\..*$
           smbd.*\:\ IP=<HOST>\|help_file_.*\..*$
           smbd.*\:\ IP=<HOST>\|.*\.coverton$
           smbd.*\:\ IP=<HOST>\|.*warning-!!.*\..*$
           smbd.*\:\ IP=<HOST>\|.*_recover_.*\..*$
           smbd.*\:\ IP=<HOST>\|.*rec0ver.*\..*$
           smbd.*\:\ IP=<HOST>\|_help_instruct.*\..*$
           smbd.*\:\ IP=<HOST>\|.*recover}-.*\..*$
           smbd.*\:\ IP=<HOST>\|.*!recover!.*\..*$
           smbd.*\:\ IP=<HOST>\|.*-recover-.*\..*$
           smbd.*\:\ IP=<HOST>\|de_crypt_readme\..*$
           smbd.*\:\ IP=<HOST>\|help_instructions\..*$
           smbd.*\:\ IP=<HOST>\|.*decryptmyfiles.*\..*$
           smbd.*\:\ IP=<HOST>\|decrypt-instruct.*\..*$
           smbd.*\:\ IP=<HOST>\|.*files_are_encrypted\..*$
           smbd.*\:\ IP=<HOST>\|.*\.cryp1$
           smbd.*\:\ IP=<HOST>\|.*\.rsnslocked$
           smbd.*\:\ IP=<HOST>\|.*\.zcrypt$
           smbd.*\:\ IP=<HOST>\|.*\.silent$
           smbd.*\:\ IP=<HOST>\|.*\.crypz$
           smbd.*\:\ IP=<HOST>\|.*\.encrypt$
           smbd.*\:\ IP=<HOST>\|.*\.locked$
           smbd.*\:\ IP=<HOST>\|.*\.zepto$
           smbd.*\:\ IP=<HOST>\|.*\.bart\.zip$
           smbd.*\:\ IP=<HOST>\|.*\.xtbl$
           smbd.*\:\ IP=<HOST>\|.*\.cawwcca$
           smbd.*\:\ IP=<HOST>\|.*\.WCRY$
           smbd.*\:\ IP=<HOST>\|.*\.WNCRY$
           smbd.*\:\ IP=<HOST>\|.*\.wnry$
           smbd.*\:\ IP=<HOST>\|.*\.wa$
           smbd.*\:\ IP=<HOST>\|.*\.odin$
           smbd.*\:\ IP=<HOST>\|.*\_READ_THIS_FILE.*$
           smbd.*\:\ IP=<HOST>\|.*\_HELP_HELP_.*$

ignoreregex =

Créer le fichier /etc/fail2ban/jail.d/samba.conf

[samba]
filter = samba
enabled = true
action = iptables-multiport[name=samba, port="135,139,445,137,138", protocol=tcp]
         mail[name=samba, dest=technique@mondomaine.fr]
logpath = /var/log/syslog
maxretry = 1
findtime = 600 
bantime = 844000

Restart des services

service fail2ban restart
service samba reload


Validation de la configuration

Tester l'envoi d Email en cas de cryptolocker sur le serveur

echo "Subject: sendmail test" | sendmail -v technique@mondomaine.fr

Simulation d'un ransomware sur les partages

Tester la création de deux fichiers .locky sur le serveur de fichier depuis une machine accédant au partage

Ou

touch test.txt
smbclient  //srvfichiers/partages -U $(smbclient -L srvfichiers -N 2>&1 |grep Domain |cut -d '[' -f 2 |cut -d ']' -f 1 | head -n1)/administrateur
put  test.txt
rename  test.txt test.vvv
del test.vvv 
exit 
rm -f test.txt

Comment débloquer une machine après nettoyage

fail2ban-client get samba actionunban NOMMACHINEBLOCKER

ou

 fail2ban-client set samba unbanip NOMMACHINEBLOCKER

et

/etc/init.d/fail2ban restart

Listing des règles iptables

iptables -L
iptables -D fail2ban-samba 1

Status d'une jail

fail2ban-client status samba