Quick Apache2 самоподписанный SSL сертификат

Протокол TLS шифрует интернет-трафик всех видов, тем самым делая безопасными общение и продажи в интернете. Мы расскажем о том, как протокол работает и что нас ждет в будущем.

  • Анализ современных систем защиты Web-сервисов 2018 / Баранова Елизавета Михайловна
  • Безопасность приложений на платформах облачных вычислений 2015 / Гладкий Максим Валерьевич
  • Подготовка к CISSP: телекоммуникации и сетевая безопасность 2014 / Дорофеев Александр Владимирович
  • Разработка модуля мониторинга сетевой активности при обращении к защищенной картографической базе данных 2016 / Гибадуллин Р.Ф., Новиков А.А., Смирнов И.Н., Перухин М.Ю.
  • Стратегия информационной безопасности корпоративной сети 2010 / Маер Алексей Владимирович, Дубровских Владимир Александрович

Регулярно обновляйте CMS сайта

Этот совет может показаться очевидным, однако регулярное обновление программного обеспечения имеет важное значение для обеспечения безопасности вашего сайта. Когда в программном обеспечении обнаруживается уязвимость, хакеры моментально пытаются ее эксплуатировать. Не медлите: регулярно обновляйте CMS и все ее компоненты (плагины, модули, файлы темы и др.). Однако не забывайте, некоторые обновления могут быть несовместимы друг с другом. Поэтому перед любым обновлением настоятельно рекомендуем делать резервную копию.

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

Исправление SSL_ERROR_NO_CYPHER_OVERLAP

SSL_ERROR_NO_CYPHER_OVERLAP означает ошибку безопасного доступа, поскольку сайт не поддерживает протокол шифрования SSL 3.0. Другой вариант — Этот сайт поддерживает только протокол SSL 3.0, который отключён в Firefox — надо просто включить данный протокол в браузере.

Вообще, самое простое решение — сменить браузер на любой другой, хоть Internet Explorer. Mozilla Firefox с протоколом SSL 3.0 все равно не подружить. Ошибки на стороне сервера пользователь исправить тоже не может. Однако, можно изменить версию TLS в браузере и изменить настройки SSL, после чего проблема может перестать появляться.

Другая возможная причина — сбои в браузере Mozilla Firefox. Для исправления неполадок не лишним будет сбросить настройки TLS/SSL и выполнить профилактические меры: обновить браузер до последней версии, очистить кэш и куки.

Для начала следует снять блокировку опасного содержимого:

  1. Открыть Настройки в меню или нажав на значок в виде трех вертикальных палочек в правой верхней части окна.
  2. В настройках перейти в раздел Приватность и защита.
  3. Найти и снять флажок Блокировать опасное и обманчивое содержимое.
  4. Перезагрузить браузер (лучше — компьютер), проверить наличие ошибки.

Если не помогло, придется вносить изменения в настройки фаерволла в Firefox и сбрасывать настройки TLS. Перед этим рекомендуется: очистить кэш и куки в браузере; отключить антивирус; отключить плагины, блокирующие рекламу (AdBlock, ADWcleaner); попытаться зайти на сайт через другой браузер, если есть такая возможность.

Изменение версии протокола :

  1. Открыть новую вкладку, в адресную строку вбить about:config.
  2. Нажать Enter, согласиться с предупреждением на экране о возможных последствиях.
  3. Воспользоваться поиском по странице или вбить в строке поиска
  4. После поиска в окне должно остаться два параметра: и .
  5. Нужно по очереди нажать правой кнопкой мыши на каждом параметре, выбрать Изменить и выставить значение 0.
  6. Перезагрузить браузер, попробовать зайти на сайт.

Если на сайт зайти не получилось, нужно повторить действия из списка выше, только выставить значение 1. Перезапустить браузер и проверить доступность веб-страницы.

Сброс измененных настроек TLS:

  1. Открыть настройки, вбить в адресной строке about:config, согласиться с предупреждением.
  2. Ввести в поиске TLS.
  3. Найти все строчки, выделенные в списке жирным шрифтом. Полужирный шрифт означает, что настройки изменялись. На скриншоте таким параметром является
  4. Нужно щелкнуть на каждой строчке правой кнопкой мыши и выбрать Сбросить, чтобы восстановить значение по-умолчанию.

Последний известный способ — сброс настроек SSL:

  1. Найти в настройки, в строке поиска вбить SSL3.
  2. Найти параметры, которые были изменены (выделены полужирным).
  3. Кликнуть по ним правой кнопкой мыши и выбрать Сбросить для восстановления значений по-умолчанию.

Дополнительно можно найти еще два параметра и установить для них значение false.

  1. _rsa_aes_128_sha
  2. _rsa_aes_256_sha

