Статья Всё о Пентесте и Red Team для новичков в новых реалиях

Оглавление
  • Введение
  • Основные понятия
  • Виды тестировщиков безопасности
  • Цели пентестеров
  • Фазы атаки
  • Инфраструктура хакера
  • Cloud Security: Пентест облачных сред
  • ИИ в кибератаках
  • Заключение
Введение
Чтобы начать нужно дать определения некоторым терминам, чтобы они последовательно использовались на протяжении всей статьи. Что такое Этичный хакинг (Ethical Hacking)? Как это связано с пентестом (Pentest)? Чем отличается сканирование уязвимостей от пентеста? Важно отметить, что разные люди используют различные термины, которые мы определяем, по-разному. В статье представляем набор определений, которые являются общими, но не универсальными.

Наша цель в роли пентестеров - использовать уязвимости в системе безопасности. Что такое уязвимость? RFC 4949 определяет уязвимость как:
  • A flaw or weakness in a system's design, implementation, or operation and management that could be exploited to violate the system's security policy.
    Недостаток или слабая сторона в проектировании, внедрении или эксплуатации системы и управлении ею, которые могут быть использованы для нарушение политики безопасности
Проще говоря, мы можем определить это как уязвимость, которая может быть использована злоумышленником. Большинство людей связывают уязвимости с повреждением памяти (например, переполнением буфера), но это лишь часть всех уязвимостей в системе безопасности.
К уязвимостям относятся:
  • Неправильная настройка S3-бакета (публичный доступ к файлам) нарушает политику контроля доступа, приводя к утечке данных.
  • Недостатки дизайна и архитектуры
  • Отсутствующие функции аудита
  • Учетные данные по умолчанию (логин admin:admin) позволяют злоумышленнику получить несанкционированный доступ, что нарушает политики конфиденциальности и целостности данных.
  • Слабые пароли, которые можно угадать
  • Учетные данные по умолчанию
Приведенный выше список ни в коем случае не является исчерпывающим. Существует множество других категорий уязвимостей, которые не перечислены выше.
Этичный хакинг — это легальное тестирование систем на наличие уязвимостей с целью улучшения их безопасности.
Этичный хакинг включает в себя пентест (Penetration Testing) - моделирование атак для выявления слабых мест. Пентестеры действуют как злоумышленники, но с разрешения и в рамках заданных условий

Основные понятия

Что такое угроза?

Угроза - это агент или действующее лицо, которое может причинить вред. В более широком смысле, это все, что может причинить вред. Угрозой может быть злоумышленник пытающийся присвоить номера кредитных карт, но также может быть и пользователь, который случайно нажимает не на ту кнопку. Угроза даже не обязательно должна исходить от человека. Червь - это угроза, поскольку именно его код распространяется и наносит ущерб.
Аналогичным образом, наши собственные средства безопасности могут рассматриваться как угроза в определенных контекстах. Сканер уязвимостей веб-приложений просканирует веб-сайт и отправляет данные. Если сканер направлен на рабочий сайт с рабочими данными, что произойдет, если сканер "нажмёт" на кнопку удаления? Сканеры будут стараться избегать чувствительных действий, но такие вещи всё же случаются. Это одна из причин, по которой важно иметь резервные копии и тестировать системы.

Что такое эксплойт?
Эксплойт - это код или техника, использующая уязвимость. Вот несколько примеров:
  • Эксплойт может использовать уязвимость в управлении памятью и позволить злоумышленнику получить удаленный доступ к системе (эксплойт для переполнения буфера)
  • Злоумышленник может воспользоваться эксплойтом и использовать существующую функциональность для загрузки кода и его выполнения, например, загрузить веб-оболочку на веб-сервер с помощью функции, позволяющей пользователям загружать резюме или аватар. (Загрузка веб шелла на веб-сайт)
  • Злоумышленник меняет свое имя на JavaScript код, используя слабую фильтрацию ввода на веб-сайте.
  • Удаленное выполнение кода (RCE): CVE-2021-34527 (PrintNightmare) - уязвимость удалённого выполнения кода в диспетчере очереди печати Windows Print Spooler
  • Злоумышленник может запустить исполняемый файл, который выполняет привилегированные операции в системе, тем самым расширяя доступ.
