Sécurité : épisode « wannacry »

Extrait de : http://www.cert.ssi.gouv.fr/site/CERTFR-2017-ALE-011/CERTFR-2017-ALE-011.html

Mesures préventives

Le CERT-FR recommande de sensibiliser les utilisateurs aux risques associés aux messages électroniques pour éviter l’ouverture de pièces jointes. Il convient en effet de ne pas cliquer sans vérification préalable sur les liens de messages et les pièces jointes. Les utilisateurs ne doivent pas ouvrir des messages électroniques de provenance inconnue, d’apparence inhabituelle ou frauduleuse. Plus généralement, il convient de mettre à jour les postes utilisateurs, notamment le système d’exploitation et les applications exposées sur Internet (lecteur PDF, lecteur messagerie, navigateurs et greffons) dans le cas où le code malveillant (ou une variante) exploiterait une vulnérabilité logicielle.

Le CERT-FR recommande de configurer sur les postes de travail les restrictions logicielles pour empêcher l’exécution de code à partir d’une liste noire de répertoires :

  • Si la solution utilisée est AppLocker, les règles de blocage suivantes doivent être définies :
    • OSDRIVE\Users\*\AppData\
    • OSDRIVE\Windows\Temp\
  • Si les restrictions logicielles (SRP) sont utilisées, les règles de blocage suivantes doivent être définies :
    • UserProfile\AppData
    • SystemRoot\Temp

Il est important de vérifier que le service « Application Identity » (AppIDSvc) est paramétré en démarrage automatique sur l’ensemble des postes pour que les restrictions logicielles soient opérantes (ce mode de démarrage peut être paramétré à travers une politique de groupe sur le domaine Windows). Si des dysfonctionnements sont rencontrés suite au déploiement de ces règles de blocage, il est nécessaire d’identifier les applications légitimes situées dans ces répertoires, et de définir des règles en liste blanche afin d’autoriser leur exécution.

Le CERT-FR recommande également de mettre à jour les logiciels antivirus du parc informatique (postes utilisateurs, passerelle de messagerie, etc.). Le code malveillant étant polymorphe, les éditeurs antivirus ont besoin de publier des signatures en constante évolution. Par ailleurs, il convient d’envoyer dès que possible un exemplaire du code malveillant à votre éditeur de logiciel antivirus si la variante n’est pas détectée par ce dernier.

Enfin, le CERT-FR recommande d’effectuer des sauvegardes saines et régulières des systèmes et des données (postes de travail, serveurs) puis de vérifier qu’elles se sont correctement déroulées. Les sauvegardes antérieures ne doivent pas être écrasées (cas où une version chiffrée aurait été sauvegardée). Les sauvegardes doivent être réalisées en priorité sur les serveurs hébergeant des données critiques pour le fonctionnement de l’entité. Celles-ci doivent être stockées sur des supports de données isolés du réseau en production.

Mesures réactives

Si le code malveillant est découvert sur vos systèmes, le CERT-FR recommande de déconnecter immédiatement du réseau les machines identifiées comme compromises. L’objectif est de bloquer la poursuite du chiffrement et la destruction des documents partagés. Le CERT-FR recommande aussi d’alerter le responsable sécurité ou le service informatique au plus tôt. Le temps de revenir à une situation normale, le CERT-FR recommande également de positionner les permissions des dossiers partagés en LECTURE SEULE afin d’empêcher la destruction des fichiers sur les partages. Les personnels pourront continuer de travailler localement et mettre à jour ultérieurement le partage. Aussi, le CERT-FR recommande de prendre le temps de sauvegarder les fichiers importants sur des supports de données isolés. Ces fichiers peuvent être altérés ou encore être infectés. Il convient donc de les traiter comme tels. De plus, les sauvegardes antérieures doivent être préservées d’écrasement par des sauvegardes plus récentes.

