1000 et 1 moyen de contourner le navigateur d'examen sécurisé

D'accord, pas 1000 et 1, mais il y en a pas mal! De quoi parle-t-on? Le fait que la pandémie de COVID-19 a apporté de nombreux changements dans notre vie, y compris dans l'éducation - à l'école et à l'université. Les leçons, conférences et séminaires sont passés au format en ligne, mais la question de savoir comment gérer le contrôle des progrès demeure. Comment les enseignants peuvent-ils s'assurer que l'élève qui passe l'examen n'a pas ouvert les feuilles de triche dans l'onglet suivant?



En Russie, ce problème a été résolu à l'aide du programme open-source Safe Exam Browser (SEB) . Il semblerait que maintenant pas un seul chercheur de billets gratuits ne puisse tricher, mais cette «forteresse» est-elle vraiment si inaccessible? Venez sous la coupe, aujourd'hui, nous allons vous raconter et vous montrer un tas de façons de tromper SEB!



C'était en 2020 ... Le monde entier paniquait, le taux de change du rouble baissait, les États passaient en mode urgence ... Malgré tout cela, le désir principal de l'étudiant moyen reste le même: réussir la session avec le moins d'efforts et de temps de préparation. Il semblerait qu'avec la transition vers l'apprentissage à distance, tout soit devenu plus facile pour l'étudiant - il vous suffit de faire un visage intelligent lorsque vous répondez à une question sur une webcam, et vous pouvez lire le matériel à partir d'un document ouvert parallèle sur un ordinateur. Mais ce n'était pas là!



De nombreuses universités russes ont mis en œuvre le programme Safe Exam Browser pour vérifier les progrès des étudiants, ce qui empêche presque toutes les tentatives de triche. Bien sûr, ce n'est pas un obstacle pour les étudiants débrouillards - vous pouvez rechercher les réponses au test sur un deuxième ordinateur (ou demander à un ami de le rechercher sur Google).



Mais, puisque nous travaillons dans l'âme, nous avons décidé de vérifier à quel point ce SEB aide vraiment aux examens et comment contourner par programme son contrôle sensible (à condition que l'étudiant ait des compétences informatiques de base, ne soit pas horrifié par les mots " machine virtuelle »et sait comment installer le plug-in pour le navigateur Mozilla Firefox). Prêt? Aller!



Qu'est-ce que Safe Exam Browser (SEB)?



Safe Exam Browser (SEB) est un programme permettant d'effectuer des examens, des tests, etc. en mode en ligne. Fournit une protection contre:



  • ouverture d'applications étrangères (communication vidéo et vocale);
  • recherche parallèle d'informations dans un navigateur Web;
  • exécuter une application dans une machine virtuelle;
  • aller sur certains sites;
  • enregistrer les informations dans le presse-papiers avant d'entrer dans le programme.


L'architecture de SEB comprend deux parties: une application de bureau et un navigateur. L'application s'exécute sur l'ordinateur de l'étudiant et bloque toutes les autres applications à l'exception de celles requises pour réussir l'examen. L'interaction sur le réseau n'est possible qu'avec le navigateur SEB, tandis que le navigateur se connecte à la plate-forme éducative sur laquelle le test ou l'examen est hébergé (par exemple Moodle ). L'examinateur peut autoriser l'utilisation d'applications tierces, telles qu'Excel ou une calculatrice, pendant l'examen, puis l'étudiant pourra les lancer. Toutes ces autorisations et autres paramètres sont définis à l'aide du configurateur SEB et sont écrits dans un fichier de configuration, qui est ensuite lancé par l'application de bureau.





Le Configurateur SEB est une application avec une interface intuitive:





Ici, vous pouvez définir l'URL de la ressource d'examen, la liste des applications et des sites autorisés / interdits, les autorisations de télécharger des fichiers depuis Internet, de travailler dans une machine virtuelle, etc.



Beaucoup de place pour la créativité et l'imagination, n'est-ce pas?) Eh bien, commençons.



