Создание программы для сканирования уязвимостей веб-приложений | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №21 (207) май 2018 г.

Дата публикации: 27.05.2018

Статья просмотрена: 2334 раза

Библиографическое описание:

Нгуен, Ной Хыу. Создание программы для сканирования уязвимостей веб-приложений / Ной Хыу Нгуен. — Текст : непосредственный // Молодой ученый. — 2018. — № 21 (207). — С. 139-145. — URL: https://moluch.ru/archive/207/50847/ (дата обращения: 16.11.2024).



Информационная безопасность становится все более важной, особенно в текущем периоде. Поиск уязвимостей и их устранение — важная задача для программистов и веб-мастеров. В этой статье мы предлагаем некоторые алгоритмы, которые поддерживают сканирование уязвимостей, таких как XSS, CSRF, SQL инъекция, использование для создания автоматизированных программ сканирования, снижая риск небезопасных с веб-сайтов.

Ключевые слова: сканер веб-сайта, веб-приложение, анализ уязвимости веб-сайтов, CSS.

Information security is becoming more and more important, especially in the current period. Finding vulnerabilities and fixing them is an important task for programmers and webmasters. In this article, we propose some algorithms that support scan vulnerabilities such as XSS, CSRF, SQL Injection, used for building automated scanning programs, reducing the risks and unsafety for the website.

Keywords: Website Scanner, Web based application, Website Vulnerability Analysis, CSS.

Введение

Безопасность — важная часть ваших веб-приложений. Веб-приложения по определению позволяют пользователям получать доступ к центральному ресурсу — веб-серверу — и через него — к другим, таким как серверы баз данных. Понимая и применяя надлежащие меры безопасности, вы охраняете свои собственные ресурсы, а также предоставляете безопасную среду, в которой ваши пользователи удобны в работе с вашим приложением [1, 2, 9].

Безопасность веб-приложений — это подразделение «Информационная безопасность», которое специально занимается безопасностью веб-сайтов, веб-приложений и веб-сервисов [7, 9].

Веб-безопасность блокирует веб-угрозы для снижения вредоносных программ, снижает количество инцидентов в справочных службах и освобождает ценные ИТ-ресурсы. Он имеет более 100 категорий безопасности и фильтрации, сотни веб-приложений и протокольные средства управления, а также отчеты с 60 плюс с настройкой и доступом на основе ролей.

Определение проблемы иподход

Уязвимость — это недостаток или слабость приложения, которое может быть недостатком дизайна или ошибкой реализации, что позволяет злоумышленнику наносить вред заинтересованным сторонам приложения [13]. Заинтересованные стороны включают владельца приложения, пользователей приложений и другие объекты [3, 4].

Эта технологическая структура была выбрана из-за ее популярности и широкого использования. Каждый сканер уязвимостей веб-приложений протестирован против веб-приложения по предписанному подходу, который включает в себя набор процедур инициализации, выполнения, классификации и анализа. Используя безопасную и небезопасную версию настраиваемого веб-приложения, ложноположительные и ложноотрицательные результаты могут быть связаны с методами, используемыми сканерами для обнаружения уязвимостей. Эта связь между используемыми методами и ложноположительными или ложными негативами может быть использована, чтобы предложить улучшения для методов сканирования веб-приложений [7, 9, 11].

Шаг 1. Введите URL-адрес.

Шаг 2. Выберите тип уязвимости, которую вы хотите отсканировать.

Шаг 3. Запустите сканирование.

Шаг 4: Проверьте данные условия в соответствии с выбранным сканированием уязвимостей.

Шаг 5: После наблюдения за условиями выбранной уязвимости подготовьте отчет.

На основе общего алгоритма мы привели конкретные алгоритмы для обнаружения определенных уязвимостей, таких как SQL Инъекция, XSS, CSRF, Clickjacking...

Алгоритм для инъекций SQL (Рис. 1)

1. Инициализировать SQL-символы в массиве

Рис. 1. Блок-схема алгоритма инъекций SQL

2. Создайте два списка для хранения сообщений об ошибках SQL.

(i) Один для хранения сообщений об ошибках конкретной базы данных, таких как сообщения об ошибках SQL и т. д.

(ii) Другое для хранения общих сообщений об ошибках базы данных

3. Инициализировать значения ошибок в картах/списке, указанных выше.