Даже если это не поможет избавиться от ошибки, то по крайней мере закроет уязвимость, найденную в Firefox еще несколько лет назад. Если не помогает ни один из способов — стоит искать способ воспользоваться другим браузером, хотя бы штатным IE.

SSL-сертификат, центр сертификации.

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

Центр сертификации или Удостоверяющий центр (англ. Certification authority, CA) — это организация или подразделение организации, которая выпускает сертификаты ключей электронной цифровой подписи, это компонент глобальной службы каталогов, отвечающий за управление криптографическими ключами пользователей. Открытые ключи и другая информация о пользователях хранится центрами сертификации в виде цифровых сертификатов, имеющих следующую структуру:

  • Серийный номер сертификата;
  • Объектный идентификатор алгоритма электронной подписи;
  • Имя удостоверяющего центра;
  • Срок годности;
  • Имя владельца сертификата (имя пользователя, которому принадлежит сертификат);
  • Открытые ключи владельца сертификата (ключей может быть несколько);

Виды SSL- сертификатов

Выделяют различные виды SSL- сертификатов в зависимости от типа проверки:

  • Сертификаты с проверкой домена – подтверждают подлинность доменного имени. Не содержат информации о компании.
  • Сертификаты с проверкой компании – содержат информацию не только о домене, но и о компании, которой выдан сертификат. Пользуются большим доверием у пользователей.
  • Сертификаты на домен и поддомены (Wildcard SSL) – обеспечивают защиту неограниченного количества субдоменов одним сертификатом. Сертификат выдается на определенное доменное имя и при этом защищает все поддомены. Данные сертификаты могут быть как с проверкой домена, так и с проверкой организации.
  • Сертификаты с расширенной проверкой организации (Extended Validation SSL (EV SSL)) – обеспечивают наивысшее доверие клиентов. Когда пользователь находится на сайте с EV SSL сертификатом, браузер подсвечивает адресную строку зеленым цветом.

Wildcard SSL — сертификаты — это сертификаты, защищающие не только основной домен(ваш_), но и поддомены(_, _, _ и т.д.). Может использоваться на веб-сервере и почтовом сервере. При генерации запроса на Wildcard сертификат в качестве Common Name (CN) используйте "*", где — это ваше доменное имя.

Отключите лишние расширения

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

Попасть в меню управления плагинами достаточно просто. Можете просто скопировать этот путь в своем браузере:

  • Chrome: chrome://extensions/
  • Яндекс Браузер: browser://tune/
  • Opera: opera://extensions
  • Firefox: about:addons.

Запуск и использование A2SV

После установки A2Sv можно запустить с помощью терминала, используя следующую команду:

python

A2SV после установки может использовать следующие модули для сканирования уязвимостей SSL:

  • anonymous: для обнаружения анонимного шифра;
  • crime: обнаружение уязвимости (SPDY);
  • heart: чтобы узнать об уязвимости HeartBleed;
  • ccs: отслеживание возможностей внедрения инъекций CCS;
  • poodle: поиск уязвимости SSLv3 POODLE;
  • freak: идентификация FREAK Attack;
  • logjam: для тестирования приложения на уязвимости LOGJAM;
  • drown: поиск проблем с SSLv2 DROWN.

По умолчанию A2SV запускает все эти модули, чтобы найти любые возможные уязвимости SSL на веб-ресурсе. Однако мы можем исключить любые модули для ограничения процесса поиска.

Чтобы проверить какой-либо веб-сайт, мы можем использовать доменное имя или IP-адрес. Следующая команда используется для поиска уязвимостей SSL.

python  -t <target web address or IP address>

Все модули запускаются поочередно в процессе поиска уязвимостей SSL.

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

-o /home/yourdir/

Аналогичным образом, чтобы запустить какой-либо конкретный модуль из вышеупомянутого списка, используйте флаг -m вместе с именем модуля, как показано в следующей команде.

python  -t <target IP address> -m <module name>

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

python  -t <target web address or IP address> -m ccs

В этом случае результаты отображаются в следующем формате.

Виды взлома сайта

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

SQL-инъекция

Цель: получить доступ к информации из баз данных. Так, злоумышленник получает возможность просматривать, изменять, добавлять, удалять данные, записывать и скачивать локальные файлы.

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

Уязвимые места: вредоносные коды часто содержатся в формах подписки, оформления заказа, обратного звонка, регистрации, поиска по сайту и подобных.

Шеллы

Цель: полный доступ к сайту.

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

Уязвимые места: все формы для ввода данных, легкие пароли, использование небезопасных соединений, в том числе и общественные Wi-Fi.

XSS-атака

Цель: получение доступа к cookies и возможность сделать сайт неработоспособным.

Как реализуется: через ввод данных от пользователей отправляется вредоносный код.

Уязвимые места: формы регистрации, подписки, обратного звонка, заявки на заказ, чаты, комментарии.

Взлом через FTP или SSH

Цель: получить доступ к админке.

Как реализуется: войти в административную панель можно двумя способами. Первый — через подбор пароля к FTP-клиенту. Второй — перехват SSH-трафика.

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

Взлом phpMyAdmin

Цель: доступ к базам данных — чтение, изменение, кража, а также внедрение кода в шаблон для дальнейшего получения выгод.

Как реализуется: подбором логина и пароля к формам входа. Адрес инструмента практически всегда фиксированный — имя_сайта/myadmin или имя_сайта/phpmyadmin. Стоит набрать его и откроется форма авторизации, для которой подобрать пароль, чаще всего, вообще не проблема из-за очень простых комбинаций.

Уязвимые места: расположение формы для авторизации на стандартном адресе, плюс простой пароль.

Взлом через соседей по хостингу

Цель: контроль над управлением сайта, получение материальной выгоды, доступ к конфиденциальным данным, в том числе к контактам и номерам платежных карт.

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

Уязвимые места: незащищенные соседи по хостингу.

Брутфорс панели администратора

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

Как реализуется: когда у хакеров не получается взломать CMS, они могут начать искать менее защищенные места. Для этого подбираются пароли и логины для входа в административную панель сайта.

Уязвимые места: форма авторизации в админку и очень легкие данные для входа. Простые комбинации цифр, даты, последовательное введение букв согласно раскладке клавиатуры попадают в топ популярных и вычисляются за 2–3 часа.

Уязвимости в скриптах плагинов и CMS

Виды взлома сайта

Цель: получить полный доступ ко всем данным сайта, воспользоваться конфиденциальной информацией, загрузить шелл-код и взять контроль над аккаунтом, закрыв его для владельца.

Как реализуется: если разработчики допустили ошибку или решили, что «и так сойдет», злоумышленники могут найти пробоину и воспользоваться ее, чтобы прописать вредоносный код или украсть данные.

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

Dos и Ddos-атаки

Цель: заблокировать сайт, остановить работу некоторых функций, «закрыть» отдельные страницы, а как следствие — подорвать репутацию компаний.

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

Как реализуется: Ddos-атаки — не взлом сайта как таковой. Атака заключается в одновременном поступлении большого количества запросов на сервер, которое он не в состоянии обслужить. Результат — ресурс виснет и перестает работать.

Уязвимые места: слабый сервер, незащищенное соединение.

Как бороться с каждым из видов атак рассмотрим ниже.

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

Что не так с безопасным соединением

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

Никто не может поме­шать пре­ступ­ни­ку полу­чить сер­ти­фи­кат, уста­но­вить на свой сайт и сде­лать вид, что это без­опас­ная стра­ни­ца. SSL-сертификат гаран­ти­ру­ет без­опас­ную пере­да­чу дан­ных, но не отве­ча­ет за то, куда они отправ­ля­ют­ся. Поэто­му перед тем как вво­дить на сай­те сек­рет­ную инфор­ма­цию, убе­ди­тесь в том, что сайт при­над­ле­жит нуж­ной ком­па­нии. Ино­гда быва­ет так: зло­умыш­лен­ни­ки меня­ют в адре­се сай­та одну бук­ву, полу­ча­ют сер­ти­фи­кат и дела­ют точ­но такой же дизайн, как в ори­ги­на­ле. Кто-то захо­дит на такой сайт за покуп­ка­ми, вво­дит рек­ви­зи­ты кар­ты и... вы пони­ма­е­те. Будь­те внимательны.

Wapiti

Бесплатный консольный сканер уязвимостей веб-приложений, который может работать со следующими типами уязвимостей:

  • раскрытие файла (локальные и удаленные, fopen, readfile);
  • инъекции (PHP / JSP / ASP / SQL-инъекции и XPath-инъекции);
  • XSS (межсайтовый скриптинг);
  • XXE (XML внешняя сущность) внедрение;
  • SSRF (подделка запроса на стороне сервера);
  • использование известных потенциально опасных файлов (благодаря базе данных Nikto);
  • Shellshock;
  • открытые перенаправления и т.д.
Wapiti

Инструмент работает по принципу BlackBox тестирования (анализируются не исходники приложения, а ответы сервера на запросы с измененными параметрами). Утилита сначала анализирует структуру сайта, ищет доступные сценарии, анализирует параметры, а затем включает собственный фаззер для проведения тестирований. По окончании сканирования генерируется отчет, где указываются найденные уязвимости, сгруппированные по их типу. Подробнее про Wapiti можно почитать в статье Проверка сайта на уязвимости своими силами с использованием Wapiti

Безопасное использование cookie

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

Существует два основных сеансовых модуля cookie для промежуточной обработки:

  • Модуль express-session, заменяющий собой промежуточный обработчик , встроенный в Express 3.x.
  • Модуль cookie-session, заменяющий собой промежуточный обработчик , встроенный в Express 3.x.

