Спасите сайт! 10 советов по безопасности веб-приложений

Занимаетесь развитием своего или чужого сайта? Ваш ресурс под угрозой! В этой статье об улучшении безопасности веб-приложений.

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

К примеру, об этом свидетельствует факт атаки на крупного провайдера Dyn в октябре 2016 года. Тогда десятки крупных платформ и сервисов оказались недоступны. Как считают аналитики, количество DDoS-атак будет расти в течение следующих лет.

Тотальных способов защиты нет, но можно снизить риск. Здесь собрано 10 наиболее важных рекомендаций по безопасности веб-приложений. Обязательны к ознакомлению.

1. Выработайте план защиты

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

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

Единого плана не может быть, но если вы не знаете с чего начать, стоит опираться на чек-лист Synopsis. В нём рассказывается о шести ключевых этапах обеспечения безопасности.

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

2. Проведите digital-инвентаризацию

Как много инструментов используется в работе компании? Не знаете? А зря: вероятно, вы тоже используете не совсем "чистые" приложения. Они незаметны до тех пор, пока всё работает хорошо. Рассчитывать на эффективную защиту, не зная точно, какие приложения использует ваша компания, опасно.

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

3. Установите приоритеты для приложений

После инвентаризации существующих веб-приложений идет их сортировка в порядке важности. Разделите приложения на 3 категории: критические, важные, обычные.

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

Важные приложения − приложения могут быть внутренними или внешними и содержат конфиденциальную информацию.

Обычные приложения − не подвержены серьёзным уязвимостям, но стоит иметь в виду как потенциальный источник утечки.

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

4. Выделите наиболее опасные уязвимости

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

Устранить все уязвимости из всех веб-приложений нереально! Не тратьте на это время. Даже после классификации ваших приложений в соответствии с их важностью потребуется много времени для их тестирования.

Так на каких уязвимостях сосредоточиться? А это зависит от приложений, которые вы используете. Универсальных методов здесь тоже нет, но в следующих разделах мы расскажем о базовых принципах определения критических уязвимостей.

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

5. Проверяйте разрешения приложений при запуске

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

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

Что делать, если администратор заблокирует нужную функцию? Придётся сообщить ему об этом, объяснить, зачем функция нужна, подождать, пока он снова её активирует. Да, это долго, зато безопасно.

6. Пока устраняете проблемы, введите временные меры безопасности

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

  1. Заблокируйте некоторые функции в отдельных приложениях. Если какая-то из функций делает приложение более уязвимым для атак, отключите её на время. Конечно, если она не является основной в приложении.
  2. Используйте брандмауэр веб-приложений (WAF) для защиты от самых неприятных уязвимостей. WAF фильтрует и блокирует нежелательный HTTP-трафик, поступающий в веб-приложение, помогает защитить от XSS, внедрения SQL и многого другого.

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

7. Использование Cookie

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

Хотя вам, разумеется, не нужно прекращать использование файлов cookie. Просто измените настройки, чтобы минимизировать риск атак.

  1. Во-первых, никогда не используйте куки для хранения конфиденциальной или критически важной информации − для запоминания паролей пользователей, так как это позволяет хакерам невероятно легко получить несанкционированный доступ.
  2. Кроме того, следует ограничить срок действия файлов cookie. Месяца вполне достаточно.
  3. Наконец, рассмотрите возможность шифрования информации, хранящейся в используемых вами файлах cookie.

8. Пройдитесь по рекомендациям из чек-листа

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

  • Реализуйте HTTPS и перенаправьте весь HTTP-трафик на HTTPS.
  • Предотвратите атаки межсайтовых скриптов, используя HTTP-заголовки − x-xss-protection.
  • Организуйте политику безопасной работы с контентом.
  • Активируйте HTTP Public Key Pinning.
  • Примените SRI к <script> или <link> элементам.
  • Используйте обновленную версию TLS. Чтобы узнать больше, почитайте статью TLS 1.2 против TLS 1.1 и перестаньте использовать SSL.
  • Это самое очевидное − используйте надежные пароли из разных символов. Для создания и хранения советуем использовать KeyPass.

9. Проведите с сотрудниками тренинг по безопасности

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

Обученные сотрудники смогут сами обнаруживать базовые уязвимости. Информирование всех о важности безопасности веб-приложений − это простой способ вовлечь всех в процесс поиска и устранения уязвимостей. Наймите специалиста или договоритесь с кем-нибудь внутри команды, чтобы разъяснить основные принципы безопасности.

10. Поощряйте пользователей за найденные уязвимости

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

Такую практику реализуют и в крупных компаниях вроде Google, Microsoft или Amazon.

Заключение

Как видим, поддержание передовых методов обеспечения безопасности веб-приложений − коллективная работа. Конечно, можно предпринять более простые шаги, которые в моменте закроют образовавшиеся проблемы. Однако по мере роста приложений, они становятся все более громоздкими для отслеживания, с точки зрения безопасности. Использование рекомендаций из статьи поможет обеспечить безопасность ваших приложений для пользователей в долгосрочном периоде.

Понравились советы по улучшению безопасности веб-приложений? Вас заинтересует следующее:

Источник: 11 советов по безопасности веб-приложений на Keysdn

А как улучшаете безопасность вы? Напишите в комментариях.

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