4. Инициализировать метод сканера — сканер принимает сообщение http в качестве ввода от искателя. HTTP-сообщение содержит сведения о каждом запросе или URL-адресе с списком параметров.

5. Для каждого параметра в сообщении HTTP

(i) Введите SQL-символы из массива SQL-символов

(ii) Проверьте ответ, чтобы проверить соответствует сообщениям об ошибках из две карты или списки.

(iii) Если происходит совпадение -Flag as SQL-уязвимость

(iv) Else — Повторите шаг до тех пор, пока не будет достигнут конец списка параметров

6. Конец

Алгоритм для XSS (Рис. 2)

Рис. 2. Блок-схема алгоритма XSS

1. Начало

2. Для каждого URL-адреса в списке посещаемых URL-адресов

(i). Определить все параметры

(ii). Ввод параметров в список параметров

(iii). Для каждого параметра в очереди параметров

(iv). Поставьте сценарий или тестовый пример XSS в качестве входного параметра и передайте запрос

(v). Проверьте ответ, чтобы определить предоставленный сценарий или тестовый случай, отраженный назад

3. Сообщите об этой уязвимости, если в ответе есть скрипт

4. Конец

Создание программы

Чтобы создать сканер уязвимостей веб-сайта, мы использовали Python 3 (интегрированный с пакетом Anaconda), среда программирования — Pycharm; веб-сервер Apache, SQL-сервер MySQL (все компоненты включены в установочный пакет XAMPP).

Интерактивная модель (Рис. 3)

Рис. 3. Схема процесса проверки

‒ Пользователь: используйте клиентскую программу (написанную на Python), чтобы проверить наличие уязвимостей на веб-сайте, связав сайт с тестовым сайтом.

‒ Клиентская программа подключается к серверу, загружает соответствующую веб-страницу, анализирует, чтобы получить все связанные ссылки; Затем выполните соответствующую атаку на веб-сайте и получите результат. Анализирует, содержит ли веб-сайт дефект и уведомляет пользователя.

‒ Серверная программа: получать соединение с клиентом, отвечать соответствующим требованиям. С соответствующими настройками для тестирования на сервере, который содержит любой веб-сайт, который может содержать недостатки или нет.

Операционная модель программы (Рис. 4)

Согласно анализу интерактивной модели, мы моделируем производительность программы на основе этих взаимодействий.

Рис. 4. Модель взаимодействия программы

Механизм сканирования выполняет соединение с сервером через ссылку, предоставленную пользователем через параметр, анализируя входные параметры, чтобы найти соответствующий механизм сканирования (или атакующего). Если параметры не используются, все сканируемые компоненты будут выполнены.

На стороне сервера используемое веб-приложение (которое подробно описано ниже) содержит некоторые уязвимости в сети, которые могут быть уязвимыми в базе данных или связанными с ними уязвимостями. для проверки входных данных и т. д. Если сканер может найти и выдавать предупреждение, программист должен проверить безопасность для этого сайта.

Архитектура программы (Рис. 5)

Программа встроена в разные модули, выполняя конкретные задачи.

‒ Нижняя часть — это модули языка программирования Python с соответствующими библиотеками;

‒ Модуль Core содержит более мелкие модули, которые выполняют разные задачи: модуль собирает ссылки на веб-сайт, преобразует их в разные форматы в соответствии с обычной структурой веб-сайта, такими как: форма, текст, ссылки, текстовое поле,... модули также предоставляют инструменты для ведения журнала, параметры анализа и некоторые другие вспомогательные функции;

‒ Модуль содержит атаки для выполнения проверок на сайте, включая XSS, CSRF, Breach, Clickjack.

Рис. 5. Архитектура программы уязвимости веб-сайта

Построение тестовых компонентов

В модуле Attacks мы приступили к созданию некоторых компонентов атаки для проверки уязвимостей для веб-сайта:

‒ уязвимость XSS: тестирование уязвимости XSS;

‒ Уязвимость CSRF: проверка уязвимости CSRF;

‒ Уязвимость Clickjacking: уязвимость Clickjacking;

‒ Уязвимость сканирования файлов cookie: проверка уязвимости Проверка файлов cookie;

‒ CRLF-уязвимость: проверка уязвимости CRLF.

Результаты иобсуждения