Основное различие между этими двумя модулями состоит в способе сохранения сеансовых данных cookie. Промежуточный обработчик express-session сохраняет данные о сеансе на сервере; в самом файле cookie сохраняется только ИД сеанса, но не данные сеанса. По умолчанию, используется хранилище в оперативной памяти, но данный способ не предназначен для рабочей среды. В рабочей среде необходимо настроить масштабируемое хранилище сеансов; см. список совместимых хранилищ сеансов.

Промежуточный обработчик cookie-session, в отличие от описанного выше, реализует хранение на основе файлов cookie: выполняется полная сериализация сеанса в файл cookie, вместо того, чтобы сохранять только ключ сеанса. Этот способ следует использовать только при условии, что данные сеанса имеют относительно небольшой объем и легко могут быть преобразованы в элементарные значения (а не объекты). Хотя браузеры должны поддерживать не менее 4096 байт на каждый файл cookie, позаботьтесь о том, чтобы не допустить превышения данного ограничения. Размер не должен превышать 4093 байт на каждый домен. Кроме того, помните о том, что данные cookie являются видимыми для клиента, поэтому, если по какой-либо причине их следует защитить или скрыть, остановите свой выбор на модуле express-session как на более подходящем.

Не используйте стандартные имена сеансовых cookie

Использование имен сеансовых cookie, предлагаемых по умолчанию, может сделать ваше приложение уязвимым для разного рода атак. В данном случае возникает та же проблема с безопасностью, что и при использовании заголовка X-Powered-By: потенциальный злоумышленник может воспользоваться им для идентификации на сервере и организации целенаправленных атак.

Для того чтобы избежать такой проблемы, используйте обобщенные имена cookie; например, при использовании промежуточного обработчика express-session:

var session = require ('express-session'); ('trust proxy', 1) // trust first proxy ( session ({ secret : 's3Cur3', name : 'sessionId', }) );

Настройка опций защиты cookie

Для обеспечения защиты необходимо настроить следующие опции защиты файлов cookie:

  • secure — обеспечивает отправку файлов cookie браузером только с использованием протокола HTTPS.
  • httpOnly — обеспечивает отправку cookie только с использованием протокола HTTP (S), а не клиентского JavaScript, что способствует защите от атак межсайтового скриптинга.
  • domain — указывает домен cookie; используется для сравнения с доменом сервера, на котором запрашивается данный URL. В случае совпадения выполняется проверка следующего атрибута — пути.
  • path — указывает путь cookie; используется для сравнения с путем запроса. Если путь и домен совпадают, выполняется отправка cookie в запросе.
  • expires — используется для настройки даты окончания срока хранения для постоянных cookie.

Ниже приведен пример с использованием промежуточного обработчика cookie-session:

var session = require ('cookie-session'); var express = require ('express'); var app = express (); var expiryDate = new Date ( () + 60 * 60 * 1000 ); // 1 hour (session ({ name: 'session', keys: ['key1', 'key2'], cookie: { secure: true, httpOnly: true, domain: '', path: 'foo/bar', expires: expiryDate } }) );

Не предоставляйте общий доступ к директориям без ввода пароля, разграничивайте права общего доступа

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

Помимо обязательного использования пароля, желательно разграничить права доступа к общим директориям для их пользователей. Значительно проще установить ограниченные права пользователям, которым не требуется полный доступ (запись/чтение/изменение), нежели следить за тем, чтобы ни один из клиентских аккаунтов впоследствии не был скомпрометирован, что может повлечь за собой неблагоприятные последствия и для других клиентов, обращающихся к общим сетевым ресурсам.

Процесс TLS-рукопожатия

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

  1. Клиент связывается с сервером и запрашивает безопасное соединение. Сервер отвечает списком шифров — алгоритмическим набором для создания зашифрованных соединений — которым он знает, как пользоваться. Клиент сравнивает список со своим списком поддерживаемых шифров, выбирает подходящий и дает серверу знать, какой они будут использовать вдвоем.
  2. Сервер предоставляет свой цифровой сертификат — электронный документ, подписанный третьей стороной, который подтверждает подлинность сервера. Самая важная информация в сертификате — это публичный ключ к шифру. Клиент подтверждает подлинность сертификата.
  3. Используя публичный ключ сервера, клиент и сервер устанавливают ключ сессии, который они оба будут использовать на протяжении всей сессии, чтобы шифровать общение. Для этого есть несколько методов. Клиент может использовать публичный ключ, чтобы шифровать произвольное число, которое потом отправляется на сервер для расшифровки, и обе стороны потом используют это число, чтобы установить ключ сессии.

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Понравилась статья? Поделиться с друзьями:
Adblock
detector