Как мы проверяем защиту веб-сайта
Для защиты веб-сайт или веб-приложение, нужно сначала понять, целевое приложение, как оно работает и предметную область позади него. Специалист должны иметь глубокие знания программирования и языков сценариев, а также веб-безопасности.
Аудит безопасности сайта, как правило, состоит из двух этапов. Большую часть времени обычно занимает первый шаг, чтобы начать автоматическое сканирование. Впоследствии, в зависимости от результатов и сложности веб-сайта, тестирование ручного проникновения следующим образом. Чтобы правильно завершить автоматизированное и ручное сканирование, целый ряд инструментов доступны, чтобы упростить этот процесс и сделать его эффективным с точки зрения бизнеса. Автоматизированные инструменты помогают убедиться, что ниодной входной точки или параметра не упущено. Автоматизированные подход также помогает в поиске большого процента технических уязвимостей и даёт очень хороший обзор структуры сайта и состояние безопасности. Благодаря автоматическому сканированию, мы можем получить лучший обзор и понимание целевого веб-сайт, что облегчает процесс ручного проникновения.
Для ручной проверки безопасности применяется ряд инструментов, чтобы облегчить процесс, такие как инструменты для фаззинг тестирования, инструменты для редактирования HTTP-запросов и анализа HTTP-ответов, обзор прокси для анализа трафика и так далее.
В этой статье мы подробно объясним, как мы делаем полный аудит безопасности сайта и сосредоточимся на использовании правильного подхода. Мы опишем весь процесс защиты веб-сайт в удобном для чтения, шаг за шагом формате; то, что должно быть сделано до запуска автоматизированного тестирования веб-сайта.
Оценка целевого веб-сайта или веб-приложения
В зависимости от размера и сложности структуры веб-приложений, запуск автоматизированного сканирования веб-безопасности с типичным “из коробки” настроек, могут привести к ряду ложных срабатываний, уничтожению данных, пустой трате времени и разочарованию.
Автоматизированное сканирование на предмет наличия уязвимостей должно быть предварительно корректно сконфигурировано. Сканеры веб уязвимости предназначены для сканирования широкого спектра сложных выполненных на заказ веб-приложений. Поэтому в большинстве необходима тонкая настройка сканера для своих потребностей для достижения желаемых результатов сканирования.
Ручная оценка целевого сайта должна быть выполнен перед запуском любого вида автоматизированного процесса сканирования безопасности. Это хорошо известный факт, что автоматизированный сканер будет сканировать каждую точку входа в веб-сайт, которую вы, скорее всего, забыли бы, и проверит её на наличие широкого спектра уязвимостей.
При ручной оценке, следующая информация должна быть получена:
- количество страниц и файлов, присутствующих на веб-сайте;
- структура каталогов и файлов;
- путь корневой каталога и исходный код веб-приложений;
- механизм построения URL для веб-сайта;
- все заполняемые интернет-формы, доступные на веб-сайте;
До автоматизированного сканирования во время исследования, помимо оценки структуры каталогов и числа файлов, необходимо выяснить, какие веб-технологии используются для разработки целевой веб-сайт, например, .NET или PHP. Есть целый ряд уязвимостей, которые специфичны для разных типов технологий. Другие подробности должны быть выяснены при ручной оценке сайт:
- Требует ли сайт клиентские сертификаты для доступа?
- Взаимодействует ли целевой веб-сайта с сервером базы данных? Если да, то какой тип базы данных это?
- Работает ли сервер базы данных на том же сервере, что и веб-сайт?
- Все ли чувствительные записи шифруются? Безопасно ли это происходит?
- Имеются ли какие-либо параметры URL или правила перезаписи URL для навигации по сайту?
- Когда запрашивается не существующий URL, делает ли веб-сервер HTTP код статуса 404, или он возвращает страницу пользовательской ошибки и реагирует с HTTP статусом 200?
- Имеются какие-либо одноразовые формы ввода (например, CAPTCHA, и Single Sign On), которые требуют обработки пользователем в ходе автоматизированного сканирования?
- Имеются ли какие-либо защищённые паролем разделы сайта?
После завершения ручного процесса оценки, мы знаем достаточно о целевом веб-сайте, чтобы определить, будет ли веб-сайт надлежащим образом сканирован автоматизированным сканером по методу черного ящика, прежде чем сканирование будет запущено. Если сайт не проиндексирован должным образом, т.е. сканер не может сканировать некоторые части или параметры из веб-сайта; весь “аудит безопасности” становится недействительным. Ручная оценка поможет нам пройти долгий путь сквозь некорректное сканирования и ложные срабатывания. Это также поможет нам получить больше знаний о с самом сайта, и это является лучшим способом настроить автоматическое сканирование всего сайта.
Автоматизированное сканирование методом чёрного ящика
Чтобы использовать технику сканирования черного ящика крайне рекомендуется настроить:
- Страницу 404 – Если сервер возвращает код статуса HTTP 200, когда не существующие URL запрашивается.
- Правила перезаписи URL – Если сайт использует дружественной поисковой URL, настроить эти правила, чтобы процесс сканирования обрабатывал такие URL корректно.
- Последовательности Входа – Позволит автоматически войти в защищенный паролем раздел, сканировать его и проверить его.
- Отметить страница, которая требуют ручного вмешательства – такие, как CAPTCHA содержащие страницы.
- Формы данных – При необходимости использовать специфические данные каждый раз, когда конкретная форма будет заполняться сканером.
- Фильтры сканера – Указать файлы или типы файлов или каталогов которые будут исключены из сканирования.
Защита данных и предотвращение повреждения данных
Время от времени я заметил, люди жалуются, что сканеры уязвимостей веб-слишком агрессивны, поэтому они предпочитают не запускать их на веб-сайте. Это, безусловно, плохо и неправильное решение, потому что, если автоматизированный веб сканер уязвимостей может сломать ваш веб-сайт, представьте, что может сделать злоумышленник. Решение начать процесс аудита веб безопасности веб-сайта и убедитесь, что он может справиться с должным автоматизированной проверкой.
Начиная автоматизированное сканирования веб уязвимости на целевом веб-сайте сканер пытаются вводить данные для обработки которых веб-сайт не предназначен. Если автоматизированный сканер не агрессивен против целевого веб-сайт, то это на самом деле не обеспечивает проверку всех уязвимостей и не делает углубленную проверку безопасности. Такие проверки безопасности могут и привести к ряду нежелательных результатов; такие как удаление записей базы данных, изменить тему блога, разместить мусора на вашем форуме, создать огромное количество писем в почтовом ящике, и даже хуже, выявить новые функции веб-сайта. Это вполне ожидаемое поведение, так как злоумышленник будет делать, автоматизированное сканирование методом черного ящика и будет пытаться делать всё возможное, чтобы найти дыры в безопасности в вашем веб-сайте, и пытается найти пути и средства, чтоб получить несанкционированный доступ.
Поэтому крайне важно, чтобы такое сканирование не запускалось для живых серверов. В идеале копия реальной среде должны быть созданы в тестовой лаборатории, так что если что-то пойдет не так, только реплики пострадали. Хотя, если испытательная лаборатория не доступна или ограничена по бюджету, нужно убедиться, что у имеются резервные копии. Если что-то пойдет не так, то жизнеспособный веб-сайт может быть восстановлен из резервных копий и быть функциональным снова в кратчайшие сроки.
Запуск сканирования
После того, как ручной анализ сайта проведён и сканер черного ящика настроен, мы готовы сделать автоматический запуск. Если позволяет время, мы вначале запускаем обход веб-сайте, чтобы получить подтверждение что все веб-страницы и параметры доступны для сканера. После подтверждения можно смело приступить к автоматизированной проверке.
После сканирования – Анализируя результаты
После того, как автоматизированная проверка безопасности завершена, у нас уже есть хороший обзор уровня безопасности веб-сайта. Здесь мы можем посмотреть в деталях каждого уязвимость и убедиться, что у нас есть вся необходимая информация, чтобы исправить уязвимость. Сканер чёрного ящика сообщает хорошее количество деталей о обнаруженных уязвимостях, такие как заголовки HTTP запроса, ответа, HTML ответ, описание уязвимости и количество веб-ссылок, где вы можете узнать больше о сообщили уязвимость, и как это исправить.
Анализируя результаты автоматизированного сканирования в деталях также поможет нам лучше понять как веб-приложение работает и как используются входные параметры, таким образом давая нам представление о том, какие типы тестов необходимо запустить в тесте ручного проникновения и какие параметры нужно анализировать.
Тестирование на проникновение
Как и автоматизированная проверка, так и ручное тестирование на проникновения очень важный шаг в обеспечении безопасности веб-сайта. Применение передовых инструментов тестирования на проникновение помогает нам быть более эффективными. Ручное тестирование на проникновение является неотъемлемой частью аудита вашего сайта и проверяет логические уязвимости. Автоматизированные проверка может намекнуть на такие уязвимости и помочь выявить их, большинство из них могут быть обнаружены и проверены только вручную.
Заключение
Как мы видим из вышеизложенного, веб-безопасность очень отличается от сетевой безопасности. В концепции, сетевой безопасности может быть упрощено до “позволено хорошим парням в и запрещено плохим парням.” Веб-безопасности отличается; это нечто гораздо большее. Но никогда нельзя сдаваться. Мы те, кто будет делать большую часть работы за вас, поможем вам сделать весь процесс проще и быстрее.
