Некоторые специалисты по тестированию на проникновение проводят пентест, используя несколько наборов сканеров. Эти инструменты позволяют хотя бы частично автоматизировать процесс, чтобы квалифицированные специалисты могли сосредоточиться на выявленных проблемах. Более глубокое зондирование требует подключения к любым подозрительным сервисам и, в некоторых случаях, использования уязвимостей.
На практике существует важная проблема с коммерческими инструментами сканирования уязвимостей: многие продукты имеют тенденцию скрывать результаты тестирования, если тесты, которые они выполняют, не дают положительного ответа. Например, один известный сканер имеет такой недостаток: если он не может проникнуть в маршрутизатор Cisco, или не способен получить номер версии его программного обеспечения с помощью SNMP, он не предупредит, что маршрутизатор уязвим для определенных атак типа «отказ в обслуживании» (DoS). Если вы не знаете, что сканер скрывает определенную информацию (например, он не может проверить наличие определенных уязвимостей), вы можете ошибочно полагать, что сеть безопасна, хотя на самом деле это может быть не так.
Помимо поиска подходящих инструментов и квалифицированной организации для проведения тестирования на проникновение, необходимо точно определить объем тестирования. Для получения доступа к информации злоумышленник будет использовать социальную инженерию, кражу, подкуп или взлом и проникновение. Настоящий злоумышленник не удовлетворится только атакой на корпоративную сеть. Часто обычная тактика хакеров — атаковать другие компании через эту сеть. Злоумышленники могут даже получить доступ к интернет-провайдеру компании с помощью этого метода.
Методы пентеста
Чтобы получить максимальную отдачу от тестирования на проникновение, вы должны предоставить тестирующей организации как можно больше подробной информации. Эти организации также подпишут соглашения о конфиденциальности, чтобы вы могли чувствовать себя более комфортно при обмене политиками, процедурами и другой ключевой информацией о сети.
Также важно определить, какие системы необходимо протестировать. Хотя вы не хотите упускать из виду системы, которые могут быть уязвимы, вы все же можете прибегнуть к поэтапному тестированию на проникновение, чтобы каждый этап был направлен на отдельную часть сети.
Вы также должны установить рекомендации по тестированию. Например, чтобы специалисты по тестированию на проникновение могли искать уязвимости и тестировать их, но не должны использовать их, поскольку это может поставить под угрозу системы, которые вы пытаетесь защитить.
Кроме того, необходимо обеспечить подходящий доступ для тестирования. Если вы хотите протестировать системы внутри демилитаризованной зоны (DMZ), лучше всего тестировать их в пределах одного сегмента сети. Может показаться более практичным поручить тестирование тестерам на проникновение за пределами брандмауэра, но внутреннее тестирование может значительно повысить вероятность обнаружения уязвимостей безопасности сервера, которые в противном случае были бы скрыты брандмауэром. Это связано с тем, что в случае изменения настроек существует вероятность того, что эти уязвимости могут быть раскрыты или что кто-то может использовать эти уязвимости для атаки на другие серверы через один DMZ-сервер. Помните вирус Nimda? Это была первая атака, которая увенчалась успехом, а затем использовала веб-сервер для проведения других атак.
В случае внешних веб-серверов или серверов приложений, к которым необходимо получить доступ, вам следует рассмотреть возможность предоставления исходного кода этих приложений специалистам по пентесту, если тесты включают эти сценарии или программы. Сложно тестировать ASP или CGI скрипты без исходного кода, и неразумно заранее предполагать, что злоумышленник вообще не увидит исходный код. Уязвимости в программном обеспечении веб-сервера часто открывают скрипты и приложения для удаленных злоумышленников. Наличие доступа к исходному коду приложения может сделать тестирование этого приложения более эффективным. В конце концов, вы платите тестерам за поиск уязвимостей, а не за то, чтобы они тратили свое время.
Обзор информационной безопасности
Пентест призван доказать, что защитные механизмы сети работают так хорошо, как вы думаете. Часто системные и сетевые администраторы считают аудиторов или пентестеров врагами, но на самом деле — это друзья. Правильно проведенный тест на проникновение может доказать, что ваша защита действительно работает, или выявить проблемы, которые помогут блокировать будущие атаки.
Тестирование на проникновение может использоваться для предоставления конкретных доказательств состояния безопасности вашей сети третьей стороне, например, инвестору или руководству компании. Дело в том, что вы, возможно, уже давно знаете об уязвимости в своей сети, но не смогли убедить руководство выделить необходимые ресурсы для ее устранения. Самостоятельные советы администратора сети или безопасности часто не принимаются советом директоров. Если внешний консультант согласится с вашей оценкой, возможно, произойдет чудо.
Контракт или техническое задание на проведение тестирования на проникновение должны включать все аспекты того, что вы хотите получить от полученного отчета. Если вы наймете кого-то для проведения ограниченного тестирования, все, что вы получите, — это сгенерированный компьютером отчет. Настоящая ценность теста на проникновение заключается в анализе, который делается на основе отчета. Сторона, проводящая тест, представит результаты и объяснит их значение. В некоторых случаях специалисты по тестированию на проникновение также предлагают меры по устранению проблемы, такие как обновление серверов, отключение сетевых служб, изменение правил брандмауэра и т.д.
Развитие пентеста
Сегодня большинство атак — это минимальное сканирование уязвимостей, и если атака удается, то цель оказывается под угрозой. Если злоумышленник попытается проверить уязвимость на вашем сайте, он получит множество сообщений журнала брандмауэра, а любая система обнаружения вторжений, осуществляющая мониторинг сети, начнет посылать предупреждения о текущей атаке.
Пентест, вероятно, является одним из самых важных видов оружия в вашем арсенале средств защиты сети. Его следует рассматривать как часть любой проверки безопасности, но при этом необходимо убедиться, что проверяющий компетентен для выполнения этой работы.
Категории тестирования на проникновение
На практике не существует строгого способа классификации тестирования на проникновение, хотя оно и включено в жизненный цикл разработки программного обеспечения. Но существует несколько общепринятых классификаций, основанных на практическом применении.
Классификация методов
- Тестирование методом «черного ящика»
Тестирование «черного ящика» также известно как «тестирование с нулевым знанием», когда проникший в систему полностью не осведомлен о ней. Обычно при таком типе тестирования исходная информация получается из DNS, Web, Email и различных публичных внешних серверов.
- Тестирование способом «белого ящика» — это противоположность тестированию «черного ящика», когда тестировщик может получить различную информацию от тестируемого подразделения по обычным каналам, включая топологию сети, информацию о сотрудниках и даже фрагменты кода с веб-сайтов или других программ. Также он может общаться лицом к лицу с другими сотрудниками подразделения (продавцами, программистами, менеджерами и т.д.).
- Тестирование «серого ящика» представляет собой комбинацию тестирования «белого ящика» и тестирования «черного ящика». Целью этого тестирования является поиск дефектов, если таковые имеются, из-за неправильной структуры или неправильного использования приложений. Тестировщик в режиме серого ящика частично знает внутреннюю структуру, которая включает в себя доступ к документации внутренних структур данных, а также к используемым алгоритмам.