Что такое уязвимость?
Уязвимость – один из основных терминов компьютерной безопасности. Это недостатки системы, воспользовавшись которыми можно нарушить работу программы. Уязвимости появляются по разным причинам – это могут быть ошибки программирования, недостатки проектирования системы, последствия ненадежных паролей, вмешательство вирусов и других вредоносных программ.
Уязвимость позволяет злоумышленнику «обмануть» программу — то есть выполнить действия, которые не запланированы разработчиком и владельцем. Обычно такие атаки совершаются через внедрение в код дополнительных команд так, чтобы система ошибочно приняла их за “свои” – по такому принципу работают SQL-инъекции, XSS, SiXSS. Основная причина этой уязвимости – недостаточная проверка данных, вводимых пользователем.
Но уязвимости могут возникать и из-за более сложных проблем. Например, переполнение буфера – самое распространённое нарушение безопасности при работе с памятью.
Как обнаружить уязвимости?
Современное тестирование безопасности ПО состоит из трёх основных подходов. Это классический тест на проникновение, сканирование ПО на наличие уязвимостей и анализ конфигурации. Рассмотрим их подробнее.
Тест на проникновение
В процессе этого теста специалист по компьютерной безопасности перевоплощается в настоящего хакера. Его главная задача: самостоятельно найти те уязвимости, за которые обязательно зацепятся злоумышленники. Тестировщик целенаправленно эксплуатирует эти бреши в защите и получает доступ к непубличной информации. Обычно цель такого взлома – получение администраторских прав или выгрузка конкретных данных: например, базы адресов и телефонов клиентов.
Главная черта этого теста в том, что специалист ищет не все возможные уязвимости, а только те, которые необходимы хакерам для достижения своих целей. Это самая настоящая боевая атака на безопасность программы, поэтому у неё бывают побочные эффекты: например, зависания и перезагрузка серверов.
Сканирование на наличие уязвимостей
Этим способом можно сравнительно быстро проверить всю ИТ-инфраструктуру и найти проблемные места. Этот процесс успешно автоматизировали разработчики средств анализа защищенности: так появились сканеры уязвимостей. В базу этих программ уже внесены особенности самых распространённых нарушений защиты и способов их эксплуатации. Поэтому они могут заменить реального тестировщика на этапе массового поиска брешей в защите.
Но есть и важная особенность: сканер ищет уязвимости линейно по конкретным алгоритмам, поэтому может пропустить необычные комбинации, которые в совокупности формируют критический провал в системе защиты.
Анализ конфигурации
Каждый элемент ИТ-инфраструктуры содержит множество настроек, которые и определяют уровень защиты. Эффективные настройки можно найти в документации вендора или в экспертных статьях. На основе подобных материалов крупнейшие научно-технические организации готовят чек-листы по проведению аудита конфигураций различных систем.
Анализ конфигурации может совершать как вручную, так и автоматически. Но в любом случаем он подразумевает наличие административного доступа к проверяемой системе. Это способ – самый надёжный вариант анализа безопасности, но вместе с тем – самый долгий.
Комплексное тестирование защищенности
Чтобы максимально защитить свою систему, нужно выбирать комплексный подход. В этом случае наиболее верный вариант действий: выявить, какая информация в вашем продукте интересна для злоумышленников. А затем воспроизвести последовательность действий хакеров, используя дополнительные инструменты. Обычные взломщики их избегают из-за риска быть разоблачёнными.
Набор инструментов для тестирования безопасности
Для проверки безопасности и поиска уязвимостей тестировщики используют программы, аналогичные тем, которыми могут воспользоваться злоумышленники. Только попытавшись взломать систему самостоятельно, можно понять, насколько она действительно защищена. Вот список наиболее распространённых и бесплатных программ, которыми пользуются специалисты по безопасности в исключительно профессиональных целях:
- NMAP — свободный сканер портов, который можно использовать как дял поиска уязвимостей и даже как средство подбора паролей в случае работы с NSE;
- OpenVAS — один из лучших бесплатных cканеров уязвимостей;
- Metasploit Framework — фреймворк для создания и тестирования эксплойтов. Широко используется в тестировании на проникновение.
- Burp Suite Free Edition — интегрированная платформа для тестирования безопасности веб-приложений вручную и автоматически;
- THC-Hydra — утилита, подбирающая логины и пароли к сетевым сервисам.
- HashCat — быстрый инструмент для восстановления и подбора паролей по хешам;
- Ettercap — инструмент сетевой безопасности для перехвата и анализа трафика;
- Wireshark — cниффер для перехвата и анализа сетевого трафика;
- Aircrack-ng — набор программ для обнаружения и тестирования беспроводных сетей и аудита WEP и WPA/WPA2-PSK ключей шифрования.
Хотите узнать, насколько ваше оборудование защищено от хакерских атак? Пишите нам на на hello@qualitica.ru — найдём все бреши в безопасности и поможем защитить данные от злоумышленников.