Progiciel

Rencontrez le petit nouveau sur le bloc: BASHware et son utilisation sur WSL

mai 19, 2020

Rencontrez le petit nouveau sur le bloc: BASHware et son utilisation sur WSL

This post is also available in : Anglais Espagnol

Rencontrez le petit nouveau sur le bloc: BASHware et son utilisation sur WSL

1.- Contexte

Dans ce blog que nous avons publié au milieu de l’année passée, à l’occasion d’un anniversaire – le vingt-sixième – de la sortie de GNU/Linux, une incursion spécifique du pingouin d’OS dans le domaine des logiciels propriétaires, Microsoft® Windows® en particulier. La société Redmond venait de terminer sa phase bêta de la « Windows Subsystem for Linux« ® (abrégé comme WSL) et au point huit de l’article mentionné nous avons présenté cette nouveauté et terminé avec la question: « Y a-t-il sécurité dans cet environnement?

Notre question rhétorique a été répondue lors du Congrès de la sécurité informatique Rootedcon 2018, qui s’est tenu dans la ville de Madrid en mars – auquel nous n’avons pas pu assister mais nous l’avons suivi sur les médias sociaux – et où l’équipe de Checkpoint a fait une présentation à ce sujet. Nous vous invitons à lire notre analyse de l’écart récemment libéré que nous vous décrivons du point de vue très particulier d’un programmeur.

2.- Approche du cadre théorique

Eh bien, le dicton que « une seule chose est constante, c’est le changement » et chaque fois que vous ajoutez un outil de travail à n’importe quel logiciel, il y aura toujours des incidents -ou « bugs«  »- qui peuvent même être analysés pour savoir s’ils peuvent abriter des intentions clandestines. À l’origine, Microsoft® a expliqué clairement les limites de la WSL: ce n’était pas pour la production(bases de données, serveurs web) et n’avait pas de support pour les programmes graphiques. Autrement dit, c’était juste, comme nous le disons, un «parc d’attractions» pour les programmeurs (à la fois les hackers et les crackers). Dans notre cas, les hackers, cette fonctionnalité nous permet d’économiser beaucoup de temps, puisque les scripts que nous avons écrits pour GNU/Linux seront en mesure de les exécuter dans cet environnement propriétaire, mais toujours modifiant les variables de l’environnement (en tout cas le travail d’adaptation est minime, l’unité « C:\ » est montée comme « /mnt/C/utilisateur » et se souvenant toujours que les lettres majuscules sont différentes de les minuscules).

Pour être en mesure d’activer le « Windows Subsystem for Linux » – qui, nous le répétons, n’a rien à voir avec le noyau ou kernel de Linux, parce que les utilitaires de GNU effectivement sont exécutés sur le noyau de Windows® – vous avez besoin des droits d’administrateur et vous devez même redémarrer l’ordinateur. Bien que ce fait soit réconfortant, nous devons tenir compte de ce qui suit: chaque jour Windows 10® occupe chaque nouvel ordinateur qui sort des fabricants, parce qu’en raison de la politique de marketing agressive il vient préinstallé avec ce système d’exploitation. Qui nous garantit que ça vient désactivé, par défaut ? Cette dernière approche est dérivée du point 15 de la licence publique générale GNU :« Le risque total de la qualité et de la performance du programme vous incombent», c’est-à-dire que la responsabilité ultime de nos systèmes repose toujours sur nos épaules.

Nous devons préciser que le personnel de Microsoft en a parlé et réfuté qu’il s’agit d’une vulnérabilité De Windows® et qu’il ne passera pas plus de temps sur la question (plusieurs mois se sont écoulés depuis que le congrès de sécurité est passé et il n’y a pas de nouvelles à ce sujet), mais ici chez Pandora FMS, il est de notre devoir d’analyser autant de scénarios que possible et de fournir les outils: il est préférable de les avoir et pas en avoir besoin qu’en avoir besoin et de ne pas les avoir; la supervision comprend également les événements futurs dans la mesure du possible. Ce que nous vous donnons ensuite est quelque peu hypothétique et n’est pas destiné à être un guide à entreprendre dans n’importe quel système, mais nous l’écrivons du point de vue de la façon dont il pourrait affecter nos systèmes.

2.1-Supervision avec Pandora FMS

Une autre possibilité très éloignée, plus directe car elle cible des réseaux locaux ou virtuels spécifiques, c’est qu’un acteur ayant le contrôle sur un « Active Directory » commande l’activation WSL sur des centaines ou des milliers de machines qui se connectent à ce domaine (entreprises et succursales complètes). Tous les programmes antivirus et de substitution ne détecteront pas ces changements parce qu’ils sont simplement les propres applications de Microsoft®, légitimes et numériquement signées, d’où notre responsabilité est d’être au courant d’un tel événement.

