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

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

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

О чем пойдет речь

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

«Облачный» файрвол – провайдеры Cloudflare, Sucuri или AWS от Amazon

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

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

Указанная технология позволяет не зависеть от программной платформы сайта и значительно упрощает настройки защитных механизмов, тех же самых правил. В теории, как только вы настроили свой веб-сайт на работу через серверы провайдера «облачного» сетевого экрана, вы получаете надежную защиту, так как весь трафик анализируется на предмет вредоносного происхождения и подозрительные действия. Такой брандмауэр позволяет защитить сайт от распространенных уязвимостей в приложениях, снизить вероятность SQL-инъекций, XSS-атак (межсайтовый скриптинг), CSRF-атак (подделка межсайтовых запросов), без каких-либо изменений в существующей инфраструктуре на сервере сайта. Это реально экономично и очень удобно.

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

Как потенциальный злоумышленник может найти реальный IP-адрес сайта? Несколько способов:
– Использовать специальные сервисы для поиска истинного IP: https://cloudpiercer.org/ и http://www.crimeflare.com/cfs.html
– Посмотреть на IP-адреса поддоменов таких как – mail.example.com, ssh.example.com и т.п. Во многих случаях они указывают на оригинальный IP-адрес.
– Использовать инструменты, показывающие историю изменения IP-адресов, связанных с вашим сайтом – к примеру, этот сервис (http://viewdns.info/iphistory/). При помощи истории, злоумышленник может узнать, каким был IP-адрес до использования «облачного» сетевого экрана.
– Использовать метод pingback (XML-RPC-запрос) для получения реального IP-адреса сайта. Специально сформированный запрос позволит узнать настоящий IP. К примеру, в WordPress pingback позволяет уведомить авторов материалов, когда кто-либо ссылается на их документ.
– Использовать данные SPF-записи в DNS, чтобы выявить происхождение реального IP сайта.
– Изучение исходников и лог-файлов позволяет также найти настоящий IP-адрес.

Как мы видим, скрыть реальный IP-адрес сайта практически невозможно. Существуют специальные платные сервисы, чаще всего это сервисы защиты от DDoS-атак, которые позволяют снизить вероятность обнаружения реального IP-адреса, но и это не может являться 100% гарантией защиты от обнаружения IP.

По статистике, собранной специалистами Secunia и McAfee, около 40% сайтов использующих сервисы «облачного» сетевого экрана CloudFlare и Sucuri, подвержены частичному обходу защиты. Достаточно использовать один из вышеуказанных методов обнаружения IP-адреса.

И что же делать? В целом можно ничего не делать, обнаружение реального IP-адреса все равно останется не такой простой задачей при использовании «облачного» сетевого экрана. Дополнительные платные инструменты маскировки IP-адреса позволяют значительно усложнить задачу злоумышленникам. В конце концов «облачный» файрволл прекрасно работает и защищает ваш сайт, что подтверждается многочисленными исследованиями той же самой McAfee. Следует понимать, что стратегия использования этого подхода защиты оправдана и она не может быть, как окончательно правильной, так и абсолютно не правильной. Каждый владелец ресурса в зависимости от данных, которые он хочет защитить и их критичности, подбирает тот инструмент, который будет наиболее близко соответствовать уровню его потребностей и возможностей.

Другой подход. Сетевой экран в конечной точке

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

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

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

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

Несколько вариантов сетевого экрана, устанавливаемого в конечной точке:
– как отдельные приложения и надстройки для сервера – dotDefender, SiteLock, ModSecurity OWASP, nevisProxy
– как приложения для CMS – WordFence (для WordPress), RSFirewall (для Joomla)

Что же выбрать?

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

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