07 июня 2022

Как выбрать тестирование на проникновение
и почему цены отличаются в 10 раз

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

Понятие Penetration Test (тестирование на проникновение) достаточно широко трактуется техническими специалистами. У такого аудита могут быть разные цели: от простого комплаенса и поиска уязвимостей (vulnerability assessment) до попыток компрометации инфраструктуры с глубокой проработкой большого количества векторов. Цены на услуги тестирования на проникновение могут различаться в 10 и более раз. Это объясняется тем, что тестирование на проникновение может под собой подразумевать очень разные услуги. Данная статья призвана описать различия и помочь с выбором нужной услуги.

Классическое тестирование на проникновение

Классическим вариантом является тестирование инфраструктуры на предмет преодоления внешнего периметра с дальнейшей компрометацией внутренней инфраструктуры. На первой стадии пентестер определяет скоуп внешнего периметра. Это могут быть веб-сервисы, веб-сайты, стандартные службы SMTP, DNS, FTP, RDP и т. д. После определения и уточнения скоупа с заказчиком (во избежание правовых нарушений) можно приступать к поиску «открытых дверей» во внутреннюю инфраструктуру. Для этого происходит поиск уязвимостей как автоматическими средствами с дальнейшей проверкой и проработкой векторов, так и ручными проверками по выработанной методике.

Далее после преодоления внешнего периметра происходит закрепление на хосте и дальнейшее тестирование внутренней сети. Пространство для исследования внутри обычно на порядок шире. Компании часто тратят на безопасность внутренних сервисов меньше ресурсов, чем на внешнюю инфраструктуру, что логично при их ограниченности. Среди большого разнообразия внутренних сервисов (например, рабочие станции и серверы на Windows, включенные в домен Active Directory, без последних обновлений безопасности, неправильно сконфигурированные общие ресурсы, IPMI со стандартными паролями, устаревший софт с известными уязвимостями и многое другое) будут найдены векторы компрометации. При попадании внутрь после разведки на месте пентестер обычно видит несколько потенциальных векторов и успешно их реализовывает, получая контроль над критичными хостами и данными. Найденные векторы глубоко прорабатываются, чтобы найти максимальное количество путей компрометации инфраструктуры для дальнейшего их закрытия командой безопасников. Тестирование проводится как вширь, так и вглубь.

Могут быть различные варианты дальнейшего деления услуги:

  1. По наличию информации о проверяемом объекте (об архитектуре, исходных кодах, наличию прав): white box (полная информация)/grey box/black box (отсутствие информации). Например, можно провести внутренний пентест, изначально обладая информацией о внутренней сети, независимо от внешнего, как будто нарушитель уже попал в сеть и обладает определенными привилегиями. Так можно больше времени уделить исследованию внутренних векторов и получить больше результатов для их закрытия.
  2. По объектам: тестирование инфраструктуры (всей или части), приложений, Wi-Fi, социальная инженерия разных видов (фишинг по электронной почте, в социальных сетях, телефонное мошенничество). Например, исследование приложения сильно отличается от исследования инфраструктуры по проводимым работам.
  3. По глубине проработки. Это деление часто вызывает сложности или не учитывается. Поэтому далее мы опишем методику выбора исполнителя как раз по этому критерию.
  4. Иногда выделяют тестирование Red Team vs Blue Team как отдельную услугу, отличающуюся наиболее полной имитацией реального нарушителя (Red Team) в условиях противодействия команде защиты (Blue Team), которые могут оперативно обнаруживать атаки и противодействовать им.

