Гид компьютерного мира - Информационный портал
  • Главная
  • Программы
  • Сканирование на безопасность веб ресурса. Как защитить веб-приложение: основные советы, инструменты, полезные ссылки

Сканирование на безопасность веб ресурса. Как защитить веб-приложение: основные советы, инструменты, полезные ссылки

показано, что более 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

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

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

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

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

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

При использовании веб-сканеров можно выявить следующие :

  • Нарушения в процессе кодировки – ошибки, связанные с неправильной обработкой входящих и исходящих данных (SQL-инъекции, XSS).
  • Нарушения в ходе использования и конфигурирования web-приложений – ошибочная конфигурация его окружения (серверы приложений, SSL/TLS и различные сторонние компоненты).
  • Нарушения в процессе эксплуатации ресурса – применение неактуального ПО, легких паролей, сохранность архивных данных, служебных модулей в прямом доступе на сервере.
  • Неправильная настройка фильтра IP, что приводит к отказу в обслуживании. В том числе атаки на сервер с помощью направления большого количества автоматических запросов, которые он не способен быстро обработать, вследствие чего «зависает», переставая обрабатывать запросы реальных пользователей.
  • Слабое обеспечение защиты ОС на сервере. При ее наличии у мошенников формируется возможность создать произвольный код.

Принципы функционирования веб-сканеров сайтов

  1. Сбор сведений об анализируемом ресурсе.
  2. Проверка ПО ресурса на уязвимость с помощью специальных .
  3. Определение слабых секторов в системе.
  4. Составление рекомендаций по удалению ошибок.

Разновидности сканеров защищенности веб-сайтов

Исходя из назначения, данные программы делятся на несколько групп:

  • Сетевые сканеры. Открывают всевозможные сетевые сервисы, определяют ОС и т.д.
  • Сканеры определения ошибок в скриптах. Распознают уязвимости, такие как XSS, SQL inj, LFI/RFI и т. д., или дефекты, оставшиеся после использования непостоянных компонентов, индексации директорий и др.
  • Средства подбора эксплойтов. Выполняют поиск эксплойтов в ПО и скриптах.
  • Программы автоматизации инъекций. Сюда входят утилиты, занимающиеся выявлением и использованием инъекцией.
  • Дебаггеры. Программы устранения дефектов и правки кода в ресурсах.

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

Бесплатные сервисы

Сетевые сервисы:

  • Nmap – программа с открытым начальным кодом. Используется для исследования сетей вне зависимости от числа объектов и определения их состояния.
  • IP Tools – сервис анализа протоколов, обеспечивающий нормы фильтрации, адаптер отбора, декорирования протоколов и т.д.

Сканеры выявления ошибок в скриптах:

  • Nikto – обеспечивает всестороннее исследование серверов на ошибки, делает проверку большого числа потенциально нежелательных файлов и приложений.
  • Skipfish – обеспечивает рекурсивную проверку приложений и последующий анализ на базе специальных словарей.

Программы распознавания эксплойтов:

  • Metasploit – программа работает на базе Perl и обеспечивает всестороннюю проверку разнообразных платформ и приложений.
  • Nessus – в процессе анализа использует как стандартные методы тестирования, так и обособленные, имитирующие поведение мошенников в процессе внедрения в систему.

Программы автоматизации инъекций:

  • SQLMap – сервис с доступным ключевым кодом, используемый для анализа SQL-уязвимостей.
  • bsqlbf-v2 – программа для поиска слепых SQL-инъекций.

Дебаггеры:

  • Burp Suite – комплекс автономных сервисов, разработанных на основе Java.

Назначение сканера вирусов сайта

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

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

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

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

В отличие от статистического, динамический анализ – это исследование web-документов сайта путем имитации действий пользователя. Формируются результаты - что происходит в итоге, как сайт реагирует на запросы.

К наиболее востребованным сканерам вирусов сайта относятся Nod, Dr.Web, Kaspersky и т.д. Все они достаточно эффективные, если использовать версии с последними обновлениями. Работают в режиме онлайн.

При подготовке использовались материалы: «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 .

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

.

Лучших веб-сервисов, с помощью которых можно исследовать сайты на уязвимости. По оценке 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.

Лучшие статьи по теме