image 2

C’est ici que Pandora FMS et sa flexibilité peuvent nous aider dans notre travail: nous avons publié une introduction à la supervision de logs, ainsi qu’un article dans lequel nous expliquons la différence entre le filtrage et la sélection des « syslogs » (qui sont générés même lorsque nous activons une fonctionnalité de Windows®), qui font partie des mesures de supervision communes dans les systèmes d’exploitation modernes. C’est pourquoi la flexibilité, nous insistons, est évidente: nous pouvons configurer Pandora FMS pour signaler si une fonctionnalité est incorporée dans n’importe quel ordinateur que nous surveillons.

Les applications antivirus commencent à transporter un «inventaire» lorsqu’ils sont installés et affichent un avertissement des faiblesses possibles. Nous discernons également entre ce qui est déjà installé et les changements apportés: la première chose c’est la tâche des antivirus, la deuxième chose ce sont des événements qui peuvent – et devraient – détecter les outils de supervision.

3.- Terminologie: BASHware

La langue anglaise est connue pour sa tendance à apocoper les termes: celui que nous connaissons comme « malware » vient de la contraction de « malicious software » (logiciel malveillant) et comme le premier mot vient du latin malitiosus la langue française fait un usage immédiat du terme. Mais voici notre point: introduire le terme « BASHware » avec la dénotation maligne est incorrect, ce qui existe c’est le « malware » appliqué de différentes manières parce que les outils que nous, les administrateurs du réseau, migrons sont innocents dans leur intégralité. Maintenant, si une personne avec des intentions suspectes développe des scripts dans BASH alors nous allons parler de malBASHware (« badBASHware » en anglais).

4.- Étapes pour pouvoir utiliser le BASHware

Windows® a toujours intégré sa propre ligne de commandes, mais à partir de Windows Vista® il a un outil plus puissant, créé pour correspondre aux fonctionnalités de BASH/GNU: le Powershell®.
image 3
Avec cet outil (Powershell®) nous expliquons les étapes suivantes:

4.1.-Activer le WSL sur Windows 10®

Oui, le WSL est uniquement pour Windows 10®, bien que dans la dernière figure nous avons montré les outils à distance pour une machine virtuelle avec Windows 7®. Powershell est actif par défaut, nous l’exécutent avec les droits d’administrateur (la partie qui rend le sujet difficile) et nous introduisons la commande suivante (nous devrons alors redémarrer l’ordinateur ou tout simplement attendre jusqu’au moment où une autre tâche fréquente de Windows Update® le fait):

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Vous pouvez également l’activer à travers une fenêtre terminal de Windows:

dism /Online /Enable-Feature /All /FeatureName:Microsoft-Windows-Subsystem-Linux /NoRestart

4.2.-WSL: Activer le mode développeur

La deuxième chose que nous devons activer – et cela rend le processus que nous proposons encore plus difficile – c’est le mode développeur et le rendre permanent. Ceci est accompli en modifiant (ou en ajoutant) une clé dans le registre de Windows®.
Avertissement: La mauvaise gestion du registre de Windows peut conduire à la corruption du système et même empêcher son démarrage et même sa récupération. Nous vous prions de faire vos tests sur les machines virtuelles jetables.

Pour ce faire, nous utilisons la commande « New-Item« , pour ajouter la clé suivante:

New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -ItemType Directory -Force

et nous définissons sa propriété avec celle-ci, un peu plus longue:

New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -Name AllowDevelopmentWithoutDevLicense -PropertyType DWORD -Value 1

Parce que nous devons vérifier si cette clé existe avant de définir la propriété à une valeur non zéro, nous, les administrateurs de systèmes, aimons automatiser tout et développer des scripts pour nous sauver de répéter la tâche à nouveau. Dans ce lien, vous serez en mesure de lire un script complet à l’avance de son temps – année 2016 – et dont la seule objection que nous faisons est qu’il ne capture pas la réponse de la commande New-Item pour puis enregistrer dans le syslog le travail effectué avec sa propre fonction destinée à cet effet, appelé Write-CMLogEntry. Un hacker se soucie de faire la trace pour les journaux d’audit que nous avons mentionnés dans la section 2.1, un « cracker » n’est pas au courant de cela parce qu’il est fier de ne laisser aucune trace!

Pour conclure cette section, nous devons avouer que cette étape n’est pas absolument nécessaire, mais n’avons-nous pas eu du plaisir à analyser ce script? Nous l’aimons!

4.3.-Choisir votre BASH préféré

