Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Защита Web-приложений. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
689 Кб
Скачать

для проведения

быстрых

тестов, готовые

решения не

 

учитывают

 

 

индивидуальные

 

варианты

 

использования.

Следовательно, недостаточно просто использовать самые

 

популярные инструменты тестирования, чтобы обеспечить

 

безопасность вашей Web-платформы или приложения.

 

 

 

Поддержание

 

высокого

уровняOPSEC

включает

 

разработку контрмер на основе угроз, с которыми фактически

 

сталкивается ваш Web-сайт или приложение.

 

 

 

 

 

Любая

 

оценка

риска

начинается

с

 

определения

критической

 

информации.

Для

Web-сайта

 

электронной

 

коммерции это могут быть данные клиента, такие как номера

 

кредитных карт, номера телефонов и адреса, или информация,

 

связанная с компанией, такая

как

 

списки

поставщиков,

 

данные

об

обороте, марже

или

номера

 

телефонов

сотрудников.

 

 

 

 

 

 

 

 

 

 

 

 

 

Следующим шагом является создание стратегии анализа

 

угроз и тестирования. Этот шаг является наиболее важным,

 

потому

что

мы

 

должны

убедиться, что

 

все

 

важные

 

потенциальные угрозы покрыты.

 

 

 

 

 

 

 

 

Лучший

 

способ

создать

 

стратегию

 

анализа

тестирования угроз – это основывать свои тесты на хорошо

 

известных методологиях и стандартах оценки безопасности.

 

Это поможет вам выбрать наиболее эффективную стратегию

 

тестирования с учетом специфики вашей Web-платформы.

 

Руководство

 

по

 

 

методологии

 

тестирован

безопасности с открытым исходным кодом(OSSTMM)

 

посвящено

 

тому, что

тестировать,

а не тому, как

его

 

тестировать,

и

 

содержит

основы

тестирования-

веб

безопасности,

 

а

 

также

 

информацию

 

о,

кактом

 

интерпретировать результаты тестов.

 

 

 

 

 

 

 

Преимущества.

Платформа

OSSTMM

может

быть

 

адаптирована

к

нескольким

типам

тестов, включая

оценки

 

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

Область использования: любая среда.

61

3.1. Открытый проект безопасности Web-приложений

(OWASP)

Проект Open Web Application Security Project ( OWASP )

 

 

– это

проект

с

открытым

исходным

, кодомкоторый

 

 

предлагает

широкий

спектр

бесплатных

,

ресурсов

ориентированных

на

тестированиеWeb-приложений

 

и

 

осведомленность о кибербезопасности.

 

 

 

 

 

 

OWASP предлагает несколько типов руководств для

 

оценки безопасности веб-приложений:

 

 

 

 

 

 

 

ТОП-10 OWASP. Это основная публикация OWASP, в

 

 

которой

 

подробно

описываются

наиболее

 

ча

встречающиеся уязвимости безопасности в Web-приложениях

 

 

в зависимости от воздействия на бизнес и

технической

 

сложности.

 

 

 

 

 

 

 

 

 

 

 

Руководство

 

по

тестированиюOWASP.

 

Это

 

 

руководство

содержит

коллекцию

лучших

практик

и

практических

примеров

тестирования

безопасности

для

 

тестирования безопасности Web-приложений.

 

 

 

 

 

Руководство

 

для

разработчиковOWASP.

 

Это

 

 

руководство

содержит

рекомендации

по

 

написанию

надежного, безопасного и надежного кода.

 

 

 

 

 

 

Руководство

 

по

пересмотру

кодаOWASP.

 

Это

 

 

руководство

 

предназначено

как

для

 

разработчиков

программного обеспечения, так и для менеджеров; в нем

 

описываются лучшие практики проверки безопасного кода и

 

объясняется, как его можно использовать в жизненном цикле

 

разработки

безопасного

программного

 

обеспечения

 

 

(S-SDLC).

 

 

 

 

 

 

 

 

 

 

 

Преимущества: рекомендации OWASP предоставляют

 

 

всю

необходимую

информацию

для

каждого

этапа

жизненного цикла безопасной разработки программного

 

обеспечения. Это самая популярная и полная коллекция

 

инструментов

 

 

для

 

тестирования

 

 

безопасн