Pour les tests, nous avons besoin de: programme SEB, machine virtuelle (VmWare, VirtualBox), navigateur Mozilla Firefox, quelque chose pour compiler un gros projet en C # (l'auteur a utilisé Visual Studio Code), une ressource pédagogique (par exemple, un test Moodle, configuré uniquement pour travailler avec SEB).



Avertissement: Cet article m'a beaucoup aidé lors de la rédaction de cet article .



1. Modification de l'agent utilisateur du navigateur



Pratiquement aucune connaissance et aucun outil ne sont nécessaires pour mettre en œuvre cette méthode. Voyons comment le test Moodle réagit lorsqu'il est lancé via un navigateur Web ordinaire:





Comme vous pouvez le voir sur la capture d'écran, SEB n'autorise pas l'accès au test à partir d'un navigateur classique.

Selon la documentation, SEB utilise XULRunner , le moteur Gecko du navigateur Mozilla , comme navigateur Web . Essayons de remplacer l'agent utilisateur du navigateur Mozilla par l'agent utilisateur spécifié dans le configurateur SEB:



Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0 SEB



Installez un plug-in pour remplacer l'agent utilisateur, par exemple, User-Agent Switcher , et ajoutez-y l'option suivante:







Un tour de passe-passe et un peu de fraude - et maintenant vous pouvez passer le test en toute sécurité, tout en ouvrant simultanément Google dans l'onglet suivant! :)







2. Modification du fichier de configuration de la machine virtuelle



La méthode précédente, bien sûr, est très simple et directe, mais une situation peut bien se produire dans laquelle l'examinateur collecte également les journaux d'examen - et SEB enregistre simplement tous ses événements: désactivation des processus non autorisés, effacement du presse-papiers, et bien plus encore. Par conséquent, nous devons trouver un moyen de tricher avec SEB activé!



Nous avons d'abord décidé de voir si SEB pouvait être activé dans une machine virtuelle. Ici, malheureusement, nous avons échoué - dans de telles conditions, SEB ne se permet même pas de se lancer. Mais d'une manière ou d'une autre, il se rend compte qu'une machine virtuelle est utilisée!



On craignait que SEB utilise des méthodes qui n'étaient pas très agréables pour un étudiant, telles que la détection des processus et des services d'une machine virtuelle (VM) dans le système, mais lors de l'étude du code source, il a été constaté que la vérification du lancement à partir d'une machine virtuelle se produit dans la fonction IsInsideVM () du fichier SEBWindowsClientMain.cs:



private static bool IsInsideVM()
        {
            using (var searcher = new ManagementObjectSearcher("Select * from Win32_ComputerSystem"))
            {
                using (var items = searcher.Get())
                {
                    foreach (var item in items)
                    {
                        Logger.AddInformation("Win32_ComputerSystem Manufacturer: " + item["Manufacturer"].ToString() + ", Model: " + item["Model"].ToString(), null, null);

                        string manufacturer = item["Manufacturer"].ToString().ToLower();
                        string model = item["Model"].ToString().ToLower();
                        if ((manufacturer == "microsoft corporation" && !model.Contains("surface"))
                            || manufacturer.Contains("vmware")
                            || manufacturer.Contains("parallels software") 
                            || manufacturer.Contains("xen")
                            || model.Contains("xen"))
                            || model.Contains("virtualbox"))
                        {
                            return true;
                        }
                    }
                }
            }
            return false;
        }


On voit que SEB est capable de détecter les machines virtuelles des fabricants listés dans le code! Mais que faire si nous changeons la configuration de la machine virtuelle, changeant ainsi le fabricant?



À peine dit que c'était fait! Ouvrez le fichier de configuration VmWare et ajoutez la ligne suivante:







Le modèle du fabricant de la machine virtuelle sera désormais le même que celui de la machine principale. Nous démarrons la machine virtuelle, allumons SEB dessus et essayons d'accéder au test - tout fonctionne!



3. Compilation de nouvelles versions de SEB



Et maintenant passons à la partie amusante - la compilation de "notre" version de SEB! Le code source est disponible ici . La chose la plus intéressante est que le fichier de configuration SEB ne suit pas l'intégrité de l'application de bureau (ou il en assure le suivi afin que nous puissions changer la plupart du code sans aucun problème, hee-hee), tandis que l'intégrité du fichier de configuration envoyé par l'examinateur est vérifiée plus strictement.



