Истинная природа безопасности веб-приложений: роль и функции сканеров черного ящика

Опубликовано: 11 Апреля, 2023

Большинство считает, что сканеры черного ящика веб-приложений избыточны по сравнению с сетевыми сканерами. Другие по-прежнему считают сопоставление подписей конечным пунктом и единственным средством обеспечения присутствия в Интернете. В этой статье представлен целостный взгляд на инфраструктуру безопасности любой организации и демистифицирована безопасность веб-приложений.


Почему безопасность веб-приложений


В настоящее время безопасность веб-приложений компании является наиболее недооцененным аспектом обеспечения безопасности предприятия. Хакерство растет: до 75% кибератак совершаются через Интернет и веб-приложения.


Большинство корпораций защитили свои данные на сетевом уровне, но упустили важный шаг проверки того, уязвимы ли их веб-приложения для атак.


Веб-приложения вызывают определенные проблемы с безопасностью.




  1. Чтобы предоставить услугу (предназначенную дизайном) клиентам, веб-приложения должны быть онлайн и доступны 24x7x365.


  2. Это означает, что они всегда общедоступны и не могут отличить законных пользователей от хакеров.


  3. Для правильной работы веб-приложения должны иметь прямой доступ к серверным базам данных, содержащим конфиденциальную информацию.


  4. Большинство веб-приложений изготавливаются на заказ и редко проходят строгие проверки качества готовых приложений.


  5. Из-за отсутствия понимания природы хакерских атак организации рассматривают уровень веб-приложений как часть сетевого уровня, когда речь идет о проблемах безопасности.

История Джеффри Рубина


В обзоре 2005 года, опубликованном Information Week, известный эксперт по безопасности по имени Джеффри Рубин рассказывает о своем опыте успешной хакерской атаки. Ниже приводится цитата из его статьи (полная ссылка дается в конце этой статьи):


«Мы похожи на большинство веб-разработчиков, использующих платформу Microsoft… Хотя мы стараемся быть в курсе последних обновлений и пакетов обновлений, мы понимаем, что злоумышленники часто используют уязвимости приложений, а не сети. Коллега предложил установить аппаратный брандмауэр для предотвращения атак в будущем. Неплохое предложение, но едва ли панацея, учитывая, что у нас есть порты 21, 80 и 443, а наш SQL-сервер (на нестандартном порту) широко открыт для целей разработки. В конце концов, мы занимаемся разработкой динамических веб-страниц, а наши клиенты находятся по всей стране».


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


Поскольку многие организации не отслеживают онлайн-активность на уровне веб-приложений, хакеры имеют полную свободу действий, и даже при наличии мельчайших лазеек в коде веб-приложений любой опытный хакер может взломать систему, используя только веб-браузер и некоторую дозу творчества и решимость. Слабая безопасность также означает, что попытки атак останутся незамеченными, поскольку компании реагируют только на успешные взломы. Это означает, что компании исправят ситуацию ПОСЛЕ того, как будет нанесен ущерб. Наконец, большинство хакерских атак обнаруживаются спустя месяцы после первоначального взлома просто потому, что злоумышленники не хотят и не будут покидать аудиторскую проверку.


Системные администраторы, технические директора и бизнесмены воспринимают кибервторжение как стандартное физическое вторжение: вор оставляет в вашем доме следы, например, разбитое окно или взломанный замок. В атаках на веб-приложения эти физические доказательства отсутствуют.


Инфраструктура безопасности организации


Инфраструктуру организации удобно рассматривать как структуру с различными уровнями. Точно так же, как вы защищаете от ржавчины, нанося различные краски, химикаты и антиоксиданты слоями, системный администратор устанавливает несколько специализированных решений безопасности, каждое из которых предназначено для решения конкретных проблемных областей.


На следующей диаграмме эти уровни безопасности представлены в виде целостного представления, в котором безопасность рассматривается как усиленные меры, принимаемые для минимизации рисков вторжений и максимальной защиты ключевого актива любой организации — ее данных.



Веб-сканеры уязвимостей не являются сетевыми сканерами


Сканеры веб-уязвимостей (например, Acunetix WVS, Spi Dynamics WebInspect) не являются сетевыми сканерами (например, Qualys, Nessus).
В то время как сканеры сетевой безопасности анализируют безопасность активов в сети на наличие возможных уязвимостей, сканеры веб-уязвимостей (WVS) сканируют и анализируют веб-приложения (например, корзины покупок, формы, страницы входа, динамическое содержимое) на наличие пробелов, возникающих в результате неправильного кодирования, которые могут манипулировать хакерами.