Существует множество различных способов использования уязвимостей. Фактически, одна и та же уязвимость может может быть использована разными угрозами по-разному в зависимости от их конечной цели.

Понятие риска
Риск определяется как возможность потерь или ущерба. Риск часто рассчитывается как (Вероятность возникновения) * (Потенциальное воздействие).
Потенциальное воздействие - это число, которое мы можем рассчитать с достаточной степенью уверенности; однако вероятность - это гораздо более спорное число. Часто вероятность (и, в конечном счете, сама величина риска) сводится к экспертному мнению команды безопасности. Команда использует свои коллективные знания и опыт, чтобы определить риск и в конечном итоге дать рекомендации предприятию. Баланс между риском и потребностями организации - одна из основных целей команды безопасности. К сожалению, многие команды безопасности рассматриваются как препятсвия, мешающие организации, а не позволяющие ей безопасно развиваться и прогрессировать.
Как тестировщик на проникновение, часть вашей роли заключается в оценке риска, связанного с обнаруженными вами уязвимостями. Это мощная и важная роль. Начинающие тестировщики часто переоценивают риск, связанный с уязвимостями. Их отчеты часто оказываются перегруженными, где большинство рисков классифицируются как высокие или критические. По мере того как тестировщики проникновения становятся зрелыми, они учатся понимать риски и то, как они влияют на организационные процессы. Понимание рисков и их идентификация, соответственно, помогает организации определить приоритетность усилий по их устранению.

Мы можем упростить понятие риска, рассматривая его как пересечение угрозы, уязвимости и риска. Если мы можем уменьшить или устранить одну из этих составляющих, то риск уменьшается или устраняется соответственно. Мы можем ограничить доступ к системе, предотвращая доступ угрозы к сервису. Аналогично, если в системе больше нет конфиденциальных данных (PII (Personally Identifiable Information), паролей и т. д.), то риска нет, поскольку она не представляет ценности для злоумышленника, а данные не могут быть потеряны, украдены или уничтожены.

Мы можем применить инструменты фильтрации, чтобы предотвратить использование эксплойта. Например, мы можем использовать WAF (Web Application Firewall) для фильтрации символов, которые могут вызвать уязвимость. Аналогично, IPS (Intrusion Prevention System) может предотвратить определенные действия против целевой системы, которые могут привести к срабатыванию эксплойта. В обоих случаях уязвимость все еще существует, но ее нельзя использовать.
Примечание: будьте осторожны с этим подходом, поскольку злоумышленники часто меняют сигнатуры или кодировку, чтобы обойти эти инструменты.
1745245888549.webp



Виды тестировщиков безопасности
Существует еще один набор терминов, которые многие специалисты по информационной безопасности используют как взаимозаменяемые, что приводит к большой путанице. Следующие термины связаны с тем, чем на самом деле занимается этичный хакер или пентестер на ежедневной основе:
  • Тестировщик на проникновение, он же Penetration Tester, но я буду писать пентестер т.к это короче
  • Red Team
  • Оценка уязвимостей (Vulnerability assessment)
  • Аудит безопасности (Security audit)
Хотя эти термины часто используются как взаимозаменяемые, у них есть тонкие различия, которые следует учитывать.

Пентестер (Penetration Tester)
Тестирование на проникновение направлено на выявление уязвимостей объекта, которые могут позволить злоумышленнику проникнуть в компьютер или сеть и украсть, повредить или испортить данные. Специалисты по тестированию на проникновение (пентестеры) используют инструменты, схожие с инструментами злоумышленников. Иногда злоумышленники даже перенимают инструменты и методы у пентестеров. Как следует из названия, тестирование на проникновение требует проникновения (если это возможно). Тест, запрещающий проникновение, не является тестом на проникновение.
Иногда компании просят провести пентест , но затем запрещают эксплуатацию, подбор паролей и другие действия, которые позволили бы пентестерам проверить недостатки и найти уязвимости, и такие тесты больше похожи на оценку уязвимостей (Vulnerability assessment).

