Там мы делимся «квинтэссенцией» своей экспертизы — постим выжимки статей, анализируем UX-решения, делаем разборы продуктов, делимся образовательными курсами и чек-листами.
Атаке может подвергнуться любой сайт вне зависимости от размера и коммерциализации. В результате ресурс потеряет работоспособность, а конфиденциальные данные пользователей окажутся под угрозой. Для вас это выльется в репутационные и финансовые потери. Рассказываем, что еще может грозить вашему сайту и как защититься от злоумышленников.
Кроме прямой атаки, ваш сайт могут использовать для причинения вреда другим ресурсам — рассылки спама и DDoS-атак, нападений на пользователей, заражения устройств и приложений. Если такое произойдет, сайт будет заблокирован со стороны хостинга, поисковой системы или браузеров.
Коммерческие сайты атакуют с целью получения пользовательских данных. Затем эти данные используют в мошеннических схемах. Корпоративные сайты подвергают угрозе, чтобы получить точку доступа в сеть компании, похитить клиентскую базу, получить конфиденциальную информацию.
Где сайт может быть уязвим:
•
В серверной части.
•
Программной части — CMS, скриптах, плагинах.
•
Системе администрирования — мошенники могут подобрать или украсть пароли от административной панели, FTP.
Атаки могут носить бессистемный, массовый характер на основе автоматических действий роботов. А могут быть целенаправленными, когда хакеры стремятся взломать именно ваш сайт.
Разберем, какими могут быть уязвимости.
Классы атак и уязвимостей
Аутентификация (Authentication)
Использование уязвимостей в механизмах проверки идентификатора пользователя, службы или приложения, которые направлены на обход системы.
Уязвимость;Атака
Недостаточная аутентификация (Insufficient Authentication) — возникает, когда сервер позволяет получать доступ к важной информации или функциям без должной аутентификации;Подбор (Brute Force) — автоматический процесс подбора пароля, имени пользователя и ключа шифрования методом проб и ошибок
Небезопасное восстановление паролей (Weak Password Recovery Validation) — веб-сервер позволяет несанкционированно восстанавливать, модифицировать или получать пароли других пользователей;
Авторизация (Authorization)
Авторизация требуется для определения уровня прав доступа пользователя, службы или приложения. Атаки проводят, чтобы получить доступ к скрытому содержимому или функциям.
Уязвимость;Атака
Предсказуемое значение идентификатора сессии (Credential/ Session Prediction) — позволяет хакерам перехватывать сессии других пользователей;Фиксация сессии (Session Fixation) — злоумышленник присваивает идентификатору сессии пользователя заданное значение
Недостаточная авторизация (Insufficient Authorization) — возникает, когда сервер позволяет получать доступ к ограниченным функциям или защищенной информации;
Отсутствие таймаута сессии (Insufficient Session Expiration) — у сессии пользователя либо нет таймаута, либо его значение слишком велико, что приводит к тому, что злоумышленник может использовать для авторизации старые данные;
Логические атаки (Logical Attacks)
Атаки данного класса используют уязвимости логики или функций приложения. Логика приложения — ожидаемый процесс при выполнении определенных действий. Для решения определенной задачи приложение требует произвести несколько последовательных действий. Пример: регистрация учетных записей, восстановление паролей, покупка в интернет-магазине и т. д. Механизмы можно обойти или использовать в своих целях.
Уязвимость;Атака
Недостаточное противодействие автоматизации (Insufficient Anti-automation) — уязвимость возникает, если сервер позволяет автоматически выполнять ручные операции;Отказ в обслуживании (DDoS) — атака на сервера компании и доведение системы до отказа, в результате чего пользователи не могут получить к ней доступ
Недостаточная проверка процесса (Insufficient Process Validation) — сервер не обеспечивает достаточную проверку последовательности выполнения операций приложения;Злоупотребление функциональными возможностями (Abuse of Functionality) — функции веб-приложений используют для обхода механизма разграничения доступов
Разглашение информации (Information Disclosure)
Большинство серверов предоставляют чрезмерный объем служебной информации. Эта уязвимость дает возможность определить используемые дистрибутивы программного обеспечения, номера версий клиента и серверов, а также установленные обновления. Далее эта информация используется для взлома и последующих действий.
Уязвимость;Атака
Предсказуемое расположение ресурсов (Predictable Resource Location) — дает атакующему возможность получить доступ к скрытым данным и функциям сайта;Обратный путь в директориях (Path Traversal) — атаки для доступа к файлам, директориям и командам, которые находятся вне основной директории web-сервера
Утечка информации (Information Leakage) — сервер публикует важную информацию, например, сообщения об ошибках, которые могут быть использованы для компрометации системы;Идентификация приложений (Web Server/ Application Fingerprinting) — определение версий приложений позволяет получить информацию об используемых браузерах, клиентах, серверах и операционных системах
Индексирование директорий (Directory Indexing) — позволяет получить информацию о наличии скрытых файлов и директорий, которые недоступны в обычном режиме навигации;
Выполнение кода (Command Execution)
Атаки, цель которых — выполнение кода на стороне сервера. Серверы используют данные, которые передают при обработке запросов. Эти данные могут использоваться при составлении команд для генерации динамического содержания. Если требования безопасности не соблюдаются, злоумышленник может модифицировать исполняемые команды.
Уязвимость;Атака
Переполнение буфера (Buffer Overflow) — уязвимость, которая позволяет изменить путь исполнения программы с помощью перезаписи данных в памяти системы;Внедрение операторов XPath (XPath Injection) — атака на сервер, который создает запросы на языке XPath на основе данных, которые вводит пользователь
Выполнение команд ОС (OS Commanding) — уязвимость, которая позволяет направлять команды операционной системе на веб-сервере с помощью манипуляций входными данными;Внедрение серверных сценариев (SSI Injection) — передача исполняемого кода, который будет выполнен на веб-сервере
;Внедрение операторов SQL (SQL Injection) — атака на сервера, которые создают SQL-запросы к серверам Системы Управления Базами Данных на основе того, что вводит пользователь
;Внедрение операторов LDAP (LDAP Injection) — атаки на серверы, которые создают запросы к службе LDAP на основе данных пользователей
;Атака на функции форматирования строк (Format String Attack) — путь исполнения программы модифицируется методом перезаписи областей памяти с помощью функций форматирования символьных переменных
Атаки на клиентов (Client-side Attacks)
Атаки на пользователей сервера во время посещения сайта.
Уязвимость;Атака
Уязвимость Cross-site Scripting — позволяет атакующему передать серверу исполняемый код, который будет перенаправлен браузеру пользователя;Межсайтовое выполнение сценариев (Cross-site Scripting, xss) — код получает возможность читать, модифицировать или передавать важные данные, доступные с помощью браузера. У атакованного пользователя может быть скомпрометирован аккаунт (кража cookie), браузер можно перенаправить на другой сервер или подменить содержимое сервера
Уязвимость к расщеплению HTTP-запроса — возникает, когда серверные скрипты внедряют пользовательские данные в заголовки HTTP-ответов, например, в URL перенаправления, а также когда программы формируют куки на основе введенных пользователем данных;Расщепление HTTP-запроса (HTTP Response Splitting) — на сервер приходит специально сформированный запрос, ответ на который интерпретируется как два разных ответа. Таким образом жертва вместо запрошенного ресурса получает информацию, которую сформировал атакующий
;Подмена содержимого (Content Spoofing) — содержимое страницы передается не с веб-сервера сайта, а из внешнего источника. То есть подменяется контент, например, телефон, e-mail, адрес
Как защитить сайт
•
Надежные пароли. Для генерации и хранения паролей можно применять специальные менеджеры. Нельзя хранить пароли просто на компьютере, в браузерах и FTP-клиентах, нужно регулярно их менять.
•
Ограничение доступа. Круг лиц, которые имеют доступ к учетной записи администратора сайта, должен быть строго ограничен.
•
Безопасные протоколы. При подключении к сайту через файлообменные и прочие подобные программы необходимо использовать только безопасные протоколы с шифрованием SFTP или SCP.
•
Сервер. Системные функции по возможности должны быть отключены, а сайты максимально изолированы. Учетную запись «по-умолчанию» необходимо отключить, а в новой назначить минимум необходимых прав.
•
Программное обеспечение сервера. Необходимо регулярно обновлять программное обеспечение, поскольку большая часть атак производится через уязвимости устаревшего ПО.
•
Файлы и каталоги. Файлы и каталоги должны быть доступны только для чтения. Необходимо запретить выполнение скриптов в каталогах загрузки.
•
Дополнения и компоненты. Все компоненты, которые не используются, необходимо отключить.
•
Антивирусы. Компьютер администратора сайта должен быть максимально защищен. Периодически проверяйте сайт на вирусы.
•
Бэкапы. Регулярно создавайте резервные копии сайта. Лучше, если хостинг будет делать это автоматически.
•
Панели вебмастера. Обращайте внимание на предупреждения безопасности в панелях вебмастеров «Яндекс» и Google.
•
HTTPS. Если принимаете оплату или передаете данные пользователей, используйте безопасный протокол шифрования данных.
•
CMS. Выбирайте надежные системы управления сайтом, которые имеют встроенные системы защиты. Например, «1С-Битрикс. Управление сайтом» с единой системой авторизации и бюджетом пользователя для всех модулей, многоуровневым разграничением прав доступа, независимой системой контроля доступа, возможностью шифрования при передаче данных, журналированием, политикой работы с переменными и внешними данными, методикой двойного контроля критически опасных участков ввода. Регулярно обновляйте CMS.
•
Аудит безопасности. Для профилактики уязвимостей можно проводить аудит с помощью программ-сканеров либо привлекать для оценки специалистов.
Профилактика угроз
Аудит безопасности — упреждающая мера, которая позволяет выявить уязвимости, оценить защищенность сайта и возможные сценарии атак, а затем сформировать рекомендации по защите ресурса.
Комплексный аудит безопасности включает в себя:
•
Атаку подбором паролей.
•
Внедрение XML-сущностей.
•
Поиск компонентов с известными уязвимостями.
•
Проверку на удаленное выполнение произвольного кода.
•
Поиск уязвимостей серверных компонентов и в веб-окружении сервера.
•
Проверку на наличие «инъекций» кода.
•
Попытки обхода системы аутентификации.
•
Поиск XSS/ CSRF-уязвимостей.
•
Попытки перехвата привилегированных аккаунтов или их сессий.
•
Проверку на возможность файловых инъекций Remote File Inclusion/ Local File Inclusion.
•
Сканирование директорий с помощью перебора и взлома через индекс Google.
•
Анализ всех форм на сайте: регистрации, авторизации, поиска и т.д.
•
Попытки обхода системы аутентификации.
•
Проверку на возможность открытого получения конфиденциальной информации.
•
Проверку на атаки класса Race Condition — ошибки проектирования многопоточных систем и приложений.
Для аудита используются сканеры уязвимостей — специальные программы, которые проверяют ресурс и зондируют типичные уязвимые места, тем самым анализируют общую защищенность сайта.
Сканеры бывают 3-х типов:
•
Сетевые. Проверяют дистанционно, подключаясь через сетевые сервисы. Самый популярный вид сканеров.
•
Пассивные. В качестве источника данных используют сетевой трафик, при этом, в отличие от сетевых, минимизируют влияние сканера на уязвимости.
•
Локальные. Устанавливаются непосредственно на проверяемом узле, благодаря чему обеспечивают высокую достоверность. Ищут уязвимости, сравнивая атрибуты файлов.
Самые распространенные сканеры: MaxPatrol, N-Stealth, Shadow Security Scanner, Acunetix, ISS Internet Scanner, XSpider, Nessus.
Обеспечение безопасности сайта — постоянный процесс, который не ограничивается проверками. По результатам сканирования ресурс необходимо дорабатывать, закрывать дыры, а некоторые вопросы решать на стороне сервера. Аудит безопасности позволяет определить ряд мер и работ, которые надо выполнить. Это могут быть доработки программной части, услуги инженеров, которые решат технические вопросы, и набор организационных мер.
Мы с удовольствием выступаем на мероприятиях разного уровня и делимся экспертным мнением в медиа. Если вы хотите пригласить нас в качестве спикера, заполните эту форму. Мы свяжемся с вами в ближайшее время.
Комментарии к статье
Комментарии: 0