Web-приложений, которую вы можете найти в Интернете.

62

Область

применения: Web-приложения, хотя

есть

несколько

проектов OWASP, ориентированных

на

тестирование мобильных приложений.

 

3.2. Классификация угроз консорциума безопасности

Web-приложений (WASC-TC)

Классификация угроз консорциума безопасности веб-

приложений

(WASC-TC) – это

классификация

угроз

безопасности

Web-сайтов. Этот документ также содержит

описания и примеры атак. Классификации представлены

несколькими

способами,

которые

называются

представлениями:

 

 

 

 

· Enumeration View – перечисляет атаки и слабые стороны,

которые могут поставить под угрозу безопасностьWeb-

сайта и его данных

 

 

 

· View

Phase

View –

сообщает, на

какой

стадии

жизненного

цикла

разработки

может

возникнуть

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

 

 

 

Таксономический перекрестный справочный вид–

помогает

сопоставить

терминологиюWASC-TC

с

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

включая OWASP Top Ten, CWE и CAPEC.

 

 

Преимущества:

WASC-TC

демонстрирует

прослеживаемость между фазами разработки и угрозами в разных классификациях.

Область использования: Web-приложения.

3.3. Стандарт выполнения испытаний на проникновение

(PTES)

Стандарт выполнения тестирования на проникновение (TES) охватывает семь основных этапов от первоначального общения с клиентом до составления отчетов:

·взаимодействие;

·сбор разведданных;

63

· моделирование угроз; · анализ уязвимостей; · эксплуатация; · после эксплуатации;

· составление отчетов.

Подробное описание каждого этапа, также карты разума с подробным описанием необходимых шагов можно найти на Web-сайте PTES .

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

Область использования: любая среда.

3.4. Структура оценки безопасности информационных систем (ISSAF)

Структура

оценки

безопасности

информационных

систем

(ISSAF) разделена на две

части: техническую и

управленческую. Техническая часть содержит набор наиболее

важных

правил

и

процедур

для

 

создания

адекватного

процесса оценки безопасности. Управленческая сторона

содержит общие рекомендации по организации эффективного

процесса тестирования.

 

 

 

 

 

Преимущества:

ISSAF

помогает

сократить

разрыв

между

технической

и

управленческой

сторонам

тестирования

безопасности

и

реализует

необходимые

средства управления для эффективной работы с обеими сторонами.

Область использования: любая среда.

64

3.5. Выбор методологии и проведение тестов

 

 

Полезность

каждого

из

 

перечисленных

выше

руководящих

принципов

зависит

от

вашей

конкретной

ситуации. Мы рекомендуем следовать контрольному списку

 

безопасности OWASP для создания стратегии тестирования.

 

Для технических

деталей

мы

предлагаем

 

использовать

Техническое руководство PTES.

 

 

 

 

 

 

Как

только

вы

 

закончите

создавать

тестовую

документацию, самое

время

провести

 

собственное

тестирование

и

посмотреть, как

работает

вашеWeb-

 

приложение.

 

 

 

 

 

 

 

 

 

В результате этого тестирования вы получите список

проблем, которые следует оценить на предмет уязвимости и

 

воздействия.

Вы

можете

использовать

 

следующие

классификации для вашей оценки.

 

 

 

 

 

Влияние проблемы:

 

 

 

 

 

 

 

1) критический

уровень:

проблема,

представляющая

 

крайнюю угрозу; например, проблема, которая не позволяет

 

устройству управления безопасностью фильтровать трафик

 

или

позволяет

злоумышленнику

получить

полный

административный доступ к системе;

2)высокий уровень: проблема, которая представляет значительную угрозу безопасности, но имеет ограниченную сферу действия; например, уязвимость DoS в критически важной службе или возможность получить доступ к системе на уровне пользователя;

3)средний уровень: проблема с ограниченным воздействием; например, существенная утечка информации, которая допускает ограниченный доступ к системе или отказ

вобслуживании;

4)

низкий

уровень: Проблема

с

небольшим

воздействием; например, утечка информации, которая может

быть

полезна

злоумышленнику

путем

предоставления

сведений о версии программного обеспечения, списков пользователей и т. д.

65

Возможность воздействия:

1)тривиальный уровень: злоумышленнику не нужны конкретные знания; проблема может быть использована с помощью стандартных инструментов операционной системы;

