Пентест — тестирование на проникновение, комплекс мер, которые имитируют реальную атаку на сеть или приложение. Цель пентеста — понять, может ли гипотетический злоумышленник взломать систему. Для этого тестировщики сами пытаются ее взломать или получить контроль над данными.
Название pentest означает penetration testing, что переводится как «тестирование на проникновение». Проникновение в этом смысле — получение доступа к системе. Написание pen test и перевод как «тест ручки» — ошибочные.
Во время пентеста специалисты ищут и анализируют уязвимости, которые могут нарушить работу системы или дать злоумышленникам доступ к конфиденциальным сведениям. Также они действуют с позиции реального атакующего, то есть разными способами имитируют взлом системы.
Кто занимается пентестом?
Специалисты по пентесту —пентестеры, тестировщики на проникновение, «белые» хакеры. Последних еще называют white hat — «белая шляпа». Чтобы имитировать атаки на информационные системы, нужно уметь их проводить, поэтому пентестеры должны уметь то же, что и хакеры. Эти сферы пересекаются и относятся к отрасли информационной безопасности.
Пентест могут проводить сотрудники службы безопасности компании. Но не во всех случаях это оправданно: иногда нужно, чтобы при тестировании человек ничего не знал об инфраструктуре сети.
Для чего нужен пентест
- Выявление слабых мест, уязвимостей в системах и сетях.
- Понимание, как и откуда может прийти атака, способны ли злоумышленники нарушить работу системы; если да, то как именно.
- Определение, как будет работать защита при разных хакерских атаках.
- Создание рекомендаций, как можно исправить ситуацию.
- Предотвращение реальных хакерских атак на системы.
- Сохранение безопасности и конфиденциальности данных и работоспособности сети.
Что входит в тестирование на проникновение
Пентест проводится на физическом и программном уровнях. Основная задача — проникнуть в систему или сеть, получить контроль над устройством или ПО, собрать информацию. Конкретные действия зависят от того, что именно тестируется.
Сети. Тестировщики ищут слабые узлы, неправильно настроенные протоколы, другие уязвимости при передаче или получении данных. Сюда же может относиться поиск «слабых» паролей и других возможностей несанкционированно проникнуть в сеть.
Приложения, ПО. Это локальные или сетевые приложения, крупные сайты. Пентестеры подделывают запросы, пытаются получить доступ к базе данных, встраивают в код вредоносные скрипты и мешают работе сеансов. Это только часть возможных действий. Мероприятия проводятся для тестирования и не затрагивают реальную работу приложений. Пентест обычно проводят до массового запуска системы.
Устройства. Тестировщики или «белые» хакеры находят программные и аппаратные уязвимости, слабые места сети, к которой подключено устройство, пытаются получить пароли с помощью брутфорса.
Физические системы. Это может быть дата-центр или любое другое охраняемое помещение. Кроме IT-инфраструктуры тестируется возможность взломать замок, обойти или вывести из строя камеры и датчики.
Также важен человеческий фактор. Узнать, могут ли сотрудники случайно или намеренно сломать систему, поддаться на провокации злоумышленников, — тоже задача пентестера.
Методики тестирования
Внешнее тестирование. Проводится от лица атакующего «со стороны» — человека, который не имеет отношения к компании. Определяет, можно ли получить доступ к системе дистанционно, а если можно, то как и насколько глубоко. Такой пентест нужен для серверов и другого оборудования, которое общается с внешним миром.
Внутреннее тестирование. Тестирование от лица пользователя со стандартными правами, например сотрудника компании. Злоумышленником может быть не только человек со стороны, но и кто-то из персонала — внутренний пентест отслеживает его возможности навредить компании.
Белый ящик. Методика предполагает, что у пентестера есть знания о системе. Он может получить их от компании, для которой проводит тестирование. Тестировщик действует с учетом этих знаний. Помогает имитировать атаки от людей, которые смогли получить часть информации о продукте.
Черный ящик. У пентестера нет предварительной информации, он ведет себя как злоумышленник, который впервые столкнулся с системой. Он имеет данные, которые находятся в открытом доступе. Эту методику использует большая часть реальных взломщиков.
Двойное слепое тестирование. Это пентест, о которому почти никому не известно, включая службу безопасности. О нем знают только 1–2 человека в компании. Они не вправе разглашать эту информацию. Тестирование также называют скрытым. Оно помогает выявить уязвимости, которые нельзя обнаружить с помощью предыдущих методов. Например, понять, насколько легко атакующий сможет обойти службу безопасности.
При проведении двойного слепого тестирования пентестер должен иметь при себе документы, подтверждающие, что он делает это легально. Иначе возможны проблемы со службой безопасности и законом.
Примеры ПО для пентеста
Kali Linux. Специальная легкая ОС, дистрибутив семейства Linux для пентестинга и «белого» хакерства. Она основана на Debian Linux. В ней по умолчанию есть более 600 программ и сервисов для атак и поиска уязвимостей. Для безопасности в Kali Linux очень мало репозиториев, которые могут скачивать программные пакеты. При необходимости пользователь может добавить их самостоятельно.
Metasploit. Проект по информационной безопасности и набор ПО, который нужен для пентеста. Например, Metasploit Framework помогает создавать эксплойты — так называются вредоносные программы, которые пользуются уязвимостями системы и проводят атаку.
С помощью Metasploit можно анализировать уязвимости и создавать сигнатуры вирусов — выделенные признаки реального вредоносного ПО. Последнее бывает нужно, например, при создании антивирусных систем.
Nmap. Программа для сканирования сетей с любым количеством пользователей. Она показывает, в каком состоянии находятся объекты сети, дает о них информацию и облегчает дальнейшую атаку. Она нужна для сбора сведений. Например, так можно получить информацию о портах, о службах, об ОС на устройстве.
Можно встретить название zenmap — так называется графический интерфейс для Nmap.
Nessus. Программа, которая автоматически ищет уязвимости в системах и сетях. Нужна для поиска распространенных слабых мест. Имеет базу, которая обновляется каждую неделю, поэтому программа почти всегда актуальна. Nessus помогает автоматизировать поиск уязвимых участков сети и не выполнять ряд действий вручную.
Wireshark. Программа, которая анализирует трафик в сети. Она знает, как устроены пакеты, которые передаются по разным сетевым протоколам, может «разобрать» их на составляющие и прочитать из них информацию. Если поток данных не защищен, с помощью Wireshark можно получить сведения, которые передаются по сети.
Aircrack-ng. Программа нужна для обнаружения и перехвата трафика в беспроводных сетях. Помогает получить доступ к беспроводному адаптеру, проверить стойкость защиты, перехватить информацию из беспроводной сети.
Что должен знать и уметь пентестер
Раньше пентестерами становились программисты, имеющие большой запас знаний в разных отраслях. Сейчас изучить пентест можно с нуля. Частичный перечень того, что должен знать тестировщик на проникновение, выглядит так.
Компьютерные сети. Пентестер должен понимать, как устроена сетевая модель OSI, что это такое, каким образом функционируют компьютерные сети и где в них можно найти уязвимости. Необходимо знать протоколы, особенности их работы и типичные ошибки в настройках.
Операционные системы. При тестировании на проникновение необходимо работать с серверными и пользовательскими ОС. Поэтому тестировщик должен понимать, как они функционируют, причем на глубоком уровне. Потребуется изучить архитектуру и инфраструктуру, особенности процессов.
Криптография. Наука о шифровании информации, которая дает теоретические знания о том, как устроена защита сведений. Она знакомит с тем, как работают современные алгоритмы зашифровки и расшифровки, есть ли у них слабые места, как их можно найти.
Атаки на информационные системы. Это методы, которые применяют реальные злоумышленники. Пентестер должен знать о них теоретически и уметь проводить, обходить системы безопасности и не быть обнаруженным.
Анализ вредоносного ПО. Пентестеры и специалисты по информационной безопасности должны знать о вирусах, троянах, червях, эксплойтах. Специалисту важно уметь написать вредоносное ПО под задачу и применить его.
Программирование. Чтобы писать скрипты и эксплойты, отдавать команды, нужно владеть как минимум одним языком программирования. Часто это системные языки. Ими пользуются, чтобы отдавать команды напрямую операционной системе. Но если пентестер знает несколько языков — это плюс.
Командная строка Linux. В основном пентестеры работают на специальных дистрибутивах Linux, поэтому должны хорошо владеть командной строкой ОС. Это бывает нужно и при имитации взлома.
Сертификация пентестера
Пентест — это деятельность, которая лицензируется по закону. Поэтому компании, которые ей занимаются, должны иметь соответствующую лицензию. Это касается и фрилансеров-пентестеров, действующих самостоятельно.
Тестировщикам, которые работают на организацию, можно не получать лицензию. Но им рекомендуется иметь сертификаты CEH и OSCP, которые подтверждают, что человек может считаться пентестером. Их наличие может быть требованием работодателя.
0 комментариев