Pull to refresh

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

Reading time 5 min
Views 9.3K


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

Easy hack


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

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

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

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

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

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


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

Сбор информации: собирается доступная информация, такая как — заголовки веб-сервера, определение типа платформы, 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 и т.д.) по специализированной парольной базе.

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

Методология проведения аудита


Данные сценарии составлены с учетом методологии OWASP TOP 10.

Тип уязвимости: внедрение кода — OWASP A1 (injection).
Как выявляется: ошибки в теле страницы, время отклика.
Чем грозит: компрометация пользовательских данных, заражение сайта.

Тип уязвимости: некорректная аутентификация и управление сессией — OWASP A2 (broken authentication and session management).
Как выявляется: передача сессии в URL, отсутствие шифрования.
Чем грозит: утечка чужой сессии может привести к перехвату управления аккаунтом.

Тип уязвимости: межсайтовый скриптинг — OWASP A3 XSS (cross-site scripting).
Как выявляется: наличие ответа на специально сформированный запрос в коде страницы.
Чем грозит: атака производится непосредственно на пользователя, манипуляция данными.

Тип уязвимости: небезопасные прямые ссылки на объекты — OWASP A4 (insecure direct object references).
Как выявляется: перебор значения параметров.
Чем грозит: возможна утечка критичных данных.

Тип уязвимости: небезопасная конфигурация — OWASP A5 (security misconfiguration).
Как выявляется: выявление настроек по умолчанию, стандартных паролей, сообщений об ошибках.
Чем грозит: компрометация пользовательских данных, заражение сайта.

Тип уязвимости: утечка чувствительных данных — OWASP A6 (sensitive data exposure).
Как выявляется: корректная установка и настройка сертификатов, выявление критичных данных.
Чем грозит: возможна утечка критичных данных.

Тип уязвимости: отсутствие контроля доступа к функциональному уровню — OWASP A7 (missing function level access control).
Как выявляется: манипуляция данными для получения доступа.
Чем грозит: возможна утечка критичных данных.

Тип уязвимости: подделка межсайтовых запросов — OWASP A8 CSRF (cross-site request forgery).
Как выявляется: отсутствие проверки адреса запроса (токена).
Чем грозит: манипуляция данными.

Тип уязвимости: использование компонентов с известными уязвимостями — OWASP A9 (using components with known vulnerabilities).
Как выявляется: наличие общедоступных уязвимостей для данной версии приложения.
Чем грозит: компрометация пользовательских данных, заражение сайта.

Тип уязвимости: невалидируемые редиректы — OWASP A10 (unvalidated redirects and forwards).
Как выявляется: манипуляция параметрами URL.
Чем грозит: компрометация пользовательских данных, возможна утечка критичных данных.

Итог


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

Частота проверки (раз в квартал, или чаще, по желанию) позволят владельцу сайта иметь актуальную картину безопасности. Такого рода проверки позволят в кратчайший срок выявить большинство поверхностных уязвимостей, устаревшие версии ПО и компонентов CMS и позволят оперативно защитить веб-приложение.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+12
Comments 19
Comments Comments 19

Articles