1000 y 1 forma de omitir Safe Exam Browser

De acuerdo, no 1000 y 1 vía, ¡pero hay bastantes de ellas! ¿De qué estamos hablando? El hecho de que la pandemia de COVID-19 haya producido muchos cambios en nuestra vida, incluida la educación, tanto en la escuela como en la universidad. Las lecciones, conferencias y seminarios se han trasladado al formato en línea, pero permanece la cuestión de cómo abordar el control del progreso. ¿Cómo pueden los profesores asegurarse de que el alumno que realiza el examen no haya abierto las hojas de referencia en la siguiente pestaña?



En Rusia, este problema se resolvió utilizando el programa Safe Exam Browser (SEB) de código abierto . Parecería que ahora ni un solo buscador de regalos será capaz de hacer trampa, pero ¿es esta "fortaleza" realmente tan inaccesible? ¡Pasa por debajo del corte, hoy te contaremos y te mostraremos un montón de formas de engañar a SEB!



Era el año 2020 ... El mundo entero está en pánico, el rublo está cayendo, los estados entran en modo de emergencia ... A pesar de todo esto, el principal deseo del estudiante promedio sigue siendo el mismo: pasar la sesión con el menor esfuerzo y tiempo dedicado a la preparación. Parecería que con la transición al aprendizaje a distancia, todo se ha vuelto más fácil para el estudiante: solo necesita poner una cara inteligente al responder una pregunta en una cámara web y puede leer el material de un documento abierto paralelo en una computadora. ¡Pero no estaba allí!



Muchas universidades rusas han implementado el programa Safe Exam Browser para verificar el progreso de los estudiantes, lo que evita casi todos los intentos de hacer trampa. Por supuesto, esto no es un obstáculo para los estudiantes ingeniosos: puede buscar en Google las respuestas del examen en una segunda computadora (o pedirle a un amigo que lo busque en Google).



Pero, dado que estamos trabajando en el corazón, decidimos verificar cuánto ayuda realmente este SEB con los exámenes y cómo eludir programáticamente su control sensible (siempre que el estudiante tenga habilidades informáticas básicas, no se horrorice con las palabras " máquina virtual ”y sabe cómo instalar el complemento para el navegador Mozilla Firefox). Listo? ¡Vamos!



¿Qué es Safe Exam Browser (SEB)?



Safe Exam Browser (SEB) es un programa para realizar exámenes, pruebas, etc. en modo online. Proporciona protección contra:



  • abrir aplicaciones ajenas (comunicaciones de video y voz);
  • búsqueda paralela de información en un navegador web;
  • ejecutar una aplicación en una máquina virtual;
  • ir a ciertos sitios;
  • guardar información en el portapapeles antes de ingresar al programa.


La arquitectura de SEB incluye dos partes: una aplicación de escritorio y un navegador. La aplicación se ejecuta en la computadora del estudiante y bloquea todas las demás aplicaciones excepto las requeridas para el examen. La interacción a través de la red solo es posible con el navegador SEB, mientras que el navegador se conecta a la plataforma educativa en la que se aloja la prueba o examen (por ejemplo, Moodle ). El examinador puede autorizar el uso de aplicaciones de terceros, como Excel o una calculadora, durante el examen, y luego el alumno podrá ejecutarlas. Todos estos permisos y otras configuraciones se llevan a cabo utilizando el configurador SEB y se escriben en un archivo de configuración que posteriormente se inicia con la aplicación de escritorio.





SEB Configurator es una aplicación con una interfaz intuitiva:





Aquí puede configurar la URL del recurso del examen, la lista de aplicaciones y sitios permitidos / prohibidos, permisos para descargar archivos de Internet, trabajar en una máquina virtual, etc.



Mucho espacio para la creatividad y la imaginación, ¿no?) Bueno, comencemos.



Para las pruebas, necesitamos: programa SEB, máquina virtual (VmWare, VirtualBox), navegador Mozilla Firefox, algo para compilar un gran proyecto en C # (el autor usó Visual Studio Code), algún recurso educativo (por ejemplo, una prueba de Moodle configurada solo para trabajar con SEB).



Descargo de responsabilidad: este artículo me ayudó mucho al escribir este artículo .



1. Cambio del agente de usuario del navegador



Prácticamente no se requieren conocimientos ni herramientas para implementar este método. Veamos cómo reacciona la prueba de Moodle cuando se inicia a través de un navegador web común:





Como puede ver en la captura de pantalla, SEB no permite el acceso a la prueba desde un navegador normal.

Según la documentación, SEB utiliza XULRunner , el motor Gecko del navegador Mozilla , como navegador web . Intentemos reemplazar el agente de usuario del navegador Mozilla con el agente de usuario especificado en el configurador de SEB:



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



Instale un complemento para reemplazar el agente de usuario, por ejemplo, Conmutador de agente de usuario , y agregue la siguiente opción:







Juego de manos y un poco de fraude, ¡y ahora puede proceder con seguridad a la prueba, al mismo tiempo que abre Google en la siguiente pestaña! :)







2. Cambiar el archivo de configuración de la máquina virtual



