Защита Web-приложений. Учебное пособие
.pdfдля проведения |
быстрых |
тестов, готовые |
решения не |
|
||||||||||
учитывают |
|
|
индивидуальные |
|
варианты |
|
использования. |
|||||||
Следовательно, недостаточно просто использовать самые |
|
|||||||||||||
популярные инструменты тестирования, чтобы обеспечить |
|
|||||||||||||
безопасность вашей 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
