SSL — основной инструмент обеспечения безопасности в интернете, позволяющий организовывать защищенный обмен данными даже в недоверенной сети. Однако реализация устойчивого SSL — не такая уж и легкая задача, ошибки в решении которой могут приводить к масштабным проблемам, таким, как уязвимость Heartbleed.
В сфере интернета вещей существует собственная реализация SSL — MatrixSSL, и как показывает практика, с уровнем ее защищенности не все хорошо.
В чем проблема
Подобные масштабные уязвимости поднимают вопросы реализации подходов безопасной разработки и недостатков процессов проектирования, применявшихся создателями многих реализаций SSL. В разгар скандала с Heartbleed даже звучали призывы отказаться от использования OpenSSL в пользу NSS, GnuTLS и Polar SSL. Что касается устройств так называемого интернета вещей (Internet of Things, IoT), то в этом случае многие эксперты по безопасности рекомендовали использовать MatrixSSL — компактный SSL/TLS стек, разработанный специально для применения в сфере IoT.
Однако в 2015 году было опубликовано исследование SEC Consult, авторы которого сумели обнаружить более 80000 подключенных к сети устройств, которые использовали одни и те же ключи шифрования, опубликованные в домашнем репозитории MatrixSSL. Еще десятки тысяч устройств на базе MatrixSSL можно найти с помощью поисковика Shodan.
Такие устройства часто — это сетевое оборудования вроде WiMAX-шлюзов или кабельных модемов интернет-провайдеров. Это значит, что наличие критических уязвимостей в софте, использующимся этими устройствами, может приводить к масштабным инцидентам информационной безопасности.
И подобные уязвимости были обнаружены исследователями — в 2016 году Флориан Ваймер (Florian Weimer) и Ханно Бёк (Hanno Böck) раскрыли информацию о криптографических проблемах MatrixSSL — помимо прочего была обнаружена возможность похищения частных ключей шифрования. После общения с Бёком, ИБ-исследователь компании Tripwire Крейг Янг (Craig Young) решил внимательнее изучить уровень защищенности сертификата X.509 MatrixSSL.
С помощью инструмента American Fuzzy Lop (AFL) ему удалось обнаружить сразу несколько серьезных уязвимостей. Среди найденных проблем, переполнение буфера, приводящее к выполнению кода (CVE-2016-6890), уязвимость buffer over-read (CVE-2016-6891) и некорректная работа механизма освобождения памяти в модуле x509FreeExtensions() (CVE-2016-6892).
Данные ошибки могут приводить к серьезным проблемам. К примеру, в том случае, если система на базе MatrixSSL используется для обработки недоверенных сертификатов X.509 — частая ситуация при аутентификации клиентского приложения, то атакующий может получить возможность осуществления удаленного выполнения кода. Для роутер или IoT-устройств это означает практически гарантированный полный доступ с привилегиями root-пользователя.
Как защититься
По словам Янга, производители, использующие в своих продуктах MatrixSSL, были уведомлены об обнаруженных уязвимостях в сентябре, и уже работают над патчами. Вендоры и частные пользователи MatrixSSL могут скачать обновленную прошивку из официального GitHub-репозитория Matrix SSL. Исправления найденных ошибок включены в коммит b8dcfd875923da5a65ecfdbbe790ed63b1d33de3 для релиза 3.8.6.
К сожалению, многие устройства на базе MatrixSSL, использующиеся в корпоративных сетях, никогда не будут обновлены — не все IoT-производители в итоге выпустят патчи, а в случае отсутствия автоматического обновления сами пользователи вряд ли будут этим заниматься.
Все это поднимает важный вопрос — вместо обсуждения более надежных инструментов обеспечения защиты в интернете и необходимости поиска их замены, гораздо перспективнее думать о реализации более продвинутых механизмов распространения обновлений и внедрения подходов безопасной разработки софта.
Комментарии (0)