IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

benjamin.f

[Actualité] Whitelist FSRM contre les ransomwares sur vos serveurs de fichiers Windows

Noter ce billet
par , 05/05/2017 à 14h30 (1968 Affichages)
Bonjour,

Suite à la nouvelle vague d'e-mails malveillant contenant une variante de Locky, je me décide à sortir un petit billet sur une mesure de prévention simple trouvée sur le net, mais à mon avis insuffisamment bien exploitée.

Intro
Loin d'être LA solution, puisque cela ne protège que partiellement les fichiers exposés à certaines souches de ransomwares ; ceux qui modifient les extensions des fichiers qu'ils cryptent.

Le réel avantage, c’est que la mise en œuvre peut se faire en transparence sur vos serveurs de fichiers Windows.
Vous ne vous heurterez donc pas aux utilisateurs récalcitrants.
Néanmoins, cela n’empêche pas d’informer et de continuer la sensibilisation.

Avant de commencer, assurez-vous d'avoir des serveurs de fichiers correctement gérés via la méthode AGDLP de Microsoft (voir ici).
L'Idée
Il existe bon nombre de tutos sur internet permettant d'éviter l'enregistrement des extensions de ransomwares connus, sur vos serveurs, via FSRM.

Le problème est que les souches permettent de créer des centaines de variantes, et qu'il est juste impossible de tenir correctement à jour cette liste, ne sachant par quelle extension nous allons être mangés.

Sur le principe du moindre privilège, il est préférable de fonctionner par "white liste".

La pratique
Assurez-vous d'avoir le service de rôle FSRM d'installé, sinon installez le.

Pour mettre en oeuvre la solution, il faut interdire toutes les extensions (*.*), sauf celles permises au sein de votre SI.

Pour récupérer les extensions à mettre en whitelist, vous pouvez utiliser un script permettant de faire l’inventaire des extensions présentent sur votre serveur de fichiers, et ainsi générer un" groupe de fichiers" directement dans FSRM:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
$l=@()
$i = gci -Recurse -File -Force -Path $Path -ErrorAction SilentlyContinue | ?{($_.Attributes -notmatch "Hidden") -and ($_.Extension -like "*.*")}
foreach ($o in $i) {
    if ($l -notcontains ($e=('*'+ $o.Extension +'*'))) {$l += $e}
    }   
}
cela peut prendre du temps, cela dépend des données présentes sur votre serveur de fichiers.

Pour plus de sécurité vous pouvez faire cela sur une VM isolée, cela permettra de faire au passage une restauration complète de votre sauvegarde, et ainsi valider son intégrité.

Si vous redirigez le dossier "mes documents" de vos utilisateurs, vous ne devriez normalement pas avoir accès à leurs données personnelles.

Pour récupérer les extensions vous pouvez toujours essayer d'utiliser une restauration de sauvegarde et bidouiller les droits...

Le plus simple reste à rappeler à vos utilisateurs que ces fichiers ne font pas partit de la politique de sauvegarde, et que les dossiers professionnels doivent être enregistrés dans les partages prévus à cet usage.
La commande suivante créera un nouveau groupe de fichiers bloquant tous les fichiers à l'exception des extensions déjà présentent sur votre serveur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
New-fsrmFileGroup -Name RansomWare -IncludePattern "*" -ExcludePattern $l
La dernière commande servira à créer le nouveau filtre de fichiers avec notre whitelist.

Je vous conseil dans un premier temps de faire un filtre passif, afin de vous assurer que tout est en ordre.
Ensuite, une fois la période de validation que vous aurez définie passée, vous pourrez passer en actif.

C'est toujours possible en commande PS:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
#Supprimez l'option -Active pour rester en mode passif
New-FsrmFileScreen -Path $Path -IncludeGroup $Name -Active
Le script complet Create-FsrmWhiteList.zip

