Информационные технологии. Теория и практика

Интернет-технологии для бизнеса, учебы, жизни. Создание, управление, хранение, передача и обработка информации. Интернет-новости, обзоры. Психология интернета. Работа и заработок в сети.

Как и зачем злоумышленники взламывают сайты

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

Хакеров не всегда интересуют платежные данные клиентов, кроме того, их может и не быть на атакуемом сервере (вы используете платежные решения сторонних разработчиков, и номер банковской карты клиент вводит уже после того, как перешел на сайт платежной системы), но это не значит, что угроза для бизнеса стала менее значительной. Взломать интернет-магазин можно и с целью получения других личных данных, заражения сайта вирусами (которые и будут следить за пользователями, когда они подтверждают платеж). Кроме того, наличие вирусов на сайте наверняка послужит поводом для наложения санкций от поисковых систем («Яндекса», Google), что приведет к снижению количества переходов из поиска и пропорциональному снижению прибыли.

О том, каким образом злоумышленники получают доступ к файлам на сервере и что предпринять, чтобы снизить риск заражения, рассказывает представитель компании Tom Hunter.

Главный вектор атаки

В распоряжении злоумышленников есть множество вариантов того, как получить доступ к той или иной информации и разделам сайта, которые не доступны рядовым пользователям. Среди них:

• CSRF – уязвимости (подделка отправки форм);
• XSS – атака, направленная на кражу и подделку куки;
• PHP injection – внедрение кода для исполнения на стороне сервера (при наличии ошибок);
• SQL injection – модификация запросов к базе данных при наличии ошибок в синтаксисе.

Угрозы, связанные с непосредственным доступом к PHP через GET-запросы к серверу, а также с отправкой данных с помощью CSRF, большей частью потеряли актуальность и закрыты в современных системах управления контентом (движках сайтов, CMS). XSS-атаки также достаточно специфичны и в большинстве случаев требуют доступа к редактированию содержимого страницы, как на форумах. Поэтому из четырех направлений наиболее массовыми как по количеству выявленных уязвимостей, так и по числу подтвержденных атак являются SQL-инъекции.

Как происходит атака

Для проведения SQL-инъекции злоумышленники используют особенности синтаксиса запросов к базам данных. Если не вдаваться в технические детали, то основные передаваемые в запросе параметры должны быть заключены в кавычки. Если они окажутся неэкранированными (их общее количество в запросе не будет четным), то у злоумышленника появится возможность добавить к запросу свой, объединив их специальной командой UNION. Определить наличие такой уязвимости очень просто: на странице будет отображена ошибка, указывающая на неправильно составленный запрос.

Второй вариант – использование заведомо неверных параметров в URL. Структура обработки GET-запросов предполагает их разбор на стороне сервера и отправку в виде обращений к определенным таблицам в базе данных. Если разработчики CMS при составлении запроса не озаботились проверкой параметров на валидность, то, объединяя свои запросы с ошибочными через подстановки в URL-адресе страницы, злоумышленник сможет осуществить атаку. Он сможет не только получить доступ к сохраненной в БД информации (логины, адреса электронной почты и хэши паролей), но и сохранить текст запроса в файл на сервере, что практически гарантирует возможность установки шеллов и дальнейший доступ злоумышленника к файловой структуре на сервере.

Основная причина – отсутствие контроля параметров

Как видно из приведенных выше примеров, ошибки в коде – главная причина наличия возможности проведения SQL-инъекций. Популярные платные и бесплатные CMS, как правило, не содержат подобных уязвимостей в коде, поскольку обширное сообщество обеспечивает своевременное выявление подобных угроз. Однако дополнительные плагины и расширения не могут похвастаться столь же высоким уровнем безопасности, и часто именно они содержат ошибки в коде.

Важно, что установка расширений с заслуженной репутацией безопасных, но полученных из сомнительных источников может быть очень рискованным делом. Существует множество способов скрыть заранее внедренный шелл, и злоумышленник получит доступ к сайту, не предпринимая никаких дополнительных усилий. Также стоит учитывать, что в распоряжении хакеров есть специализированные инструменты и фреймворки для поиска уязвимостей и проверки возможности выполнения SQL-инъекций. Найти уязвимость с их помощью даже на больших сайтах – дело нескольких часов.

Как найти уязвимости

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

Проведение аудита по регламенту, который будет учитывать все эти особенности, а также профессионализм и опыт проверяющих – важные слагаемые успеха. Они позволяют обнаруживать даже неочевидные угрозы, которые потенциально смогут эксплуатировать хакеры. Узнать о стоимости и порядке проведения пентеста можно, обратившись в компанию Tom Hunter.

Ваш комментарий: