|
|
@@ -0,0 +1,200 @@
|
|
|
+# Техническое задание на разработку интерактивного обучающего комплекса: «Организация работ по защите от несанкционированного доступа (НСД)»
|
|
|
+## 1. Основные сведения о проекте
|
|
|
+Наименование проекта: Security Access: защита от НСД.
|
|
|
+
|
|
|
+Тип продукта: Интерактивный обучающий комплекс, включающий лекционный материал, набор контрольных вопросов, сценарий интерактивной браузерной игры и программную реализацию игры на языке Python с графическим интерфейсом.
|
|
|
+
|
|
|
+Заказчик: Учебный центр или отдел информационной безопасности организации.
|
|
|
+
|
|
|
+Исполнитель: Разработчик (штатный или внешний).
|
|
|
+
|
|
|
+Назначение продукта: Обучение сотрудников организаций основам организации работ по защите от несанкционированного доступа с последующим закреплением знаний в игровой форме.
|
|
|
+
|
|
|
+## 2. Цель и задачи разработки
|
|
|
+Цель разработки: Создать комплексный обучающий продукт, который позволит сотрудникам изучить теоретические основы защиты от НСД, проверить свои знания с помощью вопросов и отработать практические навыки принятия решений в условиях симуляции инцидента информационной безопасности.
|
|
|
+
|
|
|
+Задачи разработки:
|
|
|
+
|
|
|
+Первая задача — разработать лекционный материал объёмом не менее 150 слов с уникальностью более 50 процентов и долей орфографических ошибок менее 2 процентов.
|
|
|
+
|
|
|
+Вторая задача — создать набор контрольных вопросов в количестве не менее пяти штук с вариантами ответов, где правильные ответы выделены полужирным начертанием.
|
|
|
+
|
|
|
+Третья задача — разработать сценарий интерактивной браузерной игры, состоящий минимум из пяти сцен, каждая из которых описывает элементы, доступные действия и условия перехода к следующей сцене.
|
|
|
+
|
|
|
+Четвёртая задача — реализовать игру на языке Python с использованием графической библиотеки Pygame, обеспечив полное соответствие разработанному сценарию.
|
|
|
+
|
|
|
+Пятая задача — составить настоящее техническое задание, подробно описывающее все требования к продукту.
|
|
|
+
|
|
|
+## 3. Требования к лекционному материалу
|
|
|
+Формат файла: Лекция поставляется в формате Markdown с именем файла «lecture.md».
|
|
|
+
|
|
|
+Первая строка: Первая строка лекции должна содержать символ решётки, затем пробел, затем точное название темы: «Организация работ по защите от несанкционированного доступа». Никаких цифр, обозначений номера лекции или дополнительных символов в первой строке быть не должно.
|
|
|
+
|
|
|
+Содержательные требования: Лекция должна раскрывать следующие темы. Определение несанкционированного доступа и основные виды угроз. Моделирование угроз и оценка рисков. Политика безопасности, включая парольную политику и принцип минимальных привилегий. Технические средства защиты, такие как идентификация и аутентификация, разграничение доступа, системы обнаружения вторжений и межсетевые экраны. Организационные меры, включая обучение персонала, ведение журналов аудита и контроль физического доступа. Реагирование на инциденты НСД: обнаружение, сдерживание, анализ, устранение последствий, восстановление и извлечение уроков. Законодательная база Российской Федерации, включая требования ФСТЭК России и необходимость аттестации объектов информатизации.
|
|
|
+
|
|
|
+Объём лекции: Текст лекции должен содержать более 150 слов. Рекомендуемый объём составляет от 400 до 600 слов.
|
|
|
+
|
|
|
+Орфографические требования: Доля орфографических ошибок в тексте лекции не должна превышать двух процентов от общего числа слов. Проверка осуществляется с помощью текстовых редакторов со встроенной проверкой орфографии или специализированных сервисов типа LanguageTool.
|
|
|
+
|
|
|
+Требования к уникальности: Уникальность текста лекции должна составлять более 50 процентов. Проверка проводится с использованием сервисов антиплагиата, таких как text.ru, etxt.ru или antiplagiat.ru.
|
|
|
+
|
|
|
+Стиль изложения: Научно-публицистический стиль, доступный для понимания неподготовленным сотрудником, не имеющим профильного образования в области информационной безопасности.
|
|
|
+
|
|
|
+## 4. Требования к вопросам для контроля знаний
|
|
|
+Формат файла: Вопросы поставляются в формате Markdown с именем файла «questions.md».
|
|
|
+
|
|
|
+Вариант оформления: Используется вариант номер один — с вариантами ответов. Каждый вопрос начинается с новой строки. Следующие строки содержат варианты ответов, каждый вариант с новой строки. Правильный ответ или несколько правильных ответов выделяются полужирным начертанием с помощью двойных звёздочек. Новый вопрос отделяется от предыдущего одной пустой строкой.
|
|
|
+
|
|
|
+Количество вопросов: Не менее пяти вопросов.
|
|
|
+
|
|
|
+Содержание вопросов: Вопросы должны охватывать ключевые темы лекции, включая определение НСД, принцип минимальных привилегий, средства идентификации и аутентификации, политику безопасности, требования ФСТЭК и аттестацию.
|
|
|
+
|
|
|
+Корректность ответов: Правильные ответы должны строго соответствовать информации, изложенной в лекции. Неправильные ответы должны быть правдоподобными, но заведомо неверными.
|
|
|
+
|
|
|
+Пример правильного оформления:
|
|
|
+
|
|
|
+Вопрос: Что такое несанкционированный доступ (НСД)?
|
|
|
+
|
|
|
+Вариант ответа: Доступ к информации с разрешения владельца.
|
|
|
+
|
|
|
+Вариант ответа: Доступ к информации, нарушающий правила разграничения доступа.
|
|
|
+
|
|
|
+Вариант ответа: Только физическое проникновение в помещение.
|
|
|
+
|
|
|
+Вариант ответа: Только хакерские атаки из интернета.
|
|
|
+
|
|
|
+Пустая строка.
|
|
|
+
|
|
|
+Следующий вопрос.
|
|
|
+
|
|
|
+## 5. Требования к сценарию игры
|
|
|
+Формат файла: Сценарий поставляется в формате Markdown с именем файла «scenario.md».
|
|
|
+
|
|
|
+Количество сцен: Сценарий должен содержать минимум пять сцен. Каждая сцена представляет собой один этап игры.
|
|
|
+
|
|
|
+Структура описания одной сцены: Для каждой сцены должны быть описаны следующие элементы. Элементы, из которых состоит сцена — перечень всех визуальных и интерактивных объектов на экране. Действия, которые можно выполнить на каждом элементе — какие манипуляции игрока допустимы. Условия, которые должны быть выполнены для продолжения игры — критерии перехода к следующей сцене или к финальной сцене.
|
|
|
+
|
|
|
+Сцена 1 — Вход в систему:
|
|
|
+
|
|
|
+Элементы сцены: поле ввода логина, поле ввода пароля, кнопка входа или клавиша Enter, индикатор количества оставшихся попыток входа.
|
|
|
+
|
|
|
+Действия: игрок вводит логин с клавиатуры, вводит пароль, нажимает клавишу Enter или кнопку для подтверждения.
|
|
|
+
|
|
|
+Условия перехода: при вводе правильного логина и пароля игра переходит к сцене 2. При вводе неправильной пары учётных данных счётчик попыток увеличивается на единицу. После трёх неудачных попыток игра переходит к финальной сцене с плохим концом. Пароль должен соответствовать следующим требованиям: длина не менее восьми символов, наличие хотя бы одной цифры, наличие хотя бы одного специального символа.
|
|
|
+
|
|
|
+Сцена 2 — Анализ журнала аудита:
|
|
|
+
|
|
|
+Элементы сцены: таблица с записями событий, каждая запись содержит время, описание события и IP-адрес при наличии; чекбоксы или иные элементы выбора для каждого события; кнопка завершения анализа.
|
|
|
+
|
|
|
+Действия: игрок просматривает записи журнала и отмечает те события, которые считает подозрительными с точки зрения несанкционированного доступа.
|
|
|
+
|
|
|
+Условия перехода: если игрок отметил все действительно подозрительные события и не отметил ни одного ложного, игра переходит к сцене 3. Если игрок отметил хотя бы одно ложное событие или пропустил хотя бы одно подозрительное, игра переходит к финальной сцене с плохим концом.
|
|
|
+
|
|
|
+Сцена 3 — Выбор средства защиты:
|
|
|
+
|
|
|
+Элементы сцены: набор иконок или кнопок с названиями средств защиты информации, кнопка подтверждения выбора.
|
|
|
+
|
|
|
+Действия: игрок выбирает одно средство защиты из предложенных.
|
|
|
+
|
|
|
+Условия перехода: если игрок выбрал межсетевой экран или систему обнаружения вторжений, игра переходит к сцене 4. Если игрок выбрал любое другое средство (антивирус, систему резервного копирования или иное), сцена повторяется с сообщением об ошибке до тех пор, пока не будет сделан правильный выбор.
|
|
|
+
|
|
|
+Сцена 4 — Реагирование на инцидент:
|
|
|
+
|
|
|
+Элементы сцены: текстовое описание инцидента информационной безопасности, список возможных действий в произвольном порядке, область для формирования правильной последовательности.
|
|
|
+
|
|
|
+Действия: игрок упорядочивает действия в правильной хронологической последовательности.
|
|
|
+
|
|
|
+Условия перехода: если последовательность действий полностью совпадает с эталонной, игра переходит к финальной сцене с хорошим концом. Если последовательность отличается от эталонной, игра переходит к финальной сцене с плохим концом.
|
|
|
+
|
|
|
+Сцена 5 — Финальный отчёт:
|
|
|
+
|
|
|
+Элементы сцены: текстовое сообщение о результате прохождения игры, кнопка выхода из игры.
|
|
|
+
|
|
|
+Действия: игрок читает итоговый отчёт и нажимает кнопку выхода.
|
|
|
+
|
|
|
+Условия завершения: при любом исходе игра завершается после нажатия на кнопку выхода или клавиши ESC.
|
|
|
+
|
|
|
+## 6. Требования к программной реализации игры
|
|
|
+Язык программирования: Python версии 3.10 или выше.
|
|
|
+
|
|
|
+Графический фреймворк: Pygame — последняя стабильная версия, совместимая с выбранной версией Python.
|
|
|
+
|
|
|
+Поддерживаемые операционные системы: Игра должна работать на операционных системах Windows 10 и 11, Linux на базе ядра 5.0 и выше (рекомендуется Ubuntu 20.04 или новее), macOS 11 и выше.
|
|
|
+
|
|
|
+Зависимости: Все зависимости должны быть перечислены в файле «requirements.txt», который поставляется вместе с игрой. Основная зависимость — библиотека pygame.
|
|
|
+
|
|
|
+Функциональные требования:
|
|
|
+
|
|
|
+При запуске игры открывается графическое окно размером 800 на 600 пикселей с заголовком «Security Access: защита от НСД».
|
|
|
+
|
|
|
+В сцене входа в систему проверяется соответствие логина и пароля эталонным значениям. Логин по умолчанию — admin. Пароль по умолчанию — P@ssw0rd.
|
|
|
+
|
|
|
+Счётчик попыток входа увеличивается при каждой неудачной попытке. После трёх неудачных попыток игра автоматически переходит к сцене плохого конца.
|
|
|
+
|
|
|
+В сцене анализа журнала аудита отображаются четыре события. Выбор подозрительных событий осуществляется нажатием клавиши Пробел. При попытке подтвердить выбор, содержащий ошибку, игра переходит к плохому концу.
|
|
|
+
|
|
|
+В сцене выбора средства защиты выбор осуществляется клавишами цифр от 1 до 4. Подтверждение выбора — клавиша Enter. При неверном выборе игра не переходит к следующей сцене, а остаётся в текущей с сообщением об ошибке.
|
|
|
+
|
|
|
+В сцене реагирования на инцидент игрок выбирает порядок действий нажатием клавиш 1, 2, 3, 4 в нужной последовательности. Подтверждение окончательной последовательности — клавиша Enter. При неверном порядке игра переходит к плохому концу.
|
|
|
+
|
|
|
+В финальной сцене выводятся тексты хорошего или плохого конца. Выход из игры осуществляется клавишей ESC.
|
|
|
+
|
|
|
+Нефункциональные требования:
|
|
|
+
|
|
|
+Частота кадров должна составлять не менее 30 кадров в секунду. Время отклика на нажатие клавиши не должно превышать 100 миллисекунд. Игра не должна завершаться аварийно при любых допустимых действиях игрока. Исходный код должен содержать комментарии на русском или английском языке, поясняющие работу основных блоков. Игра должна работать полностью в автономном режиме без сетевых вызовов.
|
|
|
+
|
|
|
+Интерфейсные требования:
|
|
|
+
|
|
|
+Цветовая схема: светлый фон (белый), основной текст чёрный, акцентные элементы синего и зелёного цветов. Шрифт: стандартный шрифт Pygame, размер 24 пикселя для основного текста и от 28 до 32 пикселей для заголовков. Управление: только с клавиатуры, использование мыши не требуется.
|
|
|
+
|
|
|
+Обработка ошибок:
|
|
|
+
|
|
|
+При неверном вводе в любой сцене игра не должна завершаться, за исключением случаев превышения количества попыток входа. Игроку должна предоставляться возможность исправить ошибку. При попытке ввести недопустимый символ в текстовые поля такой символ должен игнорироваться.
|
|
|
+
|
|
|
+## 7. Требования к документации
|
|
|
+Требования к файлу README.md:
|
|
|
+
|
|
|
+Файл должен содержать название проекта. Описание проекта объёмом не более одного абзаца. Инструкцию по установке Python, если он не установлен в системе. Инструкцию по установке библиотеки Pygame через pip. Команду для запуска игры. Список клавиш управления. Логин и пароль по умолчанию для входа в игру.
|
|
|
+
|
|
|
+Требования к оформлению исходного кода:
|
|
|
+
|
|
|
+Код игры должен быть разделён на логические блоки с помощью функций или классов. Рекомендуется создание класса Game, инкапсулирующего состояние игры и методы для каждой сцены. Переменные должны иметь осмысленные английские названия, такие как game, scene, attempts, audit_selected, firewall_selected, incident_order. Каждая сцена должна быть снабжена комментарием, поясняющим её назначение.
|
|
|
+
|
|
|
+## 8. Критерии приёмки проекта
|
|
|
+Приёмка проекта осуществляется на основании выполнения следующих критериев.
|
|
|
+
|
|
|
+Критерий первый: лекция содержит более 150 слов.
|
|
|
+
|
|
|
+Критерий второй: доля орфографических ошибок в лекции составляет менее двух процентов.
|
|
|
+
|
|
|
+Критерий третий: уникальность текста лекции превышает 50 процентов по данным любого сервиса антиплагиата.
|
|
|
+
|
|
|
+Критерий четвёртый: первая строка лекции содержит точное название темы без цифр и дополнительных символов.
|
|
|
+
|
|
|
+Критерий пятый: количество вопросов составляет не менее пяти, каждый вопрос содержит варианты ответов, и правильные ответы выделены полужирным начертанием.
|
|
|
+
|
|
|
+Критерий шестой: сценарий игры содержит описание не менее пяти сцен с указанием элементов, действий и условий перехода.
|
|
|
+
|
|
|
+Критерий седьмой: игра запускается без ошибок на целевой операционной системе.
|
|
|
+
|
|
|
+Критерий восьмой: игра имеет графический интерфейс, реализованный с помощью библиотеки Pygame.
|
|
|
+
|
|
|
+Критерий девятый: все пять сцен работают в точном соответствии с разработанным сценарием.
|
|
|
+
|
|
|
+Критерий десятый: корректный ввод логина admin и пароля P@ssw0rd приводит к переходу ко второй сцене.
|
|
|
+
|
|
|
+Критерий одиннадцатый: после трёх неудачных попыток входа игра переходит к сцене плохого конца.
|
|
|
+
|
|
|
+Критерий двенадцатый: хороший конец достигается только при условии правильного прохождения всех сцен.
|
|
|
+
|
|
|
+Критерий тринадцатый: техническое задание оформлено структурированно с использованием заголовков и подзаголовков, без таблиц и схем.
|
|
|
+
|
|
|
+## 9. Порядок сдачи и приёмки
|
|
|
+Предварительная сдача: Исполнитель упаковывает все файлы проекта в ZIP-архив и передаёт заказчику.
|
|
|
+
|
|
|
+Проверка заказчиком: Заказчик выполняет следующие действия. Читает лекцию и проверяет соответствие теме, объём и орфографию. Проверяет вопросы на корректность и полноту. Запускает игру на тестовой машине с чистой установкой Python и Pygame. Проходит игру до хорошего конца, убеждаясь в корректной работе всех сцен. Проходит игру до плохого конца, намеренно совершая ошибки на каждой сцене.
|
|
|
+
|
|
|
+Акт приёмки: При выполнении всех критериев из раздела 9 составляется и подписывается акт приёмки-сдачи работ.
|
|
|
+
|
|
|
+Гарантийные обязательства: Исполнитель обязуется исправлять критические ошибки, обнаруженные в игре в течение 14 календарных дней после подписания акта приёмки. К критическим ошибкам относятся аварийные завершения игры, невозможность пройти игру до конца, несоответствие работы сцены её описанию в сценарии.
|
|
|
+
|