Пентест — тестирование безопасности на проникновение, комплекс мер, которые имитируют реальную атаку на сеть или приложение. Цель пентестера — понять, может ли гипотетический злоумышленник взломать систему. Для этого тестировщики сами пытаются ее взломать или получить контроль над данными.
Название pentest означает penetration testing, что переводится как «тестирование на проникновение». Проникновение в этом смысле — получение доступа к системе. Написание pen test и перевод как «тест ручки» — ошибочные.
Во время тестирования безопасности специалисты ищут и анализируют уязвимости, которые могут нарушить работу системы или дать злоумышленникам доступ к конфиденциальным сведениям. Также они действуют с позиции реального атакующего, то есть разными способами имитируют взлом системы.
Кто занимается пентестом
Специалисты по пентесту — пентестеры, тестировщики на проникновение, «белые» хакеры. Последних еще называют white hat — «белая шляпа». Чтобы имитировать атаки на информационные системы, нужно уметь их проводить, поэтому пентестеры должны уметь то же, что и хакеры. Эти сферы пересекаются и относятся к отрасли информационной безопасности.
Пентест могут проводить сотрудники службы безопасности компании. Но не во всех случаях это оправданно: иногда нужно, чтобы при тестировании человек ничего не знал об инфраструктуре сети.
Для чего нужен пентест
- Выявление слабых мест, уязвимостей в системах и сетях.
- Понимание, как и откуда может прийти атака, способны ли злоумышленники нарушить работу системы; если да, то как именно.
- Определение, как будет работать защита при разных хакерских атаках.
- Создание рекомендаций, как можно исправить ситуацию.
- Предотвращение реальных хакерских атак на системы.
- Сохранение безопасности и конфиденциальности данных и работоспособности сети.
Какие бывают пентестеры
Существуют различные виды пентестеров. Деление на специализации обусловлено характером самого процесса пентестинга. Рассмотрим основные виды классификации.
По ролям
Редтимеры (red teamers) — атакующие. Входят в так называемую «красную команду», которая имитирует реальные атаки на систему. Основная цель — проверить эффективность системы защиты и реакции персонала по обнаружению и предотвращению несанкционированного доступа.
Блютимеры (blue teamers) — защищающие. Играют за «синюю команду». Их задача — обеспечивать защиту, укреплять безопасность, предотвращать атаки и реагировать на возникающие угрозы. В отличие от работы редтимеров, работа таких пентестеров — на постоянной основе, чтобы минимизировать возможные уязвимости системы.
По отношению к инфраструктуре компании
Внутренние пентестеры (internal penetration testers) — специалисты по внутреннему тестированию на проникновение — работают внутри организации и анализируют безопасность внутренних систем. Их задача — найти уязвимости, связанные с доступом сотрудников, сетями и другими аспектами внутренней безопасности. Внутреннее тестирование — тестирование от лица пользователя со стандартными правами, например сотрудника компании. Злоумышленником может быть не только человек со стороны, но и кто-то из персонала — внутренний пентест отслеживает его возможности навредить компании.
Внешние пентестеры (external penetration testers) — экстернальные специалисты по тестированию на проникновение — тестируют систему извне, не имея прямого отношения к компании. Их цель — оценить безопасность системы с позиции человека, не связанного с организацией. Внешнее тестирование проводится от лица атакующего «со стороны» — человека, который не имеет отношения к компании. Определяет, можно ли получить доступ к системе дистанционно, а если можно, то как и насколько глубоко. Такой пентест нужен для серверов и другого оборудования, которое общается с внешним миром.
По технической специализации
Специалисты по безопасности приложений занимаются обнаружением уязвимостей, связанных с мобильными и веб-приложениями.
Физические пентестеры стремятся проникнуть на объект заказчика офлайн, подделывая пропуски, представляясь курьерами или соискателями, договариваясь с охраной и персоналом. Основная цель — проверить внутренние системы безопасности и бдительность сотрудников.
Эксперты по беспроводным сетям проводят исследования и тестирование уязвимостей, связанных с протоколами беспроводной связи, находясь в пределах диапазона сети.
Аудиторы занимаются аудитом систем безопасности, проверяют их соответствие нормативным актам, требованиям законодательства и внутренней политике компании.
Что входит в тестирование на проникновение
Пентестинг проводится на физическом и программном уровнях. Основная задача — проникнуть в систему или сеть, получить контроль над устройством или ПО, собрать информацию. Конкретные действия зависят от того, что именно тестируется.
Сети. Тестировщики ищут слабые узлы, неправильно настроенные протоколы, другие уязвимости при передаче или получении данных. Сюда же может относиться поиск «слабых» паролей и других возможностей несанкционированно проникнуть в сеть.
Приложения, ПО. Это локальные или сетевые приложения, крупные сайты. Пентестеры подделывают запросы, пытаются получить доступ к базе данных, встраивают в код вредоносные скрипты и мешают работе сеансов. Это только часть возможных действий. Мероприятия проводятся для тестирования и не затрагивают реальную работу приложений. Пентест обычно проводят до массового запуска системы.
Устройства. Тестировщики или «белые» хакеры находят программные и аппаратные уязвимости, слабые места сети, к которой подключено устройство, пытаются получить пароли с помощью брутфорса.
Физические системы. Это может быть дата-центр или любое другое охраняемое помещение. Кроме IT-инфраструктуры тестируется возможность взломать замок, обойти или вывести из строя камеры и датчики.
Также важен человеческий фактор. Узнать, могут ли сотрудники случайно или намеренно сломать систему, поддаться на провокации злоумышленников, — тоже задача пентестера.
Виды пентеста
Белый ящик. Методика предполагает, что у пентестера есть знания о системе. Он может получить их от компании, для которой проводит тестирование. Тестировщик действует с учетом этих знаний. Помогает имитировать атаки от людей, которые смогли получить часть информации о продукте.
Преимущества:
- полный доступ к информации о системе;
- тестирование на всех уровнях;
- возможность оптимизации системы безопасности.
Недостатки:
- требуется полное участие заказчика;
- может занимать много времени;
- высокие затраты на подготовку и реализацию.
Черный ящик. У пентестера нет предварительной информации, он ведет себя как злоумышленник, который впервые столкнулся с системой. Он имеет данные, которые находятся в открытом доступе. Эту методику использует большая часть реальных взломщиков.
Преимущества:
- эмулирует реальные условия атаки хакера;
- позволяет оценить внешний уровень защиты системы;
- помогает провести независимое и объективное тестирование.
Недостатки:
- ограничено понимание внутренней структуры системы;
- риски упустить специфические уязвимости, для которых важно знать систему;
- бывают ложные срабатывания без уязвимостей.
Слепое и двойное слепое тестирование. Это пентест, о которому почти никому не известно, включая службу безопасности. О нем знают только 1–2 человека в компании. Они не вправе разглашать эту информацию. Тестирование также называют скрытым. Оно помогает выявить уязвимости, которые нельзя обнаружить с помощью предыдущих методов. Например, понять, насколько легко атакующий сможет обойти службу безопасности.
Преимущества:
- комбинируются преимущества обоих подходов;
- можно проверить систему с разных уровней доступа;
- более реалистичное смоделированы атаки.
Недостатки:
- возможно неполное понимание системы;
- затруднения с определением объема доступной информации;
- требуется дополнительное согласование и сотрудничество с клиентом.
При проведении двойного слепого тестирования пентестер должен иметь при себе документы, подтверждающие, что он делает это легально. Иначе возможны проблемы со службой безопасности и законом.
Примеры инструментов для пентеста
Kali Linux. Специальная легкая ОС, дистрибутив семейства Linux для пентестинга и «белого» хакерства. Она основана на Debian Linux. В ней по умолчанию есть более 600 программ и сервисов для атак и поиска уязвимостей. Для безопасности в Kali Linux очень мало репозиториев, которые могут скачивать программные пакеты. При необходимости пользователь может добавить их самостоятельно.
Metasploit. Проект по информационной безопасности и набор ПО, который нужен для пентеста. Например, Metasploit Framework помогает создавать эксплойты — так называются вредоносные программы, которые пользуются уязвимостями системы и проводят атаку.
С помощью Metasploit можно анализировать уязвимости и создавать сигнатуры вирусов — выделенные признаки реального вредоносного ПО. Последнее бывает нужно, например, при создании антивирусных систем.
Nmap. Программа для сканирования сетей с любым количеством пользователей. Она показывает, в каком состоянии находятся объекты сети, дает о них информацию и облегчает дальнейшую атаку. Она нужна для сбора сведений. Например, так можно получить информацию о портах, о службах, об ОС на устройстве.
Можно встретить название zenmap — так называется графический интерфейс для Nmap.
Nessus. Программа, которая автоматически ищет уязвимости в системах и сетях. Нужна для поиска распространенных слабых мест. Имеет базу, которая обновляется каждую неделю, поэтому программа почти всегда актуальна. Nessus помогает автоматизировать поиск уязвимых участков сети и не выполнять ряд действий вручную.
Wireshark. Программа, которая анализирует трафик в сети. Она знает, как устроены пакеты, которые передаются по разным сетевым протоколам, может «разобрать» их на составляющие и прочитать из них информацию. Если поток данных не защищен, с помощью Wireshark можно получить сведения, которые передаются по сети.
Aircrack-ng. Программа нужна для обнаружения и перехвата трафика в беспроводных сетях. Помогает получить доступ к беспроводному адаптеру, проверить стойкость защиты, перехватить информацию из беспроводной сети.
Roadmap пентестера: что он должен знать и уметь
Раньше пентестерами становились программисты, имеющие большой запас знаний в разных отраслях. Сейчас изучить пентест можно с нуля. Частичный перечень того, что должен знать тестировщик на проникновение, чтобы стать настоящим пентестером, выглядит так:
Компьютерные сети. Пентестер должен понимать, как устроена сетевая модель OSI, что это такое, каким образом функционируют компьютерные сети и где в них можно найти уязвимости. Необходимо знать протоколы, особенности их работы и типичные ошибки в настройках.
Операционные системы. При тестировании на проникновение необходимо работать с серверными и пользовательскими ОС. Поэтому тестировщик должен понимать, как они функционируют, причем на глубоком уровне. Потребуется изучить архитектуру и инфраструктуру, особенности процессов.
Криптография. Наука о шифровании информации, которая дает теоретические знания о том, как устроена защита сведений. Она знакомит с тем, как работают современные алгоритмы зашифровки и расшифровки, есть ли у них слабые места, как их можно найти.
Атаки на информационные системы. Это методы, которые применяют реальные злоумышленники. Пентестер должен знать и уметь их проводить, обходить системы безопасности и не быть обнаруженным.
Анализ вредоносного ПО. Пентестеры и специалисты по информационной безопасности должны знать о вирусах, троянах, червях, эксплойтах. Специалисту важно уметь написать вредоносное ПО под задачу и применить его.
Программирование. Чтобы писать скрипты и эксплойты, отдавать команды, нужно владеть как минимум одним языком программирования. Часто это системные языки. Ими пользуются, чтобы отдавать команды напрямую операционной системе. Но если пентестер знает несколько языков — это плюс. Например, Python для пентестера очень полезен.
Командная строка Linux. В основном пентестеры работают на специальных дистрибутивах Linux, поэтому должны хорошо владеть командной строкой ОС. Это бывает нужно и при имитации взлома.
О том, как стать пентестером, подробно рассказали в статье: Как стать «белым» хакером с нуля.
Книги по пентесту
The Web Application Hacker’s Handbook: Discovering and Exploiting Security Flaws, Дафид Статтард и Маркус Пинто
Книга является исчерпывающим руководством по безопасности веб-приложений и тестированию на проникновение. Авторы представляют методы анализа безопасности веб-приложений, атаки на них и способы защиты. Книга охватывает темы от основных атак до техник обхода защиты и разработки безопасного кода.
METASPLOIT. The penetration testing guide, Дэвид Кеннеди, Джим О’Горман, Девон Кирнс и Мати Ахарони
Книга рассматривает Metasploit Framework, мощный инструмент для тестирования на проникновение и разработки эксплоитов. Она помогает читателям освоить функциональные возможности Metasploit и его модулей, а также эффективно использовать инструментарий для проведения пентеста.
«Хакинг: искусство эксплойта», Джон Эриксон
Книга дает понимание базовых принципов искусства хакерства, включая работу с памятью, буферные переполнения, создание эксплойтов и другие техники. Она ориентирована на тех, кто хочет поглубже понять технические аспекты пентеста.
Penetration Testing: A Hands-On Introduction to Hacking, Джорджия Вейдман
Эта книга является практическим руководством по тестированию на проникновение, охватывает основы пентеста, инструменты, техники и сценарии атак. Она поможет начинающим пентестерам овладеть навыками, необходимыми для успешного проведения тестирования на проникновение.
Black Hat Python: Python Programming for Hackers and Pentesters, Джастин Сайтц
Книга сфокусирована на использовании языка программирования Python для разработки собственных инструментов и скриптов для тестирования на проникновение. Она дает знания и практические навыки, необходимые для эффективного использования Python в пентесте.
«Запутанная сеть: руководство по обеспечению безопасности современных веб-приложений», Михаил Залевский
В книге рассказано о сложностях безопасности современных веб-приложений, подробно описаны уязвимости и атаки, с которыми сталкиваются разработчики и тестировщики. Автор предлагает методы защиты и советы по обеспечению безопасности веб-приложений.
Сертификация пентестера
Пентест — это деятельность, которая лицензируется по закону. Поэтому компании, которые ей занимаются, должны иметь соответствующую лицензию. Это касается и фрилансеров-пентестеров, действующих самостоятельно.
Тестировщикам, которые работают на организацию, можно не получать лицензию. Но им рекомендуется иметь сертификаты CEH и OSCP, которые подтверждают, что человек может считаться пентестером. Их наличие может быть требованием работодателя.
0 комментариев