Conclusion
Comme je l'ai rappelé en introduction, cela ne représente qu'un petit maillon d'une protection, mais il est facile de mettre cette solution en place.
Et puis comme le dit le proverbe :
"une chaîne n'est pas plus forte que sont maillon le plus faible"

L'important dans ce billet, c'est aussi de voir plus loin que le fait d'utiliser FSRM.
Il faut intégrer l'idée de gérer exclusivement ce dont nous avons vraiment besoin, et d'exclure le reste.

Sur une nouvelle implémentation par exemple; Il est important de définir les types de fichiers qui seront pris en compte par le besoin, et intégrer votre filtre "by design", à la mise en place du serveur.

Le principe du "least privilège" ne ce réduit pas aux serveurs de fichiers, mais devrais s'appliquer à l'ensemble du SI (dans la mesure du possible), afin d'en améliorer la sécurité.

Je rappelle aussi que le meilleur moyen de se protéger est de sensibiliser les utilisateurs, et en cas de catastrophe d'avoir des sauvegardes récentes.

Si vous avez des remarques ou des améliorations à porter à cet article (ou au script), vous pouvez en faire part en commentaire ou par message privé.
En vous remerciant d'avoir pris le temps de me lire.

Benjamin.F

Envoyer le billet « Whitelist FSRM contre les ransomwares sur vos serveurs de fichiers Windows » dans le blog Viadeo Envoyer le billet « Whitelist FSRM contre les ransomwares sur vos serveurs de fichiers Windows » dans le blog Twitter Envoyer le billet « Whitelist FSRM contre les ransomwares sur vos serveurs de fichiers Windows » dans le blog Google Envoyer le billet « Whitelist FSRM contre les ransomwares sur vos serveurs de fichiers Windows » dans le blog Facebook Envoyer le billet « Whitelist FSRM contre les ransomwares sur vos serveurs de fichiers Windows » dans le blog Digg Envoyer le billet « Whitelist FSRM contre les ransomwares sur vos serveurs de fichiers Windows » dans le blog Delicious Envoyer le billet « Whitelist FSRM contre les ransomwares sur vos serveurs de fichiers Windows » dans le blog MySpace Envoyer le billet « Whitelist FSRM contre les ransomwares sur vos serveurs de fichiers Windows » dans le blog Yahoo

Mis à jour 10/11/2017 à 16h51 par benjamin.f

Catégories
Administration système