Red Team
Red Team нацелены на проверку эффективности всей безопасности. Они имитируют тактику, технику и процедуры (TTP) реальных противников с целью выявления слабых мест в защите, обнаружении и реагировании. Красные команды используют многие из тех же инструментов, что и тестеры проникновения, однако у них другая направленность.
Красная команда нацелена на выявление недостатков в способности синей команды (защитников) обнаружить, отреагировать и уничтожить угрозу. Красная команда использует только те уязвимости, которые помогают ей достичь своей цели, в то время как перед специалистами по тестированию на проникновение чаще всего стоит задача найти множество уязвимостей.
Тестирование на проникновение нацелено на поиск недостатков, понимание их бизнес-рисков и помощь организации в повышении уровня безопасности. Основная задача Red Team - помочь Blue Team лучше подготовиться к обнаружению атак и реагированию на них. Проще говоря, тестирование на проникновение фокусируется на защите (технологии), а Red Team - на защитниках (людях).

Purple Team (Blue Team + Red Team)
Purple Team - это кросс-функциональные команды, в которых совместно работают красные и синие команды.
Чем ближе взаимодействие, тем лучше. Этот тип оценки включает показатели способности синих идентифицировать, обнаруживать и реагировать на атаку.
Основные компоненты можно обобщить словом "ACE":
  • Автоматизация (Automation): Насколько автоматизирован и своевременен рабочий процесс обнаружения и оповещения?
  • Охват (Coverage): На какой части среды будет работать обнаружение? Ограничено ли оно определенными системами или подсетями?
  • Эффективность (Effectiveness): Насколько эффективно обнаружение? Высокая частота ложных срабатываний? Работает ли обнаружение только в определенных обстоятельствах?
Тестирование должно быть задокументировано, чтобы показать прогресс в возможностях обнаружения и реагирования. Эти показатели могут быть использоваться для обоснования инвестиций в инструменты и обучение.
Дополнительная информация о Purple Team:

Аудит безопасности (Security Audit)
И наконец, мы имеем дело с фразой "аудит безопасности". Аудит подразумевает, тестирование в соответствии строгому набору стандартов. Такие аудиты почти всегда проводятся с помощью подробных контрольных списков.
Некоторые организации, занимающиеся тестированием на проникновение и этичным взломом, создали свои собственные внутренние списки пунктов, которые должны быть охвачены в ходе тестирования, но эти списки не столь подробны, как списки для комплексных аудитов.

Вкратце подведём итог, чтобы лучше запомнить.
1745250503814.webp

Пример:
  • Оценка уязвимостей:
    На сервере Jenkins открыт анонимный доступ к /script → теоретически можно что-то запустить, если админ ошибся.
  • Пентест:
    Зашли на Jenkins → выполнили groovy-скрипт → получили shell → глянули, что можно сделать → нашли AWS ключи → слили S3-бакет с резервными копиями БД.
  • Red Team:
    Под видом разработчика запушили pull request в репу с уязвимым Jenkins pipeline → внедрили payload в stage сборки → Jenkins сам запустил его в проде → поставили Cobalt Strike beacon → тихо закрепились в DevOps-инфре → перешли на CI/CD runner с внутренней сеткой → провели разведку через ADCS → эскалировали до Domain Admin → вытянули секретные ключи, исходники, финплан, и ушли, не оставив следов.
Цели пентестеров
Формальное определение тестирования на проникновение (penetration testing):
Тестирование на проникновение представляет собой моделирование методов, применяемых реальными злоумышленниками, с целью выявления уязвимостей и, при строго контролируемых условиях, эксплуатации этих уязвимостей безопасным и профессиональным способом в рамках заранее определённой области и Правил взаимодействия (Rules of Engagement).
Цель - определить бизнес-риски и потенциальные последствия, чтобы помочь организации улучшить свою систему безопасности.
Ключевой момент заключается в том, что выявление и эксплуатация уязвимостей всегда должны быть ориентированы на бизнес-риски, а не только на технические.
Результаты тестирования на проникновение должны в первую очередь демонстрировать организационные риски.

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

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

