Skip to content

Sécurité

Jérôme Bousquié edited this page Dec 16, 2016 · 4 revisions

Comprendre et paramétrer la sécurité de Winlog

Le client VBS

Pourquoi le client est-il codé en VBS ?

Le client winlog utilise une librairie http nommée Win.HttpRequest5.1. Cette librairie a l'avantage d'être livrée avec tous les OS Windows de Windows XP à Windows 10.
Le langage VBS est lui aussi directement interprétable par tous les OS Windows.
Le même script aurait pu être codé en PowerShell, mais rien ne garantit que PowerShell soit installé et activé sur tous les postes clients par défaut.

Une amélioration possible serait de générer un exécutable (.exe) pouvant tourner sur tous les OS Windows à la place du VBS.

Les scripts sont-ils accessibles aux utilisateurs ?

Les scripts sont exécutés par le système soit au moment de l'ouverture de la session, avant l'affichage du bureau, soit à la fermeture de la session, soit à l'arrêt du système au moment où le bureau n'est plus disponible.

Quid du certificat pour chiffrer le trafic https ?

Le client VBS émet des requêtes https vers le serveur Winlog afin de chiffrer le trafic de point à point.
Cependant, en l'état actuel, le script ne vérifie pas la validité du certificat (le serveur Winlog peut porter un nom interne ou être accédé par une adresse IP, qui ne seraient pas reconnus par une autorité externe de certification comme celles fournies dans les navigateurs).
Si on souhaite vérifier le certificat, il est alors nécessaire de changer le code du client VBS et de déclarer l'autorité qui sera utilisée.

Qu'est-ce que le code applicatif partagé ?

Le client VBS joint dans chaque requête un code connu du serveur (une chaîne de caractères). Si ce code n'est pas joint à la requête, cette dernière est simplement ignorée par le serveur.
Le script VBS est généré en tenant compte du code déclaré dans le fichier de configuration de Winlog.

Une amélioration pourrait être de modifier la valeur de ce code chaque jour dans le fichier de configuration par un script et que le serveur AD télécharge les fichiers générés et les copie à l'endroit ad hoc dans son arborescence pour qu'ils soient pris en compte par la GPO.

Injection dans la base de données

Toutes les valeurs insérées ou mises à jour dans la base Winlog passent par le filtre d'échappement des chaînes de caractères dédié du SGBD.
Exemple pour MySQL : http://php.net/manual/fr/mysqli.real-escape-string.php

Protection des flux réseau

Winlog est une architecture qui, si on déploie toutes ses fonctionnalités externes, peut mettre en oeuvre plusieurs serveurs. Il convient donc de régler finement les autorisations sur le réseau pour ne laisser passer que les trafics nécessaires :

  • PC -> serveur Winlog : https 443
  • Serveur Winlog -> Squid : http ou https (blocage web)
  • Serveur message interdiction blacklist Squidguard -> Serveur Winlog : http (affichage accès blacklist live)
  • Serveur Winlog -> Serveur Windows + web : http ou https (arret/reboot des PC + liste processus)
  • Serveur affichage de connexion réussi au portail Wifi -> Serveur Winlog : http (log Wifi)