Le CERT-FR recommande également de bloquer sur le serveur mandataire l’accès aux domaines ou URLs identifiés dans le message malveillant. L’objectif est de prévenir toute nouvelle compromission sur le même site. En complément, le CERT-FR recommande de rechercher et supprimer les messages malveillants similaires dans les boîtes de messagerie des utilisateurs. Par ailleurs, le CERT-FR recommande la réinstallation complète du poste et la restauration d’une sauvegarde réputée saine des données de l’utilisateur. De plus, dans le cadre de l’utilisation de profils itinérants, il convient de supprimer la copie serveur du profil afin de prévenir la propagation des codes malveillants par ce biais.

Enfin, les fichiers chiffrés peuvent être conservés par la victime au cas où dans le futur, un moyen de recouvrement des données originales serait découvert.

Cette alerte sera maintenue tant que le volume de message électronique constaté sera considéré significatif par le CERT-FR.

Indicateurs de compromission identifiés par l’éditeur Talos :

Extrait : http://www.dsfc.net/infrastructure/securite/wannacry-attaque-systemique-tant-redoutee/

Que faire face à WannaCrypt ?

Il faut d’abord que vous fassiez la mise à jour de votre système Windows par l’application du patch MS17-010 mis à disposition par l’éditeur dès le 14 mars 2017.

La 2e solution plus radicale est de couper votre service LanmanServer. Votre machine ne pourra plus se faire contaminer par les machines infectées présentes dans votre réseau. La plupart des stations de travail n’ont d’ailleurs pas besoin que les autres ordinateurs du réseau accèdent à leurs fichiers !

Vous pouvez aussi décider de désactiver le protocole SMBv1 en paramétrant le service LanmanServer comme suit :

WannaCrypt, l'attaque systémique tant redoutée

La désactivation du protocole SMBv2 vous empêchera d’accéder aux partages des autres ordinateurs.

Windows Update MS17-010

The virus uses ETERNALBLUE exploit, which is closed by Microsoft security update MS17-010 released in March. I recommend that you check update center for presence of such an update (by code) on your computer (for example, code for Windows 7 will be KB4012212 or KB4012215).

If updates are not installed, you can download them from official Microsoft website:

https://technet.microsoft.com/en-us/library/security/ms17-010.aspx

For older systems (Windows XP, Windows Server 2003 R2), Microsoft released special patches:

https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/

Close ports 135 and 445

According to the reports of antivirus companies, wcrypt penetrates computers through SMB (Server Message Block) ports. To prevent penetration, we block the ports 135 and 445 through which the virus penetrates (in most cases they are not used by ordinary users).

To do this, open the console with administrator rights (cmd.exe -> run as administrator). And we execute in turn 2 commands (after each command there should be status OK).

netsh advfirewall firewall add rule dir=in action=block protocol=TCP localport=135 name="Block_TCP-135"

netsh advfirewall firewall add rule dir=in action=block protocol=TCP localport=445 name="Block_TCP-445"

Disabling SMBv1 support

The vulnerability can also be closed by completely disabling SMBv1 support. Run this command in cmd (run as administrator).

dism /online /norestart /disable-feature /featurename:SMB1Protocol

Pour voir plus loin

  • Un article du blogmotion pour faire des tests de vulnérabilité via nmap : ici

Installation d’un serveur de type Framadate

L’article original se trouve ici.

Framadate est le logiciel de création de sondages que nous développons et proposons comme service en ligne. Il est initialement basé sur le logiciel Studs développé par l’université de Strasbourg et que nous avons largement remanié.

Installation

1 – Préparer la terre

Pour ma part, je débute avec une vm DEBIAN quasi vierge.
J’installe le serveur web apache 2 et quelques utilitaires.

apt-get install apache2 htop screen git php5 php5-intl mysql-server php5-mysql
service mysql start
service apache2 restart

Et avant de me lancer dans le noir, je fais un snapshot de ma vm.

Tout d’abord, connectez-vous en tant que root sur votre serveur et créez un compte utilisateur framadate ainsi que le dossier /var/www/framadate dans lequel seront copiés les fichiers avec les droits d’accès correspondants.

useradd framadate
groupadd framadate
mkdir /var/www/framadate
chown framadate:framadate -R /var/www/framadate

2 – Semer

Connectez-vous avec l’utilisateur framadate : su framadate -s /bin/bash