Мы использовали Веб-сайт «Примеры Вею-уязвимостей», который содержит несколько уязвимостей для тестирования. Это приложение написанное на python, работает на порту 8666 и содержит ряд уязвимостей для использования:

‒ Проверка авторизации на стороне клиента;

‒ Расширение длины MAC;

‒ Подделка запросов на межсайтовые запросы;

‒ Отраженный межсайтовый скриптинг;

‒ Сохраненные межсайтовые скрипты;

‒ SQL Injection;

‒ Обход траектории.

Рис. 6. Интерфейс веб-сайта уязвимостей

Сканировать все уязвимости

Команда: python webscan.py http://localhost:8666/

Результаты сканирования

It might be XSS vulnerability: http://localhost:8666/reflected_xss/?username= %3Cscript %3Ealert %28 %22XSS_STRING %22 %29 %3B %3C %2Fscript %3E XSS with parameter “username”

It might be vulnerability CSRF: http://localhost:8666/csrf/send Lo hong CSRF

Summary report

Warning: http://localhost:8666/stored_xss/send HTML Error Encountered , expected

Warning: http://localhost:8666/stored_xss/ HTML Error Unclosed tag

(and 20 similar)

Сканирование уязвимостей XSS

Команда: python webscan --xss http://localhost:8666/

Результаты сканирования

It might be XSS vulnerability: http://localhost:8666/reflected_xss/?username= %3Cscript %3Ealert %28 %22XSS_STRING %22 %29 %3B %3C %2Fscript %3E XSS with parameter “username”

Summary report

Warning: http://localhost:8666/stored_xss/send HTML Error Encountered , expected

Warning: http://localhost:8666/stored_xss/ HTML Error Unclosed tag (and 4 similar)

Обнаруживает уязвимость CSRF

Команда: python webscan --csrf http://localhost:8666 /

It might be CSRF vulnerability: http://localhost:8666/csrf/send -- CSRF vulnerability

Summary report

Warning: http://localhost:8666/stored_xss/ HTML Error Unclosed tag (and 3 similar)

Обнаружение уязвимости Clickjacking

Команда: python webscan --clickjack http://localhost:8666/

Summary report:

Warning: http://localhost:8666/stored_xss/ HTML Error Unclosed tag

Warning: http://localhost:8666/stored_xss/?username=Benutzer %21 HTML Error Unclosed tag

Результаты работы программы

Программа обнаружила уязвимости, такие как XSS, CSRF, Clickjacking. Это основные ошибки, но сайты обычно содержат много статистики OWASP.

Наш сканер уязвимостей веб-сайта может найти основной недостаток, и эти уязвимости действительно существуют на тестовом сайте. Одним из сайтов для изучения уязвимостей и для пен-тестирования является DVWA (Damn Vulnerable Web Application). И результаты довольно хорошие.

Тем не менее, существует ограничение на то, что при выполнении тестов для уязвимостей SQL Injection точность не очень высока, так как многие веб-сайты требуют проверки подлинности пользователя для проверки, поэтому программа не всегда работает хорошо. В следующий раз мы сосредоточимся на улучшении этого.

Будущая работа

В будущем мы сосредоточимся на разработке интерфейсного сканера для удобства пользователей. И одним из решений является использование веб-интерфейса для сборки. В то же время мы также улучшим, добавив алгоритмы, чтобы программа обнаруживала больше уязвимостей.

Вывод

В этом исследовании мы предложили метод разработки сканера уязвимостей веб-сайта. Благодаря автоматическому сканированию программа сэкономит время и деньги на обслуживание систем веб-сайта. Исходя из этого, администраторы будут своевременно устранять уязвимости, снижать риск безопасности и защиты информации, тем самым уменьшая стоимость ущерба при наступлении атаки.