Существует множество видов пентестов:
  • Анализ сетевых сервисов - один из самых распространённых типов тестирования. Заключается в поиске целевых систем в сети, выявлении уязвимостей в их операционных системах и сетевых сервисах, а затем - в удалённой эксплуатации этих уязвимостей. Такие тесты могут проводиться извне (через интернет) для проверки периметра организации или изнутри, с локальной сети или DMZ, чтобы понять, что сможет сделать злоумышленник, если окажется внутри.
  • Assumed breach (модель "если злоумышленник уже внутри") - фокус на уязвимости внутри сети после того, как атакующий получил доступ хотя бы к одной машине. Позволяет выявить проблемы в правах доступа в Active Directory, избыточные разрешения на файлах и папках, а также уязвимости клиентского ПО.
  • Тестирование веб-приложений - поиск уязвимостей в веб-приложениях, развёрнутых в инфраструктуре цели. Особенно актуально для компаний, у которых есть клиентский фронт или админ-панели.
  • Социальная инженерия - попытки обманом заставить пользователя выдать чувствительную информацию (например, пароль) или перейти по вредоносной ссылке. Часто проводится по почте или телефону, может быть нацелена на helpdesk или конкретных сотрудников. Позволяет оценить устойчивость процессов, политики и осведомлённость персонала.
  • Тестирование беспроводной безопасности (wardriving) - анализ физического пространства организации в поисках несанкционированных Wi-Fi точек доступа или ошибок в настройке легальных точек (например, слабое шифрование).
  • Физический пентест- проверка слабых мест в физической охране компании. Тестеры могут попробовать проникнуть в здание, вынести устройства или документы, найти уязвимости в системах доступа. Частный случай - «мусорный пентест» (dumpster diving), когда проверяется, что можно достать из мусорных контейнеров. Такой пентест требует особой осторожности, чтобы не нарваться на травму или охрану.
  • Тест на безопасность продукта: Этот тест направлен на один конкретный продукт. Это может быть аппаратное или программное обеспечение. При таком тестировании вы ищете недостатки безопасности в продуктах, которые могут быть использованы в лабораторных системах испытателя.
    Такие тесты ищут недостатки в программном обеспечении, такие как возможность переполнения буфера, повышение привилегий и раскрытие незашифрованных конфиденциальных данных. Эти тесты могут быть направлены на обход или взлом шифрования данных, хранящихся в локальной системе или в сети. Некоторые из этих тестов также оценивают надежность решений по управлению цифровыми правами (DRM). Из-за юридических ограничений, касающихся
    обратного проектирования защиты авторских прав (например, наложенных Законом об авторском праве в цифровую эпоху в США), любой контракт, касающийся анализа программного обеспечения DRM, должен быть проверен юристом, чтобы убедиться, что было получено соответствующее разрешение от владельцев данного решения DRM.
Фазы атак
Как злоумышленники, так и профессиональные пентестеры / этичные хакеры используют различные фазы атак.
Атаки обычно делят на следующие этапы:
  • Разведка (Reconnaissance) - это процесс исследования целевой организации с целью сбора информации из открытых источников, таких как сервисы регистрации доменов, веб-сайты и т.д. Некоторые специалисты также включают в этот этап техники социальной инженерии и "мусорного дайвинга" (поиск информации в выброшенных материалах).
  • Сканирование (Scanning) - это процесс выявления уязвимостей в инфраструктуре цели: доступные системы, открытые порты и список известных уязвимостей.
  • Эксплуатация (Exploitation) - на этом этапе атакующие используют обнаруженные уязвимости для компрометации целевых систем, чтобы получить над ними контроль или вызвать отказ в обслуживании.
  • Постэксплуатация (Post-exploitation) - всё, что происходит после первичного взлома. И пентестеры, и злоумышленники используют полученный доступ для перемещения (pivoting) по сети и расширения влияния внутри инфраструктуры.