El método anterior, por supuesto, es muy simple y directo, pero puede surgir una situación en la que el examinador también recopile los registros del examen, y SEB simplemente registra todos sus eventos: desactivar procesos no autorizados, borrar el portapapeles y mucho más. Por lo tanto, ¡necesitamos encontrar una manera de hacer trampa con SEB habilitado!



Primero, decidimos ver si SEB se podía habilitar en una máquina virtual. Aquí, desafortunadamente, fallamos; en tales condiciones, SEB ni siquiera se permite lanzar. ¡Pero de alguna manera se da cuenta de que se está utilizando una máquina virtual!



Existía la preocupación de que SEB estaba usando métodos que no eran muy agradables para un estudiante, como detectar procesos y servicios de una máquina virtual (VM) en el sistema, pero al estudiar el código fuente, se encontró que la verificación para el lanzamiento desde una VM ocurre en la función IsInsideVM () del archivo 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;
        }


¡Vemos que SEB es capaz de detectar máquinas virtuales de fabricantes que se enumeran en el código! Pero, ¿y si cambiamos la configuración de la máquina virtual, cambiando así el fabricante?



¡Dicho y hecho! Abra el archivo de configuración de VmWare y agregue la siguiente línea:







Ahora el modelo del fabricante de la máquina virtual será el mismo que el de la máquina principal. Iniciamos la máquina virtual, activamos SEB e intentamos acceder a la prueba, ¡todo funciona!



3. Compilación de nuevas versiones de SEB



Y ahora pasemos a la parte divertida: ¡compilación de “nuestra” versión de SEB! El código fuente está disponible aquí . Lo más interesante es que el archivo de configuración SEB no rastrea la integridad de la aplicación de escritorio (o realiza un seguimiento para que podamos cambiar la mayor parte del código sin ningún problema, je-je), mientras que la integridad del archivo de configuración enviado por el examinador se verifica de manera más estricta.



3.1 Ejecutando en una máquina virtual



Ya cambiamos el fabricante en el paso 2, pero qué genial sería crear una versión de SEB que se ejecute en cualquier máquina virtual, ¿verdad? Además, es más que fácil hacer esto (excepto para bailar con una pandereta cuando se intenta compilar un proyecto por primera vez, y todo debido a las diferencias entre las plataformas .NET).



Entonces, solo necesita comentar la línea con la VM deseada en el código anterior:







en este caso, hemos compilado el programa para que no reaccione en absoluto cuando se inicie en la máquina virtual VirtualBox. Pero hay una nota importante: si nuestros lectores deciden utilizar este método, ¡es necesario eliminar / cambiar el registro de eventos! La máquina virtual se iniciará sin problemas, pero el lanzamiento a través de VirtualBox definitivamente se verá reflejado en los registros.



3.2 Limpiar el portapapeles



Cuando SEB está encendido, borra automáticamente el portapapeles. Por tanto, todo lo que el alumno haya copiado antes del lanzamiento de SEB no entrará en SEB. Bueno, ¡el desafío está aceptado!



Hay dos formas de hacerlo:



  1. Busque en el archivo SEBClipboard.cs, elimine el registro de errores o cambie ligeramente el algoritmo de limpieza del portapapeles.
  2. Comente la línea en el archivo SEBWindowsClientMain.cs:



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




    Al mismo tiempo, es mejor dejar el registro posterior, para que el examinador no entienda que con usted en SEB ha traído Algo que no se puede usar en el examen :)



Con cualquiera de estos métodos, puede obtener el resultado deseado: por lo







tanto, puede llevar consigo a SEB cualquier texto, una imagen, en una palabra, una hoja de trucos que se puede colocar en el portapapeles.



3.3 Ayuda de un amigo o eliminar la prohibición de Discord



SEB parece una mujer muy malhumorada, con Skype, Discord, etc. no se encenderá, pero te pondrá ante una elección: yo o ellos.



Bueno, tratemos de reducir el grado de estrés en tal situación.



Hay espacio para un vuelo de imaginación, pero, en general, es suficiente comentar líneas que tienen un significado apropiado como "processToClose.Kill ();" en el archivo SEBNotAllowedProcessController.cs.

También le recomendamos que considere las líneas "SetForegroundWindow (windowHandle);", "BringWindowToTop (windowHandle);" y el servicio WatchDog. ¡La construcción competente de aplicaciones y lógica de registro es la clave del éxito!



Y mientras tanto, tenemos Discord en ejecución con SEB en ejecución:







¿Qué más pueden probar los entusiastas?



Quedan suficientes opciones, suficientes para 1000 y 1 noche de insomnio en la computadora. Por ejemplo, puede volver a compilar SEB para que no se ejecute en la parte superior de todas las ventanas y pueda minimizarse como una aplicación normal.



También puede intentar ejecutar SEB en otro sistema operativo (increíble, pero cierto: los testigos afirman que la configuración universitaria estándar para SEB en OS X ni siquiera puede detener la comunicación de voz a través de Discord).



Entonces, hay muchas formas de ensamblar SEB con funcionalidad reducida, ¡todo aquí depende solo de la imaginación de estudiantes creativos y trabajadores!



Terminemos el artículo con sabiduría popular : ¡solo un obsequio aún mayor puede detener a un estudiante en busca de un obsequio!



All Articles