3.1 Exécution dans une machine virtuelle



Nous avons déjà changé de fabricant à l'étape 2, mais à quel point serait-il cool de créer une version de SEB qui s'exécute dans n'importe quelle machine virtuelle, non? De plus, c'est plus que facile à faire (à part danser avec un tambourin lorsque vous essayez de compiler un projet pour la première fois - et tout cela à cause de la dissemblance des plates-formes .NET).



Il vous suffit donc de commenter la ligne avec la machine virtuelle souhaitée dans le code ci-dessus:







Dans ce cas, nous avons compilé le programme de manière à ce qu'il ne réagisse pas du tout lorsqu'il est lancé dans la machine virtuelle VirtualBox. Mais il y a une remarque importante: si nos lecteurs décident d'utiliser cette méthode, alors il est nécessaire de supprimer / modifier la journalisation des événements! La machine virtuelle démarrera sans problème, mais le lancement via VirtualBox sera reflété dans les journaux.



3.2 Effacer le presse-papiers



Lorsque SEB est mis sous tension, il efface automatiquement le presse-papiers. Ainsi, tout ce que l'étudiant a copié avant le lancement de SEB n'entrera pas dans SEB. Eh bien, le défi est accepté!



Il y a deux façons de procéder ici:



  1. Creusez dans le fichier SEBClipboard.cs, supprimez la journalisation des erreurs ou modifiez légèrement l'algorithme de suppression du presse-papiers.
  2. Mettez en commentaire la ligne dans le fichier SEBWindowsClientMain.cs:



    
                 // Clean clipboard
                //SEBClipboard.CleanClipboard();
                Logger.AddInformation("Clipboard cleaned.", null, null);




    Dans ce cas, il est préférable de quitter la journalisation suivante - afin que l'examinateur ne comprenne pas qu'avec vous dans SEB vous avez apporté quelque chose-que-ne-peut-utiliser-pendant-l'examen :)



En utilisant l'une de ces méthodes, vous pouvez obtenir le résultat souhaité:







Ainsi, vous pouvez apporter avec vous à SEB n'importe quel texte, une image - en bref, une feuille de triche qui peut être placée dans le presse-papiers.



3.3 Aide d'un ami ou supprimer l'interdiction de Discord



SEB ressemble à une femme très maussade - avec Skype, Discord, etc. il ne s'allumera pas, mais vous mettra avant un choix: moi ou eux.



Eh bien, essayons de réduire le degré de stress dans une telle situation.



Il y a place pour une fuite d'imagination, mais, en général, il suffit de commenter des lignes qui ont un sens approprié comme "processToClose.Kill ();" dans le fichier SEBNotAllowedProcessController.cs.

Nous vous conseillons également de considérer les lignes "SetForegroundWindow (windowHandle);", "BringWindowToTop (windowHandle);" et le service WatchDog. La construction compétente de la logique d'application et de journalisation est la clé du succès!



Et en attendant, nous avons lancé Discord avec SEB en cours d'exécution:







Que peuvent essayer les passionnés d'autre?



Il reste suffisamment d'options, assez pour 1000 et 1 nuit blanche à l'ordinateur. Par exemple, vous pouvez recompiler SEB afin qu'il ne s'exécute pas au-dessus de toutes les fenêtres et puisse être réduit comme une application normale.



Vous pouvez également essayer d'exécuter SEB sur d'autres OS (incroyable, mais vrai: des témoins oculaires affirment que la configuration universitaire standard pour SEB sur OS X ne peut même pas arrêter la communication vocale via Discord!).



Donc, il existe de nombreuses façons d'assembler SEB avec des fonctionnalités réduites, tout ici ne repose que sur l'imagination d'étudiants créatifs et assidus!



Finissons l ' article avec la sagesse populaire : seul un cadeau encore plus grand peut arrêter un étudiant à la recherche d' un cadeau!



All Articles