Разработка модуля защиты от внешних и внутренних угроз для системы проверки работ студентов
|
АННОТАЦИЯ 2
ВВЕДЕНИЕ 7
1 ИССЛЕДОВАНИЕ УЯЗВИМОСТЕЙ И ТЕХНОЛОГИЙ ЗАЩИТЫ
ВЕБ-ПРИЛОЖЕНИЯ 10
1.1 Самые популярные уязвимости 10
1.2 Обзор технологии JSON Web Token 15
1.3 Методы защиты от CSRF-атаки 19
1.3.1 Synchronizer T okens 21
1.3.2 Double Submit Cookie 21
1.3.3 Encrypted Token 22
1.4 Обзор хранилища Redis 24
1.5 Анализ существующего приложения 25
1.6 Необходимые функции и другие требования к приложению 28
1.7 Постановка задачи 28
1.8 Выводы по разделу 29
2 АРХИТЕКТУРА ВЕБ-ПРИЛОЖЕНИЯ ДЛЯ ЗАЩИТЫ САЙТОВ 31
2.1 Изменённая архитектура приложения 31
2.2 Кластер и балансировка нагрузки 32
2.3 Ограничение количества запросов 33
2.4 Авторизация и https 33
2.5 Разграничение доступа преподавательских и студенческих страниц
приложения 38
2.6 Контроль модулей полуавтоматической проверки 38
2.6.1 Модуль VM 38
2.6.2 Модуль VM2 41
2.6.3 Модуль Sandbox 42
2.7 Подпись оценки 43
2.8 Мониторинг 44
2.9 Выводы по разделу 45
3 ТЕСТИРОВАНИЕ СИСТЕМЫ 46
3.1 Тестирование модулей изоляции кода проверки 46
3.1.1 Тест на изоляцию кода 47
3.1.2 Контроль уязвимости к зацикливанию 49
3.1.3 Взлом через свойство constructor 51
3.1.4 Взлом через свойство caller 54
3.1.5 Взлом через ключевое слово this и свойство caller 56
3.2 Нагрузочное тестирование балансировщика 58
3.3 Выводы по разделу 61
ЗАКЛЮЧЕНИЕ 63
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 65
ПРИЛОЖЕНИЕ 1 Текст программы 67
ВВЕДЕНИЕ 7
1 ИССЛЕДОВАНИЕ УЯЗВИМОСТЕЙ И ТЕХНОЛОГИЙ ЗАЩИТЫ
ВЕБ-ПРИЛОЖЕНИЯ 10
1.1 Самые популярные уязвимости 10
1.2 Обзор технологии JSON Web Token 15
1.3 Методы защиты от CSRF-атаки 19
1.3.1 Synchronizer T okens 21
1.3.2 Double Submit Cookie 21
1.3.3 Encrypted Token 22
1.4 Обзор хранилища Redis 24
1.5 Анализ существующего приложения 25
1.6 Необходимые функции и другие требования к приложению 28
1.7 Постановка задачи 28
1.8 Выводы по разделу 29
2 АРХИТЕКТУРА ВЕБ-ПРИЛОЖЕНИЯ ДЛЯ ЗАЩИТЫ САЙТОВ 31
2.1 Изменённая архитектура приложения 31
2.2 Кластер и балансировка нагрузки 32
2.3 Ограничение количества запросов 33
2.4 Авторизация и https 33
2.5 Разграничение доступа преподавательских и студенческих страниц
приложения 38
2.6 Контроль модулей полуавтоматической проверки 38
2.6.1 Модуль VM 38
2.6.2 Модуль VM2 41
2.6.3 Модуль Sandbox 42
2.7 Подпись оценки 43
2.8 Мониторинг 44
2.9 Выводы по разделу 45
3 ТЕСТИРОВАНИЕ СИСТЕМЫ 46
3.1 Тестирование модулей изоляции кода проверки 46
3.1.1 Тест на изоляцию кода 47
3.1.2 Контроль уязвимости к зацикливанию 49
3.1.3 Взлом через свойство constructor 51
3.1.4 Взлом через свойство caller 54
3.1.5 Взлом через ключевое слово this и свойство caller 56
3.2 Нагрузочное тестирование балансировщика 58
3.3 Выводы по разделу 61
ЗАКЛЮЧЕНИЕ 63
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 65
ПРИЛОЖЕНИЕ 1 Текст программы 67
Согласно отчету международной компании «Positive Technologies», специализирующейся на разработке программного обеспечения в области информационной безопасности, в 2018 году:
- преобладают целенаправленные атаки, доля которых увеличивалась на протяжении всего года и в четвертом квартале составила 62%;
- растет доля атак, направленных на кражу информации. Злоумышленники похищают преимущественно персональные данные (30%), учетные данные (24%) и данные платежных карт (14%);
- вредоносное ПО используется уже в 56% кибератак. Этому способствует тот факт, что вредоносные программы с каждым годом становятся более доступными большему числу людей, и становится легче проводить атаки;
- наиболее популярным стало ПО для шпионажа и удаленного управления, с помощью которого преступники собирают конфиденциальную информацию или, в случае целенаправленной атаки, закрепляются в системе ;
- доля майнеров в общем числе заражений вредоносным ПО уменьшается на фоне общего снижения курсов криптовалют и повышения сложности их добычи. Если в первом квартале года доля майнеров составляла 23%, то по итогам четвертого квартала - всего 9%;
- преступники все чаще прибегают к сложным и многоэтапным техникам, включающим в себя взлом инфраструктуры компаний-партнеров, заражение ресурсов известных производителей ПО или комбинацию нескольких методов в рамках одной атаки ;
- мощность DDoS-атак продолжает расти. В 2018 году были зафиксированы две самые крупные DDoS-атаки в истории - мощностью 1,35 и 1,7 терабит в секунду. Такие результаты были достигнуты усилением атак с помощью серверов memcashed.
Одно из направлений атак, это сфера образования.
В основном преступники похищали персональные данные сотрудников и учащихся, а также учетные данные для доступа к электронной почте, банковским аккаунтам и другим сервисам. Так, в нескольких учебных заведениях преступники получили доступ к банковским счетам и платежным документам и смогли похитить в общей сложности более двух миллионов долларов. Образовательные учреждения подвергались атакам
шифровальщиков: они использовались в каждой шестой атаке. Мотивы преступников при этом могли быть разными - либо потребовать выкуп за восстановление данных, либо попросту парализовать работу компьютерных систем учебного заведения. Во втором квартале, на который приходится конец учебного года и подведение его итогов, чаще выявлялись атаки с целью изменения оценок в системах учета успеваемости.
В погоне за интеллектуальной собственностью - научными наработками, неопубликованными исследованиями - хакеры атаковали научные институты. Такая информация часто представляет интерес для группировок, спонсируемых тем или иным правительством; ряд подобных атак приписывают хакерам из Ирана и Северной Кореи. Помимо этого, злоумышленники получают финансовую выгоду, размещая украденные научные работы на подконтрольных им ресурсах с платным доступом.
В итоге разработчик веб-приложений должен позаботится о безопасности своей системы, внедрить различные системы аутентификации, разграничения доступа, системы защиты от DDoS.
В рамках выпускной квалификационной работы мы должны проанализировать существующее веб-приложение для сдачи лабораторных работ с частичной автоматизацией. На основе анализа мы должны предложить решения для выявленных проблем и реализовать предложенные решения.
Целью выпускной квалификационной работы является разработка модулей защиты от внешних и внутренних угроз.
Данные модули должны снизить риск взлома и уменьшить потери в случае успешной атаки.
Для достижения поставленной цели необходимо решить следующие задачи:
- выяснить самые популярные уязвимости из OWASP TOP-10;
- провести анализ существующего приложения;
- рассмотреть технологии, решения в области безопасности и предложить защиту от каждой угрозы;
- разработать новую архитектуру приложения с учетом требовании к безопасности;
- выполнить программную реализацию;
- проверить работу программы.
- преобладают целенаправленные атаки, доля которых увеличивалась на протяжении всего года и в четвертом квартале составила 62%;
- растет доля атак, направленных на кражу информации. Злоумышленники похищают преимущественно персональные данные (30%), учетные данные (24%) и данные платежных карт (14%);
- вредоносное ПО используется уже в 56% кибератак. Этому способствует тот факт, что вредоносные программы с каждым годом становятся более доступными большему числу людей, и становится легче проводить атаки;
- наиболее популярным стало ПО для шпионажа и удаленного управления, с помощью которого преступники собирают конфиденциальную информацию или, в случае целенаправленной атаки, закрепляются в системе ;
- доля майнеров в общем числе заражений вредоносным ПО уменьшается на фоне общего снижения курсов криптовалют и повышения сложности их добычи. Если в первом квартале года доля майнеров составляла 23%, то по итогам четвертого квартала - всего 9%;
- преступники все чаще прибегают к сложным и многоэтапным техникам, включающим в себя взлом инфраструктуры компаний-партнеров, заражение ресурсов известных производителей ПО или комбинацию нескольких методов в рамках одной атаки ;
- мощность DDoS-атак продолжает расти. В 2018 году были зафиксированы две самые крупные DDoS-атаки в истории - мощностью 1,35 и 1,7 терабит в секунду. Такие результаты были достигнуты усилением атак с помощью серверов memcashed.
Одно из направлений атак, это сфера образования.
В основном преступники похищали персональные данные сотрудников и учащихся, а также учетные данные для доступа к электронной почте, банковским аккаунтам и другим сервисам. Так, в нескольких учебных заведениях преступники получили доступ к банковским счетам и платежным документам и смогли похитить в общей сложности более двух миллионов долларов. Образовательные учреждения подвергались атакам
шифровальщиков: они использовались в каждой шестой атаке. Мотивы преступников при этом могли быть разными - либо потребовать выкуп за восстановление данных, либо попросту парализовать работу компьютерных систем учебного заведения. Во втором квартале, на который приходится конец учебного года и подведение его итогов, чаще выявлялись атаки с целью изменения оценок в системах учета успеваемости.
В погоне за интеллектуальной собственностью - научными наработками, неопубликованными исследованиями - хакеры атаковали научные институты. Такая информация часто представляет интерес для группировок, спонсируемых тем или иным правительством; ряд подобных атак приписывают хакерам из Ирана и Северной Кореи. Помимо этого, злоумышленники получают финансовую выгоду, размещая украденные научные работы на подконтрольных им ресурсах с платным доступом.
В итоге разработчик веб-приложений должен позаботится о безопасности своей системы, внедрить различные системы аутентификации, разграничения доступа, системы защиты от DDoS.
В рамках выпускной квалификационной работы мы должны проанализировать существующее веб-приложение для сдачи лабораторных работ с частичной автоматизацией. На основе анализа мы должны предложить решения для выявленных проблем и реализовать предложенные решения.
Целью выпускной квалификационной работы является разработка модулей защиты от внешних и внутренних угроз.
Данные модули должны снизить риск взлома и уменьшить потери в случае успешной атаки.
Для достижения поставленной цели необходимо решить следующие задачи:
- выяснить самые популярные уязвимости из OWASP TOP-10;
- провести анализ существующего приложения;
- рассмотреть технологии, решения в области безопасности и предложить защиту от каждой угрозы;
- разработать новую архитектуру приложения с учетом требовании к безопасности;
- выполнить программную реализацию;
- проверить работу программы.
В данной работе для обеспечения защищенности системы был сделан обзор самых распространенных уязвимостей веб приложений, технологии авторизации и обменом токенами JSON WEB TOKEN, системы хранения Redis. Сделан анализ песочниц для JavaScript кода.
Произведен анализ существующего приложения для проверки работ студентов с частичной автоматизацией.
Создана новая архитектура, которая закрывает все найденные недостатки системы. Система динамически подстраивается под количество запросов пользователей, балансирует нагрузку между узлами сервера. Производит безопасную авторизацию и идентификацию пользователей по технологии JSON WEB TOKEN, а также реализован периодическое обновление токенов, чтобы снизить негативные последствий от их похищения.
Модули проверки на языке JavaScript были изолированы от основной системы с помощью библиотеки VM2, которая создаёт отдельный контекст приложения, изменяет логику импорта библиотек и переопределяет доступ к переменным и функциям с помощью JavaScript объекта Proxy. В итоге модули проверки находятся в изолированный среде и не могут повлиять на основную логику системы.
Для шифрования трафика между сервером и пользователем добавлена поддержка https.
В базе данных MySQL ограничен доступ к данным напрямую, разрешен доступ только через процедуры, а также добавлена подпись оценок с помощью SHA-256, в подпись включается вся ключевая информация: кому, за какой предмет, задание, кто и что поставил. Разработанная технология позволяет защитить оценку от подделки её другим пользователем.
Для мониторинга кластера добавлена панель администратора с выводом потребления ресурсов узлами сервера, а также информации о количестве пользователей и их запросов.
В итоге реализована комплексная защита системы, которая может производить аутентификацию, производит разграничение доступа
пользователей в зависимости от его типа и также идентификатора. Система может равномерно распределять нагрузку на узлы кластера и защищает от возможных DDOS-атак и сглаживает пиковые нагрузки с помощью контроля числа запросов.
Данная архитектура универсальна и может подойти к большинству информационных систем, которым требуется реализовать контроль изменений при работе с системой.
Произведен анализ существующего приложения для проверки работ студентов с частичной автоматизацией.
Создана новая архитектура, которая закрывает все найденные недостатки системы. Система динамически подстраивается под количество запросов пользователей, балансирует нагрузку между узлами сервера. Производит безопасную авторизацию и идентификацию пользователей по технологии JSON WEB TOKEN, а также реализован периодическое обновление токенов, чтобы снизить негативные последствий от их похищения.
Модули проверки на языке JavaScript были изолированы от основной системы с помощью библиотеки VM2, которая создаёт отдельный контекст приложения, изменяет логику импорта библиотек и переопределяет доступ к переменным и функциям с помощью JavaScript объекта Proxy. В итоге модули проверки находятся в изолированный среде и не могут повлиять на основную логику системы.
Для шифрования трафика между сервером и пользователем добавлена поддержка https.
В базе данных MySQL ограничен доступ к данным напрямую, разрешен доступ только через процедуры, а также добавлена подпись оценок с помощью SHA-256, в подпись включается вся ключевая информация: кому, за какой предмет, задание, кто и что поставил. Разработанная технология позволяет защитить оценку от подделки её другим пользователем.
Для мониторинга кластера добавлена панель администратора с выводом потребления ресурсов узлами сервера, а также информации о количестве пользователей и их запросов.
В итоге реализована комплексная защита системы, которая может производить аутентификацию, производит разграничение доступа
пользователей в зависимости от его типа и также идентификатора. Система может равномерно распределять нагрузку на узлы кластера и защищает от возможных DDOS-атак и сглаживает пиковые нагрузки с помощью контроля числа запросов.
Данная архитектура универсальна и может подойти к большинству информационных систем, которым требуется реализовать контроль изменений при работе с системой.





