После BEAST атаки и Heartbleed bug , теперь я слышал о новой уязвимости в SSL / TLS под названием POODLE . Как мне защитить себя от эксплуатации?
Пожалуйста, покажите мне примеры того, как избежать этой уязвимости.
SSL разработан для защиты транспортного уровня в Интернете. Для «Интернета», известного как HTTP, вы будете знать это как HTTPS, но он также используется для других протоколов приложений. SSLv2 был первым широко используемым протоколом безопасности транспорта, но вскоре был признан небезопасным. Преемники SSLv3 и TLSv1 теперь широко поддерживаются. TLSv1.1 и TLSv1.2 новее и также получают большую поддержку. Большинство, если не все веб-браузеры, выпущенные с 2014 года, поддерживают его.
Недавнее открытие, сделанное инженерами Google, указывает на то, что SSLv3 больше не должен использоваться (например, SSLv2 давно устарел). Количество клиентов, которые не смогут подключиться к вашему сайту / услуге, вероятно, очень ограничено. CloudFlare объявил , что менее 0,09% их посетителей по-прежнему полагаются на SSLv3.
Простое решение: отключить SSLv3.
Да, через usn- 2385-1 с добавлением функции SCSV, , но это не решает проблему полностью , так как не отключает SSLv3, и исправление будет работать только в том случае, если были исправлены обе стороны соединения. Вы будете получать его через регулярные обновления безопасности в вашем диспетчере пакетов.
Итак, ВЫ должны сами предпринять действия, чтобы отключить SSLv3 (это настраивается). В будущих версиях клиентов / браузеров SSLv3, скорее всего, отключится. Например. Firefox 34 сделает это.
Полное отключение SSLv3 по умолчанию в Ubuntu на уровне реализации, вероятно, нарушит некоторые возможности использования SSL без HTTPS, которое не так уж уязвимо, поэтому я предполагаю, что сопровождающие этого не сделают и будет применяться только этот патч SCSV.
Действительно, перестаньте задавать такие вопросы и просто пропустите несколько абзацев и отключите SSLv3. Но послушайте, если вы не уверены, пожалуйста:
POODLE показывает, что SSLv3 с шифрами CBC не работает,внедрение SCSV этого не меняет. SCSV только следит за тем, чтобы вы не переходили с некоторого протокола TLS на какой-либо более низкий протокол TLS / SSL по мере необходимости с помощью атаки Man-in-the-Middle, необходимой для обычных случаев.
Если вам нужно получить доступ к какому-либо серверу, который делает это не предлагает TLS вообще, а только SSLv3, тогда у вашего браузера действительно нет выбора и он должен взаимодействовать с сервером, используя SSLv3, который в этом случае уязвим без какой-либо атаки на более раннюю версию.
Если вам нужно получить доступ к какому-либо серверу, который также предлагает TLSv1 + и SSLv3 (что не рекомендуется), и вы хотите быть уверены, что злоумышленник не переведет ваше соединение на SSLv3, тогда как сервер, так и клиент нуждаются в этом патче SCSV.
Для Чтобы полностью решить проблему, достаточно отключить SSLv3 на вашем конце, и вы можете быть уверены, что вам не будет понижен рейтинг. И вы не сможете разговаривать с серверами, поддерживающими только SSLv3.
См. Ниже в разделах, посвященных конкретным приложениям: охвачены Firefox, Chrome, Apache, Nginx и Postfix на данный момент.
Уязвимость существует, если и сервер, и клиент принимают SSLv3 (даже если оба поддерживают TLSv1 / TLSv1.1 / TLS1.2 из-за атаки на более раннюю версию) .
Как администратор сервера вы должны отключить SSLv3 сейчас для безопасности ваших пользователей.
Как пользователь, вы должны отключить SSLv3 в своем браузере сейчас , чтобы обезопасить себя при посещении веб-сайтов, которые все еще поддерживают SSLv3.
Нет. Это ошибка протокола (дизайна), а не ошибка реализации. Это означает, что вы не можете исправить это (если только вы не измените дизайн старого SSLv3).
И да, есть новый релиз безопасности OpenSSL , но читайте ниже ( Но Мне действительно нужна поддержка SSLv3 ... по причинам X, Y, Z! ) о том, почему вам лучше полностью отключить SSLv3.
Ну да, наверное. Я поместил это в отдельный пост в блоге для дальнейших размышлений и работы. У нас может быть какое-то волшебное iptables
правило, которое вы можете использовать!
Моя запись в блоге: Как отключить SSLv3 в вашей сети с помощью iptables для POODLE?
Текущий вектор атаки, как показали исследователи, работает с контролем открытого текста, отправляемого на сервер с помощью Javascript, запускаемого на машине жертвы. Этот вектор не применяется к сценариям без HTTPS без использования браузера.
Кроме того, обычно SSL-клиент не позволяет понижать уровень сеанса до SSLv3 (с TLSv1 +, видимым в возможностях рукопожатия), но браузеры хотят этого очень обратно совместимы, и они это делают. Комбинация с управлением открытым текстом и специфическим способом построения HTTP-заголовка делает его доступным для использования.
Вывод: отключите SSLv3 для HTTPS сейчас , отключите SSLv3 для других служб в следующем служебном окне.
Нет, для этого вам не нужно менять сертификаты. Уязвимость предоставляет возможность восстановления открытого текста из данных сеанса, она не обеспечивает доступа к каким-либо секретам (ни к ключу сеанса, ни к ключу сертификата).
Злоумышленник, скорее всего, способен только украсть заголовки открытого текста, такие как файлы cookie сеанса, для выполнения захват сеанса . Дополнительным ограничением является необходимость полной (активной) атаки MitM .
Как пользователь, помимо отключения SSLv3 в ваш браузер, не совсем. Просто всегда устанавливайте последние обновления безопасности.
Для серверов следуйте Руководству по TLS-серверам Mozilla . И протестируйте его с помощью теста SSL Labs Qualys . Получить рейтинг A + на вашем сайте действительно не так уж и сложно. Просто обновите свои пакеты и выполните рекомендации из руководства Mozilla.
Что ж, есть патч, который предотвращает атаку перехода на более раннюю версию клиентов с поддержкой TLSv1, называемую резервной защитой SSLv3. Между прочим, это также улучшит безопасность TLSv1 + (атака на более раннюю версию сложнее / невозможна). Он предлагается в качестве бэкпорта из более поздней версии OpenSSL в сообщении безопасности Ubuntu usn-2385-1 .
Большой улов: и клиентам, и серверам этот патч нужен для работы. Так что, на мой взгляд, пока вы обновляете и клиенты, и серверы, вам все равно следует перейти на TLSv1 +.
Однако, пожалуйста, просто отключите SSLv3 в своей сети. Приложите усилия к обновлению стандартов безопасности и просто откажитесь от SSLv3.
Только если вам действительно нужен SSLv3 по какой-то странной причине,но он также повышает безопасность TLSv1 +, поэтому да, я рекомендую вам установить его. Ubuntu предоставляет обновление для этой функции в usn-2385-1 . Вы будете получать его через регулярные обновления системы безопасности в диспетчере пакетов.
Ваши серверы уязвимы, просто если они поддерживают SSLv3. Здесь несколько вариантов:
С OpenSSL s_client:
openssl s_client -connect : -ssl3
Если соединение установлено, sslv3 включен. В случае неудачи он отключается. В случае сбоя вы должны увидеть что-то вроде:
ошибка: 14094410: подпрограммы SSL: SSL3_READ_BYTES: ошибка квитирования предупреждения sslv3.
Использование nmap
:
nmap --script ssl-enum-ciphers -p 443 myhostname.tld
Он должен вывести « SSLv3: не найдено поддерживаемых шифров
». Отрегулируйте имя хоста / порт.
Используя шифрованное сканирование . Клонируйте / загрузите двоичный файл и выполните его:
./ cipherscan myhostname.tld
Он не должен перечислять что-либо с SSLv3 в столбце «Протоколы».
Откройте about: config
, найдите security.tls. version.min
и установите значение 1
. Затем перезапустите браузер, чтобы разорвать все открытые SSL-соединения.
Firefox, начиная с версии 34, по умолчанию отключит SSLv3 и, следовательно, не потребует никаких действий ( источник ). Однако на момент написания 33 только что выпущено, а 34 назначено на 25 ноября.
Отредактируйте /usr/share/applications/google-chrome.desktop
], например
sudo nano /usr/share/applications/google-chrome.desktop
Отредактируйте все строки , начиная с Exec =
, чтобы включить - ssl-version-min = tls1
.
Например, строка вроде
Exec=/usr/bin/google-chrome-stable %U
преобразуется в
Exec=/usr/bin/google-chrome-stable --ssl-version-min=tls1 %U
. Затем обязательно полностью закройте браузер (приложения Chrome могут поддерживать ваш браузер активным в фоновом режиме!).
Примечание. Возможно, вам придется повторять это при каждом обновлении пакета google-chrome. , перезаписывая этот файл запуска .desktop
. Браузер Google Chrome или Chromium с отключенным по умолчанию SSLv3 еще не объявлен на момент написания.
Если вы используете веб-сервер Apache, который в настоящее время поддерживает SSLv3, вам нужно будет отредактировать Apache конфигурация. В системах Debian и Ubuntu это файл /etc/apache2/mods-available/ssl.conf . В CentOS и Fedora это файл /etc/httpd/conf.d/ssl.conf . Вам нужно будет добавить следующую строку в конфигурацию Apache с другими директивами SSL.
SSLProtocol All -SSLv2 -SSLv3
Это позволит использовать все протоколы, кроме SSLv2 и SSLv3.
Пока вы занимаетесь этим, вы можете подумать об улучшении конфигурации набора шифров для ваш веб-сервер, как описано в Руководстве по TLS-серверу Mozilla . Добавьте, например:
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder on
SSLCompression off
# Read up on HSTS before you enable it (recommended)
# Header add Strict-Transport-Security "max-age=15768000"
Затем проверьте правильность новой конфигурации (без опечаток и т. Д.):
sudo apache2ctl configtest
И перезапустите сервер, например,
sudo service apache2 restart
В CentOS и Fedora:
systemctl restart httpd
Подробнее: Документация Apache
Теперь проверьте: если ваш сайт общедоступен, протестируйте его с помощью инструмента Qualys SSL Labs .
Если вы используете Nginx, просто включите следующую строку в ваша конфигурация среди других директив SSL:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Пока вы это делаете, вы можете рассмотреть возможность улучшения конфигурации набора шифров для вашего веб-сервера, как описано в Руководстве по TLS-серверу Mozilla . Добавьте, например:
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
# Read up on HSTS before you enable it (recommended)
# add_header Strict-Transport-Security max-age=15768000;
И перезапустите сервер, например
sudo service nginx restart
Ссылка: Документация Nginx
Теперь проверьте его: если ваш сайт общедоступен, протестируйте его с помощью инструмента Qualys SSL Labs .
Версии Lighttpd> 1.4.28 поддерживают параметр конфигурации для отключения SSLv2 и v3. Выпуски Lighttpd до 1.4.28 позволяют отключать ТОЛЬКО SSLv2. Обратите внимание, что Ubuntu 12.04 LTS и более ранние версии устанавливают в лучшем случае lighttpd v1.4.28, поэтому простое исправление недоступно для этих дистрибутивов. Поэтому это исправление следует использовать только для версий Ubuntu выше 12.04.
Для Ubuntu версии 12.04 или Debian 6 обновленный пакет lighttpd доступен в репозитории openSUSE: http://download.opensuse.org/repositories/server:/http/Debian_6.0
Пакет предназначен для Debian 6 (сжатие), но также работает с 12.04 (точно)
Отредактируйте свой /etc/lighttpd/lighttpd.conf
, чтобы добавить следующие строки после ssl.engine = "enable"
директивы
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"
Затем вам следует перезапустить службу lighttpd с помощью sudo service lighttpd restart
и выполните тест подтверждения ssl3, как описано в предыдущих разделах, чтобы убедиться, что изменение было успешно реализовано.
Взято из http://redmine.lighttpd.net/projects/lighttpd/wiki /Docs_SSL11101162_s_12138_Postfix SMTP
Для «гибкого SSL» (политика шифрования не применяется и обычная версия также приемлема),вам не нужно ничего менять. Даже SSLv2 лучше простого, поэтому, если вам нужно защитить свой сервер, вы все равно должны использовать режим «обязательного SSL». Для уже настроенного режима «обязательный SSL» просто добавьте / измените smtpd_tls_mandatory_protocols для входящих подключений и smtp_tls_mandatory_protocols для исходящих подключений: Необязательно, если вы хотите отключить SSLv3 и для гибкого шифрования (даже если это не нужно, как описано выше), сделайте это следующим образом: и перезапустите Postfix: (Непроверенное редактирование анонимного пользователя, мне не нравится Sendmail, пожалуйста, проверьте.) Эти параметры настраиваются в разделе В Dovecot v2.1 + добавьте следующее в ваш и перезапустите Dovecot: Для более старых версий вам потребуется исправьте исходный код . Courier-imap разрешает SSLv3 по умолчанию в Ubuntu 12.04 и других. Вы должны отключить его и использовать STARTTLS вместо принудительного TLS. Отредактируйте файл конфигурации SSL поддерживается в HAProxy> = 1.5. Отредактируйте Ссылка: Документация HAProxy Похоже, не затронуты ( исходный код ). OpenVPN использует TLSv1.0 или (с> = 2.3. 3) опционально TLSv1.2, поэтому POODLE не влияет на него. Puppet использует SSL поверх HTTPS, но не используется клиентами «браузера», а только агентами Puppet, которые не уязвимы для вектора атаки. показано. Однако лучше всего просто отключить SSLv3. Я рекомендую использовать stephenrjohnson / puppetmodule Puppet module smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3
smtp_tls_mandatory_protocols=!SSLv2,!SSLv3
smtpd_tls_protocols=!SSLv2,!SSLv3
smtp_tls_protocols=!SSLv2,!SSLv3
sudo service postfix restart
Sendmail
LOCAL_CONFIG
вашего sendmail.mc
LOCAL_CONFIG
O CipherList=HIGH
O ServerSSLOptions=+SSL_OP_NO_SSLv2 +SSL_OP_NO_SSLv3 +SSL_OP_CIPHER_SERVER_PREFERENCE
O ClientSSLOptions=+SSL_OP_NO_SSLv2 +SSL_OP_NO_SSLv3
Dovecot
/etc/dovecot/local.conf
(или новый файл в / etc / dovecot / conf.d
): ssl_protocols = !SSLv2 !SSLv3
sudo service dovecot restart
Courier-imap (imapd-ssl)
/ etc / courier / imapd-ssl
, чтобы отразить следующие изменения IMAPDSSLSTART=NO
IMAPDSTARTTLS=YES
IMAP_TLS_REQUIRED=1
TLS_PROTOCOL=TLS1
TLS_STARTTLS_PROTOCOL=TLS1
TLS_CIPHER_LIST="<take those from the Mozilla TLS Server guide!>"
Сервер HAProxy
/ etc /haproxy.cfg
и найдите строку привязки
. Добавьте no-sslv3
. Например: bind :443 ssl crt <crt> ciphers <ciphers> no-sslv3
OpenVPN
Puppet
«Исправление» для курьера отключает tls 1.1 и tls 1.2. Похоже, что нет способа запустить курьера с tls 1.1 или выше. Сканирование PCI на вашем сервере может вернуться с рекомендацией:
Настройте серверы SSL / TLS для использования только TLS 1.1 или TLS 1.2, если поддерживается. Настройте серверы SSL / TLS для поддержки только наборов шифров, которые не используют блочные шифры.
Поскольку уязвимость POODLE является недостатком конструкции самого протокола, а не ошибкой реализации, исправлений не будет. Единственный способ смягчить это - отключить SSLv3 на сервере apache. Добавьте следующие строки в ssl.conf и выполните плавный перезапуск apache.
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"
Может не быть специфичным для ubuntu, но для того, чтобы обойти уязвимость Poodle в Node.js, вы можете установить secureOptions
на require («константы»). SSL_OP_NO_SSLv3
при создании сервера https или tls.
См. https://gist.github.com/3rd-Eden/715522f6950044da45d8 для дополнительной информации
ttf-mscorefonts-installer
и попытаться устранить Вашу проблему шрифтов.
– whtyger
29 February 2016 в 20:21