Клиент Jinn будет работать в облегченном режиме без ошибки копирования файла доверенной среды
Обновлено: 21.11.2024
Самая настраиваемая платформа электронной коммерции для развития вашего онлайн-бизнеса. Начните сегодня бесплатно.
Написано Бо Лебенс в блоге 15 июля 2021 г.
Последнее обновление: 23 июля 2021 г.
13 июля 2021 г. исследователь безопасности Джош обнаружил критическую уязвимость, связанную с WooCommerce и подключаемым модулем WooCommerce Blocks, с помощью нашей программы безопасности HackerOne.
Узнав о проблеме, наша команда немедленно провела тщательное расследование, проверила все соответствующие кодовые базы и создала исправление, устраняющее проблему для каждой затронутой версии (90+ выпусков), которое автоматически развертывалось в уязвимых магазинах.
У меня есть магазин WooCommerce — какие действия мне следует предпринять?
Автоматические обновления программного обеспечения для WooCommerce 5.5.1 начали развертываться 14 июля 2021 г. во всех магазинах, в которых используются уязвимые версии каждого подключаемого модуля, но мы по-прежнему настоятельно рекомендуем вам убедиться, что вы используете последнюю версию. Для WooCommerce это 5.5.2* или максимально возможное число в вашей ветке релиза. Если вы также используете блоки WooCommerce, вы должны использовать версию 5.5.1 этого плагина.
Важно! С выпуском WooCommerce 5.5.2 23 июля 2021 г. упомянутый выше процесс автоматического обновления был прекращен.
После обновления до исправленной версии мы также рекомендуем:
- Обновление паролей для любых пользователей-администраторов на вашем сайте, особенно если они повторно используют одни и те же пароли на нескольких сайтах.
- Ротация любых ключей API платежного шлюза и WooCommerce, используемых на вашем сайте.
Подробнее об этих шагах см. ниже.
* WooCommerce 5.5.2 был выпущен 23 июля 2021 г. Исправления, содержащиеся в этой версии, не связаны с недавней уязвимостью системы безопасности.
Как узнать, актуальна ли моя версия?
В приведенной ниже таблице содержится полный список исправленных версий как для WooCommerce, так и для блоков WooCommerce. Если вы используете версию WooCommerce или WooCommerce Blocks, которой нет в этом списке, немедленно обновите ее до самой последней версии в вашей ветке выпуска.
Исправленные версии WooCommerce | Исправленные версии блоков WooCommerce |
3.3.6 | 2.5.16 |
3.4.8 | 2.6.2 |
3.5.9 | 2.7.2 |
3.6.6 | 2.8.1 |
3.7.2 | 2.9.1 |
3.8.2 | 3.0.1 | 3.9.4 | 3.1.1 |
4.0.2 | 3.2.1 | < /tr>
4.1.2 | 3.3.1 |
4.2.3 | 3.4.1< /td> |
4.3.4 | 3.5.1 |
4.4.2 | 3.6.1 |
4.5.3 | 3.7.2 |
4.6.3 | 3.8.1 |
4.7.2 | 3.9.1 |
4.8. 1 | 4.0.1 |
4.9.3 | 4.1.1 |
4.2.1 | |
5.1.1 | 4.3.1 |
5.2.3 | 4.4.3 |
5.3.1 | 4.5.3 |
5.4.2 | 4.6.1 |
5.5.1 | 4.7.1 |
5.5.2 | 4.8.1 |
4.9.2 | |
5.0.1 | |
5.1.1 | 5.2.1 |
5.3.2 | |
5.4.1 | |
5.5.1 |
Почему мой сайт не получил автоматическое обновление?
Во всех случаях (кроме первого примера, когда вас это не затронет) вам следует попытаться вручную обновиться до последней исправленной версии в вашей ветке выпуска (например, 5.5.2, 5.4.2, 5.3.1 и т. д.). как указано в таблице выше.
Были ли какие-либо данные скомпрометированы?
Исходя из имеющихся данных, мы считаем, что любой эксплойт был ограниченным.
Если затронут магазин, раскрытая информация будет относиться к тому, что хранится на этом сайте, но может включать информацию о заказах, клиентах и административную информацию.
Как я могу проверить, не был ли взломан мой магазин?
Из-за характера этой уязвимости и чрезвычайно гибкого способа обработки веб-запросов WordPress (и, следовательно, WooCommerce), не существует определенного способа подтверждения эксплойта. Возможно, вы сможете обнаружить некоторые попытки эксплойта, просмотрев журналы доступа вашего веб-сервера (или получив помощь от вашего веб-хостинга). Запросы в следующих форматах, поступившие с декабря 2019 г. по настоящее время, скорее всего, указывают на попытку эксплойта:
- REQUEST_URI, соответствующий регулярному выражению /\/wp-json\/wc\/store\/products\/collection-data.*%25252.*/
- REQUEST_URI, соответствующий регулярному выражению /.*\/wc\/store\/products\/collection-data.*%25252.*/ (обратите внимание, что это выражение неэффективно/медленно работает в большинстве сред ведения журналов)< /li>
- Любой запрос без GET (POST или PUT) к /wp-json/wc/store/products/collection-data или /?rest_route=/wc/store/products/collection-data
Запросы, использующие эту уязвимость, поступают со следующих IP-адресов, причем более 98 % приходятся на первый в списке. Если вы видите какой-либо из этих IP-адресов в своих журналах доступа, вы должны предположить, что уязвимость использовалась:
- 137 116 119 175
- 162.158.78.41
- 103.233.135.21
Какие пароли мне нужно изменить?
Маловероятно, что ваш пароль был скомпрометирован, так как он хеширован.
Пароли пользователей WordPress хэшируются с использованием солей, что означает, что полученное хеш-значение очень сложно взломать. Этот подход с использованием соленого хэша защищает ваш пароль администратора, а также пароли любых других пользователей на вашем сайте, включая клиентов. Несмотря на то, что доступ к хешированной версии вашего пароля, хранящейся в вашей базе данных, возможен через эту уязвимость, значение хеш-функции должно быть неразличимым и по-прежнему защищать ваши пароли от несанкционированного использования.
Это предполагает, что на вашем сайте используется стандартное управление паролями WordPress для пользователей. В зависимости от плагинов, которые вы установили на свой сайт, пароли или другая конфиденциальная информация могут храниться менее безопасным способом.
Если кто-либо из пользователей-администраторов на вашем сайте мог повторно использовать одни и те же пароли на нескольких веб-сайтах, мы рекомендуем вам обновить эти пароли на случай, если их учетные данные были скомпрометированы в другом месте.
Мы также рекомендуем изменить любые личные или секретные данные, хранящиеся в вашей базе данных WordPress/WooCommerce. Это могут быть ключи API, открытые/закрытые ключи для платежных шлюзов и многое другое, в зависимости от конфигурации вашего конкретного магазина.
Как разработчик расширений или поставщик услуг, должны ли мы предупредить наших продавцов WooCommerce?
Если вы работаете с каким-либо действующим магазином или продавцом WooCommerce, мы рекомендуем вам сотрудничать с ними, чтобы убедиться, что они знают об этой проблеме, и/или обновить их магазин до безопасной версии.
Если вы создали расширение или предлагаете услугу SaaS, основанную на API WooCommerce, мы рекомендуем вам помочь продавцам сбросить ключи для подключения к вашей службе.
Как владелец магазина, должен ли я предупреждать своих покупателей?
Вы сами решаете, предупреждать ли своих клиентов. Ваши обязательства по уведомлению клиентов или сбросу таких вещей, как пароли, будут зависеть от таких деталей, как инфраструктура вашего сайта, географическое положение вас и ваших клиентов, какие данные собирает ваш сайт, а также от того, был ли ваш сайт скомпрометирован.
Самое важное действие, которое вы можете предпринять для защиты своих клиентов, — это обновить версию WooCommerce до версии, в которой исправлена эта уязвимость.
После обновления мы рекомендуем:
- Обновление паролей для всех пользователей-администраторов на вашем сайте, особенно если вы повторно используете одни и те же пароли на нескольких сайтах.
- Ротация любых ключей API платежного шлюза и WooCommerce, используемых на вашем сайте.
Как владелец магазина, вы сами решаете, хотите ли вы принять дополнительные меры предосторожности, например сбросить пароли ваших клиентов. Пароли пользователей WordPress (и, следовательно, WooCommerce) хэшируются с использованием солей, что означает, что полученное хеш-значение очень сложно взломать. Этот подход с соленым хэшем применяется ко всем паролям пользователей на вашем сайте, включая пароли ваших клиентов.
Безопасно ли использовать WooCommerce?
Подобные инциденты случаются редко, но, к сожалению, иногда случаются. Мы стремимся всегда реагировать немедленно и работать с полной прозрачностью.
С тех пор, как мы узнали об уязвимости, команда круглосуточно работала над тем, чтобы исправить ее и проинформировать наших пользователей.
Наши постоянные инвестиции в безопасность платформы позволяют нам предотвращать подавляющее большинство проблем, но в редких случаях, которые потенциально могут повлиять на работу магазинов, мы стремимся быстро исправлять, активно общаться и работать совместно с сообществом WooCommerce.
Что делать, если у меня остались вопросы?
Если у вас есть какие-либо дополнительные проблемы или вопросы по этой проблеме, наша команда Happiness Engineers всегда готова помочь — отправьте запрос в службу поддержки.
В словарь по умолчанию добавлены атрибуты от нескольких поставщиков:
Добавлен VENDOR Unix 4 с рядом атрибутов для маршрутизаторов Digi IX14, LR и WR. Некоторые VSA поставщика 4 также используются программным обеспечением ProFTPD.
Добавлен VENDOR Cisco-VPN5000 255 для концентратора Cisco VPN 5000 с рядом атрибутов с префиксом CVPN5000.
Добавлен VENDOR Adtran 664 с рядом атрибутов с префиксом Adtran.
Добавлен ПОСТАВЩИК Cisco-BSSM 5632 для атрибута Cisco Building Broadband Service Manager CBSSM-Bandwidth.
Добавлен ПОСТАВЩИК Cisco-Aironet 5842 для атрибута Aironet-Session-Timeout.
Добавлен ПОСТАВЩИК Calix 6321 с номером атрибутов с префиксом Calix.
Добавлен VENDOR Overture 7950 с атрибутом Overture-User-Access-Level.
Добавлен VENDOR Hatteras 8550 с атрибутом Hatteras-Auth-Level.
Добавлен VENDOR Ericsson-PCN 10923 для атрибутов, зарегистрированных для поставщика Ericsson AB — Packet Core Networks. Добавлен ряд атрибутов с префиксом Ericsson-PCN.
Добавлен VENDOR Sandvine 11610 с атрибутом Sandvine-Group.
Добавлен VENDOR ELTEK 12148 с рядом атрибутов с префиксом ELTEK.
Добавлен VENDOR Overture- 4200-4300 16943 с атрибутом Overture-4200-4300-Access_Level для устройств Overture 4200/4300.
Добавлен VENDOR CyanInc 28533 с атрибутами CyanInc-User-Roles и CyanInc-Acct-Event-Text.
Редакция 4.24 (9 декабря 2019 г.): новые функции, улучшения и исправления ошибок
Избранные примечания, улучшения и исправления совместимости
Известные предостережения и другие примечания
- TLSv1.3 остается отключенным по умолчанию для методов EAP на основе TLS и классов на основе Stream, таких как RadSec.
- Сообщается, что функциональность EAP-FAST зависит от версии TLS, настроек уровня безопасности библиотеки TLS и реализации клиента.
Подробные изменения
Редакция 4.23 (17 апреля 2019 г., первоначальный выпуск от 10 апреля 2019 г.): исправления безопасности, новые функции, улучшения и исправления ошибок
Выбранные примечания о совместимости, улучшения и исправления
- Улучшен AcctLogFILE для поддержки JSON.
- Исправления безопасности для проверки подлинности EAP-pwd и некоторых конфигураций TLS. OSC рекомендует всем пользователям ознакомиться с рекомендациями по безопасности OSC OSC-SEC-2019-01.
Известные предостережения и другие примечания
- TLSv1.3 не включен по умолчанию для методов EAP на основе TLS.
- TLSv1.3 не включен по умолчанию для классов на основе потока, таких как RadSec.
Подробные изменения
Редакция 4.22 (09 января 2019 г.): крупное обновление пакета, новые функции, улучшения и исправления ошибок
Выбранные примечания о совместимости, улучшения и исправления
- Новые пакеты Radiator: Red Hat Enterprise Linux 7 и Centos 7, Ubuntu 16.04 и 18.04 и Windows MSI.
- Основные обновления поддержки сервера проверки Yubikey
- Поддержка множественной адресации SCTP для Diameter и других потоковых модулей.
Известные предостережения и другие примечания
- TLSv1.3 не включен по умолчанию для методов EAP на основе TLS.
- TLSv1.3 не включен по умолчанию для классов на основе потока, таких как RadSec.
Подробные изменения
- Исправлены вложенные и каскадные группы AuthBy GROUP, которые перестали работать в Radiator 4.20.
- Унифицирована функция AuthBy HANDLER и отменены некоторые изменения, сделанные в Radiator 4.20.
- Журнал аутентификации и учета JSON теперь форматирует время как числовой тип, а не как строку.
- Обработка соединений ServerTACACSPLUS претерпела значительные изменения.
- Может потребоваться обновление пользовательских модулей, использующих функции инициализации.
Известные предостережения и другие примечания
- Первоначальное тестирование проводится с разрабатываемыми версиями OpenSSL 1.1.1. Не рекомендуется использовать с радиатором.
Подробные изменения
- Обновлен простой_основной_цикл для использования тайм-аута и обработчика тайм-аута. Они полезны для тестовых и других клиентских программ.
- Атрибуты, заданные в командной строке, теперь переопределяют значения по умолчанию и переключателей параметров в radpwtst.
- Исправлена ошибка, из-за которой вложенные и каскадные группы AuthBy GROUP переставали работать из-за изменений в асинхронной обработке Radiator 4.20.
- Унифицированы функции AuthBy HANDLER и отменены некоторые изменения, сделанные в Radiator 4.20: AuthLog, AcctLog, PostProcessingHook, AddToReply и аналогичные обновления ответов теперь выполняются обработчиками, вызываемыми AuthBy HANDLER. Если эти функции необходимы, когда AuthBy RADIUS используется с AuthBy HANDLER, требуется флаг асинхронности.
- Исправлено IgnoreReject в AuthBy RADIUS при включенном NoReplyReject.
- AuthBy RADSEC теперь поддерживает Asynchronous и NoReplyReject.
- Handler теперь поддерживает параметр конфигурации флага AccountingAccepted для Handler. Это вынуждает обработчик немедленно регистрировать и безоговорочно подтверждать запросы учета, прежде чем передавать их в AuthBys. По сравнению с AccountingHandled здесь не будет ждать ответа от прокси-сервера.
- Ответ на запрос любого типа теперь отправляется только один раз. Это делается для особых случаев, например, когда запрос учета передается на несколько серверов через прокси-сервер, или перехватчик или любая другая особая обработка могут привести к тому, что NAS получит несколько ответов.
- EAP-TLS теперь также использует тип электронной почты subjectAltName при проверке соответствия идентификатору EAP или имени пользователя.
- Обновлен алгоритм MaxFailedGraceTime в AuthBy RADIUS и RADSEC.
- Исправлены методы туннелирования EAP для правильной работы, когда внутренние прокси-серверы аутентификации с включенным асинхронным параметром.
- Обновлены демонстрационные сертификаты subjectAltName для клиентских и серверных сертификатов. Клиент теперь имеет электронную почту, а сервер имеет URI в дополнение к существующим альтернативным именам. Другие сертификаты, не относящиеся к ЦС, имеют и то, и другое.
- Усовершенствованное протоколирование и обработка ошибок прослушивания сокета StreamServer во время настройки.
- Обновлено несколько методов EAP, чтобы активировать Access-Reject с EAP-Failure для некоторых сообщений, которые ранее игнорировались.
- Удален устаревший EAP типа 38 EAP-TNC.
- Обновлено ведение журнала EAP-PAX и EAP-PSK и обработка ошибок. EAP-PSK теперь требует, чтобы идентификатор EAP совпадал с идентификатором, передаваемым в сообщениях EAP-PSK.
- Улучшен скрипт инициализации радиатора goodies/linux-radiator.init и файл сервисного модуля systemd goodies/radiator.service. Добавлен файл goodies/radiator@.service единицы службы systemd, который поддерживает экземпляры службы systemd.
- Обновления ведения журнала. Внутренние изменения, чтобы включить больше предупреждений и то, как клиент поддерживает свой список клиентов для поиска клиентов.
- ФАЙЛ StatsLog теперь поддерживает параметр конфигурации OutputFormat. Возможные значения: text и json. По умолчанию используется текст.
- Message-Authenticator больше не добавляется в ответы Status-Server Access-Accept, поскольку некоторые клиенты не могли его обработать.
- Усовершенствования ведения журнала: Причина в AuthLog теперь представляет собой пустую строку, а не неопределенное значение, если конкретная причина недоступна. Это типично, когда результат принимается за нормальные условия. Теперь доступны дополнительные результаты для определенных условий и специальных конфигураций, таких как NoForwardAuthentication.
- Исправлен бесконечный цикл, когда AuthBy RADIUS был настроен с асинхронным режимом, CachePasswords и CacheOnNoReply.
- AcctSQLStatement и AuthSQLStatement теперь поддерживают %0 для замены имени пользователя.
- Добавлен пример конфигурации radminYubikey.cfg. Все образцы конфигурации RAdmin были обновлены и теперь поставляются с Radiator.
- Пользовательские модули, которым требуются main::reinitFns и addChildInitFn, должны быть обновлены для использования новых методов регистрации обратного вызова в ServerConfig. ServerConfig теперь поддерживает методы регистрации функций обратного вызова для каждого модуля, которые запускаются для запуска и перезапуска сервера, дочерней вилки фермы, повторной инициализации, отложенного завершения работы и завершения работы.
- Исправлена ошибка в использовании имени службы GossipRedis Sentinel, которая приводила к сбою подключения Sentinel. Журнал GossipRedis теперь четко показывает, является ли конечная точка подключения Redis Sentinel или сервером.
- Изменены форматы format_acct_log_json и format_authlog_json в файле LogFormat.pm, чтобы добавить время в виде числового типа, целого числа или числа с плавающей запятой, а не строки. Тип зависит от LogMicroseconds.
- Улучшено ведение журнала сплетен и обработка плохо отформатированных сообщений.
- Улучшена обработка noauth, noacct и соответствующих флагов radpwtst.
- Обработка соединений ServerTACACSPLUS теперь основана на модулях Stream, аналогичных RadSec, Diameter и другим. Это устраняет ошибку блокировки соединения при запуске с параметром FarmSize и позволяет ServerTACACSPLUS использовать все функции, предоставляемые модулями Stream.
- Внутренние изменения в функциях повторной инициализации и инициализации дочерних элементов фермы, которые могут заинтересовать авторов пользовательских модулей
Повторная инициализация- Функции повторной инициализации теперь запускаются только при повторной инициализации radiusd (т. е. SIGHUP)
- reinitialise запускается перед уничтожением $main::config, поэтому зарегистрированные функции повторной инициализации могут только читать $main::config, если это необходимо
- если есть необходимость в вызове функций при запуске, т.е. после чтения $main::config, рекомендуется использовать $main::config->register_startup_fn(\&coderef, @args)
- теперь можно задавать аргументы для повторной инициализации функций
- прямая отправка в @main::reinitFns в будущем будет устаревшей, поэтому предпочтительным способом их регистрации является $main::config->register_reinit_fn(\&coderef, @args)
Инициализация дочерней фермы
- использование main::addChildInitFn будет объявлено устаревшим в будущем. Предпочтительный способ регистрации дочерних функций инициализации фермы — через $main::config->register_childinit_fn(\&coderef, @args). Сигнатура функции не изменилась с main::addChildFn.
Избранные примечания, улучшения и исправления совместимости
Известные предостережения и другие примечания
- Первоначальное тестирование проводится с разрабатываемыми версиями OpenSSL 1.1.1. Не рекомендуется использовать с радиатором.
Подробные изменения
Избранные примечания, улучшения и исправления совместимости
- Устранена утечка памяти в методах EAP на основе TLS. Это коснулось конфигураций, отключающих возобновление сеанса.
- Незавершенные проверки подлинности EAP теперь регистрируются
- Игнорируемые проверки подлинности теперь доступны для ведения журнала AuthLog
Известные предостережения и другие примечания
- Возобновление сеанса PEAP иногда завершается ошибкой в Windows и возвращается к полной аутентификации. Исправление известно и запланировано для будущих выпусков.
- Первоначальное тестирование OpenSSL 1.1.0. EAP-FAST еще не работает.
Подробные изменения
- Расширенные сообщения журнала, созданные методами EAP на основе TLS.Дополнительные сведения теперь регистрируются и доступны с информацией о причине AuthLog.
- Добавлены две новые функции модуля контекста: fetch возвращает существующий контекст и сбрасывает время ожидания. Если существующего контекста нет, ничего не возвращает. timeout_callback задает функцию обратного вызова для контекста, которая вызывается по истечении времени ожидания контекста.
- Улучшенное ведение журнала EAP: незавершенные проверки подлинности EAP теперь регистрируются как в журнале радиатора, так и в журнале проверки подлинности. Записи журнала проверки подлинности регистрируются как отклоненные проверки подлинности. Предложено Дэвидом Зыком и др.
- Контексты EAP теперь освобождаются после завершения аутентификации, а не всегда ожидают истечения времени ожидания контекста.
- В методах EAP на основе TLS происходила утечка памяти, когда EAPTLS_SessionResumption был отключен. Этот параметр включен по умолчанию.
- VENDOR Airespace 14179 VSA Airespace-IPv6-ACL-Name добавлен в словарь
- Ошибка в написании приложения в DiaAttrList::REDIRECT_HOST_USAGE_REALM_AND_APPLICATION и имени приложения Diameter «SIP Application»
- Исправлена ошибка AuthBy SIP2, которая отклоняла как действительные, так и недействительные попытки аутентификации с помощью EAP-GTC. Улучшено ведение журнала SIP2 и обновлен AuthBy SIP2 для более надежной обработки неподдерживаемых методов EAP.
- Теперь при вызове метода цитаты для модуля, который не является SqlDb, регистрируется сообщение об ошибке. Одинарные кавычки теперь удалены из значения в кавычках. Любые пользовательские модули, которые регистрируют это сообщение, должны быть исправлены, чтобы использовать правильный модуль, производный от SqlDb, при вызове цитаты.
- Добавлена поддержка опроса очереди сообщений в Gossip. Добавлен новый образец конфигурации radius-dynauth.cfg, который использует AuthBy DYNAUTH для отправки запросов динамической аутентификации RADIUS. Теперь Handler.pm передает ссылку на причину результата в вызовы answerFn. Незначительные исправления для отслеживания передачи идентификатора и сплетен.
- Новые элементы проверки RecvPort, RecvAddress и RecvName соответствуют запросам на основе локального порта или адреса. Например, если Radiator прослушивает порт Radius 1645 и 1812, он выбирает только те запросы, которые были получены через порт 1645.
- Улучшенный монитор для интеграции с другими системами. Реализованы следующие команды монитора:
ASCII: измените разделители объектов и строк на «\n»
ПО УМОЛЧАНИЮ: измените разделители объектов и строк обратно на их значения по умолчанию ASCII SOH и NUL соответственно
ПОЛУЧИТЬ: получить один атрибут объекта
с любезной помощью Килиана Краузе - Исправлен сбой при проверке одновременного использования REDIS SessionDatabase.
- Обновлена документация по шифрованию Gossip, ведение журнала, обработка недопустимых ключей и изменен индекс ключа с 0 на зарезервированный.
- Счетчик StatsLog proxiedNoReply теперь увеличивается для узлов в пределах AuthBy RADIUS и RADSEC и их производных предложений. Ранее счетчик увеличивался только для AuthBy после исчерпания всех повторных попыток. Время ожидания сервера состояния не увеличивает значение счетчика Host proxiedNoReply.
- Все предложения AuthLog теперь поддерживают параметр флага LogIgnore. По умолчанию этот параметр не установлен, и если он установлен, он позволяет регистрировать проигнорированные попытки аутентификации. Попытка обычно игнорируется, когда пользовательская база данных дает сбой или Radiator не может вернуть окончательный ответ по какой-либо другой причине. Прокси-запросы, которые возвращают немедленное игнорирование, не регистрируются, поскольку ответ с окончательным результатом ожидается позже.
- Исправлены ошибки в ферме серверов GossipUDP и обмене сообщениями об обнаружении одноранговых узлов.
- Если задан глобальный параметр "Пользователь" или "Группа", задается как действительный, так и реальный идентификатор пользователя или группы, а не только действующие идентификаторы.
- Исправлена проблема, из-за которой расширенная отладка, например с предикатами трассировки монитора, могла привести к сбою.
- DynAuthPort в клиенте теперь по умолчанию не установлен вместо 3799. Это позволяет таким предложениям, как AuthBy DYNAUTH, предоставлять значение для каждого запроса, которое не перезаписывается DynAuthPort клиента.
- radiusd теперь поддерживает несколько параметров командной строки -I.
Избранные примечания, улучшения и исправления совместимости
- Добавлен параметр AuthenProto для настройки разрешенных протоколов аутентификации, таких как PAP, CHAP и дайджест SIP. Подробнее см. ниже, особенно если вы используете дайджест SIP.
- EAP-MSCHAP-V2 требует параметр флага EAP_MSCHAPv2_UseMultipleAuthBys при наличии нескольких AuthBys в одном обработчике.
- Добавлены предложения AcctLog для регистрации сообщений учета.
- Добавлена поддержка алгоритмов прокси в AuthBy RADSEC.
- Количество улучшений ведения журналов, EAP и другой обработки протоколов. Для пользовательских реализаций EAP-TTLS могут потребоваться обновления. Подробнее см. ниже.
- Пустые пароли и имена пользователей с октетами NUL теперь отклоняются большинством методов аутентификации при поиске в локальной базе данных пользователей.
- Дефис «-» больше не работает как имя файла для StatsLog FILE и подобных параметров.
- Исправления безопасности для общей аутентификации, цитирования SQL, аутентификации Digipass и AuthBy HEIMDALDIGEST.OSC рекомендует всем пользователям ознакомиться с рекомендациями по безопасности OSC OSC-SEC-2017-01
Известные предостережения и другие примечания
- Возобновление сеанса PEAP иногда завершается ошибкой в Windows и возвращается к полной аутентификации. Исправление известно и запланировано для будущих выпусков.
- Специальное форматирование символов % было обновлено. Правильно определенные строки формата не должны требовать изменений.
- Тесты с OpenSSL 1.1.0 пока не проводились.
- Мы получили сообщения об утечках памяти. Мы изучаем это и будем признательны за любые сообщения о необычном росте процессов.
Подробные изменения
Избранные примечания, улучшения и исправления совместимости
Функции, которых еще нет в этом выпуске, известные предостережения и другие примечания
- Поддержка OCSP
- Выбор прокси-алгоритма для AuthBy RADSEC
- Не тестировал OpenSSL 1.1.0. Тестирование с OpenSSL 1.0.2h, Net::SSLeay 1.78, IOS 10, Android 7 и Windows 10
- В Windows иногда происходит сбой возобновления сеанса PEAP. Дальнейшее расследование продолжается.
- Основное обновление документации. Справочное руководство по радиаторам снова доступно в формате HTML
Подробные изменения
Выбранные исправления ошибок, примечания о совместимости и улучшения
- Обновление совместимости для методов TLS на основе EAP для клиентов, поддерживающих TLS 1.2. Примерами могут служить будущие выпуски Apple iOS и OS X, а также Android 6 Marshmallow.
- Два важных исправления безопасности. OSC рекомендует всем пользователям ознакомиться с рекомендациями по безопасности OSC OSC-SEC-2015-02
- В настоящее время возобновление сеанса TLS может работать не со всеми клиентами Windows. Обходной путь — установить для параметра EAPTLS_SessionResumion значение 0 или подождать, пока клиент повторит попытку аутентификации.
- Radiator теперь поддерживает новый модуль AddressAllocator DHCPv6 для выделения адресов IPv6 и делегирования префиксов.
Подробные изменения
Избранные исправления ошибок, примечания о совместимости, новые функции и улучшения
- Исправляет уязвимость EAP-MSCHAP-V2 и EAP-pwd. OSC рекомендует всем пользователям ознакомиться с рекомендацией по безопасности OSC OSC-SEC-2015-01, чтобы узнать, затронуты ли они.
- Требуется perl-ldap-0.32 или выше. Должен быть доступен во всех существующих системах.
- EAP-pwd требует Crypt::OpenSSL::Bignum 0.06 или более поздней версии от CPAN
- Настраиваемая версия TLS и выбор набора шифров для EAP и потоковых модулей на основе TLS
- Теперь можно включить проверку CRL для всей цепочки сертификатов
- Включен фреймворк Gossip с реализацией на основе Redis
- Поддержка Gossip при сообщении об ошибках прокси-сервера следующего перехода между экземплярами Radiator.
- Общий кэш дубликатов для упрощения конфигурации фермы серверов
- Поддержка журнала событий Windows
- Поддержка пользовательских форматов для журналов, журналов проверки подлинности и журналов учета. CEF и JSON включены
- Поддержка IEEE 802.1AE, также известного как MACsec
- Все AuthBys теперь поддерживают PostAuthHooks
- Различные двоичные модули теперь доступны в OSC и удалены из дистрибутива Radiator.
Подробные изменения
Выбранные исправления ошибок, примечания о совместимости и улучшения
Кафедра информатики, факультет автоматического управления и информатики, Политехнический университет Бухареста, 060042 Бухарест, Румыния; or.bpu@icivodar.urdnaxela (А.Р.); or.bpu@ciluc.airam_anaoi (IC); or.bpu@aerpo.aivalf (FO)
Аннотация
Развертывание систем Интернета вещей (IoT) становится повсеместным и критически важным для бизнеса во многих сферах бизнеса, как для автоматизации процессов, так и для принятия решений на основе данных на основе сетей распределенных датчиков. За простотой этих решений обычно скрывается сложная многоуровневая архитектура — от аппаратных датчиков до систем анализа данных. Они в значительной степени зависят от программного обеспечения, работающего на локальных шлюзах, предназначенных для связи между датчиками и облаком. Как правило, это требует обновлений и улучшений, что создает проблемы при развертывании и обслуживании. Безопасная и безотказная система обновления особенно важна для успешного развертывания IoT, особенно для крупномасштабных коммерческих решений. В этом документе рассматриваются конкретные проблемы для инфраструктур, предназначенных для удаленного развертывания приложений и управления ими, рассматриваются проблемы управления, связанные с системами датчиков IoT, и предлагается математическая модель и методология для решения этой проблемы. Чтобы проверить эффективность модели, мы внедрили ее в виде системы программной инфраструктуры для готовых коммерческих продуктов IoT. В качестве доказательства мы представляем развертывание 100 умных автоматов по раздаче газированных напитков в трех местах. Каждая машина полагается на датчики, отслеживающие ее состояние, и на шлюзы, контролирующие ее поведение, каждая из которых получает 133 различных удаленных обновления программного обеспечения через наше решение.Кроме того, 80 % машин работали без перебоев в течение 250 дней, при этом 20 % вышли из строя из-за внешних факторов; из 80 % 30 % столкнулись с временными сбоями обновления из-за ограниченных возможностей оборудования, и система успешно выполнила автоматический откат системы, таким образом восстановив 100 % временных сбоев.
Ключевые слова: Интернет вещей (IoT), развертывание приложений, удаленное обновление, встроенное программное обеспечение, датчик, обновление встроенного программного обеспечения, управление версиями программного обеспечения
1. Введение
За последние несколько лет влияние систем на основе Интернета вещей (IoT) возросло как с точки зрения количества устройств и областей применения, так и с точки зрения научных и экономических результатов. Развертывание систем IoT становится повсеместным благодаря специализированным решениям, охватывающим варианты использования от сельского хозяйства, умных городов или промышленных приложений до медицинских носимых устройств или интеллектуальных и подключенных домашних развлекательных устройств. Многие компании используют решения на основе Интернета вещей как в различных автоматических средствах, так и в крупномасштабных развертываниях сетей распределенных датчиков на основе Интернета вещей, которые используются для сбора данных в режиме реального времени для принятия решений на основе данных.
Современные достижения в области инфраструктуры Интернета вещей позволяют создавать высокоинтегрированные решения, позволяющие компаниям быстро развертывать коммерческие решения на основе устройств Интернета вещей, скрывая сложность многоуровневой реализации. Однако за простотой, предлагаемой этими решениями, обычно скрываются сложные архитектуры [1] с многочисленными необходимыми взаимосвязанными компонентами — от датчиков и аппаратных платформ до встроенного программного обеспечения, инфраструктуры беспроводной связи, шлюзов специального назначения, сетевых решений, облачных вычислений. хранилище и различные модели представления данных, до окончательной обработки, инструментов анализа данных и пользовательских моделей представления. На рис. 1 показаны сложность и разнообразие экосистемы Интернета вещей.
Экосистема Интернета вещей.
Все эти сложные системы полагаются на собранные данные или действия, выполняемые на первом уровне реализации Интернета вещей — на локальных аппаратных устройствах. Они запускают специальное программное обеспечение, которое обычно зависит от платформы и должно отвечать многочисленным ограничениям из-за ограниченных аппаратных возможностей и требований к низкому энергопотреблению. Это программное обеспечение также требует обновлений и улучшений, как для исправления ошибок, так и для новых функций, а также для повышения безопасности. Более того, многочисленные решения IoT разрабатываются быстрорастущими стартапами, которые часто выпускают новые версии, что требует частых обновлений программного обеспечения [2]. Наконец, коммерческие приложения обычно имеют длительные жизненные циклы аппаратных компонентов, необходимых для обеспечения надлежащей амортизации, что ограничивает модификацию системы только обновлениями программного обеспечения.
Несмотря на то, что обновления программного обеспечения для встроенного оборудования стали важным звеном в экосистеме Интернета вещей, во многих промышленных развертываниях Интернета вещей по-прежнему отсутствует поддержка удаленного обновления программного обеспечения, при этом все обновления применяются на месте через выделенные аппаратные интерфейсы. Это приводит к высоким затратам на техническое обслуживание, поскольку для каждого устройства IoT, развернутого в производстве, технический специалист должен иметь физический доступ к нему, чтобы запустить и контролировать процесс обновления. С другой стороны, многие компании внедрили специальные механизмы обновления по беспроводной сети (OTA), но многие из них далеки от поддержки безопасного и отказоустойчивого процесса обновления приложений. Сообщалось о различных случаях блокировки или взлома устройств в результате неудачного обновления [3,4]. Это указывает на очевидную потребность в сложном и безопасном решении для удаленного обновления, предназначенном для устройств IoT, которое охватывает все уровни в стеке IoT. В последнее время такие платформы, как Android Things [5], Ubuntu Core [6], Mender [7] и Balena [8] (ранее называвшаяся Resin), были разработаны с целью поддержки таких отказоустойчивых обновлений, предназначенных для встроенных устройств.
В этом контексте цель этой статьи — предоставить обзор текущих решений для удаленного развертывания, мониторинга и обновления программного обеспечения Интернета вещей, а также новую модель решения этой проблемы. С этой целью мы предлагаем общую математическую модель, на основе которой можно построить различные реализации инфраструктуры развертывания и обновления Интернета вещей, адаптированные к конкретным случаям использования. Наша модель фокусируется на определении ключевых элементов общей инфраструктуры обновления приложения на основе датчиков и взаимосвязей между ними. Кроме того, мы применили нашу модель к конкретной системе датчиков и создали развертывание IoT среднего масштаба, усовершенствованное с помощью значительного количества обновлений программного обеспечения.
Для тестирования предложенной модели мы внедрили систему удаленного развертывания программного обеспечения совместно с коммерческим партнером.Этому партнеру потребовалось 100 интеллектуальных автоматов по раздаче газированных напитков для запуска встроенного пользовательского программного обеспечения для управления и датчиков, которое часто обновляется как для исправления ошибок, так и для добавления новых функций. На основе нашей модели мы внедрили программную систему, которая позволяет удаленно развертывать, обновлять и безопасно восстанавливать специальное встроенное программное обеспечение для 100 автоматов с газировкой, распределенных по трем точкам. В течение 250 дней удаленно было применено 133 различных исправления и обновления, что дало отличные результаты с точки зрения надежности.
Следующая работа построена следующим образом. В разделе 2 рассматриваются текущие проблемы внедрения, характерные для области IoT, с акцентом на системы обновлений для приложений IoT, а также обзор доступных решений, решающих проблему обновлений. В Разделе 3 представлена предлагаемая нами модель с подробным обзором воспринимаемых проектных ограничений и математической моделью, направленной на обеспечение масштабируемости и надежности. Раздел 4 представляет реализованную экспериментальную установку, а раздел 5 описывает, как мы проводили тесты и получали результаты. В оставшемся разделе подводятся основные выводы для этой работы.
2. Передовые технологии удаленного развертывания программного обеспечения IoT
С точки зрения крупномасштабного коммерческого внедрения, Интернет вещей все еще находится на ранних стадиях, поскольку многочисленные проблемы, а также практические бизнес-ограничения создают разрыв между современными технологиями и реальными крупномасштабными развертываниями. В то время как преимущества интеграции решений IoT на основе датчиков в конкретных областях, таких как сельское хозяйство, здравоохранение, умные города и даже промышленные объекты, подробно описаны как в исследовательской, так и в коммерческой литературе [9,10], фактическое внедрение этих технологий еще далек от полного раскрытия своего потенциала.
Согласно опросу, проведенному Cisco в 2017 году среди более чем 1 500 ИТ-компаний, 74 % опрошенных организаций потерпели неудачу в своих инициативах в области Интернета вещей [11]. Ряд опросов [12,13,14,15,16] или бизнес-обзоров [17] выявил снижение внедрения технологий IoT и высокий процент зарегистрированных сбоев при развертывании IoT. По общему мнению, сложность систем Интернета вещей создает серьезные проблемы с точки зрения разработки, развертывания и управления платформой.
2.1. Особые проблемы, связанные с развертыванием и обновлениями
Системы Интернета вещей спроектированы как автономные устройства, поэтому в упрощенном виде их можно описать как механизмы, которые извлекают данные об окружающей среде и реагируют на них определенными действиями. Поскольку они широко интегрированы в динамические варианты использования, требующие адаптации системы к изменяющимся параметрам, их программное обеспечение требует постоянных изменений. Более того, на аппаратном уровне инфраструктуры Интернета вещей должны быть расширяемыми и иметь возможность легко интегрировать дополнительные узлы датчиков в сеть устройств.
Важным фактором, определяющим необходимость обновлений, является способ разработки коммерческих и промышленных приложений Интернета вещей. Поскольку большинство компаний применяют гибкую методологию, требования и спецификации продукта постоянно меняются. Поэтому многие продукты Интернета вещей выпускаются еще в стадии разработки, поскольку компании полагаются на выпуск обновлений, чтобы добавить новые функции продукта и улучшить взаимодействие с пользователем.
Естественно, это происходит в дополнение к частым обновлениям прошивки и программного обеспечения, необходимым для обеспечения надлежащего реагирования на характерную нестабильность, связанную с технологиями IoT, а также к очень высокому уровню безопасности, ожидаемому от системы IoT. Независимо от используемой технологии снижение рисков безопасности часто описывается в прямой связи с необходимостью обновлений, направленных на устранение последних атак и уязвимостей [18,19].
Несмотря на то, что крупномасштабное развертывание приложений и обновления считаются важным фактором в процессе коммерческой разработки IoT, они также рассматриваются как важная проблема разработки [20]. Многие коммерческие IoT-устройства, доступные в настоящее время на рынке, не имеют механизм обновления [21]. Далее мы рассмотрим сопутствующие факторы.
2.1.1. Неоднородность экосистемы Интернета вещей
По мере того, как Интернет вещей развивался от простых датчиков или приводов до сложных сетей, предназначенных для предоставления ценной информации для принятия решений на основе данных, с несколькими уровнями абстракций, он становится все более и более сложным. Типичный стек IoT показан на рис. 2, начиная с сенсорного уровня, где развернуты простые датчики и исполнительные механизмы на основе микроконтроллеров, за которым следует пограничный уровень, где встроенные компьютеры используются для сбора данных и выполнения основных задач обработки, и заканчивая облачный уровень, где используются высокопроизводительные компьютеры с целью крупномасштабного сбора и анализа данных. Для каждого уровня в этом стеке доступно большое разнообразие технологий от разных поставщиков и с разными плюсами и минусами.Кроме того, общее количество используемых устройств очень велико по сравнению с другими областями, такими как смартфоны или компьютеры. По прогнозам Gartner, общее количество подключенных устройств к 2021 году составит около 25 млрд [22].
В этом руководстве я пошагово покажу вам, как интегрировать проект React с Node.js Express Rest API, так что нам нужно только запустить оба проекта на одном сервере/порте. Вы также узнаете, как настроить маршрутизацию React SPA, чтобы избежать ошибки 404 при обновлении.
Обзор приложения React и Node.js Express
Предположим, что у нас есть 2 отдельных проекта: React и Node.js Express вот так-
Например, если мы запустим их отдельно:
Использование React для вызова Express Rest API:
В противном случае при развертывании производственной сборки React с проектом Node.js Express нам нужно будет запустить Node Project только для системы с полным стеком (React + Node).
Стек технологий
- Node.js
- Экспресс
- Реакция 16
- Реактивный маршрутизатор
- Скрипты React 3
Настройка клиента React
Вы можете использовать свой собственный проект React или просто загрузить исходный код на Github или выполнить следующие действия, чтобы создать новый проект.
Откройте cmd и создайте новый проект React с помощью следующей команды:
После завершения процесса. Создаем дополнительные папки и файлы наподобие следующего дерева:
Поскольку я хочу, чтобы это руководство было простым и кратким, пожалуйста, продолжайте разработку этого приложения с инструкциями в сообщении:
Пример React.js CRUD для использования Web APIНастройка экспресс-сервера
Вы можете использовать свой собственный проект Node.js или просто загрузить исходный код на Github или выполнить следующие действия, чтобы создать новый проект.
Сначала мы создаем папку:
Затем мы инициализируем приложение Node.js с помощью файла package.json:
Перейдем к самой важной части.
Интеграция React с Node.js Express
Создать приложение React
В настоящее время клиент React и сервер Express работают независимо друг от друга на портах 8081 и 8080.
Первое, что нам нужно сделать, это создать приложение React для производства.
Выполнить команду:
– npm run build
– или yarn buildТеперь вы можете увидеть новую папку сборки со следующим содержимым:
Интеграция производства React в проект Node.js
В папке приложения экспресс-проекта Node.js создадим папку представлений.
просмотры
Теперь нам нужно скопировать все файлы из папки сборки React в папку app/views выше.
Окончательная структура папки проекта Node.js будет такой:
Обслуживать приложение React из Express
Мы будем обслуживать статические файлы, такие как файлы HTML, файлы CSS и файлы JavaScript, в папке app/views с помощью встроенной функции промежуточного программного обеспечения express.static().
Теперь мы можем загрузить файлы в статический каталог:
Последний шаг — отправка файла index.html с помощью функции res.sendFile(). Нам нужно будет передать путь к файлу.
Теперь содержимое в файле server.js выглядит следующим образом:
Запускайте Express и React на одном порту
Запустите сервер Node.js Express (включая клиент React) с помощью команд:
node server.jsReact Router 404 не найден при обновлении
О да! Все выглядит хорошо.
Но подождите, давайте попробуем обновить страницу.
Что случилось?Читайте также: