
DigiExam est un logiciel de surveillance d'examen et de télésurveillance. Le logiciel est installé sur les ordinateurs des écoles (ou des étudiants). Lorsque l'étudiant rejoint un examen, DigiExam : vérifie qu'il ne s'exécute pas dans une machine virtuelle, termine toutes les applications, passe en plein écran et empêche l'utilisateur d'aller ailleurs que dans la fenêtre de DigiExam.
Il a été constaté que les détections de sécurité sont faibles et peuvent être facilement contournées en remplaçant simplement un fichier (appartenant à l'utilisateur) dans le système de fichiers. Cela a été confirmé sur DigiExam v14.0.2 et n'a pas été retesté depuis (j'ai réussi mon examen :)).
Vulnérabilité : DigiExam (une application Electron) « sous-traite » la détection de machine virtuelle (ainsi que la plupart des fonctions de sécurité) à un module natif appelé dx-sec. L'absence de contrôle d'intégrité sur le module dx-sec permet de remplacer le module par une version patchée. Le patch peut essentiellement modifier toutes les fonctionnalités situées dans dx-sec, y compris la détection de machine virtuelle (et d'autres, comme la liste blanche des processus illégaux, etc.).
Lors de son premier lancement, l'application DigiExam télécharge des modules natifs dans %localappdata%\DigiExam\app-14.0.2\resources\app.asar.unpacked\node_modules\%modulename%\build\Release\%modulename.node%. Ces fichiers .node sont (comme l'indique file) des PE32 executable (DLL) (GUI) Intel 80386, for MS Windows.
L'ouverture du fichier dx-sec dans Ghidra et la recherche de la chaîne "Virtual Machine" donne de nombreux résultats et mène à FUN_10020370 - renommée detect_virtual_machine (ce qui donne un aperçu assez intéressant de ce qui est examiné pour la détection de VM).

detect_virtual_machine a une seule référence croisée vers FUN_10007ab0 - renommée detect_virtual_machine_node_handler - qui semble être un point d'entrée de bibliothèque pour les trucs Node (constructeur et destructeur autour de notre fonction « main » detect_virtual_machine).

detect_virtual_machine peut être patchée pour retourner immédiatement. Le côté droit de la capture d'écran est la version patchée.

Cela contourne complètement la logique de détection de VM.
Comme mentionné dans l'introduction, DigiExam est souvent installé sur les ordinateurs partagés des écoles. Au lieu de patcher la logique de détection de VM, un attaquant pourrait en tirer parti pour obtenir l'exécution de code dans la session de n'importe quel étudiant dès qu'il passe un examen, permettant des attaques plus destructrices sur les documents et les informations des étudiants. La persistance dure jusqu'à ce que DigiExam soit mis à jour.