Информационная безопасность, защита и безопасное администрирование веб-ресурсов. Сравнительное тестирование сканеров безопасности web-приложений Тип сканера: средство автоматизации инъекций

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

Типы уязвимостей сайтов

Вам будет интересно:

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

  • XSS. Каждый сайт обладает небольшими формами. С их помощью пользователи вводят данные и получают какой-либо результат, проводят регистрации или отправляют сообщения. Подстановкой в эти формы специальных значений можно спровоцировать выполнение определённого скрипта, что может вызвать нарушение целостности сайта и компрометирование данных.
  • SQL-инъекция. Очень распространённый и эффективный способ получить доступ к конфиденциальным данным. Происходить это может либо через адресную строку, либо через формы. Процесс проводится путем подстановки значений, которые могут не отфильтровываться скриптами и выполнять запросы в базу данных. А при должных знаниях это может вызвать нарушение безопасности.

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

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

WebSAINT

SAINT - известный сканер уязвимостей, на основе которого сделаны веб-сервисы WebSAINT и WebSAINT Pro . Как Approved Scanning Vendor, сервис осуществляет ASV-сканирование сайтов организаций, для которых это необходимо по условиями сертификации PCI DSS. Может работать по расписанию и проводить периодические проверки, составляет различные отчеты по результатам сканирования. WebSAINT сканирует порты TCP и UDP на указанных адресах в сети пользователя. В «профессиональной» версии добавлены пентесты и сканирование веб-приложений и настраиваемые отчеты.

ImmuniWeb

Сервис ImmuniWeb от компании High-Tech Bridge использует немного другой подход к сканированию: кроме автоматического сканирования, здесь предлагают еще пентесты вручную. Процедура начинается в указанное клиентом время и занимает до 12 часов. Отчет просматривают сотрудники компании перед тем, как отправить клиенту. В нем указывают как минимум три способа устранения каждой выявленной уязвимости, в том числе варианты изменения исходного кода веб-приложения, изменение правил файрвола, установка патча.

За человеческий труд приходится платить больше, чем за автоматическую проверку. Полное сканирование с пентестами ImmuniWeb стоит $639.

BeyondSaaS

BeyondSaaS от BeyondTrust обойдется еще дороже. Клиентам предлагают оформить подписку за $3500, после чего они могут проводить неограниченное количество проверок в течение года. Однократный скан стоит $700. Сайты проверяются на SQL-инъекции, XSS, CSRF и уязвимости операционной системы. Разработчики заявляют вероятность ложных срабатываний не более 1%, а в отчетах тоже указывают варианты исправления проблем.

Компания BeyondTrust предлагает и другие инструменты для сканирования на уязвимости, в том числе бесплатный Retina Network Community, который ограничен 256 IP-адресами.

Dell Secure Works

Dell Secure Works , возможно, самый продвинутый из веб-сканеров, представленных в обзоре. Он работает на технологии QualysGuard Vulnerability Management и проверяет веб-серверы, сетевые устройства, серверы приложений и СУБД как внутри корпоративной сети, так и на облачном хостинге. Веб-сервис соответствует требованиям PCI, HIPAA, GLBA и NERC CIP.

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

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

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

Что делать?

Вопросом безопасности веб-сайта можно задаться уже на этапе разработки. Существует множество CMS-систем (Content Management System - система управления содержимым), представляющих собой некий шаблон, упрощающий управление и разработку сайта. Весь спектр CSM систем можно подразделить на открытые (бесплатные) и проприетарные. Среди открытых можно выделить Drupal, Mambo, Joomla и Typo3, среди платных - 1С-Битрикс, NetCat, Amiro.CMS. Все они являются в той или иной мере безопасными, обладают рядом преимуществ и недостатков. Так какую CMS стоит выбрать? Безусловно этот вопрос остается на рассмотрении в каждом конкретном случае, однако статистика говорит о том, что в России подавляющее большинство веб-студий, использующих сторонние разработки для создания сайтов, пользуются продуктом 1С-Битрикс. За это говорит ряд факторов:

  • Объединившись с фирмой 1C, Битрикс внегласно превратился в национальный стандарт веб-разработки на основе CMS.
  • 1С-Битрикс имеет сертификат безопасности от компании Positive Technologies (речь о которой пойдет далее), подтверждающий неуязвимость системы ко всем видам известных атак на веб-приложения.
  • 1С-Битрикс на данный момен является самой перспективной на российском рынке CMS-системой, показывая наилучший темп роста.
  • Функционала продукта вполне достаточно для создания сложных корпоративных сайтов, информационных и справочных порталов, интернет-магазинов, сайтов СМИ, а также для создания практически любых других видов веб-ресурсов.

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

Сайт уже создан - уязвим ли он?

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

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

  • Локальные - устанавливаются непосредственно на проверяемом узле и обеспесивают высокую достоверность. Работают от имени учетной записи с максимальными привелегиями и используют только один метод поиска уязвимостей - сравнение атрибутов файлов.
  • Пассивные - в качестве источника данных используют сетевой трафик, однако, в отличие от сетевых, позволяют минимизировать влияние сканера на уязвимости. В настоящее время слабо распространены, но выглядят весьма перспективно.
  • Сетевые - самые популярные на сегодняшний день. Выполняют проверки дистанционно, подключаясь через сетевые сервисы.

Производителей сканеров уязвимостей много, существует масса обзоров и тестирований, выделяющих продукт той или иной фирмы. Перечислим несколько наиболее распространенных сканеров: Nessus, XSpider, IBM Internet Scanner, Retina, Shadow Security Scanner, Acunetix, N-Stealth.

XSpider (на смену которого приходит MaxPatrol) - сканер от российского производителя Positive Technologies. Он обладает поистине обширным списком возможностей - эвристический анализ и определение типа серверов, полное сканирование портов и отображение сервисов, проверка на стандартные пароли, анализ на SQL инъекции, XSS атаки, и практически ежедневный апдейт уязвимостей. В сравнении с конкурентами, сканер демонстрирует более качественную идентификацию сервисов и приложений, обеспечивая как следствие большее и более точное определение уязвимостей при минимальном проценте ложных оповещений. Продукт является одним из лучших решений не только на российской, но и на мировой сцене, поэтому мы решили выделить именно его.

Что нужно менять?

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

показано, что более 70% отсканированных веб-сайтов были заражены одной или несколькими уязвимостями.

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

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

Однако, если нет, вам нужно выполнить рутинное сканирование и предпринять необходимые действия для смягчения рисков.

Существует два типа сканера.

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

Acunetix
Detectify
Qualys

Open Source / Бесплатные — вы можете загружать и выполнять проверку безопасности по требованию.

Не все из них смогут охватить широкий спектр уязвимостей, таких как коммерческий.

Давайте посмотрим на следующие сканеры уязвимостей с открытым исходным кодом.

1. Arachni

Arachni — высокопроизводительный сканер безопасности, построенный на основе Ruby для современных веб-приложений.

Он доступен в двоичном формате для Mac, Windows и Linux.

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

Он выполняет активные и пассивные проверки.

Windows, Solaris, Linux, BSD, Unix
Nginx, Apache, Tomcat, IIS, Jetty
Java, Ruby, Python, ASP, PHP
Django, Rails, CherryPy, CakePHP, ASP.NET MVC, Symfony

Некоторые из обнаруженных уязвимостей:

NoSQL / Blind / SQL / Code / LDAP / Command / XPath injection
Подделка запросов межсайтовый скриптинг
Обход пути
Включение локального / удаленного файла
Разделение ответа
Межсайтовый скриптинг
Неопределенные перенаправления DOM
Раскрытие исходного кода

2. XssPy

Сканер уязвимостей XSS (межсайтовый скриптинг) на основе python используется многими организациями, включая Microsoft, Stanford, Motorola, Informatica и т.д.

XssPy by Faizan Ahmad — умный инструмент. Вместо того, чтобы просто проверять домашнюю страницу или страницу, она проверяет всю ссылку на веб-сайтах.

XssPy также проверяет субдомен.

3. w3af

w3af, проект с открытым исходным кодом, начатый еще в конце 2006 года, основан на Python и доступен для Linux и ОС Windows. w3af способен обнаруживать более 200 уязвимостей, включая OWASP top 10.

Он поддерживает различные методы ведения журнала для отчетности. Пример:

CSV
HTML
Консоль
Текст
XML
Эл. адрес

Он построен на архитектуре плагина, и вы можете проверить все доступные плагины.

