Ежеквартальная проверка безопасности веб-приложений
Современный веб-ресурс представляет из себя постоянно развивающийся механизм со множеством апдейтов и усовершенствований. Они нацелены на улучшение производительности, повышение конверсии, оптимизации работы и удобства использования. Но при этом по тем или иным причинам могут быть допущены ошибки, которые могут привести к компрометации веб-ресурса. Это могут быть «забытые» служебные скрипты, недостаточный контроль за данными, отсутствие проверок доступа, вывод различных ошибок и многое другое. Для используемой 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 и позволят оперативно защитить веб-приложение.
Пример отчета о выполненном автоматическом сканировании.