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

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

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

  • Canva. В мае 2019 года популярный сайт графического дизайна Canva подвергся взлому, в результате которого хакер похитил данные более 139 миллионов пользователей.
  • Adobe Inc. В октябре 2013 года компания обнародовала информацию о краже данных более 2,9 миллиона (позже стало известно о 38 миллионах) клиентов, в том числе информации о кредитных картах. По мнению компании LastPass, специализирующейся на защите паролей, компания не обеспечила сохранность паролей. Sophos, британская компания по производству программного обеспечения и оборудования для обеспечения безопасности, заявила, что Adobe использовала слабый алгоритм шифрования.
  • Google Plus. В декабре 2018 года компания Google сообщила, что из-за ошибки в обновлении API Google+ были затронуты данные более 52,5 млн пользователей. Ошибка позволяла сторонним разработчикам получить доступ к ним.
  • Justdial. В октябре 2019 года индийский исследователь безопасности Эраз Ахмед обнаружил серьезную ошибку в API регистрации Justdial. Она позволяла хакерам вводить номера телефонов в параметр username, чтобы получить доступ к аккаунтам других пользователей. Ошибка была своевременно исправлена, и ни одна учетная запись пользователей не пострадала.
  • Yahoo. В 2014 году в результате кибератаки пострадали данные более 500 миллионов пользователей.
Друзья, поддержите нас вступлением в наш Телеграм-канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Эти примеры – лишь верхушка айсберга. И если вы заметили, кое-что их объединяет: этих нарушений безопасности можно было избежать.

Возникает вопрос: как? Ответ заключается в принятии мер предосторожности, а чтобы принять меры предосторожности, необходимо выполнить важный процесс – тестирование безопасности.

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

Содержание

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

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

Команда разработчиков должна убедиться, что программное обеспечение защищено от различных нарушений безопасности, таких как вредоносное ПО, атаки грубой силы, SQL-инъекции и т. д. Для этого им необходима помощь в тестировании безопасности.

Шесть основных принципов безопасности

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

  1. Конфиденциальность. Конфиденциальность определяет уровень доступности информации. Кто может получить к ней доступ, где эта информация может быть доступна и как она может быть получена?
  2. Целостность. Целостность дает гарантию того, что информация является подлинной и правильной.
  3. Авторизация. Авторизация – это процесс идентификации лица или организации, пытающейся получить доступ к системе. Типичным примером метода авторизации является присвоение имени каждому пользователю.
  4. Аутентификация. Аутентификация – это процесс проверки прав авторизованных лиц или организаций. Типичным примером процесса аутентификации является запрос пароля для введенного имени пользователя.
  5. Доступность. Пользователи должны иметь доступ ко всей необходимой и открытой им информации. Для соблюдения этого принципа информация о программном обеспечении должна храниться в безопасном месте, а система должна иметь достаточную емкость для хранения данных.
  6. Невозможность отрицания (Non-repudiation). Значение слова “Repudiation” – отказ или отрицание что-либо. Невозможность отрицания дает гарантию того, что автор сообщения или отправитель документа не сможет опровергнуть подлинность своей подписи. Одним из распространенных примеров достижения невозможности отрицания является использование цифровой подписи.

Почему тестирование безопасности необходимо?

В первой части этой статьи мы рассмотрели несколько примеров из реальной жизни. Основываясь на этих примерах, можно понять важность тестирования безопасности. В этом разделе мы рассмотрим основные последствия недостаточной защищенности систем.

  • Плохие механизмы безопасности ставят под угрозу репутацию компании. Если в результате атаки на приложение страдают данные пользователей или работа системы, возникает вопрос о надежности компании. В случае с Yahoo из-за трех атак компания Verizon Communications снизила оценку Yahoo во время покупки.
  • Снижение числа клиентов и потеря доверия. Можно с уверенностью сказать, что любая брешь в системе безопасности также влияет на пользователей или клиентов. Пользователи могут потерять доверие и больше никогда не использовать приложение, из-за которого пострадали их данные. Компании будет сложно вернуть таких клиентов.
  • Финансовые потери клиентов. Как видно по многочисленным сообщениям о кибератаках, мишенью часто является платежная информация пользователей. Заполучив данные кредитных или дебетовых карт, хакеры могут попытаться произвести нежелательные транзакции.

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

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

Существует семь типов тестирования безопасности:

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

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

Для вышеупомянутых типов тестирования безопасности существует множество инструментов. В этом разделе мы кратко рассмотрим некоторые из них.

  • Netsparker. Это инструмент для сканирования безопасности веб-приложений. В случае обнаружения уязвимостей они классифицируются по уровням серьезности. Инструмент позволяет интегрироваться с CI/CD и другими системами. Он платный, но позволяет использовать бесплатную пробную версию в течение определенного периода.
  • Metaspliot. Принадлежит компании Rapid7 LLC и представляет собой кроссплатформенный фреймворк с открытым исходным кодом, написанный на языке Ruby. Согласно официальному сайту, это самый используемый в мире фреймворк для тестирования на проникновение.
  • W3af. Web Application Attack and Audit Framework (w3af) – это сканер безопасности веб-приложений с открытым исходным кодом, написанный на языке Python. Он помогает выявлять и использовать уязвимости веб-приложений.
  • Nessus. Сканер уязвимостей, используемый при оценке уязвимостей и тестировании на проникновение, разработанный компанией Tenable.

Заключение

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

Перевод статьи «Security Testing».

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

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