Хакерские атаки на веб-приложения: типовые сценарии
Веб-приложения, в особенности – общедоступные, зачастую становятся целями компьютерных мошенников. Авторы нередко пренебрегают принципами безопасности и защиты, что повышает уязвимость. При этом в приложениях хранится множество данных, представляющих ценность, персональных и коммерческих. Использовать информацию можно для извлечения выгоды, нанесения репутационного ущерба и других действий.
Какие сценарии чаще прочих используются для атаки на приложения? Как предотвратить негативное развитие событий? Какие защитные инструменты и алгоритмы являются наиболее эффективными мерами противодействия?
Сетевые уязвимости
Сценарий, востребованный при атаке на веб-приложения организаций. К категории таковых относятся интернет-магазины, городские, региональные новостные платформы, сайты, представляющие различные структуры, коммерческие, промышленные. Особенность любого сайта – общедоступность, зайти на него может любой желающий. Это обеспечивает популярность и посещаемость, но открывает широкое поле возможностей для злоумышленников.
Тестирования показали, что один из простейших вариантов атаки – регистрация нового пользователя. Эта функция доступна на большинстве ресурсов. Более того, иногда к регистрации подталкивает сама платформа, не дает оформлять заказы, оставлять комментарии гостям без учетных записей.
Право каждого пользователя – загрузка на сайт файлов, например, графических изображений для сопровождения публикаций и комментариев. Проверка безопасности, активирующаяся при загрузке, максимально примитивна. Стандарт – оценка расширения, но хакер может изменить его. Результат – отправка на сервер не безобидной фотографии, а интерпретатора командной строки, дающего, по сути, неограниченный контроль над приложением.
SQL-запросы
Сценарий, родственный предыдущему, повышающий общую эффективность атаки. Его используют более опытные хакеры, знающие тонкости составления SQL-запросов, умеющие обходить фильтрацию файлов, маскировать вредоносные – под безопасные. Наибольшему риску подвержены приложения, создатели которых пренебрегают простейшими мерами защиты, не ограничивают загрузку, не внедряют алгоритмы контроля.
Эффективные меры противодействия такому сценарию выглядят следующим образом:
Разграничение прав пользователей, посетителей.
Четкий алгоритм действий при авторизации, с подтверждением учетной записи вводом пароля или подобным действием.
Тщательная проверка всех файлов, загружаемых на сервер. Контролируется не просто расширение, но тип, код.
Внедрение межсетевых экранов уровня приложения.
DoS
Знаменитая DoS-атака. Аббревиатура расшифровывается как “Denial of service”, что можно перевести как “отказ в обслуживании”. Хакеры перегружают сервер веб-приложения тысячами запросов, из-за чего он попросту перестает реагировать на “правильные” запросы, отправляемые обычными пользователями. При попытке захода видны уведомления о невозможности открыть страницу, либо их загрузка занимает очень много времени. Потенциальные клиенты, конечно, не будут томиться в ожидании и уйдут к конкурентам.
Эффективные способы защиты таковы:
Внедрение рейт-ограничителя. Специальный модуль приложения, блокирующий трафик по достижении критической массы запросов. Ограничения связываются с конкретными устройствами или IP-адресами. К сожалению, технология не сработает против DDoS-атаки. Она предполагает отправку запросов с виртуальных устройств, количество которых, по сути, не ограничено. Блокировки по IP в таком случае бессильны.
Наращивание ресурсов. Мощность сервера, на котором размещено веб-приложение, возрастает. Соответственно, его становится сложнее перегрузить некорректными запросами.
Внедрение распределенных систем, усложняющих достижение хакерами поставленных задач. Вполне вероятно, что мошенники предпочтут не связываться с защищенным приложением, переключатся на более доступную цель.
Slowloris
Нестандартный формат DoS-атаки. Он строится не на количестве запросов, а на их длительности. Информация в рамках одного обращения пересылается очень медленно, а пока передача не будет завершена – сервер не может ни разорвать контакт, ни переключиться на новый запрос. Мера противодействия – ограничитель времени. При превышении тайм-аута происходит автоматический разрыв.
Click Jacking
Перевести название этого сценария можно как “похищение клика”. Один из распространенных способов регистрации в веб-приложении – указание базовых личных сведений, телефонного номера, имени, электронной почты.
Многие хакеры мечтают о таких данных. Номера можно использовать для спам-звонков, электронную почту – для рассылок. Алгоритм атаки в данном случае таков:
Создание вредоносной страницы с элементом, требующим пользовательского действия. Например, это необычная картинка или видео, связанные с атакуемым приложением. Ниже видео – кнопка типа “Лайк”.
Наложение незаметного фрейма с загруженным атакуемым приложением на эту кнопку.
Связывание пользовательского действия с определенным действием в веб-приложении.
Просьба о подтверждении действия вводом нужной хакеру информации.
В результате пользователь думает, что ставит безобидный “класс”, а по факту – вынужден делиться личными данными, даже не подозревая о том, что эта просьба поступает не от его любимого приложения, а от хакеров.
Задача разработчиков в данном случае – использование специальных HTTP-заголовков. Их грамотная настройка исключает отображение страниц приложения внутри фрейма. Решение простое, но максимально эффективное, полностью нивелирующее шанс на реализацию указанного сценария. Именно его используют специалисты крупнейших социальных сетей.
Открытость данных
Это не сценарий, но фактор, значительно снижающий общий уровень безопасности веб-приложения. Разработчики зачастую оставляют критически важную информацию открытой, доступной каждому желающему. Например, при просмотре страницы целевого сайта злоумышленники сразу видят адреса, где расположены наиболее ответственные системы, сервера, версии используемого программного обеспечения. Опытным хакерам этого вполне достаточно для “точечных” атак, ударов в наиболее уязвимые точки, будь то учетные записи администраторов с неограниченными правами или модули, отвечающие за загрузку на платформу файлов.
Мера противодействия – максимальная внимательность и предусмотрительность администраторов. Они должны следить за открытой и скрытой информации, не допускать общедоступности ценных сведений.
Подведение итогов
Конечно, перечисленными сценариями дело не ограничивается. В распоряжении хакеров есть и другие инструменты. Более того, их количество постоянно увеличивается, цифровые технологии активно развиваются, далеко не всегда это развитие направлено на благие цели.
Минимизировать риски взлома приложения можно, придерживаясь ряда принципов:
Строгая политика авторизации, обязательный ввод пароля для каждого пользователя веб-приложения, вне зависимости от статуса.
Дополнительная защита для учетных записей с повышенными привилегиями. Например, двухфакторная идентификация, требующая ввода не только пароля, но и одноразового кода, приходящего в формате текстового сообщения или push-уведомления.
Регулярное обновление модулей, обеспечивающих безопасность веб-приложений, использование актуального, проверенного программного обеспечения.
Регулярное проведение комплексных тестирований приложений на предмет безопасности, его устойчивости к взлому, краже данных и другим действиям, характерным для хакеров.
Также следует проводить регулярные обучения персонала, ответственного за развитие веб-платформы, так или иначе, взаимодействующего с ним. Все специалисты должны быть осведомлены о правилах сетевой безопасности, понимать ее важность, строго следовать политике организации.