<style>.lazy{display:none}</style>Введение в тестирование безопасности
тестирование безопастности

Введение в тестирование безопасности

Обзор и цель

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

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

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

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Что такое тестирование безопасности?

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

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

Принципы тестирования безопасности

Принципы тестирования безопасности

Доступность

Доступность – это гарантия того, что сервис/система/приложение функционируют и доступны, а также выполняют то, что от них ожидается.

Целостность

Целостность – это гарантия того, что входные и выходные данные, хранящиеся или выходящие из системы/приложения/сервиса, являются последовательными и точными для всех платформ и пользователей.

Аутентификация

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

Авторизация

Это процесс определения ролей, в соответствии с которыми клиенту (пользователю/системе/службе/приложению) разрешается выполнять действия над защищенным ресурсом, находящимся на сервере.

Конфиденциальность

Это процесс обеспечения безопасности, который защищает данные от внешнего мира с помощью шифрования/хеширования и т. д.

Невозможность отказа

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

Типы тестирования безопасности

Типы тестирования безопасности
  • Сканирование уязвимостей. Проводится с помощью автоматизированных программных инструментов для сканирования системы на предмет известных уязвимостей.
  • Сканирование безопасности. Включает в себя выявление слабых мест в сети и системе с помощью ручных и автоматизированных инструментов, а также предлагает решения для снижения этих рисков.
  • Тестирование на проникновение. Это тестирование включает в себя анализ конкретной системы/сервиса/приложения на предмет наличия потенциальных уязвимостей путем имитации попытки взлома.
  • Оценка рисков. Включает в себя анализ рисков безопасности и их классификацию как низких, средних и высоких. В ходе тестирования рекомендуются средства контроля и меры по снижению риска.
  • Аудит безопасности. Это внутренняя проверка приложений/систем/сервисов на предмет нарушений безопасности.
  • Этический взлом. Это взлом программных систем организации с целью выявления недостатков в системе безопасности.
  • Оценка состояния безопасности. Это комбинированное сканирование безопасности, этический взлом и оценка рисков, чтобы показать общее состояние безопасности организации.
Жизненный цикл тестирования безопасности

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

  • Tiger Box: этот взлом обычно выполняется на ноутбуке, который имеет смешанную коллекцию ОС и хакерских платформ. Это тестирование помогает тестировщикам безопасности провести оценку уязвимости системы/сервиса/приложения с помощью тестирования на проникновение и этического взлома.
  • Черный ящик:  тестировщик уполномочен проводить E2E-тестирование всего, что касается функциональности, платформы, доступности и топологии сети, в пределах периферийных границ системы.
  • Серый ящик: тестировщику предоставляется частичная информация о системе, это гибрид моделей “белого” и “черного ящика”.

Типовой план тестирования безопасности должен включать в себя:

  • Тест-кейсы
  • Тестовые данные, связанные с тестированием безопасности
  • Инструменты, необходимые для тестирования безопасности
  • Анализ результатов тестирования с помощью различных средств защиты

SAST и DAST

SAST и DAST – это методологии тестирования безопасности приложений, которые используются в тандеме для поиска уязвимостей.

Статическое тестирование безопасности приложений (SAST) это метод тестирования “белого ящика”, который изучает исходный код для поиска таких недостатков и слабых мест программного обеспечения, как SQL-инъекции, XML Bomb, JSON Bomb, Insufficient Logging & Monitoring и других, перечисленных в OWASP Top 10.

Динамическое тестирование безопасности приложений (DAST) это метод тестирования “черного ящика”, который исследует приложение во время его работы, чтобы найти уязвимости, которыми может воспользоваться потенциальный злоумышленник.

SAST и DAST

OWASP Tоп 10

OWASP (Open Web Application Security Project) – некоммерческий фонд, повышающий безопасность программного обеспечения. Это источник информации для разработчиков и технологов, обеспечивающий безопасность нашей цифровой жизни.

Компания OWASP постоянно публикует список из 10 уязвимостей в системе безопасности, которые привели к большинству успешных кибератак за последний год, и это отличная отправная точка для того, чтобы начать свой путь в области кибербезопасности.

Лучший способ избежать этих уязвимостей – повысить осведомленность сообщества разработчиков.

