Протокол HTTPS и уязвимости сайта: безопасные связи
Объективные данные от Google говорят о том, что количество взломов сайтов в интернете увеличилось на 32% в 2016 году по сравнению с предыдущим годом, а предсказания говорят о росте этого показателя в будущем. Видится, что с увеличением количества и качества средств защиты, угрозы сайтам могли бы быть меньше, однако, статистика исходна и хакеры успешно совершенствуют свое мастерство. В этом обзоре мы продолжим обсуждение темы, затронутой в Google статистике, и расскажем о различных аспектах, связанных с безопасностью сайтов.
Чаще всего злоумышленники направляют свои усилия на сайты банков, мобильных операторов, известные медиапорталы и правительственные учреждения, так как взлом таких сайтов может принести громадные доходы и дать доступ к ценной информации. Однако даже те сайты, которые не привлекают такое внимание, не имеют гарантий, что они не станут жертвами различных видов уязвимостей. Практика показывает, что взлом данных сайтов – это лишь вопрос времени. Небольшие сайты могут быть использованы злоумышленниками как плацдарм для тренировок на пути к взлому больших сайтов, либо для проведения массовых атак, когда взламывается множество сайтов, выбранных на определенном критерии. Кроме того, существует мнение, что каждый третий сайт оказывается под наблюдением посторонних людей, которые изучают его уязвимости и могут совершить взлом в любой момент.
Если вы являетесь владельцем сайта, не следует заблуждаться и чувствовать себя в безопасности. Главная задача владельца заключается в максимальной защите сайта от всех возможных угроз, чтобы не потерять важную информацию и свои финансы. Какие же меры можно предпринять для защиты своего сайта? Существуют специальные протоколы безопасного соединения, сертификаты безопасности и различные инструменты для обнаружения уязвимостей сайтов. В этом обзоре мы рассмотрим подробнее эти и другие важные вопросы, связанные с безопасностью веб-сайтов.
Существуют различные виды уязвимостей, которые могут быть использованы злоумышленниками для взлома сайтов. Термин "уязвимость" происходит от английского слова "vulnerability" и означает наличие проблем в программной кодировке сайта или его приложениях, через которые возможно нарушение работы системы. А наличие уязвимостей часто связано с ошибками при программировании, проектировании сайта или использовании ненадежных паролей. Уязвимости позволяют злоумышленникам запустить веб-приложения, совершающие действия, на которые у злоумышленников нет прав.
Среди основных видов уязвимостей наиболее распространены следующие:
- Недочеты в системе аутентификации и управлении сессией
- Небезопасные прямые ссылки на объекты
- Небезопасная конфигурация
- Утечка чувствительных данных
- Отсутствие контроля доступа к функциональному уровню
- Использование устаревших компонентов
- Невалидированные основные и внешние переадресации
- Кликджеккинг
Очень важно понять, что даже одна уязвимость может привести к серьезной угрозе безопасности сайта. Поэтому необходимо обеспечивать надежную защиту для своих сайтов и приложений, используя все доступные средства защиты.
Протокол http, по которому передаются данные, не обеспечивает должного уровня защиты, что делает информацию уязвимой для хакерской атаки. В 1994 году был создан протокол https, который использует криптографическую систему SSL/TLS для шифрования данных и обеспечения защищенного соединения через незащищенный канал.
При установке соединения по протоколу https, пользовательский компьютер и сервер генерируют секретный ключ, который используется для шифрования передаваемой информации. Секретный ключ генерируется при каждом сеансе связи, и его длина составляет более ста знаков, что делает его почти невозможным для подбора. Для гарантированной надежности защиты используется цифровой сертификат для идентификации сервера. При установке соединения по https, первым делом браузер проверяет подлинность сертификата, и только после подтверждения его подлинности начинается обмен данными.
Перевод сайта на протокол HTTPS может показаться сложным, но в действительности, процесс перехода состоит всего из нескольких шагов.
Шаг 1: Получение и настройка сертификата
Для получения сертификата можно обратиться в центры сертификации за отдельную плату или воспользоваться бесплатным вариантом. Однако, крупные компании обычно отдают предпочтение платным сертификатам, так как они обладают расширенной аутентификацией и возможностью включения субдоменов. Помимо этого, бесплатные сертификаты могут увеличить время передачи данных из-за особенностей обслуживания удостоверяющими центрами. Кроме того, для сайтов с приемом онлайн-платежей необходимо выбирать платный сертификат. Сертификат необходимо настроить для переадресации всех запросов с HTTP на HTTPS.
Шаг 2: Работа с внутренними ссылками
Полные ссылки на сайте следует заменить на относительные, используя скрипты. Иначе может возникнуть ситуация с загрузкой смешанного контента, что не обеспечивает полноценной защиты и может привести даже к тому, что сайт совсем перестанет работать.
Шаг 3: Переадресация
После установки сертификатов сайт становится доступным по двум адресам, и необходимо оставить только тот, который начинается с HTTPS. Для этого нужно настроить прямой редирект "301" с HTTP на HTTPS. Делается это на сервере, но можно воспользоваться и файлом htaсcess.
Шаг 4: Внесение изменений в файл robots.txt
Чтобы поисковые роботы могли обнаружить сайт с измененным протоколом, необходимо указать этот протокол в файле robots.txt.
Шаг 5: Включение HTTPS Strict-Transport-Security
Этот процесс индивидуален для каждого сервера, и не существует универсальных рекомендаций. Для облегчения задачи можно обратиться к специалистам, которые разрабатывали сайт. Для надежной защиты данных на ресурсе необходимо включить Secure Cookies.
Как выбрать сертификат безопасности для сайта (TLS/SSL)
При выборе сертификата безопасности для вашего сайта, вы можете выбрать один из двух путей. Если у вас небольшой офлайн-бизнес или личный блог, и вы просто хотите донести информацию о своей компании до потенциальных клиентов, лучшим выбором будет 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. Несколько тысяч сайтов, размещенных в сети Tor, были скомпрометированы и база данных хостинга была украдена. Хакеры получили доступ к адресам электронной почты 381 000 пользователей.
CMS взламываются очень часто. Особенно это касается многих популярных систем управления сайтом. Хакеры очень заинтересованы в таком взломе, так как за одно взломанное приложение можно "получить" множество других, в том числе новых сайтов на различных уголках планеты.
Один из самых ярких примеров CMS, содержащей уязвимости, является WordPress. Согласно отчетам компании Sucuri, специализирующейся на безопасности веб-серверов и сайтов, в третьем квартале 2016 года взламываемыми CMS были следующие: WordPress (74%), Joomla (17%) и Magento (6%).
Из-за своей уязвимости CMS очень уязвимы для атак и других вредоносных действий. С помощью созданных уязвимостей хакеры могут внедрить на сайт зловредный код, который на свою очередь будет заражать компьютеры посетителей вирусами, публиковать контент сомнительного качества или перенаправлять пользователя на другие сайты. Очевидно, что от этого страдает репутация сайта, упадок посещаемости и популярности. Именно поэтому необходимо постоянно следить за безопасностью CMS, принимать все необходимые меры и устанавливать обновления безопасности вовремя.
Как защититься от взлома сайта через модули и компоненты вне CMS?
Нельзя отрицать, что взлом сайта, работающего на CMS, в «чистом виде» – очень сложная задача даже для самых опытных хакеров. Однако, опасность для сайта может представляться компонентами, модулями и плагинами, которые создаются сторонними разработчиками. Например, установка компонента комментариев с «дырой» в системе безопасности может позволить хакерам залить на сайт специальный скрипт и выполнить взлом.
Чтобы избежать подобных угроз вашему сайту, следует в первую очередь проверить все установленные модули и компоненты. Если вы заметите, что какой-то плагин или модуль устарел и не получает нужные обновления, лучше всего удалить его. Также стоит регулярно обновлять все компоненты, которые находятся на сайте, и осуществлять поиск и устранение всех выявленных уязвимостей в системе.
Помимо этого, для большей защиты рекомендуется использовать систему мониторинга, которая способна обнаружить любого хакера, пытающегося быстро войти в систему и выполнить взлом. Не забывайте также о правильной настройке системы безопасности на уровне сервера — это поможет предотвратить взломы в самом начале.
Уязвимость, известная как SQL-инъекция, возникает в результате некорректной обработки данных, переданных пользователем. Злоумышленники используют эту уязвимость для внедрения вредоносного кода в запрос к базе данных и модификации, а порой и выполнения запросов, которые программой не предусмотрены. Это может привести к получению злоумышленником доступа к защищенным данным, к которым в обычных условиях он не имел бы доступа.
Использование SQL-инъекций позволяет злоумышленникам красть, уничтожать или подменять данные, а также провоцировать сбои в работе системы (DDoS). Известно, что взломы некоторых известных сайтов, таких как Yahoo, LinkedIn и eHarmony, могли быть осуществлены именно с помощью SQL-инъекций.
Отчет компании Akamai Technologies, Inc. за 1 квартал 2016 года указывает на существенный рост нападений, связанных с SQL-инъекциями - на 87% по сравнению с предыдущим периодом.
Основные цели атак злоумышленников - это сайты с медиа и развлекательным контентом (около 60%), онлайн-сервисы (30%) и правительственные сайты (10%).
Существует целый ряд методов защиты от SQL-инъекций, включая использование лицензионного ПО, регулярное обновление CMS, отказ от простых паролей и небезопасных браузеров, а также установку межсетевого экрана. Протокол https также считается эффективным средством защиты. О его преимуществах и особенностях мы расскажем далее.
HTTPS - это дополнение к протоколу HTTP, которое обеспечивает надежное шифрование передаваемой информации между пользователем и сервером. Такая защита предотвращает возможные утечки данных и делает веб-сайт надежным в глазах пользователей.
Эксперты утверждают, что использование протокола HTTPS является необходимым для защиты конфиденциальной информации и предотвращения возможных кибератак. Браузеры Google Chrome и Mozilla Firefox даже предупреждают пользователей о том, что сайт, на котором они находятся, не является защищенным, если он использует обычный протокол HTTP вместо HTTPS.
Таким образом, для того чтобы обеспечить безопасность веб-сайта, необходимо использовать протокол HTTPS для защиты информации и предотвращения возможных утечек данных.
Следует ли переходить на протокол HTTPS? Решение принимает владелец сайта
Последнее время переход на защищенный протокол HTTPS становится все более популярным. Однако, необходимость использования данного протокола для всех сайтов без исключения не является жестким требованием. Например, если сайт работает с конфиденциальными данными клиентов, то установка HTTPS является обязательной. В остальных случаях решение о переходе или остаются на текущей версии протокола принимает владелец сайта.
Несмотря на это, отсутствие HTTPS может привести к серьезным последствиям для сайта, таким как рассылка спама, перенаправление пользователей на сайты с сомнительным контентом или даже полное уничтожение сайта в случае взлома.
Стоит отметить, что использование HTTPS оказывает положительное влияние на работу сайта. Надежное соединение создает больше доверия у клиентов и пользователей. Кроме того, сайты с защищенным соединением имеют более высокий рейтинг в поисковых системах.
Фото: freepik.com