Важной особенностью является то, что глубокий классический пентест нужен при уже имеющейся выстроенной защите. Если в компании поставлены процессы контроля за безопасностью, организовано автоматическое обновление софта, происходит регулярный аудит инфраструктуры, компания придерживается практики построения защищенной сети — тогда можно нанять высоко квалифицированных пентестеров для проверки, насколько хороша эта защита, и поиска способов ее обхода. Если защита комплексно не выстраивалась, то ее преодоление не представляет проблем для хорошего пентестера. При этом если в цену заложен тщательный поиск вариантов обхода защиты, то она оказывается слишком высока для данного случая. Имеет смысл выбрать глубину пентеста, соответствующую уровню защиты (об этом более подробно ниже), или выбрать более подходящую услугу.

    Аудит подверженности атакам

    Классическое тестирование на проникновение концентрируется на нахождении способов обхода имеющейся комплексной защиты, т. е. когда есть уверенность в определенном уровне безопасности. Но идеальной защиты не бывает, поэтому имеет смысл периодически осуществлять поиск возможностей обхода. Чем больше времени тратится на проверку, тем больше (и более изощренных) способов будет найдено. Поэтому качественно обходить имеющуюся защиту — не самая дешевая услуга.

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

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

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

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

    Комплаенс пентест

    Цель данного варианта — выполнение требований регуляторов (например, Положения ЦБ РФ №683-П, №747-П, №719-П, ГОСТ 57580 или в некоторых случаях приказы ФСТЭК №239 и №21). Компании, которые заказывают данную услугу, как правило хотят минимальными средствами выполнить требования. Такая цель сильно отличается от цели классического тестирования на проникновение, что сказывается на цене и методике. Из всех трех — это самый доступный и быстрый вариант. Аудит происходит максимально стандартизировано с покрытием больше вширь, чем в вглубь, в поисках известных уязвимостей и векторов. Польза, помимо выполнения требований регулятора, зависит от пентестера и методики его работы. В самом простом варианте за скромную плату вас проверят сканером на уязвимости и запустят пару скачанных эксплоитов. При большей стоимости проверка может быть более глубокой и подразумевать продвижение по небольшому числу найденных векторов. Безусловно, в данном случае, несмотря на постановку задачи, специалист может найти реальные пути компрометации, и часто так и случается. Отделить данный вариант от предыдущих можно по методике и цене.

    Методика по выбору тестирования на проникновение

    Для начала нужно выбрать варианты, которые потенциально подходят, и отсечь заведомо неподходящие:
    1. Определиться нужно ли тестирование на проникновение. Для проверки реальной защищенности есть и другие услуги. Тестирование на проникновение — это red team, т. е. подход, основанный на атаках. Но есть и blue team, т. е. подход, основанный на анализе защиты. Red Team более приближен к реальным атакам, Blue Team глубже изучает сами механизмы защиты. Например, наш Аудит практической безопасности.
    2. Определиться с вариантом тестирования на проникновение из описанных выше. Это позволит получить больше за свои деньги.
    3. Определиться с объектами и типами работ (внешний пентест, внутренний пентест, исследование приложений, социальная инженерия разных видов и т. д.). Так мы можем сравнивать предложения в схожих условиях.
    4. Отсеять «случайных посетителей» (качество методик, репутация, сертификаты, опыт и т. д.). Здесь также могут оказаться те, у кого нет проработанной услуги для нужного варианта работы, но которые предлагают другой вариант, потому что хотят поучаствовать.
    Дальнейший алгоритм действий зависит от варианта тестирования на проникновение.

    Если мы говорим про второй и третий варианты пентестов (аудит подверженности атакам и комплаенс пентест), то необходимо сравнить методики, которые может предоставить исполнитель или прописать в ТЗ необходимые пункты. В совокупности с репутацией, опытом, пониманием исполнителем целей заказчика, качеством взаимодействия и подобными параметрами из общей практики выбора исполнителя, это с высокой вероятностью решит задачу. Большой разброс цен в данных вариантах тестирования на проникновение говорит о непонимании потенциальными исполнителями задачи. Поэтому нужно выбрать тех, кто понимает.

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

    Выделим три группы нарушителей (они же уровни атак) по времени, которое они готовы потратить и их квалификации:
    1. Высоко квалифицированный нарушитель, использующий непубличные эксплоиты, свои наработанные методики, имеющий доступ к 1-day уязвимостям (и иногда 0-day) и готовый потратить большое количество времени. Самый серьезный противник, который будет атаковать далеко не каждую компанию.
    2. Средне квалифицированный нарушитель, использующий публичные эксплоиты, стандартный инструментарий, и имеющий ограниченное время для атаки. Такой нарушитель тоже осуществляет таргетированные атаки, но тратит меньше времени и имеет меньше возможностей. Атаки таким нарушителем случаются чаще, но как правило нужно наличие предпосылок (например, принадлежность стране, отрасли, известность компании в своих кругах или наличие уязвимостей на периметре), хотя есть небольшая вероятность появления его и без «красных флажков».
    3. Массовый нарушитель, использующий только публичные эксплоиты, базовый инструментарий и осуществляющий массовые атаки. Такой нарушитель актуален всегда, т.к. сканирования и «прощупывания» происходят постоянно. В случае успеха пробует проработать вектор сам или продает данные для доступа другим.
    Можно выделять больше групп (особенно в первом), но для нашей задачи этого достаточно.

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

    Для наглядности приведем разброс цен на одном примере с торгов (цены немного изменены случайным образом):

      Это был аукцион, и на данном этапе фильтрации участников от «случайных посетителей» еще не было, но даже здесь можно явно выделить три группы: до 2,3 млн, 3,5−4,5 млн и от 7 млн. Первую группу можно охарактеризовать так: своей квалификации нет или она не высока, могут нанять на подряд пентестера. Условно назовем эту группу «цена». Вторая — свои пентестеры, методики и поддержка квалификации. Условно «цена/качество». Третья — очень высокая квалификация для сложных случаев. Например, при отсутствии успеха происходит подключение большого количества своих пентестеров и такая возможность закладывается в цену. Условно — «качество».

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

      Дальнейшие действия по сокращению числа подходящих кандидатов:

      1. Проверить выборку. Убедиться, что в составе потенциальных исполнителей представлены все три описанные выше группы. Этот этап можно пропустить, если уже по прошлому опыту есть представление о ценах в разных группах для нужного нам объема работ.
      2. Определиться с уровнем нарушителя, от которого мы защищаемся. Это может быть как очевидно, так и потребовать консультаций. Но в целом уровень нарушителя, от которого мы защищаемся, проявляется не только в пентестах, но и во всей выстраиваемой защите. Т. е. по наличию мер, процессов и средств можно определить уровень нарушителя. По сути уровень всей защиты определяется уровнем нарушителя и делится также на три группы. Если уровень вашей защиты не соответствует уровню нарушителя в пентесте, то польза от такого пентеста резко снижается или стоимость получается сильно завышенной. Нет смысла глубоко проверять защиту от того, от кого вы целенаправленно не защищались. Для этого лучше подойдет Аудит подверженности атакам.
      3. Выбрать одного или группу потенциальных исполнителей, соответствующих нужной глубине пентеста/уровню нарушителя, от которого мы защищаемся.
      В любом варианте пентеста после всех процедур в шорт-листе может остаться несколько компаний, среди которых нужно выбрать. Здесь уже логично пользоваться общей практикой по выбору исполнителя, принятой у вас: по качеству взаимодействия и понимания целей, репутации, цене и т. д.

      Если этого недостаточно и необходимо глубже погрузиться в оценку, то для этого стоит провести переговоры и оценить, насколько сложные кейсы решались потенциальным исполнителем. Можно связаться с их прошлыми заказчиками и уточнить. Это поможет ответить на вопрос: «есть ли у вас такие по сложности кейсы, за которые стоит платить такие деньги?». Если пентесты проводятся регулярно, то вы можете сравнивать цены и результаты разных прошлых исполнителей для получения ориентира в будущем выборе, что упростит процесс этого выбора.

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

      Что предлагаем мы

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

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

      Надеемся, что данная статья поможет вам с выбором правильного варианта и исполнителя.
      Артем Львов
      Специалист по тестированию на проникновение
      Сергей Иванов
      Генеральный директор

      Оставьте заявку

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