2)легкий уровень: злоумышленник должен иметь базовые знания и использовать стандартные инструменты

операционной

системы

или

другие

инструмент,

загруженные из Интернета;

 

 

 

3)умеренный уровень: злоумышленник должен

обладать

 

определенными

 

знаниями

и

 

использовать

комбинацию

инструментов

 

операционной

 

системы

и

инструментов, легко доступных в Интернете;

 

 

 

 

 

4)

испытывающий

уровень:

злоумышленник

должен

 

обладать конкретными знаниями и приложить немало усилий

 

для

использования

этой

 

проблемы, например,

 

путем

 

получения физического доступа к сетевой

инфраструктуре

 

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

 

 

5) N/A: проблема, которая не может быть использована

 

напрямую.

 

 

 

 

 

 

 

 

 

 

Следующим шагом является расчет риска. Найдите, где

 

результаты

из «Влияния

проблемы» и

«Возможность

 

воздействия» пересекаются, чтобы определить значение риска

 

для каждой проблемы.

 

 

 

 

 

 

 

 

 

Основываясь на результатах этого расчета риска, вы

 

можете

расставить

приоритеты

для

всех

 

проблем

от

уязвимостей с низким приоритетом до высокоприоритетных.

 

Затем

 

вы

можете

сосредоточить

свои

 

действия

п

исправлению наиболее важных проблем.

 

 

 

 

 

 

 

3.6. Автоматизация тестирования

 

 

 

 

На

рынке существует

несколько

коммерческих

и

бесплатных инструментов тестирования для тестирования их

 

возможностей подключения, ответа и производительности.

 

Эти

 

 

инструменты

 

тестирования

 

автоматизиру

тестирование

для

конкретного

сценария, такого

как

 

66

функциональное тестирование, нагрузочное тестирование, тестирование производительности и т. д.

Перечислим актуальные на данный момент сервисы:

SoapUI –

это инструмент для кросс-платформенного

тестирования с открытым исходным кодом. Он может

автоматизировать

функциональные,

регрессионные,

согласованные и нагрузочные тесты какSOAP, так и REST-

сервисов. Он

прост

в использовании

и поддерживает

передовые технологии и стандарты для моделирования и стимулирования поведения Web-сервисов.

Ключевые особенности:

·предоставляет отчеты для печати, экспорта и HTML на уровне Project, TestSuite, TestCase или LoadTest;

·возможность взаимодейсвтия с Hudson, Bamboo, Maven, ANT и Junit;

·позволяет разрабатывать собственный набор функций в виде плагинов SoapUI;

·записывает, контролирует и отображает все данные;

·поддерживает WS-Security и SSL-расшифровки. TestingWhiz это «codeless» инструмент автоматизации

тестирования который совместим сAPI/ Web-сервисами. Он позволяет проводить функциональное, тестирование совместимости и нагрузочное тестированиеи работать с Web-службами REST и SOAP через WSDL-интерфейс через

HTTP и FTP.

Ключевые особенности:

·поддерживает сравнение строк для проверки ответа API;

·помогает в поискеAPI-дефектов с помощью интегрированных инструментов отслеживания ошибок,

таких как JIRA, Mantis и Fogbugz;

· создает визуальные журналы и отчеты о проведении теста с помощью электронной почты;

·обеспечивает непрерывную интеграцию Jenkins,с Bamboo & Hudson;

·поддерживает тестирование, основанное на данных и ключевых словах.

67

SOAPSonar обеспечивает комплексное тестирование

Web-сервисов для HTML, XML, SOAP, REST и JSON. Он обеспечивает функциональное тестирование , тестирование производительности, совместимости и тестирование безопасности с помощью стандартов OASIS и W3C.

Ключевые особенности:

·поддерживает тестирование уязвимостей XSDс - мутацией;

·обеспечивает всесторонний анализ WSDL и Schema;

·выполняет нагрузочное тестирование с моделированием поведения и несколькими одновременными процессами загрузки;

·предоставляет отчеты в форматахXML, DOC, XLS, PDF, RTF и RPT;

·взаимодействует с центром качества HP.

SOAtest – это инструмент для тестирования и проверки

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

как REST, JSON, MQ, JMS, TIBCO, HTTP и XML.

