Si vous avez suivi nos derniers articles Scalingo sur la sécurité, vous l’avez sûrement compris : chez Scalingo, nous aimons automatiser nos processus de sécurité. Et dans le cas particulier de la conformité des ordinateurs, c’était la solution la plus évidente. Pourquoi ? La réponse se trouve dans la suite de l’article 👇.
Garantir la sécurité de l’information implique de maîtriser la sécurité de nos postes de travail. Un simple virus ou logiciel défaillant pourrait compromettre le travail de nos ingénieurs ou faire fuiter des informations confidentielles. Pour prévenir cela, nous avons mis en place un processus de validation des applications installées sur les laptops des employé·es de Scalingo. De plus, maîtriser la configuration des postes de travail est une exigence de la certification ISO 27001 obtenue par Scalingo.
Au début, nous nous y sommes pris de la façon la plus simple possible. Il était impératif de prendre en compte la complexité inhérente du métier de développeur, caractérisée par la multitude d’outils disponibles et les préférences de chacun. Face à ça, nous avons établi une liste d’outils (sur Tableur) dont nous évaluons la sécurité en nous basant sur plusieurs critères comme par exemple la fréquence de mise à jour, les logiciels tiers dont ils dépendent ou encore leur réputation. Parallèlement, une approche plus flexible a été adoptée en autorisant certains outils, étant donné que le niveau de risque était jugé acceptable. Les outils comprennent les extensions des navigateurs, les extensions des éditeurs de code, les applications Linux et MacOS, les dépôt sources d’Ubuntu, etc. Nous avons ensuite demandé à tous les employés de Scalingo de nous fournir une liste des applications installées dans leurs laptops respectives. Vous voyez la faille ?
Comme vous pouvez l’imaginer, cette manière de faire prenait énormément de temps et n’était pas la plus fiable car l’humain est souvent le maillon faible de la sécurité. Nous nous sommes alors fixés comme objectif d’améliorer ce processus en l’automatisant afin de réduire au maximum le coût en temps et en resources de l’évaluation de la conformité des ordinateurs.
Après une phase de benchmarking, nous avons sélectionné Lynis, un outil Open Source qui permet d’auditer les systèmes et plus précisément les configurations de sécurité. Il est principalement utilisé sur des systèmes basés sur Linux, tels que des serveurs ou des postes de travail.
Nous avons été conquis par la flexibilité de Lynis puisqu’il permet de personnaliser les tests et les contrôles effectués par l’outil. Le fait que l’outil soit open-source était aussi un avantage dans le sens où les employés peuvent consulter à tout moment le code de l’outil qui est exécuté sur leurs machines. Néanmoins Lynis ne représente qu’une pièce d’une puzzle. Il a fallu trouver un moyen d’installer Lynis sur les laptops des employés à distance.
Nous avons décidé d’utiliser notre infrastructure RMM (Remote Monitoring and Management) existante afin de déployer des scripts bash
à distance sur les laptops des employés (1). Nous avons écrit des scripts bash
qui permettent d’installer Lynis, de télécharger les plugins personnalisés que nous avons développé en parallèle et enfin d’exécuter un scan du système tous les jours à une heure prédéfinie (2).
Lorsque le scan est terminé, un rapport est généré contenant les résultats de l’audit. Celui-ci est ensuite transféré vers le portail de conformité des laptops (3) que nous avons conçu.
Nos scripts de déploiement sont testés lorsque c’est possible. Nous utilisons shellcheck pour linter les scripts bash localement et dans le pipeline d’intégration continue, et shellspec pour les tests unitaires sur nos plugins Lynis. Ces derniers s’occupent de vérifier, pour chaque type de logiciel installé, s’il est conforme ou non. Par exemple, pour les extensions du navigateur, nous allons parcourir les fichiers de chaque extension et en extraire les métadonnées qui vont nous permettre de les comparer à notre base de données, et cela pour tous les navigateurs utilisés par nos collègues (Chrome, Firefox, Safari, etc.). Nous veillons à ce que nos plugins soient cross-platform aussi, c’est-à-dire qu’ils tournent sur les systèmes d’exploitations utilisés et s’adaptent au fonctionnement de ceux-ci.
Register --test-no CUST-0040 --preqs-met ${PREQS_MET} --skip-reason "${SKIPREASON}" --weight L --network NO --category security --description "Check if browser extensions are valid"
if [ "${SKIPTEST}" -eq 0 ]; then
# Lynis helper function to display text on output
Display --indent 2 --text "- Check if browser extensions are valid"
LogText "Check if browser extensions are valid"
# Verify that db exists
if FileExists "${BROWSER_EXT_DB}"; then
# Iterate on each user
find "${HOMEDIRS}" -maxdepth 1 -mindepth 1 -type d -not -name ".*" -exec basename {} \; | grep -v Shared | while read -r REMOTE_USER; do
RunAsUser "${REMOTE_USER}" "find ${HOMEDIRS}/${REMOTE_USER}/${FIREFOX_EXT_PATH} -name '${FIREFOX_EXT_FILE}' 2>/dev/null" | while read -r EXTENSION_FILE; do
cat "${EXTENSION_FILE}" | jq '.addons[] | select(.location=="app-profile") | .defaultLocale.name' | grep -v "Language" | cut -d '"' -f 2 | while read -r EXTENSION_ID; do
CompareToDB "${EXTENSION_ID}" "${BROWSER_EXT_DB}" "Browser:Firefox,User:${REMOTE_USER}"
done
done
RunAsUser "${REMOTE_USER}" "find ${HOMEDIRS}/${REMOTE_USER}/${CHROME_EXT_PATH} -name '${CHROME_EXT_FILE}' 2>/dev/null" | while read -r EXTENSION_FILE; do
EXTENSION_ID=$(dirname "${EXTENSION_FILE}" | xargs dirname | xargs basename)
EXTENSION_NAME=$(cat "${EXTENSION_FILE}" | jq ".name" | cut -d '"' -f 2)
CompareToDB "${EXTENSION_ID}" "${BROWSER_EXT_DB}" "Name:${EXTENSION_NAME},Browser:Chrome,User:${REMOTE_USER}"
done
done
fi
fi
Pour fournir une vision claire et concise de l’état de conformité des postes de travail, nous avons développé un tableau de bord personnalisé. Celui-ci permet aux utilisateurs de consulter rapidement l’état de conformité de chaque poste de travail. En un coup d’œil, ils peuvent vérifier si les audits ont été réalisés avec succès, consulter les résultats des analyses et prendre des mesures correctives si nécessaire.
De plus, nous avons mis en place une interface admin qui permet aux administrateurs de consulter l’état de conformité de tous les laptops du parc. Cette interface fournit une liste des postes de travail avec un résumé de leur conformité aux normes de sécurité. Elle affiche également une liste des applications non autorisées et non vérifiées remontées par l’audit des laptops, ce qui permet de prendre des mesures proactives pour garantir la sécurité et la conformité de l’environnement de travail.
Enfin, la liste des logiciels autorisés est maintenant stockée et maintenue sous forme de fichiers csv dans notre dépôt de plugins Lynis. Elle sert de base de données pour les tests réalisés par Lynis mais aussi à titre informatif dans la page des logiciels autorisés, accessible depuis le portail de conformité.
Avec l’intégration de Lynis, le processus laborieux d’évaluation de la conformité des ordinateurs a été automatisé. Les évaluations sont désormais effectuées de manière systématique et cohérente pour chaque application. Cela a entraîné un gain de temps significatif, libérant les ressources précieuses de l’équipe de sécurité pour des tâches plus critiques. En outre, cette automatisation a renforcé la sécurité en identifiant rapidement les applications non conformes et en permettant une réaction proactive pour les corriger.
L’intégration de Lynis a permis de visualiser facilement le nombre de laptops non conformes via le portail de conformité. Ce suivi en temps réel a contribué à une meilleure gestion de la conformité des appareils utilisés par les employés. De plus, le tableau de bord Lynis a permis d’identifier le nombre d’applications non vérifiées. Cette visibilité a incité l’équipe à étendre les vérifications de conformité aux applications précédemment négligées, renforçant ainsi la sécurité globale du système d’information.
L’introduction de Lynis a responsabilisé les employés en matière de conformité et de sécurité. Les résultats des évaluations sont présentés de manière transparente et chaque employé peut voir l’état de conformité de son laptop ainsi que des applications utilisées. Cette visibilité accrue a encouragé une prise de conscience collective de la sécurité et a incité les employés à contribuer activement à la protection du système d’information en veillant à la conformité de leurs appareils et applications.
Toutefois, l'intégration de cette solution a présenté des défis. Elle a nécessité un changement culturel au sein de l'organisation, impliquant une adaptation des pratiques et une acceptation des nouvelles méthodes de conformité et de sécurité. La mise en place de cette solution a également posé des défis en termes d'implémentation, exigeant une phase de recherche intensive pour récupérer les informations cruciales à l’évaluation de chaque type de logiciel. Elle a également posé des défis en termes de tests automatisés étant donné qu’il est difficile de reproduire l’environnement exact dans lequel la solution sera déployée.
Qu’en est-il des données personnelles de nos salariés ? Notre solution permet d’auditer la sécurité des machines sans espionner nos employés en se limitant à récupérer des informations sur les applications en elles-même et non l’activité qu’elles contiennent.
En résumé : Est-ce que cette solution valait le coup ? OUI !
Chez Scalingo (avec nos partenaires), nous utilisons des traceurs sur notre site.
Certains, essentiels et fonctionnels, sont nécessaires au bon fonctionnement du site et ne peuvent pas être refusés.
D'autres sont utilisés pour mesurer notre audience, entretenir notre relation avec vous et vous adresser de temps à autre du contenu qualitatif ainsi que de la publicité.