Войти в мой кабинет
Регистрация
ГОТОВЫЕ РАБОТЫ / ДИССЕРТАЦИЯ, ПРОГРАММИРОВАНИЕ

Анализ уязвимостей и средств защиты корпоративного веб-сайта.

cool_lady 975 руб. КУПИТЬ ЭТУ РАБОТУ
Страниц: 39 Заказ написания работы может стоить дешевле
Оригинальность: неизвестно После покупки вы можете повысить уникальность этой работы до 80-100% с помощью сервиса
Размещено: 25.02.2021
Целью работы является анализ существующих уязвимостей, которые могут быть использованы для взлома, хищения данных и компрометации организаций, а также средств защиты от такого рода несанкционированных атак. Для достижения указанных целей необходимо выполнение следующих задач: 1. Изучение и анализ уязвимостей 2. Классификация уязвимостей 3. Анализ средств защиты 4. Предложение мер защиты
Введение

Деятельность любой организации так или иначе связана с веб-технологиями. Широкое распространение получили веб-порталы различных услуг (в том числе государственных), интернет-магазины, торговые площадки, различные бизнес-приложения, системы дистанционного банковского обслуживания. Невозможно представить себе современную организацию, будь то крупная корпорация или небольшая частная фирма, у которой не было бы своего официального сайта или странички на каком-либо публичном веб-ресурсе. Корпоративные приложения, для которых необходимо устанавливать клиентское ПО и регулярно его обновлять, уходят в прошлое. Веб-технологии позволяют значительно упростить бизнес-процессы. Для того чтобы максимально использовать преимущества веб-технологий, необходимо обеспечить доступность ресурсов для целевой аудитории, например, из сети Интернет. Но доступ, следовательно, могут получить и злоумышленники. Это и недобросовестные конкуренты, и другие категории нарушителей, руководствующихся преступными намерениями, например, с целью хищения денежных средств, нарушения доступности ресурса или получения чувствительной информации. Компрометация приложений может привести как к репутационным потерям, так и к финансовым, в том числе в виде упущенной прибыли (например, если будет потерян важный клиент или сорвется сделка). При всем при этом разработчики не всегда уделяют достаточно внимания защите веб-ресурсов, сосредоточиваясь в первую очередь на функциональности приложения. А администраторы систем зачастую недостаточно осведомлены в вопросах информационной безопасности и могут совершать ошибки, которые делают приложения уязвимыми. Подавляющее большинство владельцев веб-ресурсов не следуют принципам обеспечения безопасности на всех этапах жизненного цикла приложений (secure software development lifecycle, SSDL), вследствие чего уязвимости не выявляются на ранних стадиях разработки, а остаются в приложениях даже после их приемки в эксплуатацию, что играет на руку злоумышленникам.
Содержание

СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ 4 ВВЕДЕНИЕ 5 ГЛАВА 1 ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ 7 1.1 Определение уязвимости 7 1.2 Классификация уязвимостей 8 ГЛАВА 2 АНАЛИЗ УЯЗВИМОСТЕЙ 13 2.1 Наиболее распространенные уязвимости 13 2.2 Уязвимости, характерные для различных средств разработки 16 2.3 Уязвимости, характерные для различных веб-серверов 19 2.4 Наиболее распространённые методы атак 20 ГЛАВА 3 АНАЛИЗ СРЕДСТВ ЗАЩИТЫ 24 3.1 Сканеры уязвимостей 24 3.2 Защита веб-сайта. Технологии, инструменты, меры защиты. 31 ЗАКЛЮЧЕНИЕ 38 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 39 Приложение А Перечень проанализированных веб-сайтов 40
Список литературы

