Найти в Дзене
CISOCLUB

Как защитить приложения от атак?

Изображение: recraft И как компания может защитить себя и пользователей Мобильные и веб-приложения полезны и бизнесу, и его аудитории. Через них пользователи делают покупки, заказывают доставку, записываются в салоны красоты и на тренировки. Это быстро, просто, удобно и для клиента, и для компании. Но не всегда безопасно. Как злоумышленники атакуют приложения, к каким последствиям это может привести и что сделать, чтобы обезопасить свой бизнес и своих клиентов, — рассказывает Александр Осипов, директор по продуктам компании RED Security, Содержание: DDoS-атаки Один из самых распространенных вариантов атак — это атака вида «отказ в обслуживании», когда злоумышленники направляют к приложению множество запросов, перегружают и выводят из строя его сервера и сетевое оборудование. В результате приложение становится недоступным для пользователей. Для проведения DDoS-атак могут использоваться ботнеты. Это сети из множества устройств – компьютеров, смартфонов и даже умных чайников и пылесосов с
Оглавление

Изображение: recraft

И как компания может защитить себя и пользователей

Мобильные и веб-приложения полезны и бизнесу, и его аудитории. Через них пользователи делают покупки, заказывают доставку, записываются в салоны красоты и на тренировки. Это быстро, просто, удобно и для клиента, и для компании. Но не всегда безопасно.

Как злоумышленники атакуют приложения, к каким последствиям это может привести и что сделать, чтобы обезопасить свой бизнес и своих клиентов, — рассказывает Александр Осипов, директор по продуктам компании RED Security,

Содержание:

  • Каким видам атак подвержены клиентские приложения.
  • Какой ущерб бизнес несет из-за атак на приложения.
  • Методы защиты приложений от атак.
  • Как пользователь может защитить себя сам.
  • Коротко о главном.

Каким видам атак подвержены клиентские приложения

DDoS-атаки

Один из самых распространенных вариантов атак — это атака вида «отказ в обслуживании», когда злоумышленники направляют к приложению множество запросов, перегружают и выводят из строя его сервера и сетевое оборудование. В результате приложение становится недоступным для пользователей.

-2

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

Например, в октябре прошлого года инфраструктура крупной российской розничной сети подверглась мощной DDoS-атаке. В течение суток злоумышленники атаковали онлайн-ресурсы компании, меняя векторы атак более 5-ти раз, мощность атаки в пике доходила до 180 Гбит/с. В результате были остановлены продажи в магазинах по всей стране, так как не работали внутренние приложения учета продаж, в которых продавцы оформляли реализацию товаров и заявки на доставку. Как впоследствии подсчитали финансисты, упущенная выгода сети за сутки составила около 100 млн руб.

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

Эксплуатация уязвимостей приложений

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

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

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

-3

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

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

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

Бот-атаки

Атаки на приложения часто проводят автоматизированными средствами — теми же ботами, которых злоумышленники используют при поиске уязвимостей. Вариативность бот-атак очень широка.

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

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

Кроме того, в сети широко распространено использование сникеров – так называют ботов, которые массово оформляют в онлайн-магазине заказы на дорогие товары. После этого возможно два варианта развития событий:

  • бот не оплатит товар, но тот забронируется и станет недоступным для реальных покупателей;
  • владелец бота действительно выкупит товар для перепродажи по более высокой цене.

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

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

Помимо вышеперечисленного с помощью ботов злоумышленники:

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

И это далеко не исчерпывающий список — разнообразие бот-атак впечатляет.

Какой ущерб бизнес несет из-за атак на приложения

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

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

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

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

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

  • Репутационные потери. Успешный взлом приложения ставит под угрозу репутацию компании. К приложению начинают относиться с подозрением как к ненадежному.
  • Отток пользователей. Этот вид ущерба часто является следствием репутационных потерь и утечек данных. Однако и просто недоступность веб- или мобильного приложения или его отдельных функций из-за DDoS-атак приводят к тому, что пользователи переключаются на конкурирующие сервисы, которые работают исправно.

В этом отношении весьма показателен пример одного онлайн-издания, которое в конце прошлого года столкнулось в дефейсом своего сайта. Хакеры, используя уязвимость в программном обеспечении, на котором был выстроен сайт, внедрили в него вредоносный код, позволивший им заменить содержание некоторых новостей на фейковые, содержащие оскорбительные и политически окрашенные высказывания. В результате в соцсетях пользователи начали активно писать негативные отзывы о СМИ, а в течение месяца после инцидента посещаемость ресурса снизилась почти на 40%.

