Обеспечение защищенности фронт-системы mymmtr от несанкционированного доступа
ВВЕДЕНИЕ
В настоящее время все больше организаций используют веб-приложения для обеспечения доступа к своим сервисам и приложениям через веб-интерфейсы. Однако, такие системы являются наиболее уязвимыми к кибератакам и несанкционированному доступу.
Необходимость обеспечения защищенности веб-приложения от несанкционированного доступа связана с тем, что утечка конфиденциальной информации может привести к серьезным последствиям, таким как ущерб репутации компании, штрафы и уголовное преследование. Кроме того, кибератаки могут привести к нарушению работы системы и потере данных, что также имеет серьезные последствия для бизнеса.
Таким образом, обеспечение защищенности фронт-системы от несанкционированного доступа является актуальной темой, которая требует постоянного внимания и улучшения мер безопасности для защиты конфиденциальной информации и бизнеса в целом.
Объект исследования – фронт-система предприятия ООО «ММТР»
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ 4
1. АРХИТЕКТУРА СОВРЕМЕННЫХ КЛИЕНТ-СЕРВЕРНЫХ СИСТЕМ 6
1.1. Клиент-серверная архитектура 6
1.2. Анализ архитектуры «клиент-сервер» 8
2. АРХИТЕКТУРА ФРОНТЕНД ПРИЛОЖЕНИЙ 11
2.1. Анализ основных средств фронтенда 12
3. БЕЗОПАСНОСТЬ ФРОНТЕНД СИСТЕМ 16
3.1. Основные уязвимости фронтенда 18
3.2. Способы тестирования фронтенд систем 28
4. РАЗРАБОТКА ТЕСТОВОГО СТЕНДА С ЗАЩИТОЙ НА ОСНОВЕ НАЙДЕННЫХ УЯЗВИМОСТЕЙ 35
4.1. Используемые инструменты 35
4.2. Тестирование и анализ уязвимостей CRM-системы MyMMTR 42
4.3. Способы реализации устранения найденных уязвимостей 50
4.4. Экономическая эффективность работы 59
ЗАКЛЮЧЕНИЕ 63
ИСПОЛЬЗУЕМЫЕ ИСТОЧНИКИ 64
1. Архитектура корпоративных программных приложений Пер. с англ. — М.: Издательский дом "Вильяме", 2006. — 544 с.
2. Client Server Architecture [Электронный ресурс] - Режим доступа: https://medium.com/data-driven-fiction/client-server-architecture-8b46e35c1c9d (Дата обращения 11.01.2023)
3. Клиент - серверная архитектура (Client-Server Architecture) [Электронный ресурс] - Режим доступа: https://vladislaveremeev.gitbook.io/qa_bible/seti-i-okolo-nikh/klient-servernaya-arkhitektura-client-server-architecture (Дата обращения 11.01.2023)
4. Архитектура фронтенда и какой она должна быть [Электронный ресурс] - Режим доступа: https://habr.com/ru/articles/667214/ (Дата обращения 13.01.2023)
5. Паттерны проектирования в JavaScript [Электронный ресурс] - Режим доступа: https://habr.com/ru/companies/ruvds/articles/427293/ (Дата обращения 25.01.2023)
6. Чек-лист безопасности для проектов фронтенда [Электронный ресурс] - Режим доступа: https://medium.com/funboxteam/чек-лист-безопасности-для-проектов-фронтенда-f29055525743 (Дата обращения 26.01.2023)
7. Как тестировать современный фронтенд [Электронный ресурс] - Режим доступа: https://habr.com/ru/companies/samokat_tech/articles/704342/ (Дата обращения 23.02.2023)
8. Functional Testing for Frontend Applications // TestProject [Электронный ресурс] - Режим доступа: https://blog.testproject.io/2022/02/14/functional-testing-for-frontend-applications/ (Дата обращения 03.02.2023)
9. Официальная документация React JS [Электронный ресурс] - Режим доступа: https://ru.react.js.org/docs/getting-started.html (Дата обращения 11.01.2023)
10. Современный учебник JavaScript [Электронный ресурс] - Режим доступа: https://learn.javascript.ru/ (Дата обращения 20.12.2022)
11. Официальная документация React Router DOM [Электронный ресурс] - Режим доступа: https://reactrouter.com/en/main/start/tutorial (Дата обращения 02.03.2023)
12. Официальная документация Redux Toolkit - Режим доступа: https://redux-toolkit.js.org/usage/usage-guide (Дата обращения 27.03.2023)
Использование ORM библиотек при работе с базами данных, например Sequelize, TypeORM, Prisma.
Валидация входных данных: проверяйте пользовательский ввод на наличие недопустимых символов и запрещайте вводить их. Также можно установить ограничения на длину ввода.
Использование хранимых процедур: хранимые процедуры позволяют размещать SQL-код в базе данных, а не в приложении. Это делает код менее уязвимым к атакам SQL Injection, поскольку злоумышленнику нужно получить доступ к базе данных, а не только к приложению.
Минимизация прав доступа: дайте пользователям только те права, которые необходимы для выполнения их задач. Если пользователь не может изменять данные, то и атакующий не сможет их изменять.
Использование инструментов защиты: существуют инструменты, которые могут помочь защитить приложение от атак SQL Injection. Например, можно использовать средства обнаружения и блокирования подозрительных запросов, а также средства мониторинга базы данных.