Ежеквартальная проверка безопасности веб-приложений

673623dc782842e9a2e2e249ae5fe931.png

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

Easy hack


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

Скрипт кидди (англ. Script kiddie) — в хакерской культуре унизительный термин, используемый для описания тех, кто пользуется скриптами или программами, разработанными другими, для атаки компьютерных систем и сетей, не понимая механизма их действия.

Script kiddie — искатели легкой добычи. Они не пытаются получить доступ к какой-то определенной информации или осуществить атаку на конкретную компанию. Их цель состоит в том, чтобы получить права root самым простым из возможных способов. Они достигают этого, выбирая небольшое число уязвимостей и сканируя затем Internet в их поисках. Рано или поздно они находят уязвимую систему.


Согласно статистике нашей системы автоматического сканирования до 30% сайтов, присланных для проверки содержали критичные уязвимости — sql injection, небезопасные прямые ссылки на объекты, незащищенность критичных данных — все это делает атаки на сайты легкодоступными и продуктивными.

Основные вектора атак


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

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

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

Проверка: сайт проверяется на наиболее распространенные ошибки и уязвимости, такие как:

  • sql injections — разного рода sql инъекции;
  • cross site scripting — xss, межсайтовый скриптинг;
  • cross site requets forgery — csrf, межсайтовая подделка запросов;
  • local file inclusion — локальный инклуд;
  • remote file inclusion — удаленный инклуд;
  • open redirects — редиректы;
  • code executions — выполнение кода;
  • http response splitting — расщепление http запросов;
  • xpath injections — xpath инъекции;
  • buffer overflows — разного рода переполнения буфера;
  • known vulnerabilities — поиск известных эксплоитов.


Дополнительно: формы ввода подвергаются атаке по словарю (bruteforce) со списком часто встречающихся логинов (admin, user, test, web и т.д.) по специализированной парольной базе.

Итог


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

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

Пример отчета о выполненном автоматическом сканировании.

© Habrahabr.ru