1. Dafydd Stuttard, Marcus Pinto. The Web Application Hacker's Handbook – США: Wiley, 2011 – 912 с. 2. Бирюков А.А. Информационная безопасность. Защита и нападение / А.А. Бирюков. – Москва: ДМК Пресс, 2017. – 434 с. 3. Justin Seitz. Black Hat Python: Python Programming for Hackers and Pentesters – США: No Starch Press, 2014 – 192с. 4. Ben Clark. Rtfm: Red Team Field Manual – США: CreateSpace Independent Publishing Platform, 2014 – 96 с. 5. OWASP Top Ten – https://owasp.org/www-project-top-ten/ (дата обращения 02.04.2020) 6. Создание сайтов на основе WordPress: Уч.пособие – СПб: Эксмо, 2017 – 208 с. 7. Уязвимости и угрозы веб-приложений: статистика за 2019 год –https://www.ptsecurity.com/ww-en/analytics/web-vulnerabilities-2020/ (дата обращения 10.04.2020) 8. ГОСТ Р 56546-2015 Защита информации. Уязвимости информационных систем. Классификация уязвимостей информационных систем – Введ. 2016-04-01 9. Бэрри Норт. Joomla! 1.5. Практическое руководство. 2-е издание – СПб: Символ, 2017 – 158 с. 10. Г. Н. Фёдорова. Разработка, администрирование и защита баз данных – Москва: Academia, 2020 - 288 с. 11. Олифер В. Г. Компьютерные сети. Принципы, технологии, протоколы / В. Г. Олифер, Н. А. Олифер. – Санкт-Петербург: Питер, 2019. - 992 с. 12. Баранова Е. К. Информационная безопасность и защита информации: Учебное пособие / Е. К. Баранова, А. В. Бабаш. – Москва: Издательский Центр РИОР, 2018. – 336 с. 13. PHP // Hypertext Preprocessor[Электронный ресурс]. – Режим доступа: http://php.net/ (дата обращения 15.04.2020) 14. JavaScript // Современный учебник Javascript [Электронный ресурс]. – Режим доступа: http:// learn.javascript.ru/ (дата обращения 23.04.2020) 15. Котеров Д. В., Симдянов И. В. PHP 7 Наиболее полное руководство – Санкт-Петербург: БХВ, 2019. – 1088 с. 16. Глухарев М. Л. Применение криптографических средств защиты информации в СУБД SQL Server: метод. указания / М. Л. Глухарев. - СПб.: ПГУПС, 2015. 16 с. 17. Дэвид Флэнаган JavaScript. Подробное руководство – Санкт-Петербург: Символ, 2013. – 1080 с. 18. Бен Фрейн, HTML5 и CSS3. Разработка сайтов для любых браузеров и устройств. 2-е изд. — СПб.: Питер, 2017. – 272 c. 19. Герберт Шилдт, Java 8. Полное руководство. 9-е издание — СПб.: Вильямс, 2017. 1376 с. 20. John Paul Mueller, Security for Web Developers: Using JavaScript, HTML, and CSS — США: O'Reilly Media, 2015. 384 с. 21. Jason Andress, Ryan Linn. Coding for Penetration Testers — Амстердам: Elsevier, Inc., 2012. 285 с.
Отрывок из работы

