Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

DLFP - Dépêches  -  pyvmidbg : un débogueur full‐system basé sur l’introspection de machine virtuelle

 -  Mars 2019 - 

Voici un projet qui me (Wenzel) tient à cœur : pyvmidbg.

Le but est assez simple : se donner la capacité de déboguer l’état complet d’un système d’exploitation, tournant dans une machine virtuelle, en utilisant uniquement l’hyperviseur et l’accès au matériel par la machine virtuelle.

L’idée en elle‐même a commencé à germer lorsque je travaillais sur des outils d’analyse de logiciels malveillants (malware) basés sur l’hyperviseur, et, voyant leur efficacité pour l’analyse automatisée, j’ai petit à petit creusé pour transposer ces concepts afin d’aboutir à de puissants débogueurs interactifs.

Intérêt

Problématiques

L’intérêt d’un tel outil ? Au‐delà du besoin évident pour des analystes en sécurité d’analyser furtivement des logiciels malveillants avancés, on peut trouver d’autres problèmes plus généraux liés aux API de débogage des systèmes d’exploitation :

  1. la visibilité (l’effet d’observateur), qui va potentiellement changer l’environnement du programme ; par exemple, certains appels système auront un comportement différent ;
  2. cet effet d’observateur peut parfois être volontaire, dans une tentative de protection de la propriété intellectuelle de certains systèmes d’exploitation ;
  3. les nouvelles fonctionnalités de sécurité des systèmes d’exploitation modernes posent des soucis de compatibilité avec la visibilité et le contrôle total que demandent les débogueurs.

Avantages

Déboguer depuis l’hyperviseur apporte aussi des bénéfices non négligeables :

  1. en virtualisant le démarrage depuis un hyperviseur chargé sur une clef USB, il est possible d’analyser dans une machine virtuelle l’ensemble de la séquence de démarrage d’un système d’exploitation, et ce depuis le micrologiciel BIOS/UEFI ;
  2. les unikernels, images noyau embarquant une seule application, sont dépouillés d’un maximum de fonctionnalités pour être minimaux et rapides ; le stub de débogage est également supprimé, laissant à l’API de l’hyperviseur les seuls moyens d’accès pour un unikernel en production ;
  3. l’unification des outils de débogage : en rebasant nos débogueurs sur l’hyperviseur, il nous sera possible d’utiliser le même outil pour déboguer et suivre des processus, de l’espace utilisateur au noyau, et ce, sur tous les systèmes d’exploitation !

Débogage full‐system

Afin de résoudre ces problématiques et implémenter une solution pérenne, j’aimerais vous présenter la vision que j’ai de nos futurs outils de débogage, travaillant en mode full‐system :

pyvmidbg

  • les multiples stubs de débogage implémentent les protocoles standards pour gérer tous les frontaux ;
  • les stubs possèdent une connaissance du système invité, c’est‐à‐dire qu’ils sont capables de suivre et d’intercepter l’exécution d’un processus cible dans la machine virtuelle ;
  • la LibVMI permet de faire le lien avec les différentes API de VMI (Virtual Machine Introspection) des hyperviseurs cibles.

Démo

Comme une démo vaudra mieux que mille mots, je vous propose cette petite vidéo que j’ai enregistrée pour la conférence Insomni’Hack qui se tenait la semaine dernière à Genève.

Dans celle‐ci, avec une machine virtuelle Windows XP imbriquée, je montre comment :

  1. intercepter l’exécution de cmd.exe ;
  2. se connecter au stub en utilisant radare2 ;
  3. mettre en place deux points d’arrêt, en espace utilisateur sur ntdll!NtOpenFile, puis en espace noyau sur nt!NtOpenFile ;
  4. suivre des événements liés à ces points d’arrêt dans le stub, en ignorant les autres processus pour ne renvoyer de résultat que pour cmd.exe.

Pour aller plus loin, je vous ai également mis le lien vers la présentation.

Quel est votre avis concernant nos outils de débogages actuels ? J’aimerais avoir vos retours !
Je cherche à présent à implémenter la prise en charge de GNU/Linux, et à comprendre comment l’état des fils d’exécution (threads) est sauvé et restauré, et comment l’ordonnanceur passe de l’un à l’autre.

Vous êtes curieux ou souhaitez participer ? Nous avons un Slack !

Dans l’espoir de vous présenter une meilleure version au FOSDEM 2020. :)

Merci à vous !

Commentaires : voir le flux atom ouvrir dans le navigateur

par Wenzel, ZeroHeure, Xavier Teyssier, Davy Defaud, Benoît Sibaud, palm123

DLFP - Dépêches

LinuxFr.org

Entretien avec GValiente à propos de Butano

 -  16 avril - 

GValiente développe un SDK pour créer des jeux pour la console Game Boy Advance : Butano.Cet entretien revient sur son parcours et les raisons (...)


Nouveautés d'avril 2024 de la communauté Scenari

 -  11 avril - 

Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous (...)


Annuaire de projets libres (mais pas de logiciels)

 -  9 avril - 

Les communs sont une source énorme de partage !S’il est plutôt facile dans le monde francophone de trouver des ressources logicielles (Merci (...)


Les enchères en temps réel, un danger pour la vie privée mais aussi pour la sécurité européenne

 -  7 avril - 

Les enchères en temps réel, ou Real-Time Bidding (RTB), sont une technologie publicitaire omniprésente sur les sites web et applications mobiles (...)


XZ et liblzma: Faille de sécurité volontairement introduite depuis au moins deux mois

 -  31 mars - 

Andres Freund, un développeur Postgres, s’est rendu compte dans les derniers jours que xz et liblzma ont été corrompus par l’un des mainteneurs du (...)