Хотя легитимное тестирование обычно ограничивается вышеперечисленными фазами, злоумышленники часто выходят за рамки, допустимые в рамках правил взаимодействия (Rules of Engagement) для профессионального пентеста.
Следующая фаза, которую часто используют злоумышленники - это удержание доступа. Она включает настройку взломанной машины таким образом, чтобы злоумышленник мог сохранять контроль над ней, например, устанавливая бэкдоры и руткиты.
Кроме того, злоумышленники часто переходят к финальной фазе - сокрытию следов (Covering the Tracks). В неё входит редактирование логов, скрытие файлов и использование скрытых каналов связи (covert channels) для маскировки своей деятельности в системе.

Обрати внимание: лучшие атакующие - будь то "хорошие" или "плохие" - прагматики. Они не всегда двигаются строго от разведки к сканированию, затем к получению доступа и т.д. Да, они используют все эти этапы, но зачастую переходят между ними в произвольном порядке в зависимости от ситуации и новых находок.
Например, во время разведки атакующий может сразу найти эксплуатируемую уязвимость и использовать её для немедленного доступа, временно пропуская сканирование. А после получения доступа к одной машине - вернуться и начать сканирование с новой позиции.
Однако с точки зрения профессионального тестирования будьте осторожны, переходя от одного этапа к другому, и обязательно возвращайтесь к предыдущим этапам, чтобы провести комплексное тестирование.

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

Компоненты инфраструктуры хакера

1. Командно-контрольные серверы (C2)

C2-серверы служат для управления вредоносными программами и получения данных от заражённых устройств. Они могут быть размещены на арендованных серверах, в облачных сервисах или на скомпрометированных машинах. Для маскировки часто используются прокси-серверы и сети Tor.

2. Устойчивый хостинг (Bulletproof Hosting)

Ещё их называют абузоустойчивый хостинг. Такие хостинг-провайдеры игнорируют жалобы на злоупотребления и предоставляют услуги, способствующие анонимности и устойчивости вредоносной инфраструктуры. Могут конечно, прислать уведомление, что был запрос от интерпола например и у вас есть 30 дней чтобы удалить всё с вашего сервера, дальше мы всё им передадим. Часто такие провайдеры располагаются в юрисдикциях со слабыми законами о кибербезопасности.

3. Анонимизирующие сервисы

Использование VPN, прокси-серверов и сетей Tor позволяет хакерам скрывать своё местоположение и затрудняет отслеживание их деятельности.

4. Инструменты для распространения вредоносного ПО

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

Значение для цифровой криминалистики

Понимание структуры и компонентов хакерской инфраструктуры позволяет специалистам по цифровой криминалистике:
  • Идентифицировать источники атак: Анализ сетевого трафика и логов помогает определить C2-серверы и другие элементы инфраструктуры.
  • Отслеживать пути распространения вредоносного ПО: Выявление методов доставки вредоносных программ позволяет предотвратить дальнейшее заражение.
  • Собирать доказательства: Информация о хостинге, доменных именах и используемых сервисах может служить доказательством в судебных разбирательствах.
  • Разрабатывать меры противодействия: Знание используемых хакерами инструментов и методов позволяет создавать эффективные стратегии защиты.
Cloud Security: Пентест облачных сред
  • Утечки S3-бакетов:

  • Ошибочные IAM-роли:
    Роль с разрешением *:* (полный доступ) позволяет атакующему удалить все ресурсы в аккаунте AWS.
Если интересен облачный пентест посмотрите мою статью, оттуда можно начать путь в Cloud Security: Жёстко сканируем и хакаем облачные сервисы Amazon, Создание AWScanner: Пошаговое руководство по сканированию IP AWS для безопасности

ИИ в кибератаках
  • Генерация фишинга:
    Инструменты вроде WormGPT создают убедительные письма на языке жертвы, обходя фильтры.
  • Автоматизация атак:
    Red Team используют ИИ для подбора payloads, обходящих сигнатурные анализаторы (например, генерация полиморфного шелл-кода).
  • Ну и конечно решение CTF, хоть это и не кибератака :) ChatGPT tries a BASIC Capture The Flag (CTF) Challenge
    1745254991884.webp