Иногда последствия бывают еще более серьезными — под угрозой оказываются здоровье и жизнь пользователей. Такое редко происходит в результате атак на приложения для клиентов, но несколько подобных инцидентов всё же случалось. Например, прогремевший на весь мир в 2015 году взлом приложения для онлайн-знакомств Ashley Madison. Хакеры украли данные 30 миллионов пользователей и начали шантажировать их обнародованием информации. Результатом атаки стало множество разводов из-за обвинения в изменах. И самое страшное — несколько самоубийств людей, не выдержавших прессинга.

Методы защиты приложений от атак

Стопроцентная безопасность недостижима, но существенно снизить риски вполне реально. Вот какие действия помогут уменьшить риск успешной атаки на приложение.

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

В идеале хорошо иметь несколько команд разработчиков: одни пишут код, другие анализируют его безопасность. А команда, отвечающая за code review — проверку кода, еще и предложит более оптимальный вариант реализации функции или запроса.

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

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

  • AntiDDoS — тщательно проверяет поступающий к приложению трафик, пользовательский ли он или имеет признаки DDoS-атаки. Вредоносный трафик отфильтровывается, а прошедший проверку направляется в приложение.
  • AntiBot — выявляет и блокирует запросы вредоносных ботов к приложению. Также обнаруживает их попытки имитировать действия пользователей при обращении к сайту или приложению. Ботов система выявляет по характерным признакам, например, особенностям поведения, отличным от пользовательского. Легитимных ботов, например, поисковых, не блокирует.
  • WAF — файервол для веб-приложений – защищает приложения от взлома с помощью эксплуатации уязвимостей, от кражи данных. Он выявляет и блокирует подозрительные запросы в трафике, которые могут говорить о поиске уязвимостей в приложении и попытке его взлома.

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

Проведение пентестов и аудитов. Уже работающее приложение тоже стоит регулярно проверять на уязвимости. Иначе не избежать сюрпризов вроде того, что мы недавно наблюдали в одной медицинской компании.

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

Разбирая логи, аналитики обнаружили в стандартных php-файлах системы управления порталом уязвимость типа remote code execution (удаленное исполнение кода), которую злоумышленники как раз и проэксплуатировали. Интересно, что для закрытия этой уязвимости к тому времени разработчик системы управления сайтом уже выпустил патч, но медицинская компания своевременно не обновила свою версию системы. Компанию спасло лишь то, что ее веб-сервер находился на мониторинге у SOC (центра реагирования на кибератаки), поэтому дальнейшего развития атака не получила.

Как мы видим, своевременно обновлять ПО и периодически проверять его на уязвимости необходимо. А вот как это делать, зависит от бюджета и потребностей компании, например, от того, насколько часто ее пытаются взломать.

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

Частота проверок зависит от особенностей системы. Чем чаще приложение обновляют, чем больше в нём компонентов, тем выше потребность в регулярной проверке безопасности. Самые критичные узлы мониторят и защищают непрерывно, например, с помощью SOC — центра реагирования на киберинциденты.

Как пользователь может защитить себя сам

Даже если с технической стороны приложение защищено — злоумышленники всё еще могут манипулировать его пользователями. Это называется социальной инженерией. Для такой атаки не нужно взламывать приложение: достаточно ввести в заблуждение человека, чтобы он сам передал информацию.

Чтобы защитить пользователей своих приложений от таких инцидентов, компания может распространять среди них информацию о безопасном поведении в цифровой среде. Среди основных правил, которые пользователям необходимо знать:

  • не следует переходить по подозрительным ссылкам, которые поступили на e-mail, по SMS или в мессенджере из непроверенных источников;
  • нужно всегда проверять адрес сайта перед покупкой — ошибки в доменном имени и его отличия от официального адреса онлайн-магазина означают, что страница мошенническая;
  • никому нельзя сообщать логины, пароли, коды из SMS и любую другую ценную информацию, которая позволяет получить доступ к аккаунтам человека в приложениях и сервисах;
  • не стоит вводить в приложениях чувствительные данные, например, платежные, при подключении к открытым сетям Wi-Fi — они могут быть скомпрометированы.

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

Коротко о главном

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

Автор: CPO Red Security Александр Осипов.

Оригинал публикации на сайте CISOCLUB: "Как атакуют приложения, которые бизнес создает для своих клиентов".

Смотреть публикации по категориям: Новости | Мероприятия | Статьи | Обзоры | Отчеты | Интервью | Видео | Обучение | Вакансии | Утечки | Уязвимости | Сравнения | Дайджесты | Прочее.

Подписывайтесь на нас: VK | Rutube | Telegram | Дзен | YouTube | X.