Список OWASP Tоп 10 на 2020 год состоит из следующих пунктов:

  1. Инъекция. Дефекты инъекций, такие как SQL, NoSQL, OS и LDAP, возникают, когда непроверенные данные отправляются в интерпретатор как часть команды или запроса. Вредоносные данные злоумышленника могут заставить интерпретатор выполнить непредусмотренные команды или получить доступ к данным без надлежащей авторизации.
  2. Неисправная аутентификация. Функции приложений, связанные с аутентификацией и управлением сеансами, часто реализованы некорректно, что позволяет злоумышленникам скомпрометировать пароли, ключи или токены сеансов или использовать другие недостатки реализации для временного или постоянного использования личных данных других пользователей.
  3. Раскрытие конфиденциальных данных. Многие веб-приложения и API не обеспечивают должной защиты конфиденциальных данных, таких как финансовые или медицинские. Злоумышленники могут украсть или изменить такие слабо защищенные данные, чтобы совершить мошенничество с кредитными картами, кражу личных данных или другие преступления. Чувствительные данные требуют дополнительных мер защиты, таких как шифрование в состоянии покоя или при транспортировке.
  4. XML External Entities (XXE). Многие старые или плохо настроенные XML-процессоры оценивают ссылки на внешние сущности внутри XML-документов. Внешние сущности могут быть использованы для раскрытия внутренних файлов с помощью обработчика URI файла, внутренних файлообменников, сканирования внутренних портов, удаленного выполнения кода и атак типа “отказ в обслуживании”.
  5. Сломанный контроль доступа. Ограничения на действия аутентифицированных пользователей часто не соблюдаются должным образом. Злоумышленники могут использовать эти недостатки для получения несанкционированного доступа к функциям и/или данным, например, доступа к учетным записям других пользователей, просмотра конфиденциальных файлов, модификации данных других пользователей, изменения прав доступа и т. д.
  6. Неправильная конфигурация безопасности – это самая распространенная проблема. Обычно она возникает из-за небезопасных конфигураций по умолчанию, неполных или ad hoc конфигураций, открытых облачных хранилищ, неправильно настроенных HTTP-заголовков и многословных сообщений об ошибках, содержащих конфиденциальную информацию. Все операционные системы, фреймворки, библиотеки и приложения должны быть не только безопасно настроены, но и своевременно исправлены/обновлены.
  7. Межсайтовый скриптинг (XSS). XSS дефекты возникают каждый раз, когда приложение включает недоверенные данные в новую веб-страницу без надлежащей валидации или экранирования, или обновляет существующую веб-страницу с данными, предоставленными пользователем, используя API браузера, который может создавать HTML или JavaScript. XSS позволяет злоумышленникам выполнять скрипты в браузере жертвы, которые могут перехватывать сеансы пользователей, повреждать веб-сайты или перенаправлять пользователей на вредоносные сайты.
  8. Небезопасная десериализация часто приводит к удаленному выполнению кода. Даже если недостатки десериализации не приводят к удаленному выполнению кода, они могут быть использованы для проведения атак, включая атаки повторного воспроизведения, инъекции и атаки с повышением привилегий.
  9. Использование компонентов с известными уязвимостями. Компоненты, такие как библиотеки, фреймворки и другие программные модули, запускаются с теми же привилегиями, что и приложение. Если уязвимый компонент будет использован, такая атака может привести к серьезной потере данных или захвату сервера. Приложения и API, использующие компоненты с известными уязвимостями, могут подорвать защиту приложения и сделать возможными различные атаки и воздействия.
  10. Недостаточное протоколирование и мониторинг. Недостаточное протоколирование и мониторинг, а также отсутствие или неэффективная интеграция с системой реагирования на инциденты позволяют злоумышленникам продолжать атаковать системы, сохранять постоянство, переходить на другие системы, а также подделывать, извлекать или уничтожать данные. По данным большинства исследований, время обнаружения взлома составляет более 200 дней, причем обычно его обнаруживают внешние стороны, а не внутренние процессы или мониторинг.

Ведущие инструменты тестирования безопасности

Acunetix

Netsparker

ZED Attack Proxy (ZAP)

Burp suite

SonarQube

Klocwork

Перевод статьи «Security Testing — Basics that you should know».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *