Баг macOS ломает TCP через 49 дней без перезагрузки

Баг macOS ломает TCP через 49 дней без перезагрузки

Баг macOS ломает TCP через 49 дней без перезагрузки

В macOS нашли редкий, но очень неприятный баг: если компьютер работает без перезагрузки примерно 49,7 дня, у него может постепенно умирать TCP. По версии исследователей, проблема связана с переполнением 32-битного счётчика времени в ядре XNU, который используется TCP-подсистемой.

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

При этом ping может продолжать работать, что делает сбой особенно странным. В Photon пишут, что заметили аномалию на своих macOS-машинах, которые круглосуточно используются для мониторинга iMessage-сервисов.

По их описанию, часть узлов после примерно 49 дней 17 часов 2 минут 47 секунд аптайма перестала открывать новые TCP-сессии. После перезагрузки всё возвращалось в норму, но таймер, по сути, запускался заново.

Авторы утверждают, что смогли воспроизвести поведение на двух машинах и связали его с переменной tcp_now в XNU. В открытом репозитории Apple действительно есть TCP-код ядра Darwin/XNU, где используются 32-битные значения времени и логика сравнения временных меток TCP, на которую ссылаются исследователи.

Поведения бага выглядит так: сначала ничего не ломается в лоб, но закрытые TCP-соединения перестают вовремя исчезать из TIME_WAIT. Затем их становится всё больше, временные порты забиваются, новые подключения начинают зависать в SYN_SENT, а сервисы, которым нужны новые TCP-сокеты, начинают сыпаться.

Если эта находка подтвердится, то для обычного пользователя баг вряд ли станет массовой проблемой: большинство устройств на macOS перезагружаются чаще (хотя бы из-за обновлений). А вот для долго работающих Mac mini, билд-серверов, CI/CD-ферм, удалённых рабочих станций и серверных компьютеров, которые могут жить без ребута неделями, история выглядит уже куда серьёзнее.

Если у вас есть компьютер на macOS, который работает неделями без перезагрузки и критичен для сервисов, мы бы посоветовали следить за его аптаймом.

CodeScoring запустила собственное хранилище программных артефактов Save

Компания CodeScoring представила собственное хранилище артефактов CodeScoring.Save. Решение предназначено для хранения и распространения пакетов, библиотек, контейнерных образов и других компонентов, используемых в разработке ПО.

Save ориентировано на корпоративный сегмент и компании любого масштаба, которым необходим предсказуемый и отказоустойчивый репозиторий артефактов.

Об этом Anti-Malware рассказал руководитель разработки продуктов CodeScoring Дмитрий Ключников на конференции CodeScoring Masters. По его словам, разработка Save велась на языке Go с прицелом на современные Kubernetes-среды и стандарты безопасной разработки.

«Мы привлекли к тестированию доверенных партнёров и заказчиков, готовых проверять решение на практике с самых ранних этапов. Их регулярная обратная связь помогает нам калибровать архитектуру и функциональность Save под реальные рыночные требования», — рассказал Дмитрий Ключников.

Хранилище артефактов используется разработчиками как централизованная точка для получения, хранения и распространения компонентов ПО. В эту категорию входят, например, Sonatype Nexus Repository, JFrog Artifactory и Harbor. При этом Save поставляется с готовым инструментом автоматической миграции с открытых репозиториев.

CodeScoring.Save рассчитано одновременно на размещение собственных артефактов и работу с внешними репозиториями через прокси. В продукте заявлена поддержка Maven, npm, NuGet, PyPI, Go Modules, Docker/OCI, DEB, RPM и RAW-файлов.

Save разработано на Go, разворачивается в Kubernetes и поставляется через Helm. В систему встроены ролевая модель, отдельные аккаунты для автоматизированных систем, аудит систем, аудит действий пользователей и API. Вычислительная часть приложения отделена от слоя хранения, что позволяет масштабировать их независимо.

Одной из особенностей нового продукта разработчики называют встроенную работу с безопасностью артефактов. Безопасность заложена в архитектурную основу продукта: интеграция с CodeScoring.OSA позволяет проверять компоненты с использованием данных платформы CodeScoring. Таким образом, базовую информацию о найденных проблемах можно будет получать непосредственно в хранилище.

При этом CodeScoring не собирается привязывать новое хранилище к покупке основной платформы.

«Это абсолютно отделяемое решение. Оно может продаваться вместе с CodeScoring, а может продаваться отдельно», — подчеркнул Дмитрий Ключников.

Продукт поставляется как самостоятельное локальное решение для развёртывания в инфраструктуре заказчика. Ключевые корпоративные возможности включены в базовую функциональность продукта. Запуск собственного репозитория усиливает возможности всей платформы безопасной разработки CodeScoring.

Сейчас OSA Proxy и Save решают разные задачи. OSA Proxy проверяет пакеты и манифесты, которые разработчики получают из внешних репозиториев, по заданным политикам безопасности. Save отвечает прежде всего за хранение и распространение самих артефактов.

Тесная интеграция с модулем OSA обеспечивает соблюдение политик безопасности и блокировку опасных компонентов непосредственно на уровне репозитория.

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

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

Ещё одним направлением развития продукта станет работа с моделями искусственного интеллекта как с отдельным типом артефактов.

На первом этапе речь идёт о хранении и распространении моделей. Среди экосистем, поддержку которых рассматривают разработчики, Дмитрий Ключников назвал Hugging Face.

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

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

CodeScoring также планирует сертифицировать Save с учётом российских требований безопасной разработки.

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

Таким образом, после запуска Save линейка CodeScoring выйдет за пределы анализа и проверки сторонних компонентов: компания добавляет собственную инфраструктуру для их хранения и распространения.

RSS: Новости на портале Anti-Malware.ru