4. Nikto

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

5. Wfuzz

Wfuzz (Web Fuzzer) — это инструмент оценки приложений для тестирования на проникновение.

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

Wfuzz требует наличия Python на компьютере, на котором вы хотите запустить сканирование.

6. OWASP ZAP

ZAP (Zet Attack Proxy) — один из известных инструментов тестирования на проникновение, который активно обновляется сотнями добровольцев во всем мире.

Это кросс-платформенный Java-инструмент, который может работать даже на Raspberry Pi.

ZIP находится между браузером и веб-приложением для перехвата и проверки сообщений.

Некоторым из следующих функций ZAP, которые следует упомянуть.

Fuzzer
Автоматический и пассивный сканер
Поддержка нескольких языков сценариев
Принудительный просмотр

7. Wapiti

Wapiti просматривает веб-страницы заданной цели и ищет сценарии и форму для ввода данных, чтобы узнать, является ли оно уязвимым.

Это не проверка безопасности исходного кода, а скорее проверка блэк боксов.

Он поддерживает методы GET и POST HTTP, прокси HTTP и HTTPS, несколько аутентификаций и т. д.

8. Vega

Vega разработан Subgraph, многоплатформенное программное обеспечение, написанное на Java, для поиска XSS, SQLi, RFI и многих других уязвимостей.

Vega получил удобный графический интерфейс и способен выполнять автоматическое сканирование, войдя в приложение с заданными учетными данными.

Если вы разработчик, вы можете использовать vega API для создания новых модулей атаки.

9. SQLmap

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

Он работает с Python 2.6 или 2.7 на любой ОС. Если вы хотите , то sqlmap будет полезен как никогда.

10. Grabber

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

Некоторые из функций Grabber:

Анализатор исходного кода JavaScript
Межсайтовый скриптинг, SQL-инъекция, слепое внедрение SQL
Тестирование PHP-приложений с использованием PHP-SAT

11. Golismero

Фреймворк для управления и запуска некоторых популярных инструментов безопасности, таких как Wfuzz, DNS recon, sqlmap, OpenVas, анализатор роботов и т. д.).

Golismero может консолидировать отзывы от других инструментов и показать один результат.

12. OWASP Xenotix XSS

Xenotix XSS OWASP — это расширенная инфраструктура для поиска и использования межсайтовых скриптов.

Он имеет встроенные три интеллектуальных фьюзера для быстрого сканирования и улучшения результатов.

13. Metascan

Сканер по поиску уязвимостей веб-приложений от отечественных разработчиков

При подготовке использовались материалы: «9 security tips to protect your website from hackers» , «10 Tips to Improve Your Website Security» и «Web Application Security Testing Cheat Sheet»

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

Если задаться целью, уязвимость в приложении найдётся. В отчете о хакерских атаках на сайты за 2016 год эксперты Google сообщили о том, что количество взломанных ресурсов увеличилось на 32% по сравнению с 2015 годом, и это не предел. Помните об этом и отбросьте заблуждения о неприступности своих веб-ресурсов, когда планируете работы по информационной безопасности.

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

Используйте инструменты для анализа защищенности

Прежде чем искать уязвимости вручную проверьте приложение автоматизированными средствами. Они выполняют тесты на проникновение, пытаются его взломать, например, при помощи SQL-инъекции.

Ниже приведена подборка бесплатных инструментов.

Приложения и фреймворки

  • OpenVAS сканирует узлы сети на наличие уязвимостей и позволяет управлять уязвимостями.
  • OWASP Xenotix XSS Exploit Framework сканирует ресурс на возможность эксплуатации XSS-уязвимостей.
  • Approof от Positive Technologies проверяет конфигурацию веб-приложения, сканирует на наличие уязвимых компонентов, незащищенных чувствительных данных и вредоносного кода.

Предотвратите SQL-инъекции

Проверяйте и шифруйте пароли

Храните пароли в виде хэша, причём лучше использовать алгоритмы одностороннего хэширования, например, SHA. В этом случае для авторизации пользователей сравниваются хэшированные значения. Если злоумышленник взломает ресурс и получит хэшированные пароли, ущерб будет снижен за счёт того, что хэш имеет необратимое действие и получить из него исходные данные практически невозможно. Но хэши на популярные пароли легко перебираются по словарю, поэтому используйте также «соль», уникальную для каждого пароля. Тогда взлом большого количества паролей становится ещё медленнее и требует больших вычислительных затрат.