Commentaires

  1. Avatar de salmodes
    • |
    • permalink
    Super pour la démarche, c'est exactement ce que je cherchais a faire, ce petit script !! alalal ! encore merci
  2. Avatar de salmodes
    • |
    • permalink
    J'en profite car j'ai fais un petit script python pour faire sensiblement la même chose, hormis que je génère des règles par répertoire racine de C par exemple ou des dossiers partagés. C'est en python 3.7 :

    ######################################
    import os
    import glob
    import os.path
    from collections import Counter
    import re


    def listdirectory(path):
    fichier=[]
    l = glob.glob(path+'\\*')
    for i in l:
    if os.path.isdir(i): fichier.extend(listdirectory(i))
    else: fichier.append(i)
    return fichier


    def scanextension(mon_fichier):
    indice = 0
    extension = []
    for i in mon_fichier:
    chaine = str(mon_fichier[indice]).lower()
    indice += 1
    chaine12 = chaine.split(".")
    if len(str(chaine12[-1])) < 10 :
    extension.append(chaine12[-1])
    #print(extension)
    cpt = Counter(extension)
    #print ('\n'.join(['{} fois {}'.format(cpt[i],i) for i in cpt]))
    #print(extension_liste_split)

    liste = ""
    for i in cpt :
    liste += "*."+'{}'.format(i)+","
    return liste


    def fsrmRules(split_chemin,liste):
    fichier = open("RansomWare.txt", "a")
    exp_chemin = re.sub("[^a-zA-Z0-9_]",'',split_chemin)
    exp_liste = re.sub("[^a-zA-Z0-9_,^*,^.]",'',liste)
    fichier.write('New-fsrmFileGroup -Name RansomWare'+exp_chemin+' -IncludePattern "*" -ExcludePattern '+exp_liste[:-1]+'\n')
    fichier.write('New-FsrmFileScreen -Path "'+split_chemin+'" -IncludeGroup "RansomWare'+exp_chemin+'"\n \n')
    fichier.close()
    return fichier


    fin = False
    while fin is not True:
    indice = 0
    chemin = input("Saisir un ou plusieurs chemins de scan sous la syntaxe suivante : C:\Windows,C:\Program Files (x86) : ")
    split_chemin = chemin.split(",")
    for i in split_chemin :
    print(split_chemin[indice])
    scan = listdirectory(split_chemin[indice])
    liste = scanextension(scan)
    fichier = fsrmRules(split_chemin[indice],liste)
    indice += 1
    fin = True

    ###########################

    Ce qui donne :

    New-fsrmFileGroup -Name RansomWarecProgramFilesx86 -IncludePattern "*" -ExcludePattern *.chm,*.dll,*.exe,*.sfx,*.ion,*.txt,*.ttt,*.htm,*.pdf,*.aapp,*.pak,*.dat,*.bin,*.manifest,*.ini,*.fra,*.json,*.sig,*.html,*.enu,*.appx,*.api,*.xdc,*.pmp,*.mpp,*.x3d,*.otf,*.cer,*.der,*.gif,*.css,*.acrotheme,*.js,*.svg,*.png,*.ico,*.jpg,*.cur,*.pfm,*.pfb,*.spp,*.helpcfg,*.dic,*.aff,*.plist,*.olb,*.rtl,*.o,*.mui,*.xrmms,*.store,*.cat,*.xsd,*.tlb,*.bmp,*.inc,*.rll,*.msi,*.conf,*.xml,*.xpi,*.crx,*.aip,*.idrc,*.pln,*.oxt,*.dotx,*.docx,*.rtf,*.xsl,*.psi,*.propdesc,*.ins,*.config,*.vbs,*.wmf,*.mid,*.thmx,*.eftx,*.mp4,*.wmv,*.msp,*.mcxml,*.acl,*.acc,*.hlp,*.vsl,*.vrd,*.xsn,*.odc,*.mdb,*.hxs,*.hxc,*.hxt,*.hxk,*.xla,*.gra,*.one,*.opg,*.ttf,*.onepkg,*.hol,*.h,*.potx,*.vssx,*.doc,*.ppt,*.xls,*.scm,*.xltx,*.nrr,*.xls3,*.asp,*.accdu,*.accde,*.accda,*.vsto,*.ecf,*.xap,*.bdr,*.fae,*.sam,*.rdlc,*.add,*.bundle,*.cfg,*.pdl,*.xll,*.xlam,*.mdl,*.man,*.wav,*.wma,*.zip,*.cpl,*.dub,*.kic,*.orp,*.cab,*.pem,*.inf,*.gpd,*.lex,*.poc,*.dpv,*.pri,*.icm,*.tpn,*.tll,*.vstx,*.dwg,*.cnv,*.accft,*.accdt,*.oft,*.hxn,*.hxl,*.lnk,*.ttc,*.odf,*.mof,*.flt,*.wpg,*.elm,*.its,*.shx,*.fmp,*.msg,*.ocx,*.xlsx,*.pub,*.hash,*.log,*.targets,*.tv13,*.sy_,*.c,*.dynamic,*.lib,*.vmsg,*.vlcl,*.iso,*.eula,*.flp,*.cmd,*.sh,*.sys,*.rom,*.wmz,*.ps1,*.ps1xml,*.psd1,*.psm1,*.mfl,*.bat,*.md,*.0license,*.nuspec
    New-FsrmFileScreen -Path "c:\Program Files (x86)" -IncludeGroup "RansomWarecProgramFilesx86"

    Enjoy ur FSRM ! Bises
    Mis à jour 25/04/2019 à 17h30 par salmodes