Литература:

  1. Elizabeth, F. Building a Test Suite for Web Application Scanners. Elizabeth F., Romain, G., Vadim, O., Paul, B.
  2. Emre, E. Web Vulnerability Scanners: A Case Study. Emre, E., Angel, R. 2017.
  3. Fonseca, J., Vieira, M., & Madeira, H. (2014). Evaluation of Web Security Mechanisms using Vulnerability & Attack Injection. Dependable and Secure Computing, IEEE Transactions on, 11(5), 440–453.
  4. Kinnaird, Mc. Open Source Web Vulnerability Scanners: The Cost Effective Choice? 2014 Proceedings of the Conference for Information Systems Applied Research Baltimore, Maryland USA. ISSN: 2167–1508.
  5. M. Parvez, P. Zavarsky and N. Khoury»,Analysis of effectiveness of black-box web application scanners in detection of stored SQL injection and stored XSS vulnerabilities», 2015 10th International Conference for Internet Technology and Secured Transactions (ICITST), London, 2015, pp. 186–191. doi: 10.1109/ICITST.2015.7412085
  6. M. Parvez, P. Zavarsky and N. Khoury, «Analysis of effectiveness of black-box web application scanners in detection of stored SQL injection and stored XSS vulnerabilities», 2015 10th International Conference for Internet Technology and Secured Transactions (ICITST), London, 2015, pp. 186–191. doi: 10.1109/ICITST.2015.7412085
  7. Pallavi Deshmane. Web Vulnerability Scanner Application. Pallavi Deshmane, Shweta Singh, Nakshi Doshi, Harshit Punatar, Shashank Gangar. Imperical Journal of Interdisciplinary Research, Vol 3, Issue-2, 2017. ISSN: 2454–1362.
  8. Rik A. J. Web Application Vulnerability Testing with Nessus. The OWASP Foundation.
  9. Stefan, K. SecuBat: A Web Vulnerability Scanner. Stefan, K., Engin, K., Christopher, K. Nenad, J.
  10. The government of the Hong Kong Special Administrative Region. An Overview of Vulnerability Scanners. 2/2018.
  11. Vieira, “Using Web Security Scanners to Detect Vulnerabilities in Web Services”; IEEE/IFIP Intl Conf. on Dependable Systems and Networks, DSN 2009, Lisbon, Portugal, June 2009; http://eden.dei.uc.pt/~mvieira
  12. Zanero, S. Automatic Detection of Web Application Security Flaws. 2005.
  13. https://en.wikipedia.org/wiki/Vulnerability_(computing)
  14. Дмитрий Евтеев. SQL Injection от А до Я
  15. Козлов Д. Д. Методы обнаружения уязвимостей в web- приложениях. Козлов Д. Д., Петухов А. А.
Основные термины (генерируются автоматически): XSS, CSRF, SQL, HTML, уязвимость, CSS, проверка уязвимости, интерактивная модель, Клиентская программа, тестовый сайт.


Ключевые слова

веб-приложение, CSS, сканер веб-сайта, анализ уязвимости веб-сайтов

Похожие статьи

Расширения браузеров как средства анализа защищенности веб-приложений от CSRF атак

Расширения браузера пользуются огромной популярностью: каждый третий пользователь Firefox или Google Chrome имеет хотя бы одно расширение. Но мало кто использует расширения браузеров как средства для проверки Web-сайтов на уязвимости. В этой статье п...

Проектирование программного обеспечения сканера веб-уязвимостей TechnoScan c использованием нотаций диаграммы UML

В статье представлен анализ актуальности использования сканеров уязвимости для предотвращения возможных угроз и выявления уязвимостей веб-приложений на ранних этапах. Представлены результаты проектирования сканера веб-уязвимостей “TechnoScan” с испол...

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ. Методы защиты от них

В данной статье рассказывается, что такое OLE интерфейс, его простейшее применение. Также рассматривается, как с помощью него распространяются вредоносные программы в виде документов Microsoft Word на различные предприятия. Предлагается список мер, к...

Стиллер «(s)AINT» и защита от него

В работе рассматривается алгоритм действия вредоносного вируса Стиллер «(s)AINT», который прост в использовании и одновременно многофункционален. После запуска он копирует себя на жёсткий диск и собирает все данные, которые пользователи вводят с помо...

Обзор различных средств фаззинга как инструментов динамического анализа программного обеспечения

В данной статье описывается суть динамического анализа ПО на основе инструментов фаззинга, обзор и сценарии применения различных инструментов, реализующих данный подход. Все инструменты, представленные в статье, используются в цикле проверки ПО обесп...

Глубокие нейронные сети: автоматическое обучение распознаванию вредоносных программам. Генерация и классификация подписей

В этой статье будет рассмотрен метод обучения глубокой нейронной сети для автоматической генерации сигнатур вирусов, с целью дальнейшего предотвращения заражения информационных систем. Метод использует сеть глубоких убеждений, реализованную с глубоки...