Что касается валидации, установите ограничение на минимальную длину пароля, а также делайте проверку на совпадение с логином, e-mail и адресом сайта.

К счастью, большинство CMS предоставляют инструменты управления политиками безопасности, но для использования «соли» или установки минимальной сложности пароля иногда требуется дополнительная настройка или установка модуля. При использовании.NET стоит применить провайдеры членства, потому что в них заложена встроенная система безопасности с большим количеством настроек и готовыми элементами для аутентификации и изменения пароля.

Контролируйте процесс загрузки файлов

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

Даже если установлено ограничение на тип (например, только изображения), относитесь к загружаемым пользователями файлам с подозрением. Расширение или MIME-тип легко подделать, чтение заголовка или использование функций проверки размера изображения не дают 100% гарантии, в большинство форматов изображений возможно внедрить код PHP, который будет выполнен на сервере.

Чтобы это предотвратить, запретите исполнение загружаемых файлов пользователями. По умолчанию веб-серверы не пытаются выполнить файлы с расширениями изображений, но не стоит полагаться только на расширение. Известны случаи, когда файл image.jpg.php обходил эту проверку.

Способы ограничения доступа:

  • переименовывать или изменять расширения файлов при загрузке;
  • изменять разрешения, например, на chmod 0666 ;
  • создать файл.htaccess (см. пример ниже), который откроет доступ только к указанным типам файлов.
deny from all order deny,allow allow from all

Более безопасный способ –– запретить прямой доступ к загружаемым файлам, разместив их, например, вне папки корня сайта. Однако в этом случае потребуется создать скрипт (или обработчик HTTP в.NET), чтобы извлекать файлы из закрытой части и выдавать пользователю.

Меры защиты веб-приложений для владельцев собственных серверов:

  1. Настройте межсетевой экран, в том числе на блокировку неиспользуемых портов.
  2. При наличии доступа к серверу из локальной сети создайте демилитаризованную зону (DMZ), открыв доступ из внешнего мира только к портам 80 и 443.
  3. При отсутствии доступа к серверу из локальной сети используйте защищённые методы (SFTP, SSH и др.) для передачи файлов и управления сервером извне.
  4. Если возможно, выделите отдельный сервер для баз данных, который не будет напрямую доступен из внешнего мира.
  5. Отграничьте физический доступ к серверу.

Следите за сообщениями об ошибках

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

Чтобы держать руку на пульсе проекта, установите систему мониторинга ошибок. Например, Sentry , которая автоматически получает ошибки от обработчиков в коде приложения и через форму от пользователей, а также предоставляет панель для управления ими в реальном времени.

Проверяйте входящие данные

Контролируйте данные, полученные с веб-форм, как на стороне клиента, так и на стороне сервера. В браузере проверяются простые ошибки вроде незаполненного обязательного поля или текста, введённого в числовое поле. Эти проверки обходятся, поэтому контроль на стороне сервера обязателен. Отсутствие проверки на стороне сервера приводит к эксплуатации злоумышленником инъекций и других видов атак.

Распределяйте права доступа к файлам

Разрешения файла (file permissions) определяют КТО и ЧТО может с ним делать.

В *nix системах у файлов 3 варианта доступа, которые представляются в виде цифр:

  • «Read» (4) - чтение содержимого файла;
  • «Write» (2) - изменение содержимого файла;
  • «Execute» (1) - выполнение программы или скрипта.

Чтобы установить множественные разрешения, достаточно сложить их числовые значения:

  • «Чтение» (4) + «запись» (2) = 6;
  • «Чтение» (4) + «запись» (2) + «выполнение» (1) = 7.

При распределении прав пользователи делятся на 3 типа:

  • «Owner» (владелец) - создатель файла (изменяем, но может быть только один);
  • «Group» (группа) - группа пользователей, которые получают разрешения;
  • «Others» (прочие) - остальные пользователи.

Установка владельцу прав доступа на чтение и запись, группе - на чтение, прочим - запрет доступа выглядит так:

Итоговое представление: 640 .

Для каталогов аналогично, но флаг «выполнить» значит сделать рабочей директорией.

.
mob_info