ГЛАВА 1 ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ 1.1 Определение уязвимости Уязвимостью принято называть какой-либо недостаток в системе (чаще всего в реализации отдельных её компонентов, реже - просчеты архитектурного характера), который потенциально может быть использован злоумышленником для нарушения целостности системы и осуществления незаконного доступа к каким-либо информационным ресурсам. Часть уязвимостей известны чисто теоретически, часть используются активно для несанкционированного доступа к данным и внедрения вредоносного программного обеспечения на компьютер пользователя через имеющиеся уязвимости приложения. Как правило, большая часть уязвимостей возникает в тех участках программного кода, где производится какая-то работа с введенными пользователем данными, перед которой не производится предварительная проверка введенных данных. В результате введенные данные могут содержать в себе программный код, который модифицирует поведение программы нужным злоумышленнику образом. Наиболее часто такого рода уязвимости встречаются в программах, написанных на интерпретируемых языках программирования, поскольку писать высокоуровневый код на подобном языке злоумышленнику гораздо проще, чем маскировать под данные двоичный исполняемый код. Классическим примером уязвимости подобного рода является так называемая SQL-инъекция, с помощью которой нередко "взламывают" сайты. Инъекция заключается в том, что в запрос внедряется код, модифицирующий его таким образом, чтобы вместо нормальных действий, предусмотренных программистами, создававшими сайт, выполнялся произвольный код, который внедряют взломщики. С помощью специальных проверок, вводимых пользователем данных SQL-инъекцию можно сравнительно просто предотвратить. Для обнаружения уязвимостей производят специальный аудит, который позволяет заранее предотвратить возможный несанкционированный доступ к системе. Частично подобный аудит выполняется с помощью специализированного программного обеспечения, автоматизирующего и облегчающего работу аудитора. 1.2 Классификация уязвимостей Согласно ГОСТ Р 56546-2015 уязвимости ИС по области происхождения подразделяются на следующие классы: • уязвимости кода; • уязвимости конфигурации; • уязвимости архитектуры; • организационные уязвимости; • многофакторные уязвимости. На сегодняшний день по всему миру существуют разного рода коммерческие и некоммерческие организации, занимающиеся информационной безопасностью и составляющих свои перечни и классификации. Сейчас рассмотрим список, составленный одной из наиболее авторитетных организаций. OWASP (Open Web Application Security Project) – это некоммерческая организация, целью которой является повышение осведомленности всех специалистов отрасли информационной безопасности в вопросах разработки, эксплуатации и защиты веб-приложений. OWASP Top 10 является одним из наиболее известных проектов организации. OWASP Top 10 — это рейтинг из десяти наиболее опасных рисков информационной безопасности для веб-приложений, составленный сообществом экспертов отрасли. Для каждого пункта рейтинга риск посчитан экспертами на основе методики OWASP Risk Rating Methodology и включает оценку по следующим критериям: распространенности соответствующих уязвимостей в приложениях (Weakness Prevalence), сложности их обнаружения (Weakness Detectability) и эксплуатации (Exploitability), а также критичности последствий их эксплуатации (Technical Impacts). По понятным причинам в расчетах критичности рисков не учитываются бизнес-последствия от их реализации. Там, где это возможно, названия рисков в рейтинге соотносятся с названиями соответствующих уязвимостей в классификации CWE (Common Weakness Enumeration). Следует отметить, что в отличие от классификаций, проект OWASP Top 10 не претендует на охват всех имеющихся рисков, а лишь представляет самые актуальные из них на момент выпуска рейтинга. Первая версия рейтинга OWASP Top 10 появилась в 2004 году, и с тех пор документ обновляется каждые три-четыре года. Обновленные версии публиковались в 2007, 2010, 2013 и 2017 годах. Последняя версия рейтинга, опубликованная в 2017 году, содержит следующие риски: • A1 – Внедрение кода (Injection). • A2 – Некорректная аутентификация (Broken Authentication). • A3 – Утечка чувствительных данных (Sensitive Data Exposure). • A4 – Внедрение внешних XML-сущностей (XXE – XML External Entities). • A5 – Нарушение контроля доступа (Broken Access Control). • A6 – Небезопасная конфигурация (Security Misconfiguration). • A7 – Межсайтовый скриптинг (XSS – Cross-Site Scripting). • A8 – Небезопасная десериализация (Insecure Deserialization). • A9 – Использование компонентов с известными уязвимостями (Using Components with Known Vulnerabilities). • A10 – Отсутствие журналирования и мониторинга (Insufficient Logging & Monitoring). Для каждого пункта в OWASP Top 10 представлена общая информация, описание, рекомендации по предотвращению, примеры соответствующих атак и полезные ссылки. Рейтинг OWASP Top 10 составляется на основе данных, предоставляемых сообществом экспертов отрасли информационной безопасности. В 2017 году рейтинг был обновлен на основе данных, собранных из отчетов 23 компаний, специализирующихся в сфере безопасности веб-приложений, в которых было проанализировано свыше 114 тысяч веб-приложений. В предоставленных данных присутствовали результаты как автоматического, так и ручного анализа, однако автоматический преобладал. При этом данные по 68% от общего числа приложений были предоставлены компанией Veracode, занимающейся автоматическим анализом (статическим и динамическим). Для оценки рисков использовались две группы факторов: факторы, влияющие на возможности атакующего по обнаружению и эксплуатации уязвимостей, а также факторы, влияющие на критичность последствий эксплуатации уязвимостей. В первую группу входят распространенность (prevalence), сложность обнаружения (detectability) и простота эксплуатации (ease of exploit). Ко второй группе относятся последствия эксплуатации уязвимости (technical impact). Некоторые важные факторы, например, такие как последствия эксплуатации уязвимости для бизнеса (business impact), модели злоумышленников, технические особенности невозможно проанализировать для всех веб-приложений в целом без учета специфики конкретного веб-приложения, поэтому они не рассматривались. Вероятностные характеристики выявлялись на основе предоставленных данных, а возможные последствия оценивались сообществом экспертов. Каждый фактор для конкретной уязвимости получал оценку от 1 до 3, и для получения общей оценки риска среднее арифметическое первой группы факторов умножалось на среднее арифметической второй группы факторов. OWASP Top 10 используется в Microsoft, PCI DSS (Payment Card Industry Data Security Standard), MITRE (некоммерческая организация, занимающаяся разработками и исследованиями в области системной инженерии при поддержке органов государственной власти США) и множестве других организаций, связанных с безопасностью веб-приложений. Некоторые позиционируют OWASP Top 10 как «лучшую практику защиты веб-приложений», однако такая позиция не совсем верна. Во-первых, рейтинг не покрывает все возможные уязвимости и поэтому не является достаточным источником для полной защиты веб-приложения. Даже в самом документе OWASP, описывающем Top 10, есть призыв: «Не останавливайтесь на 10». Во-вторых, нужно помнить про его ограничения и недостатки: довольно большой период между обновлениями, неуточненная предметная область (для тех приложений, которые используют только новые фреймворки, большая часть рейтинга может быть неактуальна), неполные исходные данные (в основном полученные компаниями на основе автоматических тестирований ) Рисунок 1 - Изменения в рейтинге OWASP Top 10 с 2013 года к 2017 ГЛАВА 2 АНАЛИЗ УЯЗВИМОСТЕЙ 2.1 Наиболее распространенные уязвимости В результате анализа защищенности веб-сайтов было установлено, что каждый третий выявленный недостаток критически опасен (34%). А большинство выявленных уязвимостей характеризуются средним уровнем риска (62%). Рисунок 2 - Доля уязвимостей различной степени риска Все исследованные веб-сайты оказались подвержены недостаткам как минимум среднего уровня риска. Полученные данные свидетельствуют о том, что с каждым годом увеличивается доля систем, в которых присутствуют критически опасные уязвимости. Веб-технологии с каждым годом набирают все большую популярность, вместе с функциональностью возрастает и сложность реализации сайтов. Разработчикам становится труднее при создании систем выявлять и исправлять ошибки, которые могут приводить к возникновению критически опасных уязвимостей. Наибольшее распространение получила уязвимость среднего уровня риска «Межсайтовое выполнение сценариев» (Cross-Site Scripting, XSS). Данная ошибка была обнаружена в программном коде 80% исследованных ресурсов. В результате ее эксплуатации злоумышленник может внедрить в браузер пользователя произвольные HTML-теги, включая сценарии на языке JavaScript и других языках, и таким образом получить значение идентификатора сессии атакуемого и совершить иные неправомерные действия, например, фишинговые атаки. Второе место занимает недостаток безопасности «Утечка информации» (Information Leakage): данная проблема была обнаружена в 50% сайтов. Зачастую на страницах приложений разглашается такая чувствительная информация, как фрагменты исходных кодов приложения, персональные и учетные данные пользователей, конфигурация сервера. Нарушитель может использовать полученные данные при планировании и проведении атак. Около половины веб-сайтов содержат также уязвимости, связанные с отсутствием защиты от подбора учетных данных (Brute Force). Рисунок 3 - Наиболее распространенные уязвимости (доля сайтов) Критически опасная уязвимость «Внедрение операторов SQL» (SQL Injection) вновь вошла в топ-10. Наиболее распространенным недостатком высокого уровня риска стала уязвимость «Внедрение внешних сущностей XML» (XML External Entities): она занимает 4-е место по распространенности. Эта ошибка в программном коде позволяет злоумышленнику получить содержимое файлов, расположенных на атакуемом сервере, либо совершать запросы в локальную сеть от имени атакуемого сервера. Она обусловлена недостаточной проверкой приложением данных, поступающих от пользователя, что позволяет злоумышленнику осуществлять атаку, направленную на изменение логики запроса посредством внедрения произвольной DTD-схемы в тело XML-документа. Это может привести к разглашению важных данных, получению злоумышленником исходных кодов приложения, файлов конфигурации и другой чувствительной информации о системе, а также к отказу в обслуживании приложения. Значительно снизилась доля веб-приложений, в которых было выявлено раскрытие информации о версиях используемого ПО (Fingerprinting). Большинство уязвимостей выявлены в серверной части (67%). Среди них наиболее распространены утечка информации (Information Leakage) и отсутствие защиты от подбора учетных данных (Brute Force). Вдвое меньше оказалась доля недостатков, позволяющих осуществлять атаки на клиентов приложения. В данной категории следует выделить межсайтовое выполнение сценариев (Cross-Site Scripting, XSS), открытое перенаправление (URL Redirector Abuse) и подделку межсайтовых запросов (Cross-Site Request Forgery). Рисунок 4 - Распределение уязвимостей по атакуемым частям веб-сайта Большинство уязвимостей веб-приложений вызваны ошибками в программном коде, допущенными разработчиками (69%). Оставшийся 31% недостатков связан с некорректной конфигурацией. Рисунок 5 - Происхождение уязвимостей 2.2 Уязвимости, характерные для различных средств разработки Более половины исследованных веб-сайтов, разработанных на PHP, содержит критически опасные уязвимости (56%). Соответствующее значение для веб-ресурсов, разработанных с использованием технологии Java, оказалось выше и составило 69%. Практически все сайты, созданные с помощью других языков программирования, подвержены уязвимостям высокой степени риска (88%). Рисунок 6 - Доли систем с уязвимостями разной степени риска (по средствам разработки) Вне зависимости от языка разработки все проанализированные ресурсы, содержат уязвимости как минимум средней степени опасности. Рисунок 7 - Доля веб-сайтов по максимальному уровню риска уязвимостей Уязвимость «Межсайтовое выполнение сценариев» оказалась наиболее распространенной для всех языков программирования. Ей подвержены от 75 до 89% ресурсов в соответствующих категориях. Также важно отметить, что в десятку наиболее распространенных уязвимостей для всех средств разработки вошли такие критически опасные уязвимости, как внедрение внешних сущностей XML (XML External Entities) и выход за пределы назначенного каталога (Path Traversal). Данные о долях веб-ресурсов, которые подвержены наиболее распространенным уязвимостям, для различных средств разработки представлены на рисунке 8. Рисунок 8 - Доли веб-сайтов с наиболее распространенными уязвимостями 2.3 Уязвимости, характерные для различных веб-серверов В результате анализа защищенности было установлено, что каждое второе веб-приложение под управлением сервера Nginx (57%) содержит уязвимости высокого уровня риска, что существенно меньше аналогичного показателя 2018 года (86%). Доля уязвимых ресурсов, функционирующих на базе Microsoft IIS, значительно возросла по сравнению с предыдущими периодами исследований и достигла максимального значения. При этом доля уязвимых сайтов под управлением веб-сервера Apache Tomcat снизилась почти вдвое и составила 33%. В приложениях под управлением сервера WebLogic были выявлены критически опасные уязвимости в 67% случаев. Рисунок 9 - Веб-приложения с уязвимостями высокой степени риска Исследования показывают, что уровень защищенности ресурса не зависит напрямую от типа используемого веб-сервера, если его владелец своевременно устанавливает все необходимые обновления ПО. Для большинства исследованных веб-серверов самой распространенной ошибкой администрирования является «Утечка информации» (Information Leakage). Данный недостаток был обнаружен во всех исследованных приложениях под управлением серверов Microsoft IIS. Второе место для большинства серверов занял недостаток «Отсутствие защиты от подбора учетных данных» (Brute Force), который стал наиболее распространенной уязвимостью в приложениях под управлением веб-сервера Nginx. Разглашение информации о версиях используемого ПО (Fingerprinting) для большинства веб-серверов находится лишь на третьем месте по распространенности, а в приложениях под управлением сервера WebLogic не было выявлено и вовсе. Таблица 1 - Уязвимости, связанные с ошибками администрирования 2.4 Наиболее распространённые методы атак SQL-инъекция или внедрение SQL-кода один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода. Внедрение SQL, в зависимости от типа используемой СУБД и условий внедрения, может дать возможность атакующему выполнить произвольный запрос к базе данных (например, прочитать содержимое любых таблиц, удалить, изменить или добавить данные), получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере. Атака типа внедрения SQL может быть возможна из-за некорректной обработки входных данных, используемых в SQL-запросах. Разработчик прикладных программ, работающих с базами данных, должен знать о таких уязвимостях и принимать меры противодействия внедрению SQL. XSS (cross-site scripting, межсайтовое исполнение сценариев) тип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницу вредоносного кода (который будет выполнен на компьютере пользователя при открытии им этой страницы) и взаимодействии этого кода с веб-сервером злоумышленника. Является разновидностью атаки «Внедрение кода». Специфика подобных атак заключается в том, что вредоносный код может использовать авторизацию пользователя в веб-системе для получения к ней расширенного доступа или для получения авторизационных данных пользователя. Вредоносный код может быть вставлен в страницу как через уязвимость в веб-сервере, так и через уязвимость на компьютере пользователя. Brute force (полный перебор или метод «грубой силы») - метод решения математических задач. Относится к классу методов поиска решения исчерпыванием всевозможных вариантов. Сложность полного перебора зависит от количества всех возможных решений задачи. Если пространство решений очень велико, то полный перебор может не дать результатов в течение нескольких лет или даже столетий. В криптографии на вычислительной сложности полного перебора основывается оценка криптостойкости шифров. В частности, шифр считается криптостойким, если не существует метода «взлома» существенно более быстрого чем полный перебор всех ключей. Криптографические атаки, основанные на методе полного перебора, являются самыми универсальными, но и самыми долгими. Инъекция внешних сущностей XML (также известная как XXE) — это уязвимость веб-безопасности, которая позволяет злоумышленнику вмешиваться в обработку XML-данных приложением. Внешняя сущность может содержать добавочный код, позволяющий злоумышленнику считать конфиденциальную информацию в системе или выполнить потенциально намного более вредоносные действия. Оно часто позволяет злоумышленнику просматривать файлы в файловой системе сервера приложений и взаимодействовать с любыми серверными или внешними системами, к которым может получить доступ само приложение. В некоторых ситуациях злоумышленник может усилить атаку XXE для компрометации базового сервера или другой внутренней инфраструктуры, используя уязвимость XXE для выполнения атак подделки запросов на стороне сервера (SSRF). Fingerprint или отпечаток компьютера (браузера) — информация, собранная об удалённом устройстве для дальнейшей идентификации, фингерпринтинг — сбор этой информации. Отпечатки могут быть использованы полностью или частично для идентификации, даже когда cookie выключены. Стандартная информация о конфигурации браузера уже давно собирается сервисами аналитики, чтобы отличать реальный трафик от мошеннического. С помощью скриптовых языков стал возможным сбор более индивидуальной информации. Сборка такой информации вместе в одну строку даёт в результате отпечаток компьютера. Методы фингерпринта бывают скрытыми и активными. Скрытый фингерпринт происходит скрытым запросом на клиентскую машину. Эти методы основываются на точной классификации таких параметров клиента, как конфигурация TCP/IP, цифровой отпечаток ОС, настройки IEEE 802.11 (WiFi) и смещение времени Активный фингерпринт основывается на том, что клиент будет позволять делать запросы. Наиболее распространённым методом является установка запускаемого кода прямо на клиентскую машину. Такой код будет иметь доступ к более скрытым параметрам, таким как MAC-адрес или уникальные серийные номера оборудования. Такая информация полезна для программ в сфере технических средств защиты авторских прав.
Не смогли найти подходящую работу?
Вы можете заказать учебную работу от 100 рублей у наших авторов.
Оформите заказ и авторы начнут откликаться уже через 5 мин!
Служба поддержки сервиса
+7(499)346-70-08
Принимаем к оплате
Способы оплаты
© «Препод24»

Все права защищены

Разработка движка сайта

/slider/1.jpg /slider/2.jpg /slider/3.jpg /slider/4.jpg /slider/5.jpg