Уязвимости ПО. Часть 1: Найти и обезвредить

Что такое уязвимость?

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

Уязвимость позволяет злоумышленнику «обмануть» программу — то есть выполнить действия, которые не запланированы разработчиком и владельцем. Обычно такие атаки совершаются через внедрение в код дополнительных команд так, чтобы система ошибочно приняла их за “свои” – по такому принципу работают 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 — найдём все бреши в безопасности и поможем защитить данные от злоумышленников. 

Заказать тестирование
Правила обработки персональных данных

1. Персональные данные Посетителя обрабатываются в соответствии с ФЗ «О персональных данных» № 152-ФЗ.

2. При отправке формы обратной связи Посетитель предоставляет следующую информацию: имя, контактный номер телефона, адрес электронной почты.

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

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

5. Владелец сайта вправе использовать технологию «cookies». «Cookies» не содержат конфиденциальную информацию. Посетитель настоящим дает согласие на сбор, анализ и использование cookies, в том числе третьими лицами для целей формирования статистики и оптимизации рекламных сообщений.

6.Владелец сайта получает информацию об ip-адресе Посетителя. Данная информация не используется для установления личности посетителя.

7.Владелец сайта вправе осуществлять записи телефонных разговоров с Покупателем. При этом Владелец сайта обязуется: предотвращать попытки несанкционированного доступа к информации, полученной в ходе телефонных переговоров, и/или передачу ее третьим лицам, не имеющим непосредственного отношения к взаимодействию между Владельцем сайта и Посетителем, в соответствии с п. 4 ст. 16 Федерального закона «Об информации, информационных технологиях и о защите информации».

Письмо отправлено

Наш менеджер свяжется с вами в ближайшее время