Il n’y a pas beaucoup de choix, mais Microsoft s’est comporté démocratiquement en ajoutant plus de distributions GNU en plus d’Ubuntu, qui est le défaut. À ce jour, il y a un soutien pour:

  • openSUSE Leap.
  • SUSE Linux Enterprise Server.
  • Debian GNU/Linux.
  • Kali Linux.
  • À court terme : Fedora.
  • Et beaucoup d’autres arriveront.

La chose la plus logique c’est d’écrire pour Debian et son fils prodigue, Ubuntu. Dans tous les cas, si nous voulons savoir lesquels nous avons disponibles, nous introduisons:

wslconfig /1

Si la liste Ubuntu est répertoriée, sans plus tarder:

wslconfig /setdefault Ubuntu

Ou celui dont vous avez besoin ou que vous voulez, en changeant le dernier mot à celui qui apparaît dans la liste. Nous sommes déjà à mi-chemin de la réalisation de notre BASHware d’essai!

4.4.-Configuration de l’utilisateur par défaut

L’objectif ici sera de garantir le privilège nécessaire, une autre difficulté, qui est de donner la raison aux déclarations du personnel de la maison de logiciels de la petite fenêtre populaire; nous l’exécutons sur une vente de commande Windows 10®:

  • Ubuntu: « ubuntu config –default-user root»
  • openSUSE Leap 42: “opensuse-42 –default-user root”
  • SUSE Linux Enterprise Server 12: «sles-12 –default-user root»

Inutile de dire que puisque nous sommes ici, nous serons en mesure de créer nos utilisateurs pour différentes tâches, c’est-à-dire, chaque utilisateur laissera des enregistrements différents selon le BASHware attribué à exécuter. Nous le faisons avec la fameuse commande pour ajouter des utilisateurs:

sudo adduser nombre_de_nuevo_usuario

Cerise sur le gâteau : syslog, le gérant des événements, vient préinstallé, mais n’est pas activé par défaut dans WSL. Ce problème reste ouvert sur la page Github au moment de la rédaction de cet article et il est hors de notre portée.

4.5.-Installation de Wine

Nous expliquons rapidement que Wine est un logiciel qui, installé sur GNU/Linux, vous permet d’exécuter certaines applications de Windows®. C’est là qu’on voit la possibilité très éloignée: être en mesure d’exécuter des programmes hors de portée des antivirus ou Windows lui-même®. Précisément, la surveillance est responsable de faire le suivi de ces situations, bien que la ligne séparant les tâches de sécurité et de surveillance est extrêmement fine. Pour illustrer ce point, nous dirons que, à titre d’exemple, une chose c’est les données et une autre les informations: ces dernières sont obtenues des premières au moyen d’un processus ou d’un algorithme (supervision); cette information est convertie en données sur demande par le personnel de sécurité.
Pour installer Wine, si nous choisissons Debian ou Ubuntu:

apt-get install wine


Nous pourrions soit installer un système graphique pour WSL et exécuter Wine, mais nous ne voulons pas aller aussi loin; sur Wikipédia il y a des instructions sur la façon de le faire.

5.- Recommandations finales.

Bien que cet article soit écrit du point de vue d’une vulnérabilité possible, nous nous sommes également concentrés sur les défenses des antivirus et les mécanismes de contrôle de l’OS lui-même contre d’éventuelles malBASHware. Rappelez-vous également en tout temps que Pandora FMS est et toujours sera un outil utile en raison de sa flexibilité, que nous pouvons adapter à notre travail et les alarmes personnalisées que nous avons créé. Ses résultats possibles peuvent être ajoutés au logiciel de gestion des incidents : IntegriaIMS, car il a la possibilité de transporter l’inventaire matériel, ainsi que d’enregistrer et de classer les demandes de vos utilisateurs dans votre centre de soutien technique. Dix, cent voire des milliers d’ordinateurs :les deux programmes sont formés pour répondre aux exigences de votre travail!

Ci-dessous, vous avez les liens pour nous contacter et vous pouvez écrire vos commentaires et idées!
Voulez-vous savoir ce que Pandora FMS peut vous offrir? Pour en savoir plus, cliquez ici.

Ou si vous avez à surveiller plus de 100 appareils, vous pouvez également profiter d’un ESSAI GRATUIT de 30 jours de Pandora FMS Enterprise. Obtenez-le ici.

Par ailleurs, n’oubliez pas que si vos besoins en matière de supervision sont plus limités, vous avez à votre disposition la version OpenSource de Pandora FMS. Pour plus d’informations, cliquez ici.

N’hésitez pas à envoyer vos questions, l’équipe de Pandora FMS se fera un plaisir de vous aider!


Written by:



Leave a comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.