Протокол HTTPS и уязвимости сайта: безопасные связи
Как сообщает Google, количество взломов сайтов в интернете выросло на 32% в 2016 году по сравнению с предыдущим годом, и данная тенденция продолжит свое развитие. Возможно, это может быть удивительным, учитывая усиление уровня безопасности сайтов как в количестве, так и в качестве. Тем не менее, статистические данные не дают повода расставаться с осторожностью, особенно когда дело касается защиты сайтов от хакеров. В этой статье мы рассмотрим технические аспекты безопасного протокола соединения HTTPS, стандарты сертификации безопасности сайтов и различные виды уязвимости порталов.
Атаки на веб-ресурсы обычно нацелены на сайты, такие как банки, мобильные операторы, компании, известные медиапорталы и правительственные учреждения. Они обозначают эти сайты, потому что они могут принести огромную прибыль, а также дать доступ к записи ценной информации. Даже те сайты, которые привлекают небольшое количество посетителей в день, могут также потерпеть поражение от киберпреступников.
Собственникам небольших сайтов не следует отчаиваться, думая, что они не будут стать жертвой хакеров. Небольшие сайты часто использовались в качестве тренировочной площадки для атаки на крупные порталы. Или они могут стать жертвой массовой атаки, когда сотни или тысячи ресурсов выбираются по определенному принципу. Считается, что каждый третий сайт может быть подвергнут атакам со стороны злоумышленников, которые постоянно исследуют возможные уязвимости, обнаруженные на сайтах. Поэтому главным приоритетом владельца сайта является максимально возможное обеспечение безопасности сайта от возможных угроз, чтобы сохранить важные данные и свои деньги.
Существуют различные виды уязвимостей, которые могут быть использованы злоумышленниками для взлома сайтов. Термин "уязвимость" происходит от английского слова "vulnerability" и означает наличие проблем в программной кодировке сайта или его приложениях, через которые возможно нарушение работы системы. А наличие уязвимостей часто связано с ошибками при программировании, проектировании сайта или использовании ненадежных паролей. Уязвимости позволяют злоумышленникам запустить веб-приложения, совершающие действия, на которые у злоумышленников нет прав.
Среди основных видов уязвимостей наиболее распространены следующие:
- Недочеты в системе аутентификации и управлении сессией
- Небезопасные прямые ссылки на объекты
- Небезопасная конфигурация
- Утечка чувствительных данных
- Отсутствие контроля доступа к функциональному уровню
- Использование устаревших компонентов
- Невалидированные основные и внешние переадресации
- Кликджеккинг
Очень важно понять, что даже одна уязвимость может привести к серьезной угрозе безопасности сайта. Поэтому необходимо обеспечивать надежную защиту для своих сайтов и приложений, используя все доступные средства защиты.
Протокол передачи данных HTTP не обеспечивает достаточной защиты данных и оставляет их подверженными угрозам хакеров. В целях гарантированной безопасности информации был разработан протокол HTTPS, использующий криптографическую систему SSL/TLS для шифрования всех передаваемых данных и защиты соединения через незащищенный канал.
Соединение по протоколу HTTPS устанавливается путем генерации общего секретного ключа между компьютером пользователя и сервером, после чего данные шифруются с использованием этого ключа. Новый ключ создается каждый раз при установке соединения, поэтому его перехват или подбор практически невозможен, так как он содержит более 100 знаков. Также для обеспечения безопасности соединения используется цифровой сертификат для проверки подлинности сервера. Браузер перед началом обмена данными автоматически проверяет подлинность сертификата и только после его подтверждения начинает передачу информации.
Перевод сайта на протокол HTTPS может показаться сложным, но в действительности, процесс перехода состоит всего из нескольких шагов.
Шаг 1: Получение и настройка сертификата
Для получения сертификата можно обратиться в центры сертификации за отдельную плату или воспользоваться бесплатным вариантом. Однако, крупные компании обычно отдают предпочтение платным сертификатам, так как они обладают расширенной аутентификацией и возможностью включения субдоменов. Помимо этого, бесплатные сертификаты могут увеличить время передачи данных из-за особенностей обслуживания удостоверяющими центрами. Кроме того, для сайтов с приемом онлайн-платежей необходимо выбирать платный сертификат. Сертификат необходимо настроить для переадресации всех запросов с HTTP на HTTPS.
Шаг 2: Работа с внутренними ссылками
Полные ссылки на сайте следует заменить на относительные, используя скрипты. Иначе может возникнуть ситуация с загрузкой смешанного контента, что не обеспечивает полноценной защиты и может привести даже к тому, что сайт совсем перестанет работать.
Шаг 3: Переадресация
После установки сертификатов сайт становится доступным по двум адресам, и необходимо оставить только тот, который начинается с HTTPS. Для этого нужно настроить прямой редирект "301" с HTTP на HTTPS. Делается это на сервере, но можно воспользоваться и файлом htaсcess.
Шаг 4: Внесение изменений в файл robots.txt
Чтобы поисковые роботы могли обнаружить сайт с измененным протоколом, необходимо указать этот протокол в файле robots.txt.
Шаг 5: Включение HTTPS Strict-Transport-Security
Этот процесс индивидуален для каждого сервера, и не существует универсальных рекомендаций. Для облегчения задачи можно обратиться к специалистам, которые разрабатывали сайт. Для надежной защиты данных на ресурсе необходимо включить Secure Cookies.
Когда дело доходит до выбора сертификата для защиты сайта, вам придется сделать выбор между двумя типами сертификатов. Если вы владеете небольшим офлайн-бизнесом или личным блогом и хотите просто донести информацию о своей компании до потенциальных клиентов, то вам подойдет Domain Validation SSL. Данный вид проверки не позволяет использовать сертификат для защиты субдоменов или для финансовых операций через сайт. Однако, такие сертификаты выдаются быстро, и после подтверждения владения доменом, вы можете начать их использование сразу же. Вы можете подтвердить владение доменом несколькими способами, включая отправку подтверждающего e-mail, запись в DNS или использование хэш-файла. Такой сертификат оценен относительно низко по цене, примерно 610 рублей в год.
Если же вы собираетесь вести финансовые онлайн-операции через свой сайт, вам необходимо установить сертификат Business Validation. Данный вид сертификата более надежный, так как помимо подтверждения владения доменом, он связывает компанию с сайтом. Для прохождения проверки подтверждения, вы должны отправить пакет документов в центр верификации и принять звонок на корпоративный номер. Все сертификаты Business Validation разделены на следующие виды:
- Extended Validation SSL – используется банками, платежными системами, крупными интернет-магазинами и другими организациями, работающими с большими объемами денежных средств.
- Wildcard SSL – защищает сам сайт и его поддомены. Используется, когда на сайте предполагается несколько поддоменов с разной региональной привязкой.
- SAN SSL – поддерживает внешние и внутренние альтернативные доменные имена.
- CodeSigning SSL – подтверждает безопасность кодов и программных продуктов с сайта, идеальный выбор для разработчиков приложений.
Независимо от выбранного сертификата, в первую очередь необходимо сгенерировать запрос на получение, в котором будет содержаться вся информация о владельце домена и открытый ключ. После того, как запрос будет направлен в центр верификации, вы получите сертификат и файл с ключом. Важно сохранять этот файл в секрете. Стоимость таких сертификатов может быть довольно высокой, например, Symantec Secure Site Wildcard стоит примерно 281 967 рублей в год.
Не стоит экономить на обеспечении безопасности данных сайта. Гораздо проще потратить время и ресурсы на обеспечение безопасности, чем бороться с негативной репутацией после взлома сайта. Если ваш сайт связан с онлайн-торговлей, обеспечение его защиты должно быть вашим первостепенным приоритетом.
Это не полный список известных уязвимостей, а новые появляются все чаще и чаще. Сегодня мы остановимся только на одном типе уязвимости — небезопасной передаче данных и рассмотрим ключевые виды атак, связанных с ней. За последнее время, около 73% взломов сайтов, например, в мобильных банковских системах, были связаны с этой уязвимостью.
В интернете каждое действие является обменом данными. Когда пользователь заходит на сайт или отправляет сообщение в социальной сети, компьютер отправляет запрос серверу и получает ответ. Обычно, этот обмен осуществляется по протоколу HTTP. Протокол устанавливает правила обмена данными, и благодаря ему содержание сайта загружается на устройство.
Однако, хотя протокол HTTP очень удобен в использовании, данные, которые по нему передаются, абсолютно не защищены. Эти данные передаются в открытом виде. На пути от пользователя до сервера информация многократно проходит через различные промежуточные узлы. Если злоумышленник получит доступ к хотя бы одному из этих узлов, он сможет легко перехватить передаваемые данные. В корне уязвимости лежит небезопасность передачи данных и риски, связанные с этим важным моментом.
Ниже приведены некоторые из видов атак, вызванных небезопасной передачей данных:
Кража паролей — это одна из наиболее часто встречающихся проблем в интернете. Как правило, хакеры проникают на сайт, используя украденный пароль к аккаунту или административной части сайта. При этом мошенники могут использовать различные способы, такие как вирусы или просто угадывание простого пароля.
Несмотря на то, что риски хакерской атаки весьма реальны, некоторые владельцы сайтов по-прежнему используют уязвимые каналы аутентификации. В результате этого различные мошенники могут легко перехватывать пароли, используя доступ к неопытным пользователям.
По статистике, ежегодно 15% пользователей становятся жертвами кражи своих персональных данных или мошенничества с кредитными картами. Кража паролей дает злоумышленникам доступ к сайту и позволяет производить различные виды мошенничества. Например, с сайта можно начать рассылку спама. Однако это еще не все. Существует вероятность взлома сторонних сайтов, при помощи украденных паролей, и таким образом злоумышленникам удается получить доступ к конфиденциальным данным клиентов. Например, злоумышленники могут свободно снимать деньги с банковских карт.
Однако крупные компании, такие как банки постоянно работают над защитой паролей. В то время как мелкие интернет-магазины, форумы и торрент-трекеры, часто игнорируют этот вопрос. Хакеры хорошо знакомы с этим фактом, именно поэтому они чаще всего атакуют именно эти сайты.
В 2014 году известность приобрела хакерская группировка из России под названием CyberVor. Эта группировка украла около 4,5 миллиардов учетных записей, используя украденные логины и пароли с 420 000 веб-сайтов разного размера. Хакеры успешно взломали множество ресурсов крупных компаний и личных сайтов, что привело к тому, что злоумышленникам удалось получить самую большую базу учетных данных.
Взлом сайтов может быть произведен через хостинг-провайдера. Существует несколько причин, по которым это может произойти.
Во-первых, сервер может быть установлен устаревшим программным обеспечением, которое хакерам легче взломать. Это особенно верно, если сравнивать его с новым программным обеспечением.
Во-вторых, взлом может произойти через соседей по аккаунту. Обычно на одном сервере размещается несколько сайтов, которые соседствуют друг с другом. Если один из этих сайтов легко взламывается, то все соседние сайты могут быть тоже скомпрометированы.
В-третьих, если сайт не размещен у профессионального провайдера, есть риск его взлома. Например, сайт может быть размещен у программиста-друга, для экономии денег. Однако, если у этого программиста нет необходимых компетенций и опыта, защита сервера будет уязвима.
Недавно хакерская группировка совершила взлом серверов подпольного хостинга Freedom Hosting II. Этот инцидент показал, как хакеры могут скомпрометировать более 10 000 сайтов сети Tor и похитить базу данных хостинга, содержащую более 381 000 адресов электронной почты пользователей.
Взлом CMS: Уязвимости популярных систем
Для управления контентом, структурой и дизайном сайта, многие люди используют системы управления сайтом, такие как Content Management System (CMS). Такие системы делают программирование, дизайн и поддержку сайта доступными даже для тех, кто имеет очень смутное представление о программировании и веб-архитектуре.
Однако, как и все виды ПО, CMS содержат уязвимости, которые могут быть использованы хакерами для взлома. Угроза особенно актуальна для популярных систем, поскольку их взлом дает возможность взломать сразу десятки тысяч сайтов по всему миру.
По данным компании Sucuri, занимающейся веб-безопасностью, в третьем квартале 2016 года самыми уязвимыми CMS были WordPress (74%), Joomla (17%) и Magento (6%). Большинство атак произошло из-за невнимания администраторами к установке обновлений безопасности.
Хакеры, используя эти уязвимости системы, могут размещать на сайте вредоносный код, заражающий компьютеры посетителей, публиковать контент сомнительного содержания или перенаправлять пользователя на другие сайты с таким контентом. Это может привести к существенному ущербу для репутации сайта и уменьшению количества посетителей.
Переформулируем заголовок: Как хакеры могут взломать сайт, используя модули и компоненты вне CMS
Признаем, что каждая из CMS прекрасно защищена от взлома, если установлена и настроена корректно. Однако, когда дело касается компонентов, плагинов и модулей от сторонних разработчиков, возникает новая угроза. Например, при установке расширения для комментариев, содержащего уязвимость, хакер может получить возможность вывести на сайте злонамеренный скрипт вместо комментария, что даст ему возможность осуществить взлом.
Уязвимость, известная как SQL-инъекция, возникает из-за недостаточной проверки и обработки переданных пользователем данных, что позволяет хакерам модифицировать и даже выполнять запросы, которые не предусмотрены кодом программы. В результате происходит нарушение доступа к данным, которые обычно недоступны.
Эта уязвимость открывает множество вариантов для хакеров, включая кражу, изменение или уничтожение данных и провоцирование отказа в обслуживании (DDoS). Предполагается, что громкие взломы последних лет, такие как утечка паролей с сайтов Yahoo, LinkedIn и eHarmony, могли быть осуществлены с помощью SQL-инъекций.
Отчет компании Akamai Technologies, Inc. показал, что в первом квартале 2016 года отмечен резкий рост атак, связанных с SQL-инъекциями - на 87% по сравнению с предыдущим периодом. Подавляющее большинство из них было направлено на сайты с медиа и контентом развлекательной тематики, а также на онлайн-сервисы и правительственные сайты.
Существует множество способов защиты от SQL-инъекций, в том числе и защита от каждого из конкретных типов. Это может включать использование лицензионного программного обеспечения, регулярное обновление системы управления контентом, использование надежных паролей и безопасных браузеров, а также введение межсетевых экранов. Одним из наиболее эффективных методов защиты является использование протокола https, и мы рассмотрим его подробнее ниже.
HTTPS - это дополнение к протоколу HTTP, которое обеспечивает надежное шифрование передаваемой информации между пользователем и сервером. Такая защита предотвращает возможные утечки данных и делает веб-сайт надежным в глазах пользователей.
Эксперты утверждают, что использование протокола HTTPS является необходимым для защиты конфиденциальной информации и предотвращения возможных кибератак. Браузеры Google Chrome и Mozilla Firefox даже предупреждают пользователей о том, что сайт, на котором они находятся, не является защищенным, если он использует обычный протокол HTTP вместо HTTPS.
Таким образом, для того чтобы обеспечить безопасность веб-сайта, необходимо использовать протокол HTTPS для защиты информации и предотвращения возможных утечек данных.
Переход на https – необходимость или рекомендация?
Все сайты не обязаны переходить на https. Однако, если веб-ресурс работает с конфиденциальными данными клиентов, то использование защищенного протокола является обязательным. В остальных случаях решение о переходе на https принимает владелец сайта. Хотя утечка информации, которая может произойти в результате взлома, способна навредить любому веб-ресурсу: от рассылки спама до переходов на незащищенные сайты.
Кроме того, использование протокола https является большим плюсом для сайтов в глазах клиентов и пользователей. Они доверяют компании больше, когда соединение обеспечивает безопасность данных. Более того, сайты с защищенным соединением получают более высокую ранжировку в поисковых системах.
Фото: freepik.com