Ключевые особенности:

·обеспечивает End-to-End тестирование;

·поддерживает 120+ протоколов / типов сообщений;

·поставляется с простым в использовании интерфейсом;

· помогает

создавать

сложные, расширяемые

и

многоразовые тесты без кодирования;

 

 

 

 

· поддерживает

 

непрерывное

 

интеграционно

тестирование.

 

 

 

 

 

 

TestMaker

– это

инструмент с

открытым

исходным

кодом для тестирования и мониторинга производительности

 

Web-сервисов и приложений SOA с помощью PushtoTest. Он

 

работает

на Jython (Python написанный

на Java). TestMaker

 

может

перепрофилировать

тестыSelenium,

тесты

SoapUI,

 

тесты Sahi или

любые

тесты, написанные

в Groovy, Java,

 

68

Python, PHP, Ruby и Perl, в функциональные, нагрузочные тесты.

Ключевые особенности:

·использует запрос командной строки для тестирования функциональности, нагрузки и производительности;

·интуитивно понятный внешний вид со стандартной многооконной IDE;

·предоставляет контрольную панель для запуска тестов и отображения результатов в реальном времени;

·позволяет получать доступ ко всемJava-библиотекам и классам языка Jython.

Postman – еще один инструмент тестированияAPI /

Web-сервисов, который имеет мощную поддержкуHTTPклиента. Он имеет простой в использовании конструктор запросов, который позволяет писать тест-кейсы и управлять данными ответов и временем отклика для эффективного тестирования и управления тест-кейсами API.

Ключевые особенности:

 

 

 

 

 

 

· позволяет

организовывать API в

функции, называемые

 

сборками Postman;

 

 

 

 

 

 

· облегчает

 

совместную

работу

и

 

совместно

использование данных API и средств контроля;

 

 

 

· позволяет

записывать

логические

тесты Postmanв

 

Interface.

 

 

 

 

 

 

 

 

Vrest

это

инструмент, предназначенный

для

тестирования, тестирования REST APIS и Web-сервисов. Он

 

также

поддерживает

тестированиеWeb-приложений,

 

мобильных

 

и

настольных

 

приложений, которые

 

взаимодействуют со стороннимиAPI-интерфейсами или

службами HTTP.

 

 

 

 

 

 

 

Ключевые особенности:

 

 

 

 

 

 

· имеет

 

функциональность

макетного

сервера

для

создания макета API за считанные минуты;

 

 

 

· существует

расширение Chrome

для

записи

 

и

воспроизведения тест-кейсов;

 

 

 

 

 

69

·поддерживает интеграцию сJenkins для непрерывной работы серверов и Jira для отслеживания ошибок;

·облегчает управление разрешениями;

· позволяет

экспортировать

и импортировать

тест-кейсы

и отчеты

из внешних инструментов, таких как Postman

Collections, Swagger 2.

 

 

 

HttpMaster – еще один эксклюзивный инструмент для

тестирования

Web-сервисов

REST.

Это

помогает

тестировщикам тестировать поведение API REST и проверять

выходные данные в таких форматах, как XML,

JSON и

HTML. Благодаря

универсальному HTTP-инструменту

HttpMaster

также

помогает

 

разработчику

моделировать

активность клиента и поведение ответа приложения API.

 

Ключевые особенности:

 

 

 

 

 

· имеет

простой

в

использовании

пользовательский

интерфейс, который не требует передовых технических

 

навыков;

 

 

 

 

 

 

 

· использует HTTP-методы,

такие

как GET, POST,

 

DELETE и т. д;

 

 

 

 

 

 

 

· предоставляет

 

различные

типы

и

выражения

для

проверки для облегчения тестирования;

·использует интерфейс командной строки для создания и выполнения теста;

·позволяет хранить всю информацию– вызовы API и данные проекта в одном месте;

Runscope – простой инструмент для проверки и

мониторинга

производительности API. Runscope

также

поддерживает

тестирование API-интерфейсов

и

бэкэнд

мобильных приложений.

 

 

Ключевые особенности:

 

 

·позволяет создавать тесты с динамическими данными даже для сложных случаев;

·отображает показатели и аналитику для выявления проблем;

·работает с такими инструментами, как HipChat, Webhooks, Slack и PagerDuty для уведомления о сбое API;

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]