9 различных типов тестирования на проникновение [используется в 2021 году]
В современном корпоративном мире безопасность стала самой распространенной проблемой. Каждый день мы слышим о том, как злоумышленники взламывали компьютерные системы и крали всю важную информацию.
В 2019 году в США было зарегистрировано 1473 утечки данных, при этом было обнаружено более 164 миллионов конфиденциальных записей. В первой половине 2020 года количество утечек данных составило 540. - Statista Report
Чтобы обнаружить слабые места и уязвимости системы безопасности, многие крупные компании проводят санкционированную имитацию кибератак на свои собственные системы. Это то, что мы называем тестированием на проникновение (сокращенно Pen Test). По сути, цель состоит в том, чтобы выявить уязвимости и слабые места в системе безопасности до кибер-хакера и исправить их как можно скорее.
В частности, тестирование на проникновение включает моделирование реальных сценариев атак для поиска и использования брешей в системе безопасности (безопасным способом), которые в конечном итоге могут привести к краже информации, скомпрометированным учетным данным или другим вредным результатам для бизнеса.
Это может быть выполнено внутри компании с помощью инструмента для проверки на проникновение или передано на аутсорсинг провайдеру тестирования на проникновение. Процесс обычно начинается с того, что специалист по безопасности перечисляет целевую сеть для обнаружения уязвимых устройств или учетных записей. Это означает сканирование каждого устройства в сети на предмет открытых портов, на которых работают службы.
Уровень вторжения зависит от того, какую операцию тестер безопасности хочет изучить в целевой системе. Следовательно, тестировщик должен хорошо разбираться в наиболее подходящих типах тестов на проникновение.
Тесты на проникновение можно классифицировать в зависимости от того, как они выполняются, а также от целевых ресурсов и компонентов. В этой обзорной статье мы объяснили различные типы тестов на проникновение, которые должны быть интенсивными и инвазивными.
Тестирование на проникновение на основе используемых методов
1. Тестирование черного ящика
- Тестовые наборы можно разработать сразу же.
- Может обнаруживать определенные недостатки.
При тестировании на проникновение методом черного ящика тестировщик не имеет доступа к клиентскому приложению, конфигурации сети или какой-либо внутренней информации. Он / она выполняет всю разведку для получения необходимой информации.
Этот тип тестирования определяет слабые стороны системы, которые можно использовать извне. Поиск этих слабых мест основан на динамической проверке запущенных в настоящее время программ и систем в целевой сети.
Тестировщик должен быть знаком с программным обеспечением для автоматического сканирования и различными методами ручного тестирования на проникновение. Поскольку предварительных знаний о конфигурации системы или исходном коде приложения нет, тестер на проникновение в черный ящик должен быть способен построить свою собственную карту целевой сети на основе личных наблюдений.
Ограниченные знания не позволяют тестировщику найти все уязвимости в системе. Это главный недостаток этого типа тестирования. Если тестировщикам не удастся обойти все периметры, внутренние уязвимости останутся неоткрытыми.
Однако он может выявить определенные виды недостатков, такие как ошибки конфигурации сервера и ошибки проверки ввода / вывода. Чтобы добиться успеха (эффективно обнаруживать и устранять большее количество уязвимостей), методологии тестирования черного ящика следует сочетать с другими инструментами тестирования.
На рынке доступно множество инструментов для проведения тестирования на проникновение методом черного ящика. Wapiti, например, анализирует веб-приложения на предмет потенциальных обязательств, вводя временные данные.
2. Тестирование "белого ящика"
- Более полный
- Позволяет оптимизировать код и обнаруживать скрытые проблемы безопасности.
Как следует из названия, тестирование на проникновение методом «белого ящика» является противоположностью тестирования «черного ящика». У тестировщика есть полный доступ к документации по архитектуре, исходному коду и другой системной информации.
Тестировщики анализируют большой объем имеющихся данных, чтобы выявить потенциальные слабые места. Для этого типа тестирования они могут использовать как статические, так и динамические анализаторы кода и отладчики.
Поскольку тестировщики имеют полное представление о системе, требуется больше времени, чтобы решить, какие модули следует протестировать в первую очередь и какое конкретное программное обеспечение следует использовать для проведения теста.
JUnit, PyUnit, Selenium - одни из самых популярных инструментов тестирования белого ящика с открытым исходным кодом. Например, Selenium используется для проверки веб-приложений в различных браузерах и платформах.
3. Тестирование "серого ящика"
- Выявляет более серьезные уязвимости с меньшими затратами и усилиями.
- Тестирование проводится с точки зрения пользователей, а не дизайнера.
Это комбинация тестирования на проникновение «черного ящика» и «белого ящика». Тестер пера в сером ящике обладает некоторыми знаниями о внутреннем устройстве системы, например о базе данных и проектной документации. Обладая этими ограниченными знаниями, он / она может улучшить тестовые данные и контрольные примеры при составлении плана тестирования.
Этот тип тестирования обеспечивает более эффективную и целенаправленную оценку безопасности системы по сравнению с оценкой методом черного ящика. Он может выявить дефекты из-за неправильного использования приложений или неправильной структуры кода. В частности, он выявляет контекстно-зависимые ошибки, концентрируясь на всех уровнях сложных систем.
Тестирование серого ящика больше подходит для функционального тестирования, веб-приложений, веб-сервисов, оценки безопасности и графического интерфейса пользователя. Burp Suite - один из популярных инструментов тестирования серого ящика, который использует уязвимости приложений, атакуя условно небезопасные места.
Различия между этими тремя методами тестирования
Тестирование на проникновение в черный ящик | Тестирование на проникновение в сером ящике | Тестирование на проникновение методом белого ящика |
Никаких знаний о внутренней работе системы не требуется | Требуются частичные знания внутренней работы системы | Требуются полные знания внутренней работы системы |
Очень сложно обнаружить скрытые ошибки | Сложно обнаружить скрытые ошибки | Простое обнаружение скрытых ошибок |
Также известно как закрытое тестирование или тестирование на основе данных | Также известно как полупрозрачное тестирование | Также известно как тестирование с открытым кодом, структурное тестирование или тестирование на основе кода |
Наименее трудоемким | Отнимает немного времени | Наиболее полный и трудоемкий |
Лучше всего для поиска ошибок проверки ввода / вывода | Лучше всего подходит для тестирования доменов данных и проектирования системы | Лучше всего подходит для тестирования алгоритмов, структуры кода и внутренних границ |
Тесты проводятся конечными пользователями, разработчиками и тестировщиками | Тесты выполняются независимыми тестировщиками и разработчиками | Тесты выполняются тестировщиками и разработчиками |
Тестирование на проникновение на основе целевых компонентов
1. Тестирование сетевых служб
- Предотвращает утечку сети и данных.
- Обеспечивает безопасность сети и системы.
Процесс тестирования на проникновение в сеть включает обнаружение уязвимостей в приложениях и системах с использованием различных злонамеренных методов для проверки безопасности сети.
Обычно тестировщик выявляет уязвимые сети, хосты, системы и устройства (например, коммутаторы и маршрутизаторы), чтобы выявить слабые места. Поскольку в сети есть как внешние, так и внутренние точки доступа, обязательно выполнять тесты удаленно из внешнего мира и локально на клиентском сайте.
Это помогает тестировщикам понять уровень риска, с которым сталкивается организация, а также способы устранения и устранения недостатков безопасности. В зависимости от степени риска они могут нацеливаться на разные области сети в своих тестах. Например, они могут проводить:
- Тестирование с отслеживанием состояния
- Тестирование конфигурации брандмауэра
- Тестирование обхода брандмауэра
- DNS-атаки
Наиболее распространенные протоколы, исследуемые в этих тестах, включают:
- Простой протокол передачи почты (SMTP)
- Протокол передачи файлов (FTP)
- Безопасная оболочка (SSH)
- MySQL и SQL Server
В зависимости от размера и сложности системы на выполнение теста на проникновение в сеть может уйти от одной до четырех недель. Тестировщики могут предложить подробную оценку только после определения объема проекта.
2. Тестирование веб-приложений на проникновение
Пошаговые инструкции по выполнению теста на проникновение в веб-приложение
- Обнаруживает уязвимости как в конструкции, так и в конфигурации.
Обнаруживает злоумышленников и блокирует их.
Поскольку многие веб-приложения содержат конфиденциальную информацию, необходимо постоянно обеспечивать их безопасность. Один из способов сделать это - включить тестирование на проникновение веб-приложений как часть жизненного цикла разработки программного обеспечения (SDLC).
Тесты на проникновение позволяют легко определять уязвимости всего веб-приложения и его компонентов, включая его базу данных, внутреннюю сеть и исходный код. Это помогает разработчикам выявлять слабые места и ошибки и определять их приоритетность, а также находить способы их устранения.
Этот тип тестирования включает в себя сбор данных о целевом веб-приложении, составление схемы хост-сети и изучение всех возможных точек внедрения или взлома атак. Наибольшее количество причин для проведения тестирования на проникновение в веб-приложение:
- Обнаружение неизвестных уязвимостей
- Проверяйте общедоступные компоненты, такие как маршрутизаторы и брандмауэры.
- Найдите наиболее уязвимый путь для возможной атаки
- Ищите лазейки, которые могут привести к краже информации.
- Проверьте эффективность существующих политик безопасности.
На рынке доступно множество инструментов для проведения (как ручного, так и автоматического) тестирования веб-приложений на проникновение. Vega, Veracode и Zap - одни из наиболее распространенных для выполнения быстрых тестов.
3. Тестирование беспроводного пера
- Определяет реалистичное состояние безопасности беспроводных сетей.
- Устраняет уязвимости и политики / процедуры безопасности
Тестирование на проникновение беспроводной сети включает в себя обнаружение и анализ соединений между всеми устройствами, подключенными к корпоративной сети Wi-Fi. Сюда входят ноутбуки, смартфоны, планшеты, принтеры и другие устройства Интернета вещей (IoT).
Тестируются различные беспроводные протоколы и точки беспроводного доступа, чтобы обнаружить лазейки в безопасности. Обычно эти тесты проводятся на объекте клиента, потому что тестер должен находиться в зоне действия беспроводных сигналов, чтобы получить доступ к устройству.
В большинстве случаев в точках доступа Wi-Fi обнаруживаются уязвимости из-за отсутствия фильтрации MAC и недостаточного контроля доступа к сети. Чтобы исправить эти проблемы до того, как они возникнут по-настоящему, крайне важно проверить эффективность мер безопасности и выявить непредвиденные слабые места.
Также важно помнить, что злоумышленники могут воспользоваться не только Wi-Fi. Существует несколько устройств Bluetooth, устройств Bluetooth с низким энергопотреблением и других менее популярных технологий, таких как Z-wave и DECT (беспроводной телефон), которые можно найти в общественных местах.
4. Клиентское тестирование на проникновение
- Обнаруживает неправильные настройки безопасности в клиентском программном обеспечении.
- Обеспечивает надлежащий контроль входящего и исходящего сетевого трафика.
Это внутренний Pen Test, при котором тестировщики используют уязвимости в клиентских приложениях, таких как веб-браузеры, Adobe Acrobat, почтовые клиенты, Macromedia Flash и т. Д.
Хотя не существует правил проведения таких тестов через определенные промежутки времени, предприятиям следует выполнять тесты на проникновение при добавлении новой ИТ-инфраструктуры или клиентских приложений или при изменении существующей инфраструктуры.
Большинство уязвимостей на стороне клиента происходит из-за непропатченного программного обеспечения, установленного на ноутбуках или настольных компьютерах. Некоторые злоумышленники даже перехватывают процесс обновления, отправляя вредоносный код вместе с исходным обновлением.
USB-устройства также заражены вредоносными файлами или исполняемым кодом. Эти файлы автоматически запускаются, как только жертва подключает USB к своей машине. Межсайтовые сценарии, захват форм, кликджекинг, внедрение HTML и открытое перенаправление - одни из наиболее распространенных атак на безопасность на стороне клиента.
Вот почему так важно проверить уязвимость сотрудников и способность сетей распознавать атаки на стороне клиента и реагировать на них.
5. Внешнее тестирование на проникновение
- Оценка безопасности систем периметра компании.
- Включает оценки как на уровне приложений, так и на уровне сети.
Внешнее тестирование на проникновение обычно проводится с точки зрения злоумышленника без предварительного доступа к целевой системе или сети. Это отличается от внутреннего тестирования на проникновение, при котором злоумышленник уже имеет точку опоры на взломанном компьютере.
При внешнем тестировании на проникновение тестер пытается получить доступ к внутренней сети, используя уязвимости, обнаруженные на внешних активах. Он / она проводит разведку объектов, охватываемых обследованием, собирая данные обо всех объектах, охваченных обследованием.
Эти данные могут включать открытые порты, уязвимости или информацию о сотрудниках для парольных атак. Как только периметр нарушен, цель внешнего теста на проникновение достигается, и тестер переходит к внутреннему тесту на проникновение.
Прочтите:30 полезных инструментов отслеживания ошибок для разработчиков
6. Социальная инженерия
- Обмануть ничего не подозревающих сотрудников в угрозу безопасности компании.
- Воспользуйтесь психологией человека, чтобы получить конфиденциальные данные.
Термин «социальная инженерия» используется для обозначения широкого спектра вредоносных действий, совершаемых посредством взаимодействия с людьми. Поскольку он основан на человеческой ошибке (а не на слабых сторонах приложений или сетей), он менее предсказуем и труднее обнаружить, чем вторжения, основанные на вредоносном ПО.
Эти виды тестов включают попытку получить конфиденциальные данные путем обмана сотрудников компании для раскрытия конфиденциальной информации. Этого можно добиться с помощью удаленного или физического тестирования.
Прочтите:15 лучших инструментов для создания тестовых данных
Удаленное тестирование включает отправку фишинговых писем сотрудникам или бомбардировку их устройств ложными сигналами тревоги или вымышленными угрозами. Напротив, физическое тестирование включает в себя обнаружение скрытых данных, выдачу себя за другое лицо, ныряние в мусорную корзину, физические угрозы и т. Д.
Промышленные технологии
- 14 различных типов компьютерных вирусов [по состоянию на 2021 год]
- 5 различных типов центров обработки данных [с примерами]
- 8 различных типов облачных вычислений в 2021 году
- 9 различных типов тестирования на проникновение [используется в 2021 году]
- Что такое сглаживание? 6 различных типов и методов
- 5 различных типов сварных соединений | Сварные швы
- 15 различных типов фрезерных станков
- 10 различных типов узоров в литье
- Различные типы технического обслуживания в производстве
- 5 различных типов тестирования для выполнения на вашем оборудовании