Дипломный проект по ИБ: идеи и реализация заданий для сайта

    Вы сменили специальность на информационную безопасность (ИБ) и хотите адаптировать дипломный проект - сайт для программистов (как Codewars) под новую тематику. Это отличная идея, но важно правильно наполнить платформу контентом, связанным с кибербезопасностью. Разберём, какие задания можно добавить, как реализовать проверку решений и насколько сложно внедрить новые функции.

    Какие задания по ИБ можно добавить на сайт?

    Ваш проект уже поддерживает выполнение кода на Python, JavaScript, TypeScript, Ruby, PHP. Для Java, C/C++ потребуется настройка WSL - это реализуемо, но займёт время. Вот несколько типов задач, которые подойдут для диплома по ИБ:

    • Поиск и исправление уязвимостей - пользователь получает фрагмент кода с ошибкой (например, SQL-инъекция или XSS) и должен найти уязвимое место и предложить корректный фикс. Проверка может быть как автоматической (сравнение с эталоном), так и ручной (через тесты).
    • SQL-инъекции - задание, где нужно написать запрос, который обходит аутентификацию или извлекает скрытые данные. Реализуется через изолированную базу данных (например, SQLite в памяти), чтобы избежать рисков.
    • XSS (межсайтовый скриптинг) - пользователю даётся HTML-страница с формой, и он должен ввести скрипт, который отразится на странице. Проверка - через эмуляцию браузера (например, Puppeteer) или анализ введённого кода.
    • Криптографические задачи - расшифровка сообщения, взлом простого шифра (Цезарь, XOR), реализация алгоритмов хеширования.
    • Сетевые атаки - анализ пакетов (pcap-файлы), поиск уязвимостей в протоколах (например, перехват токенов).

    Как реализовать проверку решений без риска для сервера?

    Главная проблема - безопасность. Если пользователь может выполнить произвольный код, это угроза для вашего сервера. Рекомендуется изолировать выполнение в контейнерах Docker или использовать песочницу (sandbox). Например, для Python можно применить библиотеку PyPy или subprocess с ограничением времени и памяти. Для JavaScript - Node.js в изолированном процессе. Для SQL-инъекций используйте временную базу данных, которая уничтожается после проверки.

    Тесты с выбором ответа и страница обучения

    Вы упомянули тесты типа «Выберите правильные ответы» - это отличный способ охватить теорию ИБ. Можно сделать модули по темам: OWASP Top 10, криптография, безопасность сетей, политики доступа. Страница обучения должна содержать краткие конспекты и ссылки на задания. Такой подход повышает образовательную ценность проекта.

    Технические сложности и их решение

    Самые трудоёмкие моменты - это интеграция проверки кода на Java/C++ и создание двойного сервера (прокси) для компрометации промежуточных запросов. Для двойного сервера можно использовать MitM-прокси (например, mitmproxy) в демонстрационных целях - это позволит показать, как перехватываются данные. Но такой функционал требует осторожности: не давайте пользователям реальный доступ к прокси, только эмулируйте сценарий.

    Вывод

    Для диплома по ИБ достаточно добавить 3-4 типа заданий: поиск уязвимостей, SQL-инъекции, XSS и криптографические головоломки. Используйте Docker для изоляции кода, чтобы обезопасить сервер. Тесты с выбором ответа и страница обучения дополнят проект. Java и C++ можно внедрить через WSL, но это потребует дополнительной отладки. Помните, что главное - безопасность вашей платформы и образовательная ценность для пользователей.

    Часто задаваемые вопросы