Курсовая по информационной безопасности в НИЯУ МИФИ имеет особенно естественный контекст. В актуальном наборе 2026 года по направлению 10.03.01 представлены программы по безопасности компьютерных систем, критической информационной инфраструктуре и информационно-аналитическим системам финансового мониторинга.
Официальная страница:
https://admission.mephi.ru/admission/baccalaureate-and-specialty/education/programs/all/view/136
Начните с того, что защищается
Актив:
- data;
- account;
- system;
- model;
- control network;
- key;
- service.
Не начинайте с перечня атак.
Угроза имеет смысл только относительно актива.
CIA
Для каждого актива определите:
- confidentiality;
- integrity;
- availability.
У критической инфраструктуры availability может быть важнее, чем у обычного web-сервиса.
Граница системы
Нарисуйте:
user -> frontend -> API -> DB
-> external service.
Отметьте trust boundaries.
Это места, где особенно важны проверки.
Модель нарушителя
Опишите:
- external/internal;
- access;
- knowledge;
- resources;
- goal.
Не используйте всесильного абстрактного атакующего.
Иначе невозможно оценить меру.
Threat modeling
Можно использовать:
- STRIDE;
- attack tree;
- data-flow based analysis.
Но инструмент должен применяться к вашей архитектуре.
Не вставляйте список терминов из OWASP.
Risk
Для каждой угрозы:
- likelihood;
- impact;
- existing control;
- residual risk.
Если используются баллы, объясните шкалу.
Учебный стенд
Все технические проверки выполняйте только на собственной системе или явно разрешённой лабораторной среде.
Не тестируйте сторонние сервисы без разрешения.
Это принципиальное правило.
Authentication
Проверьте:
- password storage;
- login;
- session;
- recovery.
Пароль не хранится plaintext.
Используйте специализированный password hash.
Password hashing
Нужны:
- salt;
- cost;
- proper algorithm.
Быстрый general-purpose hash сам по себе недостаточен.
MFA
Второй фактор полезен для high-risk account.
Но он не закрывает broken authorization.
Разделяйте меры по угрозам.
Authorization
Проверяйте право на объект в backend.
Negative test:
user A запрашивает record user B.
Ожидаемо:
access denied.
Least privilege
DB account приложения должен иметь только нужные права.
Сервис чтения не должен иметь DROP.
Это простой и показательный контроль.
Secrets
Не коммитьте:
- private key;
- API token;
- database password.
Проверьте Git history.
Удаление из последнего commit недостаточно.
TLS
TLS защищает channel.
Он не исправляет ошибку access control.
Не пишите «система защищена HTTPS».
Encryption at rest
Если данные действительно чувствительные, продумайте:
- algorithm;
- key storage;
- rotation;
- backup.
Ключ рядом с encrypted data обесценивает часть защиты.
Input validation
Проверяйте:
- length;
- type;
- format;
- range.
Но security не сводится к regex.
Используйте безопасные API и parameterized queries.
SQL injection
На своём стенде можно показать:
уязвимый query -> безопасный query -> повторный test.
Не переносите эксперимент на чужой ресурс.
XSS
Для web-проекта учитывайте context:
- HTML;
- attribute;
- JS.
Механизм escaping зависит от места вывода.