Puis, téléchargez les fichiers de notre dépôt avec Git depuis le dossier /var/www/framadate et basculez sur la dernière version stable (dans l’exemple 1.0.2).

cd /var/www/framadate
git clone https://framagit.org/framasoft/framadate.git .
git checkout 1.0.2

(Normalement ce point est déja traité) : Installez également l’extension php intl :

sudo apt-get install php5-intl

Framadate s’appuie sur le logiciel Composer pour importer les librairies dont il dépend. Pour l’installer, lancez la commande

php -r "readfile('https://getcomposer.org/installer') ;" | php

Moi là, comme ça j’ai une erreur : « Unable to create [..] Permission denied ».
On dirait que l’utilisateur Framadate ne peut pas créer le ou les répertoire(s) exigé.
Je vais donc passer en root pour relancer la commande.

su root
php -r "readfile('https://getcomposer.org/installer') ;" | php

Par contre, suite à cela, tout ce qui est créé est restreins aux droits root.
On va donc corriger le tire pour l’utilisateur framadate

chown framadate:framadate -R /var/www/framadate

puis importez les librairies nécessaires

./composer.phar install

Sauf que là : même topo !
Je vois des messages d’erreur à gogo relatif à des problèmes de version php.
Celle qui s’est automatiquement installée chez moi est une 5.4.45, et à l’heure  j’écris ces lignes, il semble que la version 5.5 soit requise … Damned !

3 – Arroser

MySQL

Il faut maintenant créer la base de données et configurer Framadate.

(Si vous ne l’avez pas fait depuis le début) Installez tout d’abord le paquet mysql-server (notez le mot de passe root) et démarrez MySQL : service mysql start

Créez un utilisateur et une base de données framadate. Sur votre serveur dédié vous pouvez utiliser PhpMyAdmin qui est souvent pré-installé, sinon voici comment faire avec Adminer.

Téléchargez Adminer en ligne de commande (toujours depuis le dossier /var/www/framadate).

wget -O adminer.php http://www.adminer.org/latest-mysql.php

Attention, à ce stade la configuration du serveur web apache2 pointe sur le répertoire /var/www/html.
Par conséquent, je me place tout d’abord à cet endroit avant de charger l’utilitaire adminer.

cd /var/www/html
wget -O adminer.php http://www.adminer.org/latest-mysql.php

Connectez-vous avec le compte root MySQL sur votre-nom-de-domaine.org/adminer.php et cliquez sur « Créer une base de données ».
Remplissez le nom de la base de données et le type d’encodage, ici framadatelatin_swedish_ci.
Une fois créée, cliquez sur « Privilèges » et « Créer un utilisateur ».
Remplissez les champs Serveur localhost, Utilisateur framadate, Mot de passe, Privilèges `framadate`.* et cochez la case All privileges.

Par sécurité, vous pouvez supprimer le fichier adminer.php qui n’est plus nécessaire.

rm /var/www/html/adminer.php

Framadate

Maintenant que la base de données est prête, il faut configurer Framadate pour pouvoir s’en servir.

Rendez-vous ensuite sur la page votre-nom-de-domaine.org/admin/install.php. Et remplissez le formulaire avec comme chaîne de connexion mysql:host=localhost;dbname=framadate;port=3306, l’utilisateur framadate et le mot de passe tel que vous l’avez défini à l’étape précédente.

Alors, à ce stade un sript php check les prérequis (fournir capture écran ?) nous dit qu’il nous manque des droits en écriture sur un répertoire du type /var/www/framadate/admin. Ce qui est normal puisque – si l’on a respecté la recette – l’intégralité des droits sur /var/www/framadate est attribué à l’utilisateur « framadate ». Sachant que par défaut, lorsque l’on passe sur un navigateur web, c’est le compte www-data que le serveur web apache2 utilise !

Je décide donc de remédier à cela et donne les droits au dit utilisateur

chmod -R www-data:www-data /var/www/framadate

Et pourtant, cela n’arrange pas tout…

2017-01-13-18_54_58-verifications-de-linstallation

Et là : je bloque car je ne vois pas où se situe ce problème de dossier de compilation de templates …