Как обойти сейф экзем браузер
Да, Александр, я скачала SEB, но что-то не получается установить. у Вас случайно не т русской инструкции? Очень бы помогли мне! Спасибо!
в папке SEB файл seb.exe нажимаю, он говорит что не может найти *.ini файлы, хотя они там же! Ничего не пойму.
К сожалению, русской инструкции нет. Я пользовался только тем, что есть на сайте разработчиков и в описании модулей, устанавливаемых в Moodle. При этом никаких осложнений у меня не возникало.
Была только заминка, связанная с тем, что, не был указан URL, который должен быть открыт в браузере. Дело в том, что этот браузер не имеет адресной строки. В нем открывается только тот URL, который прописан администратором. Если вы пропишете адрес главной страницы сайта, то у студента будет возможность выбрать дисциплину для тестирования, если же укажите URL дисциплины или теста в дисциплине, то соответственно, этим вы ограничите возможность студента перемещаться по сайту.
Может у вас он не файл ini не находит, а не находит стартовый URL в каком-то ini ?
Указанный URL прописывается в поле, которое открывается в самом браузере.
Еще такой вопрос: а какая у вас версия Moodle? Дело в том, что я прочитал о SEB, когда вышла 1.9.6. И в первых строках описания релиза было написано, что в нем решены все вопросы связанные с использованием SEB, следовательно, в более старых было что-то не так.
У меня ситуация как у Ирины, не находит *.ini файла. Но если запустить его через скрипт, то запускается браузер, в котором действительно нет кнопок назад, вперед и других. Открывается на весь экран. Короче, класно. Но открывание других окон не блокирует. Тоесть, всьо-таки *.ini файл нужно ему как-то скормить для нормальной работы. Если кто-то с этим справился, подскажите как.
Уточняю. Чтобы прописать стартовый URL и два параметра интерфейса (стрелки назад/вперед и блокирование навигационного меню Moodle) надо запустить start-firefox.bat.
В других программах бывало, что программа не находила файл из-за того, что в пути к файлу встречались папки с кириллическими символами в именах. Проверьте.
Точно! Запускать нужно с путем попроще. Точно в нем не должно быть кирилицы и возможно пробелов.
А вообще, класная штука. На сесию попробуем использовать.
Нет, пробелы можно. У меня он в C:\Program Files\.
SEB делали люди, которые пользуются немецкой локализацией Winows. У нас на русском Winows тоже возникают проблемы, если в именах файлов и папок встречаются специфические символы, например, французского языка:é, è, ê, ë и пр.
А зачем это нужно?
Это бесполезно. Опыт ЕГЭ доказал, что никакие даже самые навороченные и дорогостоящие ухищрения не помогут.
К примеру, наши студенты спокойно открывают библиотечки в смартфонах и наладонниках.
ЕМНИП, Лобачев, в свое время высказал мысль, что пора перестать относиться к студенту, как к лжецу, единственной целью которого является обман преподавателя.
Полностью с этим согласен.
Если студенту нужен диплом, а не знания, он ВСЕГДА найдет способ его получить, какую бы броню вы не навешивали.
Если студенту нужны знания, то он сам будет сдавать тесты и доставать преподавателя вопросами.
>Если студенту нужен диплом, а не знания, он ВСЕГДА найдет способ его получить.
Согласен со всеми вашими выводами, кроме одного: "это бесполезно".
Все знают, что любую броню можно пробить, любую защиту можно взломать. Поэтому участвовать в этой борьбе или нет, вооружаться или разоружаться решает каждый, в зависимости от своих конкретных условий. Универсальных рецептов быть не может, а вы пытаетесь их давать.
Если согласиться, что любая борьба бесполезна, то что тогда? Сразу выдавать дипломы всем желающим?
Можно показать рецепт, который дал именно я?
Ну и снова - если подходить с позиции борьбы, то да, нужно совершенствовать броню и воевать, воевать, воевать.
Если подходить с позиции сотрудничества, то можно договариваться, организовывать процесс, находить взаимоустраивающие решения, собственно в этом и состоит процесс образования. ИМХО, конечно
Ну и просто с точки зрения статистики. Мы, с прошлого года, разрешили сдавать текущий контроль с домашних компьютеров. Скептики уверяли, что у нас все студенты сразу станут отличниками с одной-двух попыток.
Однако реальность оказалась иной. Среднее число попыток составило 15 (пятнадцать) даже для получения "удовлетворительно". То есть студенты, даже имея возможность пользоваться любой литературой, не могут сдать сразу и на хорошую оценку.
Ну, рецепт, как я понял, был такой: «Не тратьте, куме, сили – спускайтесь на дно!», ибо защищаться от злонамеренных студентов бесполезно.
Ваш опыт с домашним тестированием интересен. Наверное, и у нас найдутся предметы, где такое возможно. Но и так очевидно, что рекомендовать подобное всем нельзя.
Мы сейчас реализуем проект создания специализированного тест-класса, который студенты будут посещать после занятий, по свободному графику, подобно посещению читальных залов библиотеки. Разумеется, преподаватель не будет присутствовать при тестировании своих студентов. Его задача разместить тесты на страничке своей дисциплины, а потом проанализировать результаты.
Наша задача – минимизировать в этом тест-классе возможность применения любых технологий обмана. Поэтому хотим испытать там все, что только возможно: и дактилоскопию, и видеонаблюдение с распознаванием лиц и пр. Ну и потом поделимся своей статистикой с общественностью.
____Ну, рецепт, как я понял, был такой: «Не тратьте, куме, сили – спускайтесь на дно!», ибо защищаться от злонамеренных студентов бесполезно.___
Вы не верно поняли.
1. От злонамеренных студентов защищаться действительно бесполезно, но вы даже не рассматриваете вариант добропорядочных студентов. Неужели у вас таких нет?
2. ИМХО, куме было бы лучше переходить реку по мосту, а не переплывать, не умея плавать
_____Мы сейчас реализуем проект создания специализированного тест-класса, который студенты будут посещать после занятий, по свободному графику____
Не совсем понятно, зачем тогда Moodle? Да и тесты не нужны. У нас проблема как раз в том, что студенты живут от 300 до 3500 км от ВУЗа и никто из них не будет кататься в "специализированный тест-класс". До недавнего времени они приходили в классы представительств, теперь этого делать нельзя. Вот потому и разрешили использовать домашние компьютеры - как ни странно, это делать можно. А вот получить квалифицированную консультацию на месте - ни-ни, нарушение ст.20 ТП о ВУЗе.
____Наша задача – минимизировать в этом тест-классе возможность применения любых технологий обмана. Поэтому хотим испытать там все, что только возможно: и дактилоскопию, и видеонаблюдение с распознаванием лиц и пр. Ну и потом поделимся своей статистикой с общественностью.___
И единую базу данных лиц, и прочее, прочее, прочее. У вас богатый ВУЗ, если может позволить тратить деньги на столь масштабные вложения всего лишь в организацию тестирования.
> От злонамеренных студентов защищаться действительно бесполезно, но вы даже не рассматриваете вариант добропорядочных студентов. Неужели у вас таких нет?
Почему же, сколько угодно. Для них применение этих средств дискомфорта не вызывает, а жуликам создает существенные препятствия.
> Не совсем понятно, зачем тогда Moodle? Да и тесты не нужны.
Мы используем Moodle не для дистанционного обучения, а как средство информационной поддержки учебного процесса и тестирования.
> У вас богатый ВУЗ, если может позволить тратить деньги на столь масштабные вложения всего лишь в организацию тестирования.
Деньги там небольшие. Дактилоскопический сканер, например, уже даже в обычную флешку вставляют, чтобы чужой ею не воспользовался. Мы выиграли тендер нашего украинского министерства. Сделаем тест-класс, испытаем его на наших студентах в разных вариантах оснащения от максимального до нулевого (ничего, кроме компьютеров), наберем статистику, сделаем выводы и будем предлагать другим вузам для внедрения.
Ну положительный опыт, как я понимаю, есть у сторонников обеих позиций, а значит нужно пользоваться.
Я нашим преподавателям всегда говорю, что если вы беспрерывно присутствуете в аудитории в течение всего теста, и ничем посторонним не занимаетесь, то никто ничего списать не сможет и не нужно никаких особенных технических средств. Другое дело, когда хочется не тратить время на присматривание за студентами, тогда никакие средства не помогут.
Кроме того, не раз в этом убеждался - если преподаватель захочет завалить студента, он это всегда сможет сделать.
У нас дистанционного обучения нет - Moodle только для организации доступа студентов к материалам и для тестирования.
По мне так в тест-кассе должен быть постоянный лаборант, который будет пускать студентов по одному, проверять соответствие фотографии, фамилии и логина.
Конечно лаборант - ключевая фигура. Он и должен выполнять полицейские функции. Ученой степени для этого не требуется. Ну а видеонаблюдение и прочие технические средства нужны, чтобы контролировать и студентов, и лаборанта.
>Конечно лаборант - ключевая фигура. Он и должен выполнять полицейские функции.
А вот и корупционная составляющая на подходе.
А кто будет контролировать того, кто наблюдает за лаборантом?
Почему же, сколько угодно. Для них применение этих средств дискомфорта не вызывает, а жуликам создает существенные препятствия.
1. У нас все ДОшники - платят за обучение. Прямого дискомфорта, конечно, не вызывает, но часть бюджета придется потратить не на образовательный процесс, а на организацию полицейского, как правильно замечено, контроля. То есть бороться с жуликами, за деньги добропорядочных.
2. А каково соотношение жуликов к добропорядочным? Если первых много больше, тогда все оправдано. Но если наоборот? Не проще ли выявить жуликов на начальных этапах и поработать с ними отдельно? Вплоть до отчисления. У нас это называется "показательная порка". Весьма эффективный способ заставить работать.
Мы используем Moodle не для дистанционного обучения, а как средство информационной поддержки учебного процесса и тестирования.
Понятно. Значит у нас в вами разные задачи. Нам нужно именно ДО.
Деньги там небольшие. Дактилоскопический сканер, например, уже даже в обычную флешку вставляют, чтобы чужой ею не воспользовался. Мы выиграли тендер нашего украинского министерства. Сделаем тест-класс, испытаем его на наших студентах в разных вариантах оснащения от максимального до нулевого (ничего, кроме компьютеров), наберем статистику, сделаем выводы и будем предлагать другим вузам для внедрения.
Сканер и камера, действительно стоят копейки. А вот СИСТЕМА стоит значительных денег. Начать с железа - сервер для БД, быстрая сеть. Затем софт, который явно небесплатен, затем персонал для администрирования, для контроля, для контроля за контролерами. Для нас - дорого!
Есть такая штука - называется ip-камера (веб-камера, доступная в браузере по ip-адресу). Цена - 3000 р. Планируем взять таких парочку и открыть общий доступ - пусть все знают, как сдаётся экзамен. При одновременном тесте в двух аудиториях можно в одной на проектор выдать изображение из другой, и наоборот, чтобы понимали, что за ними так же кто-то может наблюдать.
А после этого - поимка пары хулиганов и публичная порка.
>Сканер и камера, действительно стоят копейки. А вот СИСТЕМА стоит значительных денег. Начать с железа - сервер для БД, быстрая сеть. Затем софт, который явно небесплатен, затем персонал для администрирования, для контроля, для контроля за контролерами. Для нас - дорого!
Если у в организации нормальный отдел информационных технологий и т.п. с группой штатных разработчиков (именно программистов, а не админов), то это всё можно неторопливо сделать. Если у вас нет программистов, то даже вкладывая огромные деньги в ПО и оборудование не получится адаптированной системы, максимально удобной для решения конкретных задач.
А вот разработка робота-лаборанта, не берущего взятки, обойдётся гораздо дороже.
Дорогой Алексей! Вообще тема этой дискуссии стара, как мир. Если мораль и правопорядок в стране оставляет желать лучшего, то что нужнее церкви и проповедники или полицейские и тюрьмы? Практика показывает, что нужно и то, и другое. Только проповедники или только полицейские проблему не решат. Ну а сколько именно нужно церквей, а сколько тюрем надо решать на месте, с учетом всех факторов.
Метод «показательной порки» общеизвестен. Если у Вас есть более интересные технологии, как заставить нерадивого студента относиться к учебе надлежащим образом, а не пытаться обмануть преподавателя, поделитесь, давайте их обсудим. Можем отдельную тему на этом форуме открыть, по организации тестирования на базе Moodle в условиях обычного вуза. Ведь не все решается за счет программирования. Очень много зависит от организации.
Насколько дорогой и насколько эффективной окажется наша система, давайте я проинформирую вас и все сообщество примерно через год, когда мы закончим этот проект.
Ну ладно, не 1000 и 1 способ, но их довольно много! О чем это мы? О том, что пандемия COVID-19 внесла много изменений в нашу жизнь, в том числе, и в образование — как школьное, так и ВУЗовское. Уроки, лекции и семинары перешли в онлайн-формат, а вопрос, как быть с контролем успеваемости, остался. Как преподавателям убедиться, что сдающий экзамен студент не открыл в соседней вкладке шпаргалки?
В России эту проблему решили с помощью open-source программы Safe Exam Browser (SEB). Казалось бы, теперь ни один искатель халявы не сможет смухлевать, но так ли уж неприступна эта «крепость»? Заходи под кат, сегодня мы расскажем и покажем кучу способов обмануть SEB!
Шёл 2020-й год… Весь мир в панике, курс рубля падает, государства переходят в режим ЧС… Несмотря на все это, основное желание среднестатистического студента остается прежним — сдать сессию с наименьшими затратами сил и времени на подготовку. Казалось бы, с переходом на дистанционное обучение для студента все стало проще — нужно всего лишь сделать умное лицо при ответе на вопрос по веб-камере, а прочитать материал можно и с параллельно открытого документа на компьютере. Но не тут-то было!
Многие российские ВУЗы для проверки успеваемости студентов внедрили программу Safe Exam Browser, которая предотвращает практически все попытки читерства. Конечно, для находчивых студентов и это не препятствие — ведь можно гуглить ответы на тест и на втором компьютере (или попросить погуглить друга).
Но, поскольку мы в душе тру хацкеры, мы решили проверить, насколько этот SEB действительно помогает при проведении экзаменов и как все же программно обойти его чуткий контроль (при условии, что студент обладает базовыми навыками работы на компьютере, не впадает в ужас от слов «виртуальная машина» и знает, как установить плагин для браузера Mozilla Firefox). Готовы? Поехали!
Что такое Safe Exam Browser (SEB)?
Safe Exam Browser (SEB) — программа для проведения экзаменов, тестов и т.д. в режиме онлайн. Предусматривает защиту от:
- открытия посторонних приложений (видео- и голосовой связи);
- параллельного поиска информации в веб-браузере;
- запуска приложения на виртуальной машине;
- перехода на определенные сайты;
- сохранения информации в буфере обмена перед входом в программу.
Конфигуратор SEB представляет собой приложение с интуитивно понятным интерфейсом:
В нем можно задать URL-адрес экзаменационного ресурса, список разрешенных/запрещенных приложений и сайтов, разрешения на загрузку файлов из Интернет, работу в виртуальной машине и т.д.
Большой простор для творчества и фантазии, не так ли?) Что же, приступим.
Дисклеймер: при написании статьи автору очень помогла эта статья.
1. Смена user-agent браузера
Для реализации этого способа не потребуется практически никаких знаний и инструментов. Проверим, как реагирует тест на Moodle на запуск через обыкновенный веб-браузер:
Как видно из скриншота, SEB не позволяет получить доступ к тесту из обычного браузера.
Согласно документации, в качестве веб-браузера SEB использует XULRunner — движок Gecko браузера Mozilla. Попробуем подменить user-agent браузера Mozilla на user-agent, указанный в конфигураторе SEB:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0 SEB
Установим какой-нибудь плагин для подмены user-agent, например, User-Agent Switcher, и добавим к нему следующий вариант:
Ловкость рук и немного мошенничества — и теперь можно спокойно приступать к тесту, параллельно открыв гугл в соседней вкладке! :)
2. Изменение конфигурационного файла виртуальной машины
Предыдущий способ, конечно, очень прост и понятен, однако вполне может возникнуть ситуация, что экзаменатором собираются еще и логи экзамена — а SEB как раз логгирует все свои события: выключение неразрешенных процессов, очистку буфера обмена и многое другое. Поэтому надо найти способ читерить с включенным SEBом!
Сначала мы решили посмотреть, можно ли включить SEB на виртуальной машине. Здесь, к сожалению, нас постигла неудача — в таких условиях SEB даже не позволяет себя запустить. Но как-то же он понимает, что используется виртуальная машина!
Было опасение, что SEB использует не очень приятные для студента способы вроде обнаружения процессов и сервисов виртуальной машины (ВМ) в системе, но при изучении исходного кода было выяснено, что проверка на запуск из ВМ происходит в функции IsInsideVM() файла SEBWindowsClientMain.cs:
Видим, что SEB способен определить виртуальные машины производителей, которые перечислены в коде! А что, если мы изменим конфиг виртуальной машины, подменив, тем самым, производителя?
Сказано — сделано! Открываем конфигурационный файл VmWare и добавляем следующую строку:
Теперь manufacturer model виртуальной машины станет таким же, как и у основной машины. Запускаем виртуальную машину, на ней включаем SEB и пытаемся получить доступ к тесту — все работает!
3. Компиляция новых версий SEB
А теперь переходим к самому интересному — компиляции «своей» версии SEB! Исходный код доступен здесь. Самое интересное, что конфигурационный файл SEB не отслеживает целостность десктопного приложения (либо отслеживает так, что мы смогли без проблем поменять большую часть кода, хи-хи), тогда как целостность конфигурационного файла, присланного экзаменатором, проверяется строже некуда.
3.1 Запуск в виртуальной машине
Итак, нужно всего лишь в приведенном выше коде закомментировать строчку с нужной ВМ:
3.2 Очистка буфера обмена
Когда SEB включается, он автоматически очищает буфер обмена. Таким образом, все, что скопировал студент до запуска SEB, в SEB не попадет. Что же, вызов принят!
Здесь можно пойти двумя путями:
- Покопаться в файле SEBClipboard.cs, убрать логгирование ошибок или немного изменить алгоритм очистки буфера обмена.
- Закомментировать строку в файле SEBWindowsClientMain.cs:
Таким образом, с собой в SEB можно «пронести» любой текст, картинку — словом, шпаргалку, которую можно поместить в буфер обмена.
3.3 Помощь друга или убираем запрет на Discord
SEB похож на очень капризную женщину — при включенном Skype, Discord и т.д. он не включится, а поставит тебя перед выбором: или я, или они.
Что ж, постараемся снизить градус напряжения в такой ситуации.
Здесь есть простор для полёта фантазии, но, в целом, достаточно закомментировать подходящие по смыслу строки вроде «processToClose.Kill();» в файле SEBNotAllowedProcessController.cs.
Также советуем рассмотреть строки «SetForegroundWindow(windowHandle);», «BringWindowToTop(windowHandle);» и работу службы WatchDog. Грамотное выстраивание логики приложения и логгирования — ключ к успеху!
И мы тем временем получили запущенный Discord при работающем SEB:
Что еще могут попробовать энтузиасты?
Вариантов осталось достаточно, хватит на 1000 и 1 бессонную ночь за компьютером. Например, можно перекомпилировать SEB так, чтобы он не запускался поверх всех окон, и его можно было бы свернуть как обычное приложение.
Также можно попробовать запустить SEB на других ОС (невероятно, но факт: очевидцы утверждают, что стандартный ВУЗовский конфиг для SEB на OS X даже голосовую связь по Discord остановить не может!).
Итак, способов собрать SEB с урезанным функционалом — великое множество, тут все упирается только в воображение креативных и трудолюбивых студентов!
Закончим статью народной мудростью: остановить студента в поиске халявы может только еще большая халява!
Недавно ProctorEdu и КРОК запустили систему для контроля онлайн-тестирования на экономическом факультете МГУ. Она помогает наблюдать за студентами, которые сдают экзамен.
Эта система «подсвечивает» нарушения, подсказывает, на кого и на что обратить внимание. В результате один преподаватель может контролировать разом несколько десятков студентов, сидящих у себя дома.
Такой подход к онлайн-обучению, прокторинг, первыми внедрили Coursera и Udemy. Разработчики ProctorEdu задумали собственную систему прокторинга в 2016 году именно для учебных заведений, но вскоре поняли, что она способна решать другие, более серьезные задачи.
В конце концов, многие хотя бы раз в жизни списывали в школе или вузе, и мир до сих пор не рухнул, но в некоторых ситуациях жульничество на экзаменах приводит к серьезным последствиям.
Взять тестирование на знание основ информационной безопасности. Сотрудники — уязвимое звено в защите любой компании, и было бы действительно здорово, если бы все они выучили базовые меры предосторожности. Возможно, тогда бы Uber не оштрафовали на $1.2 млн. за утечку персональных данных, и не произошло скандала со взломом Twitter.
А ведь есть ответственная и опасная работа, где от знания должностных инструкций и техники безопасности зависят жизни людей.
Примеров много: от управления поездом до вахты на буровой платформе в открытом море. Это не говоря об экстремальных ситуациях, когда раздумывать просто некогда и нужны готовые, заученные решения.
Как правило, во всех этих сферах сотрудников регулярно обучают, тестируют и аттестуют, но часто это воспринимается, как формальность. К тому же, при популярных сейчас онлайн-экзаменах контролировать соблюдение правил довольно сложно.
Конечно, можно приставить к каждому участнику по проктору, следящему за соблюдением регламента из объектива веб-камеры, но чтобы всерьез протестировать персонал крупной компании за разумные сроки, потребуется целый взвод наблюдателей.
Разработчики ProctorEdu решают эту проблему при помощи нейронных сетей и нескольких десятков других алгоритмов, которые распознают нарушения по набору настраиваемых параметров.
Как это работает
Во время экзамена ProctorEdu ведет запись с камеры, микрофона и экрана компьютера.
Система отслеживает, кто находится в кадре: сравнивает человека с фотографией, сделанной перед началом тестирования, или со сканом паспорта, загруженного перед экзаменом.
Она проверяет, куда смотрит участник, нет ли в кадре других людей, и не говорит ли кто-то поблизости. Кроме того, ProctorEdu следит за тем, чтобы браузер был развернут на весь экран, детектирует переключение на другие окна и подключение дополнительных мониторов, периодически проверяет состояние сетевого подключения. Система собирает статистику по часто используемым диграфам и с ее помощью отслеживает манеру набора текста на клавиатуре.
Обычно, когда алгоритм фиксирует нарушения, например, теряет человека из виду, система сначала выводит на экран предупреждение. Если участник не реагирует, ProctorEdu приостанавливает тестирование, до тех пор, пока он не исправится. При этом делается отметка о нарушении регламента, к которой можно вернуться позже при просмотре видеозаписи экзамена.
На основе нарушений по формуле рассчитывается рейтинг достоверности результатов экзамена.
E ∈ [0, 100] ‒ оценка доверия (если E < 0, то E = 0), xk ‒ усредненное за сеанс значение метрики k, wk ‒ весовой коэффициент метрики k, M ∈ ‒ метрики
Оценка доверия базируется на всех метриках, которые отслеживает система (если они включены в настройках конкретного экзамена) и весовых коэффициентах, которые подобраны опытным путем. Оценка показывает суммарный средний процент нарушений за весь сеанс.
Протокол сеанса в PDF-формате
ProctorEdu может работать в полностью автоматическом режиме, передавать рейтинг в систему тестирования, которая аннулирует результаты с низким рейтингом достоверности. Но для большей объективности обычно приглашают живого проктора. Он может просматривать записи участников с низким рейтингом доверия уже после экзамена, а может участвовать в нем с самого начала.
В таком сценарии проктор может эффективно контролировать до 30 участников. Ему практически не нужно вмешиваться в ход экзамена. Система сообщает о нарушениях в реальном времени и подсказывает, на кого из подопечных обратить внимание.
Проктор может развернуть видео на весь экран и приглядеться к происходящему, объяснить участнику, что тот делает не так, предупредить о нарушении, приостановить или досрочно завершить экзамен.
Такая технологическая поддержка облегчает работу проктора, ускоряет проведение онлайн-экзаменов и аттестаций и позволяет сохранить высокую достоверность результатов.
Ограничения браузера и детекция лиц
Запись камеры и экрана, распознавание лиц, логирование клавиатуры… Это звучит не секьюрно, поэтому разработчики ProctorEdu сознательно отказались от идеи устанавливать свое ПО на компьютеры участников экзамена.
ProctorEdu работает через браузер при помощи супервизор SDK — JavaScript-библиотеки, в которой реализованы алгоритмы машинного обучения.
SDK не требует установки расширений и плагинов. ProctorEdu интегрируется с сервисом онлайн-тестирования при помощи стандарта IMS LTI или нескольких API-команд. Система запускается на странице тестирования и работает параллельно с ним.
Это удобно для пользователей, и браузер с его политикой безопасности дает независимую гарантию того, что данные собираются только во время экзамена.
Конечно, с таким подходом связаны определенные сложности. Разработчики сами наложили на себя ограничения, с которыми теперь вынуждены жить. Например, у системы нет доступа к оборудованию, процессам, окнам и другим ресурсам компьютера. Поэтому тестирование проходит в той же вкладке, где работает прокторинг. Это позволяет отслеживать переключение фокуса на другие вкладки и окна. Есть и нюансы, связанные с архитектурой и нейросетями.
Распознавание лиц в ProctorEdu реализовано при помощи сверточных нейросетей с использованием OpenCV и Dlib. Они регулярно переобучаются на свежесобранных данных. Для детекции лиц используется отдельная модель.
Разработчики с самого начала планировали запустить эти алгоритмы в браузере. Обычно такие задачи решают при помощи компиляции C++ в WebAssembly (Wasm). Считается, что это хорошая практика.
Чисто теоретически Wasm работает быстрее, чем JavaScript сценарий, но на практике выяснилось, что он медленнее, потребляет больше памяти и процессора, весит больше. Только загрузчик такого кода получается от 10 МБ.
Пришлось разрабатывать на JavaScript в несколько итераций. Первые версии были слабенькими и часто ошибались, но со временем команда ProctorEdu добилась стабильной работы и вывела это решение в продакшн.
Получилось быстро и компактно, но через какое-то время Сколтех пожаловался, что система не видит некоторых студентов. Оказалось, что курсы этого института проходит много чернокожих ребят, которые подключаются прямо из Африки, и алгоритм действительно не всегда их замечает.
За время обучения нейронка видела достаточно людей разных рас и возрастов, никто не ожидал возникновения такой проблемы. В конце концов выяснилось, что сетка здесь ни при чем, а дело в засветке. Африка просто слишком солнечная.
Если за спиной студента окно, или он сидит на ярком солнце в белой с иголочки рубашке, камера выставляет экспозицию по самому светлому участку изображения. Черты лица затемняются, сливаются, и алгоритму не с чем работать. Пришлось добавить рекомендации по освещению в инструкцию для участников экзамена.
Сейчас разработчики планируют перенести в браузер и алгоритм распознавания лиц. Пока что модель великовата (20—30 Мбайт с учетом сжатия), это в то время как все SDK весит около 1 мегабайта. Но здесь стоит постараться и найти решение.
Когда все изображения будут распознаваться в браузере, расходы на хостинг сократятся на добрых 30%. К тому же, на сервер будут передаваться только дескрипторы, по которым нельзя восстановить оригинальное изображение, а фото и документы так и останутся на компьютерах пользователей.
Серверная часть ProctorEdu
Кстати, об архитектуре системы.
Основной компонент ProctorEdu — сервер приложений. Он работает на Node.js и занимается обработкой веб-запросов и веб-сокетных соединений. Сервер приложений связан с базой MongoDB. Там хранятся все данные, не являющиеся бинарными объектами. Для файлов, изображений, записей экзаменов предусмотрено отдельное S3-совместимое объектное хранилище.
Архитектура ProctorEdu включает отдельный сервис под API распознавания лиц и документов, и TURN-сервер для координации WebRTC-подключений между компьютерами участников.
Раньше для видеосвязи использовался медиасервер, через который проходили видеопотоки всех клиентов. Но разработчики быстро поняли, как тяжело приходится онлайн-кинотеатрам: то соединения отваливаются, то данные не передаются, то память переполняется — вечно какие-то сложно диагностируемые проблемы. Когда они перешли на p2p архитектуру, проблемы решились сами собой.
Вся система поддерживает горизонтальное масштабирование. Ее компоненты упакованы в контейнеры. Их можно разбросать по разным физическим серверам и собрать кластерную конфигурацию в режиме мастер-мастер. Тогда нагрузка будет распределяться равномерно.
Обычно ProctorEdu разворачивают на базе одного из российских хостингов, поддерживающих хранение персональных данных, но систему можно запустить и на локальном сервере, как в проекте с МГУ и КРОК.
Требования к железу невысокие: компьютер с восьмиядерным процессором и 8 ГБ оперативной памяти потянет порядка 500 одновременных сессий. Однажды ProctorEdu обслуживала больше 5 тыс. одновременных участников экзамена и понадобилось всего 6 серверов для обработки клиентских запросов.
Можно ли обмануть систему?
Можно, но не так, как это обычно пытаются сделать.
В торговых сетях, где используют ProctorEdu, часто бывает так, что один сотрудник пытается пройти тесты за весь магазин. Порой пользователи подменяют видео с камеры на какую-нибудь видеотрансляцию. Так, однажды разработчики наблюдали, как тесты по технике безопасности на предприятии проходила известная порноактриса.
Был случай, когда один из участников подготовился особенно серьезно: напечатал чужое фото на листе А4, вырезал глаза, привязал резинку и использовал как маску.
Конечно, это все легко детектируется.
Раньше можно было поставить смартфон перед монитором так, что его не было видно с фронтальной камеры. Казалось, что участник постоянно смотрит только на монитор. Теперь ProctorEdu обеспечивает и боковой обзор. К системе подключается вторая камера или тот же смартфон.
Еще можно попробовать списывать при помощи удаленного рабочего стола или виртуальной машины. Отследить их с вкладки браузера практически невозможно. Чтобы закрыть эту возможность, в систему добавили интеграцию с Safe Exam Browser.
Это браузер с открытым исходным кодом, который блокирует компьютер на время экзамена. Он не позволяет использовать удаленный рабочий стол, посторонние программы, а также распознает виртуальные машины.
Конечно, и это не панацея. Если постараться, Safe Exam Browser можно обмануть. Еще можно раздобыть скрытые наушники или аппаратный сплиттер для мониторов. Любой алгоритм можно обойти, вопрос лишь в том, сколько усилий для этого потребуется. ProctorEdu делает так, чтобы было проще выучить, чем смухлевать. И наши клиенты подтверждают, что система успешно справляется с этой задачей.
Здесь мы поговорим о том, как я обошел защиту в компьютерном клубе Arena Arsenal. Все это привело к тому, что я смог спокойно продолжить пользоваться компьютером без оплаты доступа и какого либо абонемента. Просто выполнил пару не особо сложных действий и компьютер в моем распоряжений, абсолютно бесплатно.
Предыстория
Однажды друг пригласил меня сходить в компьютерный клуб, взять абонемент на всю ночь и играть. Раньше в таких местах я никогда не был и мне было интересно сходить туда и заценить всю обстановку и окружение. Когда я туда пришел, я зарегистрировал свой аккаунт в лаунчере и начал знакомится и изучать, как там все работает. Используется там E-Launcher SENET от ENESTECH Software. После изучения лаунчера и понимая как это работает, мне как всегда стало интересно, а как это обойти? И тут началось довольно интересное приключение.
Введение
Начнем с объяснения, как вообще работает компьютерный клуб.
У каждого клиента есть свой личный аккаунт в лаунчере. Счет в аккаунте нужно пополнять, если на счету будет 0р, то через пару секунд, пользователя просто выкинет из системы. Счет можно пополнить на любую сумму, именно от суммы зависит то, сколько ты можешь пользоваться компьютером. Например, внеся 40р, ты сможешь пользоваться компьютером около 38 минут. Компьютерный клуб предлагает в некоторые промежутки времени более выгодные абонементы как по сумме, так и по времени. После оплаты какой либо суммы, выдается чек с кодом, который нужно ввести в своем аккаунте в лаунчере и сумма успешно пополняется и продлевается время работы за компьютером. Коды одноразовые, генерируются случайными цифрами и действуют в течении 24 часов. Если код не активировать в течении 24 часов, то он обнуляется и больше не действует. Если же код активировать и выйти из аккаунта, то время заканчиваться не будет.
Первые попытки обхода
Первым делом я пробовал закрывать лаунчер с помощью диспетчера задач, но после закрытия лаунчер постоянно перезапускался. Решил я поступить похожим образом и скачал диспетчер задач с большим функционалом, как Process Explorer и Process Hacker. С помощью них я не закрывал процессы связанные с лаунчером, а именно замораживал/останавливал их и по сути я добился того, что уведомления о том, что на счету осталось мало времени, попросту не было. Сам лаунчер был заморожен и обратного отсчета времени не было и эти факты меня сначала удивили и я даже начал радоваться, но рано. Когда времени на счету истекло, меня попросту выкинуло из системы, как и должно быть. Большинство процессов связанные с лаунчером и с самим этим контролем, мне остановить и закрыть не удалось, так как недостаточно было прав для этого.
В любом случае тут понятно, что время контролируется со стороны сервера, а не со стороны клиента. И по сути когда время заканчивается, сервер посылает определенную команду и компьютер со стороны клиента принимает эту команду и его выбрасывает из системы. То есть, сам компьютер рабочий, но его использование ограничивает сам лаунчер и процессы контроля. Если от них избавится, то можно спокойно пользоваться компьютером. После закрытия лаунчера, достаточно открыть проводник и на жестком диске найти нужные тебе программы и игры, так как в большинстве случаев они предустановлены, а лаунчер просто упрощает их запуск, чтобы не копаться в папках в проводнике.
Закрытие лаунчера
Покопавшись в компьютере, мне удалось найти способ полного закрытия лаунчера. Так как стандартным способом с помощью диспетчера задач, закрыть и снять с автозагрузки лаунчер не получается из за отсутствия прав администратора.
Начнем мы по порядку:
1. Открываем проводник
Проводник можно открыть с помощью диспетчера задач, выбрав любой процесс и открыв расположение файла.
Открытие проводника
В итоге у нас должен открыться проводник с местоположением диска C: где собственно установлена сама система Windows.
2. Открываем PowerShell
Открыв проводник, переходим по пути "C:\Windows\System32\WindowsPowerShell\v1.0" и открываем PowerShell.
Открытие PowerShell
3. Открываем реестр
После открытия PowerShell, пишем «regedit» и у нас должен открыться реестр.
Открытие реестра
4. Удаляем с автозапуска лаунчер и связанные с ним процессы.
Открыв реестр, переходим по пути "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" и удаляем с автозапуска лаунчер и связанные с ним процессы.
Отключение автозапуска
Выбрав нужные поля в реестре, можно успешно удалить процессы с автозапуска.
Данный способ может работать не на всех компьютерах, но имеет место быть.
Как выяснилось позднее, закрывать лаунчер для обхода защиты совсем необязательно.
Обход защиты
Как мы помним, сам компьютер рабочий, но его использование ограничивает процессы контроля. Эти процессы связываются с локальным сервером и в случае нехватки средств на счету клиента, сервер посылает определенный запрос и пользователя просто выкидывает из системы.
И теперь тут появляется вопрос, а что если запретить сетевой доступ определенным процессам контроля? Чтобы процесс не смог принять команду сервера о том, что пользователя нужно выкинуть из системы.
Теперь мы начнем по порядку:
1. Скачиваем NetLimiter
Первым делом нам нужно скачать программу, для управления сетевыми соединениями.
Скачивание NetLimiter
С установкой проблем возникнуть не должно, так как прав администратора для этого не требуется и программа спокойно работает с правами пользователя.
После установки и запуска программы, мы заходим в настройки, включаем «Блокировщик» и сохраняем настройки.
Включение блокировщика
После этого, когда какой либо процесс будет стучатся в сеть, программа будет спрашивать у нас разрешение — «Разрешить» или «Запретить» доступ в сеть определенным процессам.
Нас будет интересовать эти 3 процесса, именно они работают сообща друг с другом и решают, когда выкидывать пользователя а когда нет. Заблокировав им доступ в сеть, мы успешно обходим защиту и по окончанию времени, нас не выкидывает из системы и мы можем успешно пользоваться дальше компьютером, при этом не оплачивая к нему доступ.
После окончания времени и блокирования доступа в сеть процессам, мы встречаем такую картину:
Тут мы видим, что процессы синхронно начинают отправлять запросы нашему компьютеру, видимо связанные с выкидыванием из системы из за окончания времени, но программа блокирует сетевую связь процессам с нашим компьютером, тем самым давая возможность спокойно пользоваться компьютером бесплатно.
Ниже прикладываю видео с демонстрацией обхода.
В этом видео я демонстрирую обход защиты, где по окончанию времени я мог дальше пользоваться компьютером. В видео имеется еще одно видео, где демонстрирую то, как разрешаю доступ в сеть процессам контроля и буквально через пару секунд, меня выкидывает из системы. То есть, компьютер уже получает запрос с сервера, принимает его и выполняет команду.
Советы по защите
Тут я дам пару советов о том, как предотвратить такие случаи.
1. Ограничить доступ к использованию PowerShell/cmd
2. Ограничить доступ к использованию реестра
3. Контролировать установку программ. Можно добавить белый список разрешенных программ «Игры, лаунчеры» и в черном списке просто запретить использование любых других exe файлов
4. Регулярно устанавливать обновления Windows и всех установленных программ, чтобы система оставалась в актуальном состоянии
5. Можно осуществить хранение информации о времени выхода из сессии пользователя, чтобы в случае если не будет связи с самим сервером (который посылает команду для отключения пользователя из сессии), компьютер у себя локально самостоятельно отключал пользователя в определенное время. То есть, информация будет храниться в кэше и своевременно будет обновляться по мере пополнения счета пользователя и по истечению времени отключать пользователя из сессии
Итоги
Как мы видим, мы смогли обойти защиту и пользоваться компьютером абсолютно бесплатно. У нас не было прав администратора, мы были ограничены в использовании, но это не помешало нам обойти защиту и обойти довольно легким способом. Установил программу для контроля интернет соединений, запретил сетевой доступ определенным процессам и компьютер в твоем распоряжении.
Отказ от ответственности
Содержание блога было сделано доступным только для информационных и образовательных целей.
Настоящим я отказываюсь от любой и всякой ответственности перед любой стороной за любые прямые, косвенные, подразумеваемые, штрафные, специальные, случайные или другие косвенные убытки, возникающие прямо или косвенно от любого использования контента блога несет исключительно ответственность читателей.
Эл. об. (5 группа) запись закреплена
Инструкция по установке Safe Exam Browser
1. Переходите на сайт https://dl-iets.spbstu.ru/safe/ (см. фото 1);
2. Нажимаем на «Установщик Safe exam browser» (см. фото 2);
3. Найдите скачанный файл (по умолчанию файлы скачиваются в «Загрузки») и откройте его двойным нажатием левой кнопкой мыши на него. Запустится установка Safe Exam Browser (см.фото 3);
4. Принимаем лицензионное соглашение «I accept…» и нажимаем «Next >» (см. фото 4);
5. Нажимаем «Install» (см. фото 5);
6. Нажимаем "Finish";
7. Safe Exam Browser установлен. Данный браузер блокирует все остальные окна и позволяет работать только на заранее настроенном сайте (адресной строки браузер не имеет). Теперь необходимо установить файл настроек.
Если вы работаете в браузере Firefox, то закройте его. Safe Exam Browser основан на Firefox и не может работать с ним одновременно.
8. Возвращаемся к п.1. и нажимаем на «Конфигуратор ИЭ» (см. фото 6);
9. Начнётся скачивание. Найдите скачанный файл (по умолчанию файлы скачиваются в «Загрузки») и откройте его двойным нажатием левой кнопкой мыши на него. (cм. фото 7);
10. Запустится Safe Exam Browser и применит настройки, о чем сообщит вам во всплывающем окне «SEB Re-Configured» и спросит о желании выйти из Safe Exam Browser (ДА/НЕТ) (см. фото 8);
11. При следующих запусках Safe Exam Browser будет открывать портал СДО ИЭ, с которым вы можете работать как обычно, но теперь вам доступны для выполнения тесты под Safe Exam Browser (см. фото 9);
(данная инструкция прописана в файле "Инструкция по установке и настройке Safe Exam Browser для сдачи тестов", прикреплено ниже)
Дополнительно:
На зачете необходимо войти в MS Teams для общения с преподавателем до запуска Safe Exam Browser, так как последний уже не позволит запустить какие-либо приложения.
Крайне рекомендуется, чтобы MS Teams был установлен отдельным приложением, а не открыт в браузере, так как MS Teams отдельным приложением работает значительно стабильнее, а запустить MS Teams в Firefox + Safe Exam Browser вообще не представляется возможным.
Обучающийся самостоятельно обеспечивает наличие необходимого оборудования для прохождения промежуточной аттестации с применением ЭО и ДОТ, минимальный комплект которого составляют:
· компьютер с выходом в Интернет со скоростью не менее 2 Мбит/с и системными требованиями – Windows 7 и выше/ Mac OS X 10.10 и выше.
· наушниками (либо колонками); web-камерой; микрофоном, или мобильным телефоном с камерой с разрешением не менее 3 МП.
Читайте также: