Security for all - #30 - 26 октября 2018

Кто сильнее? - SSL или TLS

Сегодня

В медиа библиотеке live555 обнаружено удаленное выполнение кода; уязвимости в операционной системе для компактных устройств; обход аутентификации в libssh; отказ браузеров от поддержки TLS 1.0 и 1.1 в 2020 году.

Новости

В медиа библиотеке live555 обнаружено удаленное выполнение кода

Исследовательница по имени Лили (Lilith) из команды Cisco Talos обнаружила в мультимедийной библиотеке live555 уязвимость, позволяющую удаленное выполнение кода. Эта библиотека с открытым исходным кодом используется в различных продуктах, в том числе в известных медиа плеерах VLC и MPlayer.

Проблемный компонент библиотеки отвечает за трансляцию медиа, а в частности за обработку HTTP запросов от клиентов. Из-за немного неправильной работы функции поиска заголовков у атакующего есть возможность вызвать запись за пределы буфера и тем самым добиться удаленного выполнения кода. Уязвимость получила идентификатор CVE-2018-4013 и оценивается в 10 баллов из 10 по шкале CVSSv3.

У данной новости есть небольшой нюанс. Изначально многие издания распространяли информацию, что данной уязвимости подвержен медиаплеер VLC. Этот плеер достаточно популярный, и поэтому новость вызвала резонанс. Однако в описании проблемы Cisco Talos упомянула, что VLC использует библиотеку live555, но не заявляла, что плеер подвержен уязвимости. Команда, разрабатывающая VLC, через некоторое время пояснила, что их продукт использует лишь клиентскую часть библиотеки и проблемный код не используется.

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

https://thehackernews.com/2018/10/critical-flaw-found-in-streaming.html

Уязвимости в операционной системе для компактных устройств

Исследователь Ори Карлинер (Ori Karliner) из Zimperium Security Labs (zLabs) обнаружил в общей сложности 13 уязвимостей в операционной системе реального времени FreeRTOS и ее производных. Операционные системы реального времени используются в устройствах, где нужна высокая точность по времени и гарантированное время ответа на события. Например такая система может использоваться в кардиостимуляторах.

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

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

https://thehackernews.com/2018/10/amazon-freertos-iot-os.html

Обход аутентификации в libssh

В библиотеке libssh была найдена уязвимость 4 летней давности. Библиотека реализует протокол Secure Shell или SSH. В русскоязычном произношении чаще встречается как ЭсЭсАш. Этот протокол используется для удаленного подключения к компьютерам для управления ими в консольном режиме.

Найденная ошибка немного курьезная. В протоколе есть разные сообщения, среди них запрос аутентификации (SSH2_MSG_USERAUTH_REQUEST), который клиент посылает серверу, и ответ, который сервер посылает клиенту, если он прошел проверку (SSH2_MSG_USERAUTH_SUCCESS).

Уязвимость находится на стороне сервера. Суть в том, что если сам клиент пошлет сообщение сообщающее об успешной аутентификации (SSH2_MSG_USERAUTH_SUCCESS), то сервер посчитает, что аутентификация прошла успешно, и пустит клиента.

https://thehackernews.com/2018/10/libssh-ssh-protocol-library.html

Браузеры откажутся от поддержки TLS 1.0 и 1.1 в 2020 году

Сразу все компании, разрабатывающие основные браузеры (Google Chrome, Apple Safari, Microsoft Edge, Internet Explorer и Mozilla Firefox), объявили о том, что в 2020 году прекратят поддержку протоколов TLS 1.0 и 1.1 в своих продуктах. Вся новость поместилась в одном предложении. Но чтобы было понятнее, о чем речь, я расскажу что это за протоколы и почему от них отказываются.

https://thehackernews.com/2018/10/web-browser-tls-support.html

SSL и TLS

Изначально протокол HTTP разрабатывался для ученых, для обмена знаниями. Позднее web и интернет вошли в жизнь обычных людей. Потом появилась необходимость различать отдельных пользователей и защищать передаваемые данные. Для идентификации пользователей придумали куки, для защиты данных - SSL.

Первая версия протокола SSL была разработана компанией Netscape Communications В 1994 году. SSL расшифровывается как Secure Socket Layer - слой безопасный сокетов. Одно из важных слов - слой. Концепция сетевых протоколов основана на слоях.

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

Второй уровень называется канальный. Он определяет, как взаимодействуют близлежащие устройства, как они адресуют друг друга. К этому уровню относится, например, ethernet.

Третий уровень - сетевой. Он позволяет строить маршруты используя логическую адресацию. IPv4 и IPv6 относятся к этому уровню.

Всего в идеальной модели 7 уровней. Я не буду перечислять все. Отмечу лишь, что основная идея - скрыть детали нижележащих уровней от вышележащих. С учетом этого принципа и был разработан SSL. Он представляет из себя прослойку, поверх которой может работать практически любой протокол верхнего уровня. В случае WEB’а протоколом верхнего уровня является HTTP. Вместе SSL и HTTP называются HTTPS.

SSL 1, SSL 2 и SSL 3

Первая версия SSL разрабатывалась силами одной компании, без привлечения сторонних экспертов. В результате первый блин получился комом - в протоколе были найдены серьезные проблемы. Поэтому публично была представлена только вторая версия - SSLv2. Произошло это в 1995 году. Но в ней также были недостатки, поэтому в 1996 году была представлена полность переработанная версия протокола SSLv3.

TLS 1.0

Следующая версия протокола, вышедшая в январе 1999 года, называлась уже TLS (transport layer security - безопасность транспортного слоя, если дословно). Она не очень сильно отличалась от SSL 3, но отличия все-таки были. TLS версии 1.0 можно считать как SSL 3.1. Для обратной совместимости в протокол TLS 1.0 добавили возможность понизить версию до SSL 3 при установлении соединения. Это впоследствии привело к атаке, в рамках которой сначала понижалась версия протокола, а потом эксплуатировались слабости старой версии.

TLS 1.1

В 2006 году свет увидел протокол TLS 1.1. В нем стал использоваться явный вектор инициализации для симметричного шифрования, изменена обработка ошибок и механизм возобновления сессий. Также управление реестром допустимых значений для разных параметров и полей было передано группе, управляющей адресным пространством интернета (IANA - Internet Assigned Numbers Authority — Администрация адресного пространства Интернет)

TLS 1.2

Следующая версия, TLS 1.2, была опубликована в 2008 году. Данная версия считается достаточно надежной и не имеющей серьезных недостатков. Основные изменения коснулись алгоритмов хеширования и шифрования, их применений, режимов работы блочных симметричных шифров. Слабые алгоритмы шифрования перестали поддерживаться.

TLS 1.3

В августе этого (2018) года наконец была завершена работа над протоколом TLS 1.3. В работе принимали участие люди из академической среды. Было проведено очень большое количество анализа. В новой версии были удалены устаревшие алгоритмы, переработана схема выбора режимов шифрования (ciphercuite’ов). Также была упрощена схема установления соединения. Теперь всеми нужными данными клиент и сервер обмениваются за один заход, а не за два, что повысило скорость установления соединения.

https://blog.cloudflare.com/rfc-8446-aka-tls-1-3/

Безопасность

На текущий момент протокол SSL считается небезопасным. На серверах SSLv2 и SSLv3 должны быть выключены. Многие приложения и серверы уже отказались от него. TLS по сути новое имя для протокола SSL. В протоколе TLS версий 1.0 и 1.1 за прошедшие несколько лет были найдены различные ошибки, которые на данный момент устранены. Большинство программного обеспечения умеет работать как минимум с TLS 1.2, а некоторые уже и с TLS 1.3, поэтому от устаревших протоколов 1.0 и 1.1 вполне логично отказаться.


На сегодня все. До следующей недели.