Методы обработки видеоизображений с помощью языка программирования Python

В статье рассматриваются современные методы обработки видеоизображений с использованием языка программирования Python. Описываются ключевые библиотеки, такие как OpenCV и scikit-image, а также их применение для выполнения задач, включая распознавание...

Безопасность платежей в электронной коммерции

Безопасность — это одна из самых серьезных проблем, если говорить об электронной коммерции. Такие случаи, как кража личных данных и мошенничество с платежами, по-видимому, растут с каждым днем в сегменте электронной коммерции. Для владельцев магазино...

Методы защиты веб-приложений от CSRF-атак

Сегодня CSRF-атаки предстают перед нами в числе уязвимостей, которые разработчики веб-приложений не воспринимают всерьез. Это упущение ежегодно приносит серьезные убытки всем, начиная от рядового пользователя сети Интернет, заканчивая крупнейшими IT-...

Разработка модуля прогнозирования цен на товары для онлайн-платформы

В данной статье описывается разработка модуля машинного обучения для прогнозирования цен на товары на онлайн-платформе. Модуль использует алгоритмы машинного обучения, такие как случайные леса и деревья решений, для точного прогнозирования цен в зави...

Похожие статьи

Расширения браузеров как средства анализа защищенности веб-приложений от CSRF атак

Расширения браузера пользуются огромной популярностью: каждый третий пользователь Firefox или Google Chrome имеет хотя бы одно расширение. Но мало кто использует расширения браузеров как средства для проверки Web-сайтов на уязвимости. В этой статье п...

Проектирование программного обеспечения сканера веб-уязвимостей TechnoScan c использованием нотаций диаграммы UML

В статье представлен анализ актуальности использования сканеров уязвимости для предотвращения возможных угроз и выявления уязвимостей веб-приложений на ранних этапах. Представлены результаты проектирования сканера веб-уязвимостей “TechnoScan” с испол...

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ. Методы защиты от них

В данной статье рассказывается, что такое OLE интерфейс, его простейшее применение. Также рассматривается, как с помощью него распространяются вредоносные программы в виде документов Microsoft Word на различные предприятия. Предлагается список мер, к...

Стиллер «(s)AINT» и защита от него

В работе рассматривается алгоритм действия вредоносного вируса Стиллер «(s)AINT», который прост в использовании и одновременно многофункционален. После запуска он копирует себя на жёсткий диск и собирает все данные, которые пользователи вводят с помо...

Обзор различных средств фаззинга как инструментов динамического анализа программного обеспечения

В данной статье описывается суть динамического анализа ПО на основе инструментов фаззинга, обзор и сценарии применения различных инструментов, реализующих данный подход. Все инструменты, представленные в статье, используются в цикле проверки ПО обесп...

Глубокие нейронные сети: автоматическое обучение распознаванию вредоносных программам. Генерация и классификация подписей

В этой статье будет рассмотрен метод обучения глубокой нейронной сети для автоматической генерации сигнатур вирусов, с целью дальнейшего предотвращения заражения информационных систем. Метод использует сеть глубоких убеждений, реализованную с глубоки...

Методы обработки видеоизображений с помощью языка программирования Python

В статье рассматриваются современные методы обработки видеоизображений с использованием языка программирования Python. Описываются ключевые библиотеки, такие как OpenCV и scikit-image, а также их применение для выполнения задач, включая распознавание...

Безопасность платежей в электронной коммерции

Безопасность — это одна из самых серьезных проблем, если говорить об электронной коммерции. Такие случаи, как кража личных данных и мошенничество с платежами, по-видимому, растут с каждым днем в сегменте электронной коммерции. Для владельцев магазино...

Методы защиты веб-приложений от CSRF-атак

Сегодня CSRF-атаки предстают перед нами в числе уязвимостей, которые разработчики веб-приложений не воспринимают всерьез. Это упущение ежегодно приносит серьезные убытки всем, начиная от рядового пользователя сети Интернет, заканчивая крупнейшими IT-...

Разработка модуля прогнозирования цен на товары для онлайн-платформы

В данной статье описывается разработка модуля машинного обучения для прогнозирования цен на товары на онлайн-платформе. Модуль использует алгоритмы машинного обучения, такие как случайные леса и деревья решений, для точного прогнозирования цен в зави...

Задать вопрос