Например, можно обмануть форму входа, чтобы она поверила, что у вас есть права администратора, введя специально созданные команды SQL (язык, понятный базам данных). Это возможно только в том случае, если входные данные (т. е. поля имени пользователя и/или пароля) не очищены должным образом (т. е. не сделаны неуязвимыми) и отправлены непосредственно с SQL-запросом в базу данных. Это SQL-инъекция!


Защита сетевой безопасности не обеспечивает защиты от таких атак на веб-приложения, поскольку эти атаки запускаются на порт 80 (по умолчанию для веб-сайтов), который должен оставаться открытым для обеспечения нормальной работы бизнеса.


Что необходимо, так это сканер веб-приложений / сканер веб-уязвимостей или инструмент тестирования черного ящика.


Тестирование черного ящика


Тестирование методом «черного ящика» — это просто методология разработки тестов. При тестировании черного ящика веб-приложения само веб-приложение рассматривается как единое целое без анализа внутренней логики и структуры. Как правило, сканеры веб-приложений видят, можно ли манипулировать веб-приложением в целом для получения доступа к базе данных. Современные технологии позволяют добиться высокой степени автоматизации, фактически сокращая объем ручного ввода, необходимого при тестировании веб-приложений.


Важно сказать сокращение, а не сведение к минимуму или устранение. Как скажет вам любой консультант по безопасности, автоматизация никогда не заменит интеллектуальное и творческое вмешательство человека.


Как правило, автоматические сканеры сначала сканируют весь веб-сайт, тщательно анализируя каждый найденный файл и отображая всю структуру веб-сайта. После этого этапа обнаружения сканер выполняет автоматический аудит на наличие уязвимостей, запуская серию хакерских атак, фактически имитируя действия хакера. Сканеры будут анализировать каждую страницу на предмет мест, где можно ввести данные, и впоследствии попытаются ввести все различные комбинации ввода. Сканеры проверяли наличие уязвимостей на веб-серверах (на открытых портах), всех веб-приложениях и в самом содержимом веб-сайта. Более надежные продукты запускают такие атаки разумно, используя различные степени эвристики.


Эвристическое веб-сканирование


Важно понимать, что сканирование веб-уязвимостей не должно ограничиваться сканированием известных приложений (например, готовых тележек для покупок) и/или уязвимостей модулей (например, SQL-инъекций в форме входа в систему phpBB) на основе предварительно определенной библиотеки известных проблем.. Если бы это было так, пользовательские приложения остались бы непроверенными на наличие уязвимостей. Это основная слабость продуктов, основанных на сопоставлении сигнатур уязвимостей.
Рассмотрим антивирусное программное обеспечение в качестве примера. Стандартные антивирусные продукты сканируют тысячи известных вирусов, включая старые и известные вирусы (даже те, которые были созданы для старых систем Windows 95). В наши дни вы редко столкнетесь с этой ОС, но для потребителей важнее всего «сколько вирусов обнаруживает это программное обеспечение?». На самом деле, наличие новейшего антивируса обеспечит вам защиту от всего, кроме вирусов, которые распространяются в дикой природе. И именно эти вирусы наносят наибольший ущерб. Стандартные антивирусные продукты без правильных технологий не обнаружат вирус в дикой природе, если они могут соответствовать только «известным» вирусам. Хорошая антивирусная технология позволит проводить эвристические проверки файлов или интеллектуальные способы выявления закономерностей поведения приложений, которые могут привести к заражению вирусом.
Сканирование веб-уязвимостей работает очень похожим образом. Было бы бесполезно обнаруживать только известные уязвимости известных приложений. В обнаружении уязвимостей задействована значительная часть эвристики, поскольку хакеры чрезвычайно изобретательны и запускают свои атаки на сделанные на заказ веб-приложения, чтобы добиться максимального эффекта.


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


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


Мы всегда рекомендуем автоматические проверки дополнять ручными — это, пожалуй, один из моментов, на который обращают внимание все эксперты по безопасности. К сожалению, компании не осознают важность ручного ввода. Если вы хотите, чтобы ваши веб-приложения были безопасными, вы должны потратить значительное количество времени на проверку автоматизированной стороны. Это не значит, что автоматизация неточна — напротив, она очень точна и значительно сократила объем работы. Автоматическое сканирование поможет вам пометить возможные проблемы, в том числе ложные срабатывания, и будет способствовать дальнейшему ручному расследованию.


В безопасности веб-приложений лучше иметь ложные срабатывания, чем вообще ничего.


Анализ исходного кода


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


Ссылка:


«Обзор: веб-сканеры уязвимостей», Джеффри Х. Рубин, сентябрь 2005 г., этот обзор не включает Acunetix WVS просто потому, что в то время продукт был недоступен. Также важно отметить, что с тех пор технология сканирования веб-приложений сильно развилась.


Чтобы узнать больше о Acunetix WVS, нажмите здесь .