В этой статье пойдет речь о 7 лучших практиках, которые обеспечивают надежную защиту статических сайтов, что дает возможность владельцам ресурсов чувствовать себя в безопасности.
Статические веб-сайты хранят уже отрендеренный контент, поэтому им не нужно обращаться к какой-либо базе данных или запускать сложные скрипты. Они не зависят от механизма выполнения всякий раз, когда пользователь запрашивает страницу.
Это дает человеку явные преимущества: можно сократить время загрузки и усилить безопасность сайта. Это, в свою очередь, означает, что поисковые системы будут ранжировать статические страницы в разы быстрее, чем их динамические аналоги.
SEO-специалисты обращаются к статическому контенту всякий раз, когда они понимают, что конкуренция в мире зависит от скорости работы ресурса: каждая дополнительная секунда может негативно отразиться на успехе фирмы и ее продажах. Статическое развертывание контента стало популярным среди маркетинговых стратегов, а IТ-персоналу нравится, что у них есть дополнительная работа – особое уязвимое место, за которым нужно постоянно следить.
Следует отметить, статические сайты не являются на 100% защищенными от взлома, поэтому, если человек планирует разместить статический контент на своем веб-сайте, есть некоторые рекомендации, которые он должен соблюдать. Это поможет обеспечить безопасность ресурса.
1. Использование заголовков HTTP для обеспечения безопасности
Заголовки безопасности представляют собой подмножество заголовков ответов HTTP: пакет метаданных, ошибок кода, правил кэша и т.д. Это то, что веб-сервер добавляет к контенту, с которым он взаимодействует. Заголовки безопасности предназначены для того, чтобы указывать браузеру, как поступать и каким образом обрабатывать получаемый контент. Не все браузеры поддерживают различные заголовки безопасности, но есть небольшой стандартный набор, который обеспечивает базовую защиту, чтобы предотвратить атаку хакеров и скрыть от них возможные уязвимости.
X-Frame-Options: SAMEORIGIN
Заголовок X-Frame-Options предназначен для аварийного отключения статического сайта или избавления его от рисков, связанных с iframes. Iframes могут быть использованы хакерами для захвата легитимных кликов и перенаправления посетителей сайта на любой другой URL-адрес, который был указан мошенниками. Существуют различные способы предотвращения использования iframes в преступных целях.
Наилучший способ обеспечения защиты, рекомендованный OWASP (Open Web Application Security Project), включает в себя использование этого заголовка с тем же параметром Origin, что позволяет применять iframes только из одного источника. С помощью других функций человек может запретить или полностью отключить iframes и, наоборот, разрешить, чтобы только определенные URL-адреса имели возможность добавлять страницы в iframes.
X-XSS-Protection: 1; mode=block
Заголовок X-XSS-Protection предназначен для защиты веб-сайтов от межсайтового скриптинга. Его функция по обеспечению безопасности может работать в двух режимах:
- X-XSS-Protection: 1
- X-XSS-Protection: 1; mode=block
Первая разновидность заголовка более незащищенная; она фильтрует скрипты от запроса к веб-серверу, но все равно визуализирует страницу. Вторая разновидность заголовка более безопасна, так как она блокирует всю страницу при обнаружении скрипта X-XSS в запросе. Второй вариант является рекомендуемой практикой OWASP.
X-Content-Type-Options: nosniff
Этот заголовок предотвращает использование MIME-сниффинга – он позволяет браузеру сканировать содержимое и реагировать иначе, чем требуется. Когда данный заголовок присутствует, браузер должен установить тип контента в соответствии с указанными параметрами, а не определять его путем сниффинга контента заранее.
Если пользователь применяет этот заголовок, ему следует дважды проверить, что типы контента правильно указаны на каждой странице статического веб-сайта.
Content-Type: text/html; charset=utf-8
Эта строка добавляется пользователем в заголовки запросов и ответов для HTML-страниц, начиная с версии 1.0 протокола HTTP. С помощью нее все теги отображаются в браузере, и это видно на самой веб-странице.
2. Использование сертификатов TLS
Применение сертификата SSL / TLS считается обязательным для любых веб-сайтов, поскольку он позволяет веб-серверу шифровать данные, которые отправляются в веб-браузер по безопасному протоколу HTTPS. Таким образом, если данные будут перехвачены во время их отправки, они станут нечитабельны, что крайне важно для защиты конфиденциальности пользователей и обеспечения безопасности веб-сайта. Статический веб-сайт не хранит личную информацию своих посетителей, но очень важно, чтобы информация, которую он запрашивает, не была замечена нежелательными наблюдателями.
Использование шифрования данных веб-сайта необходимо для того, чтобы большинство веб-браузеров отметили его как безопасный сайт, и является обязательным для сайтов, которые стремятся соответствовать общему регламенту ЕС по защите данных (GDPR). В законе конкретно не говорится, что следует использовать SSL-сертификат, но это самый простой и надежный способ удовлетворить требования конфиденциальности, содержащиеся в регламенте.
С точки зрения безопасности SSL-сертификат позволяет властям проверять право собственности на веб-сайт и предотвращать создание хакерами его фейковых версий. Использование SSL-сертификата дает возможность посетителям удостовериться в подлинности ресурса и почувствовать уверенность в том, что никто не сможет шпионить за их деятельностью на сайте.
Хорошая новость еще заключается в том, что сертификат стоит недорого. На самом деле, его можно даже получить бесплатно от ZeroSSL или купить премиум-версию в магазине SSL.
3. Развертывание защиты от DDoS-атак
Распределенные атаки на отказ в обслуживании (DDoS-атаки) в настоящее время становятся все более популярными. При этом типе атак набор распределенных устройств используется для того, чтобы завалить сервер потоком запросов, пока он не насытится и просто не откажется работать. Не имеет значения, имеет ли сайт статический контент — его веб-сервер легко может стать жертвой DDoS-атаки, если не предпринять необходимые меры.
Самый простой способ реализовать защиту от DDoS- атак — это найти поставщика услуг безопасности, который позаботится обо всех киберугрозах. Эта служба будет обеспечивать обнаружение вторжений, предоставит антивирус, выявит уязвимости и многое другое. Владельцу сайта практически не придется беспокоиться о каких-либо угрозах.
Такое комплексное решение может дорого обойтись, но существуют и более бюджетные целенаправленные решения, такие как DDoS Protection as a Service (DPaaS). Нужно спросить своего хостинг-провайдера, доступна ли у него такая услуга.
Другими решениями являются облачные службы защиты от DDoS-атак, такие как Akamai, Sucuri или Cloudflare. Эти сервисы обеспечивают раннее обнаружение и анализ DDoS-атак, а также фильтрацию и перенаправление этих атак — то есть перенаправление вредоносного трафика.
Рассматривая подобные решения, пользователь должен обратить свое внимание на пропускную способность сети: этот параметр указывает на то, какую интенсивность атак сможет выдержать защита.
4. Отказ от незащищенных библиотек JavaScript
Даже если сайт содержит статический контент, он может использовать библиотеки JavaScript, которые являются незащищенными. Считается, что 20% этих библиотек делают веб-сайт более уязвимым. К счастью, пользователь может воспользоваться сервисом, разработанный Vulnerability DB, чтобы проверить, является ли конкретная библиотека безопасной. В базе данных можно найти подробную информацию и рекомендации по борьбе с множеством известных уязвимостей.
Помимо проверки конкретной библиотеки на наличие уязвимостей, человек способен последовать рекомендациям для обеспечения безопасности библиотек JavaScript. Это поможет предотвратить возможные риски:
- Не нужно использовать внешние библиотечные серверы. Вместо этого следует хранить библиотеки на том же сервере, на котором размещен и веб-сайт. Если необходимо применить внешние библиотеки, стоит избегать библиотек с серверов, занесенных в черный список, и периодически проверять безопасность внешних серверов.
- Надо также использовать управление версиями для библиотек JavaScript и убедиться, что человек загрузил последнюю версию каждой библиотеки. Если управление версиями не подходит, стоит задействовать версии, защищенные от известных уязвимостей. К примеру, можно взять retire.js для обнаружения уязвимых версий.
- Нужно регулярно проверять, использует ли сайт внешние библиотеки, о которых владелец не знает. Таким образом, станет сразу ясно, если хакер применяет ссылки на нежелательных поставщиков библиотек. Инъекционные атаки маловероятны на статических сайтах, но время от времени не повредит провести подобную проверку.
5. Реализация стратегии резервного копирования
Статический веб-сайт всегда должен иметь стратегию безопасного резервного копирования своего контента после внесения изменений. Резервные копии надежно сохраняются и будут легко доступны на случай, если пользователю потребуется восстановить веб-сайт в случае сбоя. Существует множество способов резервного копирования статического веб-сайта, но в целом их можно разделить на ручные и автоматические.
Если содержимое веб-сайта меняется не очень часто, стратегия резервного копирования вручную вполне подойдет — просто нужно помнить о том, что следует сделать новую резервную копию сайта всякий раз, когда были внесены изменения. Если у пользователя есть панель управления для руководства учетной записью хостинга, очень вероятно, что в этой панели управления он найдет возможность создавать резервные копии. Если нет, человек всегда может применить FTP-клиент для загрузки всего содержимого веб-сайта на локальное устройство, где он способен сохранить данные в безопасности и восстановить их при необходимости.
Конечно, вариант автоматического резервного копирования предпочтительнее, если пользователь хочет свести к минимуму управление своим сайтом. Но он обычно предлагается в качестве премиум-функции хостинг-провайдерами, что может обойтись пользователю в копеечку.
6. Использование надежного хостинг-провайдера
Надежный веб-хостинг необходим для того, чтобы гарантировать бесперебойную и быструю работу сайта, а также для того, чтобы пользователь был уверен, что его ресурс не взломают. Большинство обзоров веб-хостингов предоставляют пользователю наглядное сравнение скорости, времени безотказной работы и качества поддержки клиентов, но при рассмотрении безопасности веб-сайта есть некоторые аспекты, которые следует тщательно изучить. О них следует спросить провайдера, прежде чем начать сотрудничество:
- Безопасность программного обеспечения: нужно выяснить, как происходит обновление программного обеспечения; например, все программное обеспечение обновляется автоматически или каждое обновление подвергается процессу тестирования перед началом развертывания.
- Защита от DDoS: в случае, если этот вид защиты входит в состав хостинга, следует запросить подробную информацию о том, как она реализована, чтобы проверить, соответствует ли это требованиям сайта.
- Доступность и поддержка SSL: поскольку в большинстве случаев сертификатами управляет хостинг-провайдер, необходимо проверить, какой сертификат он предлагает и какова политика продления его действия.
- Резервное копирование и восстановление: многие хостинг-провайдеры предлагают автоматизированную службу резервного копирования, что радует, потому что она практически позволяет забыть о создании резервных копий, их хранении и обновлении. Однако стоит вспомнить о стоимости такой услуги.
- Защита от вредоносных программ: надежный хостинг-провайдер должен иметь свои серверы, защищенные от вредоносных программ, путем периодического сканирования и мониторинга целостности файлов. В случае совместного хостинга желательно, чтобы хостинг-провайдер использовал изоляцию учетной записи, чтобы предотвратить распространение вредоносных программ между подключенными ресурсами.
- Использование межсетевого экрана: хостинг-провайдер может повысить уровень безопасности, применяя межсетевой экран, который не пропускает враждебный трафик.
7. Использование надежной политики паролей
Поскольку статический сайт не имеет базы данных или системы управляемого контента, он содержит меньше имен пользователей и паролей. Но все равно придется применить политику паролей для учетных записей хостинга или FTP, которые будут использованы для обновления статического контента.
Надежные практики для обеспечения безопасности паролей включают в себя:
- Постоянную смену паролей
- Установку минимальной длины пароля
- Использование комбинаций прописных / строчных букв вместе со специальными символами и цифрами
- Отсутствие их отправки по электронной почте или с помощью текстовых сообщений
Кроме того, пароль по умолчанию для административных учетных записей должен быть изменен с самого начала — это распространенная ошибка, которой хакеры могут воспользоваться.
Автор переведенной статьи: Geekflare Editorial