Заключение
В ходе пентестов, специалисты моделируют атаки, чтобы помочь организациям выявить слабые места в своей защите и определить возможные бизнес-риски.
Важно помнить, что процесс тестирования всегда должен быть ориентирован не только на технические уязвимости, но и на потенциальные последствия для бизнеса.
Хотя термины, такие как "пентест", "Red Team" и "оценка уязвимостей", часто используются как взаимозаменяемые, каждый из них имеет свою специфическую направленность и цель.
Пентест фокусируется на нахождении уязвимостей и их безопасной эксплуатации, Red Team проверяет защиту с точки зрения атакующего, а Purple Team обеспечивает сотрудничество между атакующими и защитниками для улучшения общей безопасности. Аудит безопасности, в свою очередь, представляет собой более формализованный процесс тестирования, направленный на соответствие строгим стандартам.

Основная цель этичного хакинга — это не только обнаружение уязвимостей, но и демонстрация того, как их эксплуатация может повлиять на организацию.
Этот подход помогает организациям более эффективно защищаться, улучшая безопасность на всех уровнях - от технологий до людей. Комплексные тестирования на проникновение дают ценные данные, которые могут быть использованы для укрепления безопасности и подготовки к реальным угрозам.
 
В целом то написано очень не плохо, но чуть чуть критики:
1) У вас в фазах куда то потерялась Оценка и Анализ - очень важная фаза классического пентеста да и редтиминга в целом! Фазы к примеру описаны в целом верно и мне даже очень понравились комменты в стиле "лучшие атакующие - будь то "хорошие" или "плохие" - прагматики. Они не всегда двигаются строго от разведки к сканированию, затем к получению доступа и т.д. " - это очень верно подмечено, но вот обобщение дальше выглядит больше как совет для CTF и HacktheBox чем к реальному пентесту или редтимингу
2) Текст ниже я бы убрал совсем - ибо и написано оно не корректно и вводит людей в заблуждение. Если конкретно интересует в чем вводит то вот пара реальных примеров о которых советую почитать - 1201(F)DMCA - и другие исключения от 2016 года .
"Некоторые из этих тестов также оценивают надежность решений по управлению цифровыми правами (DRM). Из-за юридических ограничений, касающихся
обратного проектирования защиты авторских прав (например, наложенных Законом об авторском праве в цифровую эпоху в США), любой контракт, касающийся анализа программного обеспечения DRM, должен быть проверен юристом, чтобы убедиться, что было получено соответствующее разрешение от владельцев данного решения DRM. "

3) Раз уж касаетесь всех основных тем то стоит добавить и про Adversary Emulation - между прочим как раз чаще всего сейчас пользуется спросом.
4) Текст ниже написан не корректно и имеет в себе ошибки, а именно :
a) "пересечение угрозы, уязвимости и риска." - это не верно ибо Risk=TxVxI (TVI = Threat * Vulnerability * Impact)
b) "если в системе больше нет конфиденциальных данных (PII (Personally Identifiable Information), паролей и т. д.), то риска нет" - узкая логика, как действующий Ред Тимер скажу что я такую систему буду как pivot-hop юзать и взвинчу Impact до небес. Лучше не вводить людей в заблуждение такими формулировками
"Мы можем упростить понятие риска, рассматривая его как пересечение угрозы, уязвимости и риска. Если мы можем уменьшить или устранить одну из этих составляющих, то риск уменьшается или устраняется соответственно. Мы можем ограничить доступ к системе, предотвращая доступ угрозы к сервису. Аналогично, если в системе больше нет конфиденциальных данных (PII (Personally Identifiable Information), паролей и т. д.), то риска нет, поскольку она не представляет ценности для злоумышленника, а данные не могут быть потеряны, украдены или уничтожены."

P.S. Ну критика критикой , но и хороших слов могу накидать. В целом написано очень годно - автор пиши еще ! Как обзор для новичков - оно очень даже годно! Однозначно Лайк!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!