К обсуждениям

DIRAC: pilot download проверяет TLS и независимый digest

Редакция VOne Технологии

Практическая защитная проверка DIRAC по ghsa-vg99-gr89-qhw9: применимость, обратимый тест границы «проверку server certificate и доверенного digest до исполнения second-stage pilot», измеримый результат и stop-rule без production-данных.

Применимость к DIRAC

Первый вопрос — присутствует ли уязвимый путь в живой сборке, а не насколько громко звучит advisory. Для границы «проверку server certificate и доверенного digest до исполнения second-stage pilot» запишите версию живого процесса, build digest, источник пакета, включённую функцию и субъект, который вызывает этот путь. Reviewed Advisory перечисляет границы «DIRAC >= 6.20.1, < 8.0.79; first patched 8.0.79 | DIRAC >= 8.1.0a1, < 9.0.22; first patched 9.0.22 | DIRAC >= 9.1.0, < 9.1.10; first patched 9.1.10», однако запись в manifest ещё не доказывает установленную версию и reachability. Если provenance неполон, оставьте статус unknown. Not-applicable допустим только при доказанной версии вне affected range или документированно выключенной функции. Не переносите severity из advisory на свою среду без этих двух доказательств.

Что подтверждает GHSA-vg99-gr89-qhw9

GitHub Reviewed Advisory опубликована 2026-07-13, обновлена 2026-07-13 и описывает для DIRAC механизм: DIRAC: Pilot code downloaded over unverified HTTPS connection. Подтверждённая package boundary: «DIRAC >= 6.20.1, < 8.0.79; first patched 8.0.79 | DIRAC >= 8.1.0a1, < 9.0.22; first patched 9.0.22 | DIRAC >= 9.1.0, < 9.1.10; first patched 9.1.10». Upstream-репозиторий https://github.com/DIRACGrid/DIRAC связывает запись с исходным проектом, но сам по себе не сообщает состояние конкретного развёртывания. Даты, summary и диапазоны взяты с прямой advisory-страницы https://github.com/advisories/GHSA-vg99-gr89-qhw9, а не из поискового сниппета. Эти источники не доказывают эксплуатацию, ущерб, популярность запроса, индексацию или позицию страницы.

Отдельная пользовательская боль и доказательство

Здесь проверяется ровно одна боль: код и checksum, полученные по одному непроверенному каналу, не дают независимого доказательства целостности. До любого запуска создайте артефакт «ledger endpoint / tls-verified / digest-source / digest-match / execute-called» и заранее определите допустимые значения каждой колонки. Normal-control должен пройти на той же сборке, с теми же лимитами и через тот же кодовый путь. Один status code, исключение или отсутствие записи не является доказательством: нужны expected result, observed result, конфигурационная ветвь и cleanup. Маркеры не должны содержать токены, IP, реальные имена, документы, логи или внутренние адреса.

Безопасный обратимый тест

Подготовьте локальный downloader stub, dummy archive, доверенный offline digest и сертификат с тестовой цепочкой. Затем нужно проверить успешный trusted case и отклонённую недоверенную цепочку с полностью подменённым execute callback. Заранее заданный защитный исход: исполнение разрешено только при валидной цепочке и совпадении независимого digest; иначе callback не вызывается. Выполняйте опыт только локально или в одноразовой среде с пределами wall-time, CPU, памяти, файлов, сокетов и количества запросов. Не используйте production secrets, пользовательские данные, внешние цели или инструкции, пригодные для вторжения. Такой контур даёт проверяемый результат и не превращает диагностику в небезопасную демонстрацию. После проверки удалите fixtures, повторите normal-control и сравните итоговый digest с baseline.

Решение по наблюдаемым результатам

Passed фиксируется, когда одновременно выполнено: исполнение разрешено только при валидной цепочке и совпадении независимого digest; иначе callback не вызывается; normal-control сохранил ожидаемое поведение; cleanup вернул исходное состояние. Failed требует повторяемого расхождения на том же fixture и той же версии. Unknown остаётся при нестабильном trace, неполном provenance или неясной конфигурации. Результат оформляют как «ledger endpoint / tls-verified / digest-source / digest-match / execute-called», чтобы другой инженер мог проверить вывод без догадок. Не расширяйте вывод с одной границы на всю систему и не обещайте абсолютную защищённость после одного опыта.

Стоп-правило, обновление и пакет поддержки

Критерий остановки задаётся до запуска: остановиться до unpack или execute при TLS error, общем источнике checksum или несовпадении digest. Если runtime входит в affected range, получите обновление только из доверенного канала upstream https://github.com/DIRACGrid/DIRAC, зафиксируйте новый digest и повторите тот же fixture с прежними лимитами. Новый сценарий не подтверждает исправление старого. В обезличенный пакет поддержки включите runtime version, package boundary, конфигурационную ветвь, expected/observed, resource limits, timestamps, error class и хэши fixtures. Исключите credentials, cookies, абсолютные пути, внутренние hostname и содержимое данных.

Материал подготовлен редакцией VOne с помощью ИИ; даты, диапазоны, прямые ссылки, безопасный опыт, privacy-ограничения и отсутствие рекламных обещаний затем перепроверены по первичным источникам.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.