Большинство web-приложений уязвимы для хакеров. Многие помнят нашумевшие случаи взлома аккаунтов политиков в Twitter. При коммуникации на уровне «клиент – сервер», когда пользователь с ПК или мобильного устройства обращается к серверу, на котором размещено приложение, происходит обмен информацией. При этом не всегда применяются современные способы обеспечения информационной безопасности.
Защита веб-приложений становится задачей и разработчиков, и пользователей. Если несколько лет назад меры защиты ограничивались настройкой веб-сервера, тщательной очисткой жесткого диска от лишних и устаревших файлов и кодов, регулярным контролем за неизменностью файлов, то по мере усиления активности хакеров и учащения DDoS-атак нужны более серьезные меры безопасности.
Веб-приложение – это техническое решение, с помощью которого клиент (пользователь) коммуницирует с сервером в режиме реального времени, например, через личный кабинет в электронном банке или страницу в социальной сети.
В формате веб-приложений, работают:
Исходя из технических характеристик и модели работы, приложения делятся на следующие типы:
1. Back-end. Под этим термином понимается серверная часть программного продукта, установленная на сервере, располагающемся на любом удалении от пользователя. Программа пишется на любом популярном языке программирования – PHP, Python, Ruby, C#.
2. Front-end. Этот тип приложения запускается в браузере пользователя. Программа пишется на языке Javascript и от back-end отличается тем, что данные пользователя не хранятся дольше одной сессии. К такому варианту относятся фоторедакторы и игры.
3. Single-page application. Этот вариант совмещает клиентскую и серверную версии.
От типа приложения зависит модель угроз, от которых его следует защищать.
Злоумышленники интересуются способами взлома веб-приложений в различных целях. Взлом учетной записи помогает получить ценный ресурс без оплаты, похитить чужого игрока в популярной игре, изменить контент в Twitter известного политика, использовать аккаунт как участника в бот-сети. Для взломщика обычно не имеют значения персональные данные лица, чей аккаунт взламывается, ему интересен лишь факт доступа к ресурсу.
Особенность взлома ресурсов – он не персонифицирован, а автоматизирован, производится массово при помощи специальных программ. Полученная информация продается или используется в целях взломщика. Владелец ресурса, работающего с клиентами по модели веб-приложения, должен уметь защитить сайт от самых распространенных способов взлома.
Простые методики защиты приложения от хакеров не требуют серьезных финансовых вливаний и доступны большинству владельцев интернет-магазинов и аналогичных ресурсов.
Среди них самые популярные:
Все способы необходимо применять в комплексе.
Прежде чем разрабатывать методику защиты веб-приложения от потенциальных угроз, сайт следует проверить на уязвимости. Проверка проводится ручным или автоматизированным способом. Программы, доступные в платной и бесплатной версиях, протестируют приложение на основные риски. Такие программные продукты существуют в двух вариантах: Black hat, моделирующие действия взломщиков, и White hat, планомерно выявляющие все недочеты системы методом сканирования.
Среди самых эффективных бесплатных инструментов-приложений следует назвать:
Также с аудитом справятся бесплатные онлайн-сервисы:
Платные ресурсы дадут больше возможностей для проверки сервиса на уязвимости, они быстрее обновляются по мере изменения структуры и характера угроз.
По результатам аудита IT-специалист может испытать шок – так много угроз будет выявлено, но не все они одинаково важны или реализуемы, хакеры используют самые простые методы взлома.
После исправления серьезных уязвимостей сканирование следует провести повторно. Закончив автоматическую проверку, можно организовать взлом веб-приложения вручную. Для этого нужно изменить значение запросов POST (отправка данных на ресурс) и GET (запрос данных у ресурса) в HTTP. Лучше использовать прокси-сервер, перехватывающий HTTP-запросы. Также необходимо обойти валидацию данных (проверку соответствия запроса заданным требованиям) и внедрить на сайт SSL-инфекцию, перехватывающую данные пользователей. Если системы мониторинга показывают существенные уязвимости, необходимо усиливать защиту в выявленных областях.
Используя платные или бесплатные ресурсы мониторинга систем безопасности необходимо проверить гипотетическую возможность хакера обойти требования обязательной аутентификации, предусмотренные для некоторых страниц веб-приложения. Для этого нужно использовать такие традиционные способы взлома как смена параметров URL (в частности, ID пользователя) или смена Cookie.
Вторым по популярности способом защитить данные пользователя после идентификации является применение защищенного протокола передачи данных HTTPS. Hyper Text Transfer Protocol Secure защищает информацию о пользователе веб-приложения при помощи шифрования трафика. Он обеспечивает сохранение конфиденциальности и целостности информации, не допуская утечку или подмену данных.
Большинство ресурсов использует технологию давно, это стало хорошим тоном, подтверждающим готовность их владельцев защищать интересы клиентов. Поисковик Google поднимает в выдаче сайты, использующие эту технологию.
HTTPS необходим, если пользователи передают сервису такие сведения, как:
При генерации запроса с формы авторизации применяются cookie-файлы, они подлежат отправке на сервер при каждом запросе. При слабой защите веб-приложения ничего не мешает злоумышленнику перехватить файлы и подделать запрос, получив права пользователя. Применение HTTPS для каждой страницы сайта снизит степень этого риска.
Решить задачу несложно, потребуются следующие шаги:
Дополнительной возможностью после настройки HTTPS станет применение Hyper Strict Transport Security (HSTS). Это опция принудительного использования протокола HTTPS, даже если сервер не поддерживает его применение. Однако и защищенные протоколы не спасут веб-приложение, если само программное обеспечение устарело.
Владелец приложения должен держать руку на пульсе обновлений программного обеспечения. Хакеры тестируют все обновления и находят в них уязвимости иногда раньше, чем разработчики. Особенно активно взламываются операционные системы, технологии управления HTTP и системы управления контентом (CMS).
В ситуации, когда сервис установлен на чужом хостинге, задача своевременной замены операционной системы ложится на плечи провайдера. Если хостинг собственный, ОС требуется менять сразу после выхода обновлений. Сайт может работать на операционной системе, предназначенной для этого типа веб-приложений (движка), стороннего производителя, особенно это характерно для интернет-магазинов. Необходимо отслеживать все обновления ПО и устанавливать новую версию сразу после ее выхода. Разработчики оповестят об этом владельца ресурса рассылкой, а наиболее популярные авторы движков, WordPress и Umbraco, сообщают об обновлениях в момент входа в панель управления сайтом.
Web-сайты часто имеют зависимые компоненты (программные модули менеджмента контента). Для управления ими используются менеджеры пакетов, например, Composer, NPM или RubyGems. За их обновлениями во избежание проблем безопасности также необходимо следить.
Безопасность веб-приложения зависит от того, насколько эффективно владельцу удается избежать SQL-инъекций. Этот метод хакерской атаки выглядит как запрос к сайту и его базе данных при помощи поля формы или параметра URL. Если при конструировании ресурса применялся язык Transact SQL, в запрос вставляется вредоносный код, с легкостью меняющий или уничтожающий данные, содержащиеся в таблицах.
Избежать риска получится, если применять параметризованные запросы, в которых задействовано несколько языков программирования.
Работа с веб-сервисами требует использования широкого инструментария для обеспечения безопасности. Помимо основных перечисленных методов, часто применяются:
Совместное применение всех доступных решений обеспечит безопасность на максимально доступном уровне.
22.11.2019
Подпишитесь на нашу рассылку и получите
свод правил информационной безопасности
для сотрудников в шуточных