+7 (3843) 910-190

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

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

Просмотры 267

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


В общем и целом, как вы уже поняли, защита своих данных в веб-приложениях целиком и полностью ложится на ваши плечи. “Спасение утопающих, дело рук самих утопающих”, - помните об этом и не стройте иллюзий о неприступности своих веб-ресурсов, когда планируете работы по информационной безопасности.  Общедоступные веб-приложения интересны хакерам как ресурсы или инструменты заработка. Веб стал очень популярным, в нем появились возможности финансового роста - что естественно привлекло в эту сферу желающих незаконно воспользоваться чужим трудом. Личность владельца не важна, так как процесс взлома автоматизирован и поставлен на поток. Стоимость информации пропорциональна известности и влиятельности компании. Так к примеру, жертвой взлома стали ребята из SafeBrowse - в их популярное расширение для Chrome был запущен вредоносный JavaScript, который заставлял браузеры пользователей майнить криптовалюту Monero.

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

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

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

Очень часто многие программисты и знатоки IT-технологий уверяют, и чуть ли не в один голос кричат о том, что уязвимостей скоро не будет - есть модные, стильные, молодежные и крутые *фреймворки (различные инструменты и расширения, которые могут быть применены при создании всевозможных шаблонов веб-сайтов), исходный код проверяют тысячи человек, и вообще всё “на мази”, а хакеры эти проклятые скоро вымрут и ничто не будет нам угрожать.

А как же на практике? А на практике совсем другая картинка вырисовывается.

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

Давайте быстренько пробежимся по основным способам и пунктам защиты ваших веб-приложений от хакеров. Если будете следовать советам ниже, шансы на взломы резко сократятся.



Защитите пользовательские данные с помощью HTTPS

HTTPS - это расширение, которое зашифровывает и защищает ваши данные при передаче в Интернете. Оно гарантирует целостность и конфиденциальность взаимодействия с сервером.

Виктор Карионов - руководитель компании IT-INFINITY

HTTPS - это ваш персональный ключ, на который вы “запираете” свои данные, и в случае их перехвата хакеру придется попотеть, чтобы понять, что это были за данные. И чтобы предотвратить попытки взлома, я настоятельно рекомендую использовать HTTPS абсолютно на всех страницах сайта.


Обновляйте программное обеспечение

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

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


Предотвратите межсайтовый скриптинг

Межсайтовый скриптинг (или XSS) - это один из самых распространенных видов хакерской атаки на прикладном уровне. Целью XSS является:

  • Кража аккаунта;

  • Получение доступа к защищенным или конфиденциальным данным;

  • Получение бесплатного доступа к платному контенту;

  • Слежение за посещением сайтов пользователем;

  • Изменение настроек браузера;

  • Публичная клевета в адрес отдельного лица или корпорации;

  • Повреждение веб-приложения;

  • DOS-атаки.

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

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

Михаил Бартули - управляющий компании IT-INFINITY

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

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


Проверяйте и шифруйте пароли

Храните пароли в виде хэша. Лучше использовать алгоритмы одностороннего хэширования, например, SHA («Secure Hash Algorithm 1» - алгоритм криптографического хеширования). В этом случае для авторизации пользователей сравниваются хэшированные значения. Если злоумышленник взломает ресурс и получит хэшированные пароли, ущерб будет снижен за счёт того, что хэш имеет необратимое действие и получить из него исходные данные практически невозможно. Но хэши на популярные пароли легко перебираются по словарю, поэтому используйте также «перчинку», уникальную для каждого пароля. Тогда взлом большого количества паролей становится еще медленнее и требует больших вычислительных затрат.


Контролируйте процесс загрузки файлов

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


Следите за сообщениями об ошибках

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


Проверяйте входящие данные

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

Если вы будете следовать перечисленным выше советам, то это в значительной мере позволит усилить устойчивость вашего приложения к различного рода атакам. Не доверяйте данным, введённым пользователями. Защищайте ваши файлы и базу данных. И да прибудет с Вами сила IT.


Похожие публикации:

Возврат к списку