Модель угроз Weblate¶
Проект: Weblate
Последний раз проверено для Weblate 2026.11 в коммите af7a54c07c.
Дата: 2026-09-24.
Состояние: Принято, 2026-09-01.
Привязка к версии: Эта модель версионируется вместе с выпусками Weblate. Отчёт против версии Weblate N сортируется по модели, опубликованной для версии N, а не по последней ветке разработки. (сопровождающий)
Перекрёстная ссылка для отчётов: Отчёты, которые нарушают свойство, заявленное Weblate в разделе Свойства безопасности, предоставляемые Weblate, направляются через SECURITY.md и Обработка уязвимостей и инцидентов. Отчёты, подпадающие под Вне области действия или Свойства безопасности, которые Weblate не предоставляет, могут быть закрыты со ссылкой на этот документ, если только эта модель не направляет их в VALID-HARDENING. (документировано) (источник: Обработка уязвимостей и инцидентов)
Легенда происхождения: *(документировано)* означает, что утверждение содержится в документации Weblate; *(сопровождающий)* означает, что оно было высказано сопровождающим в процессе создания этой модели угроз; *(выведено)* означает, что оно было выведено из текущей формы проекта и требует подтверждения сопровождающего.
Weblate — это веб-платформа локализации на базе Django. Он принимает работу от пользователей браузера, API-клиентов, токенов с областью действия проекта, веб-обработчиков репозиториев, репозиториев СКВ, архивов резервных копий, фоновых обработчиков и настроенных внешних служб, затем сохраняет и синхронизирует проекты перевода через базу данных, хранилище данных, локальные репозитории файловой системы и внешние системы хостинга кода. (документировано) (источник: Документация Weblate, API REST для Weblate, Непрерывный перевод)
Область применения и целевое использование¶
Эта модель описывает общие границы доверия и свойства безопасности. Функции внутри семейства компонентов следуют его общему руководству, если не применяется явное исключение; приведённые ниже представительные поверхности не являются исчерпывающим перечнем функций. (сопровождающий)
Семейство компонентов |
Представительная поверхность |
Внешние по отношению к процессу эффекты |
Состояние модели |
|---|---|---|---|
Веб-интерфейс и REST API |
Представления браузера, формы, конечные точки сеансов, API REST для Weblate |
База данных, хранилище данных, электронная почта, журналы, загруженные файлы |
В области действия. (документировано) (источник: API REST для Weblate, Инструкции по настройке) |
Аутентификация, сеансы и авторизация |
Вход, 2FA, SSO, команды, разрешения, доступ к проекту, токены API |
База данных, поставщики удостоверений, куки браузера |
В области действия. (документировано) (источник: Авторизация, Контроль доступа) |
Токены API с областью действия проекта |
Токены, созданные в проекте API доступ |
Те же эффекты приложения, которые разрешают разрешения токена |
В области действия как аутентифицированные действующие лица с делегированной областью действия проекта. (документировано) (источник: API REST для Weblate, Контроль доступа) |
Веб-обработчики |
Обработчики уведомлений, проект Включить обработчики, URL-адрес веб-обработчика приложения |
Планирование фоновых задач и обновления репозиториев СКВ |
Входит в область действия как общедоступный, укреплённый на уровне развёртывания интерфейс. (документировано) (источник: Обработчики уведомлений, Включить обработчики, URL-адрес веб-обработчика приложения) |
Интеграция с СКВ |
URL-адреса репозиториев, ветки, отправки, извлечения, запросы на слияние, локальные клоны, регистрация приложений GitHub, подключения, перенос и удаление компонентов |
Файловая система, дочерние команды СКВ, сетевые соединения SSH/HTTPS, репозиторий провайдера или состояние установки |
В области действия, когда достижимо через конфигурацию Weblate или содержимое проекта. (документировано) (источник: Непрерывный перевод, Интеграции с хостингом кода) |
Фоновые задачи |
Очереди Celery для обновлений репозиториев, удаления проектов, уведомлений, памяти переводов, перевода и резервных копий |
База данных, хранилище данных, файловая система, исходящая сеть |
В области действия как управляемое Weblate выполнение действий пользователя или оператора. (документировано) (источник: Инструкции по настройке, API REST для Weblate) |
Импорт/экспорт резервных копий проектов |
Резервные копии на уровне проекта, API REST для Weblate конечные точки резервного копирования проектов, |
Загруженные ZIP-архивы, сгенерированные архивы резервных копий, восстановление файловой системы, состояние репозитория |
В области действия. (документировано) (источник: Резервное копирование и перенос Weblate, API REST для Weblate, Команды управления) |
Резервное копирование службы |
Конфигурация BorgBackup и |
Локальное или удалённое хранилище резервных копий через файловую систему или SSH |
В области действия для обработки Weblate настроенных заданий резервного копирования; сам Borg находится вне области действия. (документировано) (источник: Резервное копирование и перенос Weblate, Команды управления) |
Машинный перевод и исходящие интеграции |
Машинный перевод, аватары, отчёты о состоянии, телеметрия, сообщение об ошибках, хосты СКВ, подключения приложений GitHub, дополнение CDN, дополнение Fedora Messaging, доставка электронной почты (SMTP или AWS SES) |
Исходящий HTTP(S), AMQP(S), API поставщиков, журналы |
В области действия для обеспечения Weblate настроенных ограничений доступа и сети. Поведение поставщика находится вне области действия. (документировано) (источник: Конфигурация, Интеграции с хостингом кода, Дополнения) |
Дополнения |
Встроенные надстройки и выполнение надстроек, настроенных администратором |
Зависит от дополнения; может изменять состояние проекта или репозитория или обращаться к службам |
Встроенные надстройки находятся в области действия, когда они включены. Сторонние надстройки находятся вне области действия, за исключением разрешений Weblate и шлюзов установки. (сопровождающий) |
Команды управления |
Команды weblate, запускаемые оператором |
База данных, файловая система, СКВ, хранилище резервных копий |
В области действия при обработке недоверенных данных Weblate; локальная оболочка оператора является доверенной. (сопровождающий) |
Тесты, сгенерированная документация, снимки экрана, фикстуры разработки |
|
Файлы только для разработки и сгенерированные артефакты |
Вне области действия для заявлений о безопасности продукта. (сопровождающий) |
Среды разработки не являются поддерживаемыми производственными развёртываниями и не обеспечивают изоляцию безопасности от вредоносной рабочей копии или локального пользователя. (сопровождающий)
Предполагаемое развёртывание — это серверная установка Weblate за веб-сервером или обратным прокси, с сервером приложений WSGI или ASGI, базой данных PostgreSQL, хранилищем данных, рабочими процессами Celery, каталогом данных для записи и опциональными исходящими интеграциями СКВ, резервного копирования, поставщика удостоверений и машинного перевода. (документировано) (источник: Инструкции по настройке)
Соответствующие действующие лица разделены по уровню доверия: неаутентифицированные клиенты, аутентифицированные пользователи, рецензенты, управляющие проектами, администраторы, токены API с областью действия проекта, отправители веб-обработчиков, внешние поставщики СКВ, настроенные внешние службы и локальные операторы. (документировано) (источник: Контроль доступа, API REST для Weblate)
Weblate не предназначен для встраивания как внутрипроцессная библиотека безопасности, использования как песочница для недоверенного кода или предоставления доступа без средств контроля развёртывания, задокументированных для производственного использования. (сопровождающий)
Вне области действия¶
Следующее является явными не-целями для этой модели:
Скомпрометированная учётная запись операционной системы, среда выполнения контейнера, сервер базы данных, хранилище данных, обратный прокси или оболочка администратора. Weblate работает внутри этих границ и не заявляет о защите от уже скомпрометированного хоста. (сопровождающий)
Злонамеренный администратор сайта Weblate или локальный оператор с неограниченным доступом к серверу. Такое действующее лицо может изменять настройки, учётные данные, данные или код. (сопровождающий)
Уязвимости в сторонних зависимостях как независимых проектах. Общие уязвимости Django, Django REST framework, Python Social Auth, BorgBackup, СКВ, базы данных и поставщиков сообщаются вышестоящим проектам, если только проблема не в том, как Weblate их использует. (документировано) (источник: Обработка уязвимостей и инцидентов)
Гигиена сборки и выпуска, включая закрепление действий, подписание артефактов, свежесть зависимостей и защиту веток репозитория. Это влияет на операции проекта, но не является утверждениями модели угроз о поведении Weblate во время выполнения. (сопровождающий)
Общая безопасность внешних поставщиков СКВ, поставщиков удостоверений, почтовых серверов, служб машинного перевода, служб аватаров, CDN-хранилищ или хранилищ резервных копий. Weblate моделирует только свои настроенные взаимодействия с ними. (сопровождающий)
Выбор цепочки поставок переводов организациями пользователей вне Weblate. Риски аутсорсинговых или краудсорсинговых переводчиков описаны отдельно в Модель угроз локализации. (документировано) (источник: Модель угроз локализации)
Код сторонних надстроек, код локальной настройки, фикстуры разработки, сгенерированный вывод документации, код только для тестирования и демонстрационные или примерные данные. (сопровождающий)
Границы доверия и потоки данных¶
Основная граница доверия Weblate — это обращённая к сети поверхность приложения: представления браузера, конечные точки API, конечные точки веб-обработчиков и конечные точки загрузки принимают данные от менее доверенных действующих лиц и преобразуют их в строки базы данных, состояние локального репозитория, фоновые задачи, исходящие запросы и отображаемый пользовательский интерфейс. (сопровождающий)
Граница |
Переход доверия |
|---|---|
Браузер клиента / API-клиент к Weblate |
Недоверенные или аутентифицированные запросы становятся действиями приложения, проверенными на разрешения. (документировано) (источник: API REST для Weblate, Контроль доступа) |
От Weblate к публичному хранилищу CDN и клиентам |
Включение публикации в CDN намеренно выводит выбранные переводы, публичные идентификаторы сборок и сопоставления ресурсов за пределы контроля доступа к проекту, включая переводы из приватных компонентов. Удаление опубликованных исходных файлов не может отозвать кешированные или загруженные копии. Файлы подготовки в файловой системе CDN остаются непубличными, только если источник исключает зарезервированный каталог подготовки, как требуется в CDN локализации. (документировано) (источник: CDN Kotlin SDK) |
Проекты в глобальную общую память переводов |
Включение вклада намеренно публикует исходные строки, переводы и происхождение проектов и компонентов вне контроля доступа к проекту, включая проекты «Приватный» и «Пользовательский». Ограниченные компоненты не вносят вклад. Отключение вклада предотвращает дальнейшую видимость автоматических записей проекта через общую область, но не может отозвать копии, уже замеченные или загруженные. (документировано) (источник: Совместная память переводов, Накопитель) |
Процесс запроса Weblate к рабочему процессу Celery репозитория |
Проверенные по разрешениям действия с репозиторием из браузера и API становятся поставленной в очередь работой, несущей инициирующего пользователя и затронутую область репозитория. Рабочий процесс повторно получает резервирование хранилища данных и повторно проверяет текущее разрешение СКВ пользователя на текущем владельце репозитория перед изменением. Брокер, хранилище данных и рабочие процессы являются доверенными частями одного экземпляра Weblate. (сопровождающий) |
Отправитель веб-обработчика к Weblate |
Публичные уведомления фабрик могут планировать синхронизацию репозитория, где включены обработчики, сопоставляя компоненты по точному URL-адресу репозитория, а не по хосту или суффиксу пути. Универсальные ответы обработчиков раскрывают количество совпадений и, для обновлённых компонентов, плашки проекта/компонента и URL-адреса API, включая частные проекты и компоненты с ограниченным доступом. Компоненты, управляемые через аутентифицированную интеграцию, исключаются из универсального сопоставления и диагностики; в настоящее время это относится к серверному компоненту СКВ приложения GitHub. Зарегистрированные веб-обработчики приложений GitHub аутентифицируются с помощью токена URL-адреса для каждого приложения и проверки подписи GitHub. Опциональные доставки устаревших приложений GitHub на универсальный URL-адрес веб-обработчика GitHub аутентифицируются с помощью отдельно настроенного секрета. (документировано) (источник: Обработчики уведомлений, Включить обработчики, Сопоставление целей веб-обработчиков, URL-адрес веб-обработчика приложения, |
Служба eTranslation в Weblate |
Публичный обратный вызов передаёт текстовые предложения или сбои в кратковременную запись кеша. Weblate принимает его только с непредсказуемым токеном, выданным для ожидающего запроса; он не может редактировать единицы перевода напрямую. (документировано) (источник: eTranslation) |
Weblate к базе данных / хранилищу данных |
Состояние приложения, проверенное на разрешения, становится постоянными данными и поставленной в очередь работой. (документировано) (источник: Инструкции по настройке) |
Weblate к локальным репозиториям СКВ |
Конфигурация проекта и содержимое репозитория управляют операциями файловой системы и СКВ. (документировано) (источник: Непрерывный перевод) |
Weblate к внешним службам |
Настроенные URL-адреса, учётные данные и параметры поставщика управляют исходящими сетевыми соединениями. (документировано) (источник: Интеграции с хостингом кода, Конфигурация) |
Архивы резервных копий проектов и файловая система Weblate |
Загруженные ZIP-элементы и метаданные становятся восстановленным состоянием проекта; сгенерированные резервные копии проектов записываются и читаются из локального хранилища резервных копий. (документировано) (источник: Резервное копирование и перенос Weblate, API REST для Weblate, Резервные копии на уровне проекта) |
Предварительные условия достижимости:
Находка в веб-интерфейсе или API попадает в модель, только если она достижима неаутентифицированным клиентом, аутентифицированным пользователем или токеном с областью действия проекта через документированные маршруты, формы или конечные точки API. (сопровождающий)
Находка, связанная с авторизацией, попадает в модель, только если она пересекает документированную границу разрешения, команды, проекта, компонента, языка, словаря, токена или общесайтовую границу. (документировано) (источник: Контроль доступа)
Находка, связанная с веб-обработчиком, попадает в модель, только если запрос может достичь включённой конечной точки обработчика и повлиять на планирование обновлений репозитория, объём задач или информацию, возвращаемую вызывающей стороне, за пределами документированной диагностики сопоставления. (документировано) (источник: Обработчики уведомлений, Включить обработчики, Сопоставление целей веб-обработчиков)
Находка, связанная с СКВ, попадает в модель, только если контролируемые злоумышленником или менее доверенные данные репозитория, имена веток, URL-адреса, имена файлов, метаданные коммитов или конфигурация проекта могут повлиять на операции СКВ Weblate. (сопровождающий)
Находка, связанная с импортом резервной копии, попадает в модель, только если она достижима из резервной копии проекта, загруженной через Weblate или предоставленной в
import_projectbackup. (документировано) (источник: Резервные копии на уровне проекта,import_projectbackup)Находка, связанная с экспортом резервной копии, попадает в модель, только если она достижима из документированных маршрутов создания или загрузки резервных копий проектов, включая REST API для пользователей или токенов с областью действия проекта, имеющих разрешение на редактирование проекта. (документировано) (источник: API REST для Weblate, Резервные копии на уровне проекта, Контроль доступа)
Находка, связанная с фоновой задачей, попадает в модель, только если задача может быть поставлена в очередь из поверхности Weblate, находящейся в области действия, или из запланированного пути обслуживания Weblate. (документировано) (источник: Инструкции по настройке)
Находка, связанная с командой управления, попадает в модель, только если команда обрабатывает недоверенные данные Weblate; произвольный доступ к локальной оболочке не является возможностью злоумышленника. (сопровождающий)
Предположения об окружении¶
Weblate предполагает поддерживаемую среду выполнения Python и Django, правильно настроенную базу данных, хранилище данных, каталог данных для записи и запущенные обработчики для функций, требующих фоновой обработки. (документировано) (источник: Инструкции по настройке)
Ожидается, что производственные развёртывания будут настраивать внешний веб-сервер или обратный прокси в соответствии с настройками Weblate для HTTPS, заголовка хоста, размера тела и заголовков прокси. (документировано) (источник: Инструкции по настройке, ENABLE_HTTPS, ALLOWED_HOSTS)
Предполагается, что база данных, хранилище данных и внутренние порты служб напрямую не доступны недоверенным сетям. (сопровождающий)
Предполагается, что права доступа к файловой системе предотвращают изменение не связанными с Weblate локальными пользователями каталога данных Weblate, конфигурации, репозиториев VCS, сгенерированных SSH-обёрток, резервных копий и секретных материалов. (документировано) (источник: Резервное копирование и перенос Weblate, Инструкции по настройке)
Обработчики Celery являются доверенными компонентами того же экземпляра Weblate. Злонамеренный или скомпрометированный обработчик эквивалентен скомпрометированному процессу приложения. (сопровождающий)
Разделение рабочих процессов и очередей не создаёт изоляцию безопасности; рабочие процессы сохраняют ту же доверенную authority приложения. (сопровождающий)
Предполагается, что выполнение команд СКВ, SSH и HTTPS-клиенты выполняются от имени пользователя службы Weblate с учётными данными, настроенными для соответствующего проекта или интеграции, включая учётные данные приложений GitHub, хранящиеся в базе данных и используемые для токенов установки и проверки подписи веб-обработчиков. (документировано) (источник: Интеграции с хостингом кода, SSH_EXTRA_ARGS)
Что Weblate делает со своим хостом:
Он открывает исходящие сетевые соединения для настроенных функций СКВ, поставщика удостоверений, аватаров, машинного перевода, резервного копирования, отчётности о состоянии, телеметрии, сообщения об ошибках и надстроек, таких как исходящие веб-обработчики и доставка Fedora Messaging через AMQP. (документировано) (источник: Конфигурация, Интеграции с хостингом кода, Резервное копирование и перенос Weblate)
Он выполняет вспомогательные команды СКВ и резервного копирования как часть рабочих процессов репозитория и резервного копирования. (документировано) (источник: Непрерывный перевод, Резервное копирование и перенос Weblate)
Он выполняет запись в настроенный каталог данных, хранилище репозиториев, media/fonts, дампы резервных копий, журналы и расположения кэша. (документировано) (источник: Конфигурация, Резервное копирование и перенос Weblate)
Он отправляет электронную почту и уведомления через настроенных провайдеров. Конечные точки служб и учётные данные, контролируемые оператором, являются доверенной инфраструктурой, вне настраиваемых пользователем ограничений на частные адресаты. (документировано) (источник: Конфигурация, Установка с помощью Docker’а)
Он не заявляет об отсутствии общепроцессных побочных эффектов, таких как журналирование, запись в кэш, выполнение подпроцессов или исходящий сетевой доступ. (сопровождающий)
Варианты сборки и конфигурации¶
Ручка настройки |
Позиция по умолчанию или документированная |
Влияние на модель |
Позиция сопровождающего |
|---|---|---|---|
Анонимные удалённые обработчики настраиваются и также должны быть включены для проекта. (документировано) |
Предоставляет конечные точки веб-обработчиков как общедоступный интерфейс планирования. Устойчивость к злоупотреблениям зависит от средств контроля развёртывания. (документировано) (источник: Обработчики уведомлений, Включить обработчики) |
Производственные развёртывания, предоставляющие обработчики, используют мониторинг ёмкости, ограничения размера тела, минимальное публичное раскрытие и опциональные граничные элементы управления, подходящие для трафика их поставщика. Ограничение скорости может быть непригодным, когда многие легитимные проекты доставляют из общей инфраструктуры поставщика. (сопровождающий) |
|
|
HTTPS влияет на безопасные куки, перенаправления, HSTS, WebAuthn и сгенерированные URL-адреса. (документировано) (источник: |
Отключение или неправильная настройка HTTPS удаляет транспортные и куки-защиты, на которые полагается Weblate для безопасности браузера. (документировано) (источник: |
Документированная производственная позиция — это HTTPS с правильными заголовками прокси. (документировано) |
Настраивает разрешённые имена хостов HTTP. (документировано) (источник: |
Широкое принятие хостов может ослабить защиты, основанные на заголовке хоста, и предположения о генерации URL-адресов. (сопровождающий) |
Производственные развёртывания ограничивают это именами хостов экземпляра. (сопровождающий) |
|
|
Ограничения скорости настраиваются. (документировано) (источник: API REST для Weblate, Конфигурация) |
Утверждения о доступности предполагают ограничения скорости, соответствующие размеру и степени открытости развёртывания. (сопровождающий) |
Операторы могут переопределять или освобождать пользователей и IP-сети, включая анонимных клиентов. Освобождения по IP зависят от конфигурации доверенного прокси; они не предоставляют аутентификацию или разрешения. (документировано) (источник: Ограничение частоты запросов API, |
|
Источники политики безопасности содержимого настраиваются. (документировано) (источник: Конфигурация) Политика скриптов по умолчанию разрешает встроенное выполнение только на явно ограниченных путях совместимости. (сопровождающий) |
Расширение источников может снизить изоляцию на стороне браузера для XSS или стороннего содержимого. (сопровождающий) |
Развёртывания, добавляющие сторонние источники, принимают это расширенное доверие браузера. (сопровождающий) |
|
Значения по умолчанию ограничивают размер загрузки и импорта резервных копий проекта, количество элементов и подозрительные коэффициенты сжатия. (документировано) (источник: Конфигурация) |
Повышение или отключение этих ограничений расширяет воздействие на ресурсы во время восстановления. (документировано) (источник: Конфигурация) |
Значения по умолчанию, задокументированные выше, являются частью гарантий ресурсов при импорте резервных копий. (документировано) |
Ограничения частных целей и списки разрешённых для исходящих URL-адресов |
Поверхности настраиваемых пользователем исходящих URL-адресов, документированные с настройками ограничения частных адресатов, по умолчанию отклоняют внутренние или непубличные адресаты. (документировано) (источник: |
Настройки списка разрешённых и привилегированная конфигурация могут намеренно расширять достижимость. Непустой |
Отклонение частных целей по умолчанию является свойством безопасности на уровне приложения для документированных настраиваемых пользователем поверхностей URL-адресов. (сопровождающий) |
Разрешает пользовательские параметры SSH. (документировано) (источник: |
Ослабление алгоритмов SSH или проверки хоста изменяет предположения о транспорте СКВ. Параметры маршрутизации могут переопределять закрепление адреса защищённого репозитория. (сопровождающий) |
Операторы несут ответственность за влияние на безопасность пользовательских параметров SSH. (сопровождающий) |
|
Сторонние надстройки и локальная настройка |
Администраторы могут расширять поведение. (документировано) (источник: Дополнения) |
Пользовательский код может добавлять новые границы доверия и свойства безопасности за пределами этой модели. (сопровождающий) |
Сторонний код моделируется отдельно. (сопровождающий) |
Декларативные выражения автоматизации |
Менеджеры дополнений настраивают упорядоченные операции Weblate и условия CEL. (документировано) (источник: Определение рабочего процесса) |
Выражения получают контекст JSON, а не объекты приложения. Ограниченный по ресурсам вспомогательный процесс разбирает и вычисляет CEL без пользовательских привязок функций; рабочие процессы не могут предоставлять код Python. Это отдельная граница вычисления выражений, а не песочница для произвольного Python. В macOS вспомогательный процесс применяет ограничения процессорного и реального времени, но не ограничение памяти, поэтому выражения могут исчерпать память в пределах этих временных ограничений. (сопровождающий) |
Существующие полномочия управления дополнениями регулируют изменения. Области действия операций, проверка и подавление источника автоматизации ограничивают декларативные запуски; пользовательские дополнения Python сохраняют свою отдельную модель доверия. (сопровождающий) |
Входные предположения¶
Поверхность |
Входные данные |
Контролируемо злоумышленником? |
Вызывающая сторона или оператор должны обеспечивать |
|---|---|---|---|
Формы браузера и REST API |
Тела запросов, строки запроса, загруженные файлы, заголовки, куки |
Да, в пределах состояния аутентификации действующего лица. (документировано) (источник: API REST для Weblate) |
HTTPS, правильная конфигурация хоста/прокси, ограничения скорости и назначение разрешений. (документировано) (источник: Инструкции по настройке, Контроль доступа) |
Конечные точки аутентификации |
Пароли, данные WebAuthn, обратные вызовы SSO, токены сброса |
Да. (документировано) (источник: Авторизация) |
Правильная конфигурация поставщика удостоверений и HTTPS. (документировано) (источник: Авторизация, |
Токены с областью действия проекта |
Запросы API, аутентифицированные по токену |
Да, тем, кто владеет токеном. (документировано) (источник: API REST для Weblate) |
Хранение токена, его смена и членство в команде с наименьшими привилегиями. (сопровождающий) |
Содержимое перевода |
Исходные строки, переводы, комментарии, предложения, записи словаря |
Да, от пользователей с соответствующими разрешениями или импортированных репозиториев. (документировано) (источник: Перевод с помощью Weblate, Контроль доступа) |
Проверьте рабочие процессы и назначение разрешений для целостности содержимого конкретного проекта. (документировано) (источник: Рабочие процессы перевода, Контроль доступа) |
Агрегированные загрузки переводов |
Файлы переводов, шаблоны, пути и метаданные файлов из индивидуально авторизованных переводов |
Да, от пользователей с разрешением |
Фильтровать каждого члена архива по действующему разрешению на загрузку перевода, включая ограничения ограниченных компонентов и языков. (сопровождающий) |
Конечные точки веб-обработчиков |
Заголовки, тип события, тело, метаданные репозитория и ветки |
Да, где конечная точка достижима. (документировано) (источник: Обработчики уведомлений) |
Включение обработчиков только там, где это необходимо, ограничения запросов и мониторинг. (сопровождающий) |
Жизненный цикл приложения GitHub |
Обратные вызовы регистрации и установки, код OAuth GitHub, подписанное состояние Weblate, идентификатор установки, метаданные учётной записи, выбор компонентов для переноса и запросы на удаление подключения |
Да, от аутентифицированных пользователей Weblate и строк запроса перенаправления GitHub. (документировано) (источник: Регистрация приложения GitHub из Weblate, Перенос существующих компонентов) |
Регистрация учётных данных приложения требует общесайтового разрешения |
Конфигурация репозитория |
URL-адреса репозиториев, ветки, URL-адреса отправки, учётные данные, параметры отправки на рецензирование Gerrit, настройки дополнений и Параметры системы контроля версий, управляющие принудительными отправками и поведением запросов на извлечение |
Доверено пользователям с соответствующими разрешениями на управление. (документировано) (источник: Контроль доступа, Непрерывный перевод) Дополнение автоматического перевода может создавать утверждённые строки, когда действующие настройки проверок целевого языка это позволяют. Настройка этого поведения использует разрешения на управление дополнениями, а не разрешение на проверку настраивающего пользователя. (документировано) (источник: Дополнения) |
Назначайте разрешения СКВ и управления проектом только доверенным пользователям. (документировано) (источник: Контроль доступа) |
Содержимое внешнего репозитория |
Файлы переводов, пути, имена веток, метаданные коммитов |
Да, если вышестоящим репозиторием управляет другое действующее лицо. (сопровождающий) |
Доверяйте настроенному вышестоящему репозиторию или рецензируйте импортированные изменения. (сопровождающий) |
Импорт резервной копии проекта |
ZIP-элементы архива, метаданные, файлы переводов, состояние репозитория |
Да, для того, кто может загрузить или предоставить резервную копию. (документировано) (источник: Резервные копии на уровне проекта) |
Сохраняйте ограничения импорта на значениях, соответствующих экземпляру. (документировано) (источник: Конфигурация) |
Экспорт резервной копии проекта |
Запросы на создание резервных копий и запрошенные имена файлов резервных копий |
Да, для пользователей или токенов с областью действия проекта, имеющих разрешение на редактирование проекта. (документировано) (источник: API REST для Weblate, Резервные копии на уровне проекта, Контроль доступа) |
Предоставляйте разрешение на редактирование проекта только доверенным администраторам проектов. (документировано) (источник: Контроль доступа) |
Конфигурация машинного перевода и внешних служб |
URL-адреса поставщика, учётные данные, настройки модели или службы |
Доверено администраторам или пользователям, которым предоставлены разрешения на конфигурацию. (документировано) (источник: Службы перевода, Контроль доступа) |
Относитесь к настроенным поставщикам как к получателям отправляемых им данных; отправляемое содержимое зависит от поставщика и включённой функции. (сопровождающий) |
Команды управления |
Аргументы командной строки и файлы, предоставленные локальным оператором |
Доверенный локальный ввод, если только не обрабатываются данные Weblate или резервные копии проектов. (сопровождающий) |
Ограничьте доступ к оболочке доверенными операторами. (сопровождающий) |
Конфигурация развёртывания |
Переменные окружения, аргументы контейнера, смонтированная конфигурация, выбор образа и манифесты рабочей нагрузки или оркестрации |
Доверенный ввод локального оператора. Системы, делегирующие выбранные значения развёртывания менее доверенным пользователям, вводят внешнюю границу доверия; Weblate не рассматривает эти значения как недоверенный ввод приложения. (сопровождающий) |
Ограничьте доступ к развёртыванию доверенными операторами и проверяйте делегированные значения до того, как они достигнут Weblate. (сопровождающий) |
Предположения о размере и частоте:
Weblate полагается на ограничения загрузки приложения и обратного прокси для больших HTTP-запросов. (документировано) (источник:
PROJECT_BACKUP_UPLOAD_MAX_SIZE)Импорт резервных копий проектов ограничен количеством элементов, общим несжатым размером, размером сжатого элемента, минимальным размером отношения и настройками коэффициента сжатия. (документировано) (источник: Конфигурация)
Запросы аутентификации поставщика удостоверений SAML ограничены по кодированному и развёрнутому размеру перед разбором XML. (сопровождающий)
Метаданные резервной копии проекта, ссылки на объекты, пути репозиториев, исходящие URL-адреса, регулярные выражения и содержимое снимков экрана проверяются перед записью состояния проекта при восстановлении. Неудачные восстановления удаляют объекты репозитория и медиа, созданные этой попыткой. (документировано) (источник: Резервные копии на уровне проекта)
Ожидается, что API и выбранные веб-действия будут защищены настроенными ограничениями скорости. (документировано) (источник: API REST для Weblate, Конфигурация)
Размер репозитория, количество проектов, количество компонентов и ёмкость обработчиков являются проблемами определения размера развёртывания, если только один входной параметр, находящийся в области действия, не обходит задокументированные ограничения или разрешения. (сопровождающий)
Модель противника¶
Действующее лицо |
Возможности в рамках области действия |
Возможности вне области действия |
|---|---|---|
Неаутентифицированный интернет-клиент |
Отправлять HTTP(S)-запросы на публичные страницы, регистрацию, вход, API и достижимые конечные точки веб-обработчиков. (документировано) (источник: API REST для Weblate) |
Читать память сервера, обходить средства контроля обратного прокси или получать прямой доступ к внутренним службам. (сопровождающий) |
Аутентифицированный пользователь |
Выполнять действия, разрешённые назначенными командами, разрешениями и рабочим процессом. (документировано) (источник: Контроль доступа) |
Действовать за пределами назначенных разрешений без использования ошибки в Weblate. (документировано) (источник: Контроль доступа) |
Рецензент или управляющий проектом |
Использовать делегированные разрешения на проект, компонент, язык, рецензирование, систему контроля версий, память переводов, снимки экрана или управление доступом. (документировано) (источник: Контроль доступа) |
Стать администратором сайта, если только эта роль не предоставлена или не используется ошибка Weblate. (сопровождающий) |
Владелец токена API с областью действия проекта |
Использовать разрешения API, назначенные членству токена в командах, включая создание и загрузку резервных копий проектов, где предоставлено разрешение на редактирование проекта. (документировано) (источник: API REST для Weblate, Контроль доступа, Резервные копии на уровне проекта) |
Получать доступ к проектам, компонентам или общесайтовым функциям за пределами своей области действия. (документировано) (источник: Контроль доступа) |
Отправитель веб-обработчика |
Отправлять поддельные, повторно воспроизведённые, неверно сформированные или высокообъёмные запросы веб-обработчиков на включённые конечные точки обработчиков и наблюдать документированную диагностику сопоставления. (документировано) (источник: Обработчики уведомлений, Сопоставление целей веб-обработчиков) |
Получить аутентифицированную фабрикой личность там, где Weblate её не проверяет. (сопровождающий) |
Внешний СКВ или поставщик услуг |
Возвращать данные репозитория, ответы API, перенаправления или ошибки в соответствии с настроенной интеграцией. (документировано) (источник: Интеграции с хостингом кода) |
Скомпрометировать хост Weblate, кроме как через данные или поведение протокола, которые обрабатывает Weblate. (сопровождающий) |
Переводчик или участник локализации |
Предоставлять содержимое перевода, которое могут потреблять нижестоящие приложения. (документировано) (источник: Модель угроз локализации) |
Управлять экранированием, отрисовкой или политикой рецензирования нижестоящего приложения за пределами Weblate. (документировано) (источник: Модель угроз локализации) |
Локальный оператор |
Запускать команды управления, изменять конфигурацию и получать доступ к резервным копиям. (документировано) (источник: Команды управления, Резервное копирование и перенос Weblate) |
Локальные злонамеренные операторы считаются доверенными для этой модели. (сопровождающий) |
Моделируемый злоумышленник пытается обойти авторизацию, изменять данные перевода или репозитория без разрешения, раскрывать приватные данные проекта или пользователя, подделывать или злоупотреблять синхронизацией репозитория, инициировать небезопасные исходящие запросы, выполнять команды через управляемые Weblate рабочие процессы или исчерпать ограниченные ресурсы приложения. (сопровождающий)
Свойства безопасности, которые предоставляет Weblate¶
Свойство |
Условия |
Симптом нарушения |
Уровень серьёзности |
|---|---|---|---|
Веб-авторизация разделяет разрешения на сайт, проект, компонент, язык, словарь, систему контроля версий, память переводов, снимки экрана, рецензирование и управление доступом. (документировано) (источник: Контроль доступа, Авторизация, Память переводов) |
Назначения разрешений соответствуют предполагаемым доверительным отношениям. Принудительная двухфакторная аутентификация на уровне команды должна быть выполнена пользователями-людьми перед применением разрешений, полученных от команды. Ожидающие регистрации приложения-аутентификатора не удовлетворяют требованиям 2FA. Регистрация требует действительного одноразового TOTP-кода и не может быть завершена более одного раза, в том числе при параллельных отправках. (документировано) (источник: Двухфакторная авторизация) Администраторам компонентов доверяют настройку операций, которые могут повлиять на содержимое репозитория, например, выбор файлов через настройки компонента, настройку дополнений или включение принудительных отправок и поведения запросов на извлечение через Параметры системы контроля версий. Дополнения — это постоянная административная конфигурация: дополнения проекта и категории работают с совместимыми ограниченными потомками, а дополнения компонентов могут потреблять межкомпонентные входные данные, документированные дополнением. Их служебные идентичности и настроенные полномочия не зависят от последующего состояния учётной записи или разрешений настроившего пользователя. Резервные копии проекта аналогично содержат каждый компонент в проекте, включая ограниченные компоненты. Следовательно, ограничения компонентов защищают обычный прямой доступ, но не являются границей изоляции от этих документированных административных возможностей. Пользователям с правами управления рабочим пространством доверяют подключение и удаление установок приложений GitHub; удаление последнего подключения рабочего пространства может удалить приложение с GitHub. Перенос компонента в приложение GitHub дополнительно требует разрешения на редактирование для каждого выбранного компонента. Связывание репозитория распространяет это доверие на администраторов каждого связанного компонента для полной общей рабочей копии. Разрешения на явные действия СКВ проверяются на компоненте, которому принадлежит репозиторий. Связывание принимает полномочия этого владельца над полной общей рабочей копией; разрешения на нижестоящих связанных компонентах не предоставляют и не отменяют полномочия на явные действия СКВ. Общепроектные действия СКВ пропускают репозитории, где эта проверка разрешений не выполняется; они не выполняются частично для отдельной общей рабочей копии. Явные действия СКВ, поставленные в очередь из браузера или API, сохраняют инициирующего пользователя, сериализуют доступ к затронутым репозиториям и повторно проверяют разрешение этого пользователя на текущем владельце репозитория в рабочем процессе перед изменением. Обычный фоновый коммит и отправка Weblate авторизованных изменений перевода не требуют от редактора наличия этих разрешений СКВ. Разрешение |
Пользователь или токен могут читать или изменять данные за пределами назначенной области. |
Критично для безопасности, когда раскрываются приватные данные или привилегированное изменение. |
Токены API с областью действия проекта ограничены назначенными разрешениями проекта/команды. (документировано) (источник: API REST для Weblate, Контроль доступа) |
Токен создаётся и хранится доверенным действующим лицом. |
Токен может действовать за пределами области проекта или команды. |
Критично для безопасности. |
Средства контроля аутентификации и сеансов защищают сеансы браузера, когда настройки HTTPS и прокси верны. Ожидающие сеансы второго фактора привязаны к текущему состоянию аутентификации по паролю, а повторные отклонённые попытки ввода второго фактора блокируют вход по паролю в соответствии с |
Включены производственные настройки HTTPS и безопасных куки. |
Фиксация сеанса, обход учётных данных, путаница сеансов между пользователями или ожидающий вход по паролю, остающийся работоспособным после смены пароля или блокировки учётной записи. |
Критично для безопасности. |
Ожидается, что предоставленное пользователем содержимое, отображаемое Weblate, не будет выполнять скрипт в браузерах других пользователей. (сопровождающий) |
Содержимое отображается через шаблоны пользовательского интерфейса Weblate и стандартное экранирование. |
Сохранённый или отражённый XSS в источнике Weblate. |
Критично для безопасности. |
Входные данные репозитория, ветки, пути и СКВ, обрабатываемые Weblate, не должны приводить к выполнению команд оболочки. (сопровождающий) |
Операции СКВ вызываются через поддерживаемые Weblate рабочие процессы репозиториев и настроенные учётные данные. Восстановление из резервной копии проекта разрешает только неисполняемое состояние репозитория Git, git-svn и Mercurial и перестраивает локальную для репозитория конфигурацию из проверенных настроек компонента. Weblate не заполняет подмодули Git (см. Подмодули Git). |
Внедрение команд или выполнение произвольного кода от имени пользователя Weblate. |
Критично для безопасности. |
Приватные данные проекта, за исключением документированной диагностики сопоставления универсальных веб-обработчиков, метаданных, публикуемых через Публичный доступ, переводов, явно публикуемых через Совместная память переводов, и переводов, идентификаторов сборок и сопоставлений ресурсов, явно публикуемых через дополнения CDN, данные пользователя, учётные данные, токены, SSH-ключи и секреты 2FA не раскрываются действующим лицам, не имеющим разрешения. (документировано) (источник: Контроль доступа, Соответствие нормам конфиденциальности, Интеграция с системой контроля версий) |
Разрешения хоста, базы данных и хранилища не нарушены. Настраиваемые пользователем URL-адреса репозиториев и отправки не могут адресовать файловую систему сервера. Ответы универсальных веб-обработчиков раскрывают только количество совпадений, плашки проекта/компонента и URL-адреса API, документированные в Сопоставление целей веб-обработчиков. Публичный доступ разрешает неаутентифицированный доступ к страницам вовлечения и отрисованным виджетам состояния, раскрывая имена проектов и компонентов, включая ограниченные компоненты, статистику перевода, языки и прогресс. Он не предоставляет доступ к содержимому проекта или API. Содержимое репозитория, намеренно используемое через связанные компоненты, следует границе доверия связанного репозитория. Диагностика разрешений репозитория проекта определяет доступных владельцев репозиториев, когда операция требует разрешения, но не раскрывает личности недоступных компонентов или заблокированное содержимое или статус репозитория. Пользовательские дополнения перечисляют только нечувствительные поля как публичную конфигурацию; не перечисленные значения скрываются из публичной истории изменений. Установка дополнения CDN Kotlin SDK явно публикует переводы, имена пакетов приложений и коды версий, а также имена и отправленные идентификаторы опубликованных ресурсов из этого компонента неаутентифицированным клиентам CDN, в том числе для приватных проектов. Хранилище CDN и кешированные копии клиентов находятся вне контроля доступа к проекту; удаление исходных файлов не может отозвать ранее загруженные копии. Включение вклада в общую память переводов явно публикует исходные строки, переводы и происхождение проектов и компонентов вне контроля доступа к проекту, включая проекты «Приватный» и «Пользовательский». |
Межпроектная утечка данных, не покрываемая документированной диагностикой универсальных веб-обработчиков, метаданными публичного доступа, явной публикацией в общей памяти или CDN или границей доверия связанного репозитория, раскрытие учётных данных или несанкционированный экспорт. |
Критично для безопасности. |
Импорт резервных копий отклоняет архивы, превышающие задокументированные пороги загрузки, количества элементов, общего размера и подозрительного сжатия. (документировано) (источник: Конфигурация, Резервные копии на уровне проекта) |
Остаются настроенными значения по умолчанию или более строгие ограничения. |
Архив большого размера или с высоким коэффициентом усиления принимается сверх настроенных порогов. |
Критично для безопасности при DoS одним запросом; в противном случае — ошибка доступности. |
Задокументированные настраиваемые пользователем поверхности исходящих URL-адресов по умолчанию отклоняют внутренние или непубличные цели. (документировано) (источник: |
Проверки частных адресатов по умолчанию включены, и никакое освобождение по списку доверенных не применяется. Прямые защищённые HTTP-запросы и операции Git HTTPS и SSH сохраняют привязку адресов, ограничения СКВ остаются включёнными, а внутренние механизмы СКВ без привязки используют только явно доверенные хосты. Настроенные попротокольные HTTP-прокси остаются доверенной инфраструктурой маршрутизации. |
Настраиваемый пользователем URL-адрес снимка экрана, URL-адрес удалённого HTML, URL-адрес веб-сайта проекта или обозревателя репозиториев, URL-адрес исходящего веб-обработчика или URL-адрес СКВ достигает внутренней или непубличной цели, несмотря на средства контроля по умолчанию. |
Критично для безопасности, когда раскрываются внутренние службы или метаданные. |
Weblate записывает изменения в учётных записях, разрешениях, жизненном цикле тарификации, блокировки по лимиту веб-действий для аутентифицированных пользователей и изменения настроек проекта или компонента, важные для безопасности, в журналы аудита или историю. Записи аудита удаления учётной записи сохраняют предыдущий адрес электронной почты до истечения |
Ведение журнала настроено, хранилище доступно, а |
Отсутствует журнал аудита для действия, которое Weblate заявляет, что регистрирует, или личные данные, хранящиеся дольше настроенного срока хранения журнала аудита. |
Критично для безопасности, когда блокирует расследование привилегированных изменений или раскрывает сохранённые личные данные; влияет на конфиденциальность, когда данные превышают настроенный срок хранения; только для корректности при незначительных пробелах в событиях. |
Самостоятельное создание пробного экземпляра предоставляет только назначенный коммерческий пробный план или план настройки Libre. (сопровождающий) |
Развёртывание предлагает пробные размещения в режиме самообслуживания. |
Аутентифицированный пользователь может выбрать другой публичный, приватный или внутренний тарифный план при создании пробного экземпляра. |
Критично для безопасности, когда это обходит ограничения платных служб. |
Действия API и веб-действия с ограничением скорости применяют настроенные ограничения скорости. (документировано) (источник: API REST для Weblate, Конфигурация) |
Ограничение скорости включено и поддерживается работающим хранилищем данных. |
Запросы, превышающие настроенные пороги, продолжают обрабатываться. |
Улучшение доступности/безопасности в зависимости от чувствительности конечной точки. |
Встроенные проверки качества перевода не должны позволять содержимому, контролируемому пользователем, в пределах настроенных ограничений размера монополизировать синхронные рабочие процессы запросов через несоразмерное потребление ресурсов. (сопровождающий) |
Проверка включена и выполняется во время поддерживаемой записи перевода через браузер или API. |
Один принятый перевод вызывает потребление ЦП или памяти, несоразмерное его размеру, и блокирует рабочий процесс запросов. |
Критично для безопасности при DoS одним запросом; в противном случае — ошибка доступности. |
Универсальные веб-обработчики планируют обновления репозитория только для подходящих компонентов, чей URL-адрес репозитория точно совпадает с URL-адресом репозитория из полезной нагрузки, включая документированные варианты URL. Компоненты, управляемые через аутентифицированную интеграцию, исключаются из универсального сопоставления и диагностики. Универсальные ответы раскрывают только документированную диагностику сопоставления для подходящих компонентов. (документировано) (источник: Сопоставление целей веб-обработчиков) |
Обработчики включены, и доставка достигает конечной точки обработчика в области действия. |
Доставка обновляет компонент, чей URL-адрес репозитория не точно совпадает с полезной нагрузкой, в том числе через сопоставление по хосту или суффиксу пути, или универсальная доставка обновляет или раскрывает компонент, управляемый через аутентифицированную интеграцию, или ответ раскрывает информацию о компоненте за пределами документированных полей. |
Критично с точки зрения безопасности, когда это вызывает несанкционированную синхронизацию репозитория между несвязанными компонентами; в противном случае — корректность или усиление защиты. |
Weblate намеренно не раскрывает базу данных, хранилище данных, хранилище резервных копий или необработанное внутреннее хранилище напрямую через публичный веб-интерфейс; экспортированные репозитории СКВ намеренно раскрываются Экспортер Git, когда этот опциональный модуль включён; авторизованные загрузки резервных копий проектов намеренно раскрываются через документированные маршруты резервного копирования проектов. (документировано) (источник: API REST для Weblate, Резервные копии на уровне проекта) (сопровождающий) |
Развёртывание не обслуживает пути внутреннего хранилища как статические файлы, за исключением задокументированных функций экспорта. |
Публичный запрос извлекает необработанное внутреннее хранилище, конфигурацию или неэкспортированные данные репозитория. |
Критично для безопасности. |
Пороги ресурсов в этой модели являются задокументированными значениями конфигурации по умолчанию, где они существуют, особенно ограничения на импорт резервных копий и ограничения скорости. В отношении размера репозитория, количества проектов, количества компонентов и объёма перевода Weblate не заявляет о фиксированном универсальном потолке ресурсов, независимом от мощности развёртывания. (сопровождающий)
Обнаружение компонентов ограничивает обход репозитория и работу по сопоставлению файловых масок, даже когда содержимое репозитория управляет масками; см. component discovery limits. (сопровождающий)
Свойства безопасности, которые Weblate не предоставляет¶
Weblate не аутентифицирует криптографически каждую доставку веб-обработчика для всех поддерживаемых интеграций с фабриками. Конечные точки обработчиков ориентированы на совместимость и укреплены на уровне развёртывания, а не единообразно аутентифицированы фабрикой. Отчёты, которые показывают только неаутентифицированный запуск в пределах смоделированных эффектов, являются VALID-HARDENING, а не BY-DESIGN. (сопровождающий)
Weblate не приравнивает неаутентифицированный веб-обработчик к доверенному удостоверению фабрики. Обработка обработчика может запускать рабочие процессы обновления, а универсальные ответы могут подтверждать регистрацию репозитория и раскрывать количество совпадений, плашки проекта/компонента и URL-адреса API, включая частные проекты и компоненты с ограниченным доступом. Компоненты, управляемые через аутентифицированную интеграцию, исключаются из этого универсального поведения. Универсальные доставки не ограничены по скорости на уровне приложения и не объединяются: операции с репозиторием сериализуются для согласованности, но каждая соответствующая доставка может записать событие обработчика и запланировать попытку обновления. Неизменённый репозиторий всё равно требует удалённого извлечения, прежде чем обновление остановится без объединения или разбора файлов переводов. Атрибуция и подлинность слабее, чем для аутентифицированного пользователя или токена. (сопровождающий)
Запрошенная пользователем фоновая работа авторизуется, когда Weblate принимает и ставит запрос в очередь. Фоновые задачи не всегда повторно проверяют разрешения инициирующего пользователя при выполнении. Поэтому последующие изменения учётной записи, разрешений или членства в командах не могут надёжно предотвратить завершение уже авторизованной работы. (сопровождающий)
Weblate не является песочницей для злонамеренных администраторов, злонамеренных локальных операторов, сторонних надстроек, пользовательского кода развёртывания, клиентов VCS или инструментов резервного копирования. (сопровождающий)
Weblate не гарантирует, что содержимое перевода безопасно при копировании в нижестоящий продукт без собственного экранирования, проверки или рецензирования этого продукта. Проверки перевода и рабочие процессы рецензирования помогают управлять качеством и рисками локализации; они не являются полной границей безопасности нижестоящего приложения. (документировано) (источник: Модель угроз локализации, Проверки и исправления)
Ложные друзья:
Разрешения Weblate — это авторизация приложения, а не песочница хоста. Пользователь, которому предоставлены разрешения СКВ или управления проектом, может намеренно настраивать интеграции в пределах полномочий этой роли. (сопровождающий)
Сопоставление проекта веб-обработчика и анализ событий не являются доказательством того, что отправитель является легитимной фабрикой, когда интеграция не аутентифицирует доставку. (сопровождающий)
Проверки перевода обнаруживают распространённые проблемы качества и формата; они не гарантируют, что переведённые строки безопасны для любого нижестоящего средства отрисовки. (документировано) (источник: Проверки и исправления, Модель угроз локализации)
Шифрование BorgBackup защищает архивы резервных копий в соответствии с дизайном Borg; Weblate не добавляет отдельной криптографической гарантии для внутренних компонентов Borg. (документировано) (источник: Резервное копирование и перенос Weblate)
Ограничения скорости уменьшают злоупотребление настроенными конечными точками; они не являются гарантией доступности при объёмных сетевых атаках. (сопровождающий)
Хорошо известные классы атак, частично или полностью оставленные на усмотрение систем развёртывания или нижестоящих систем:
Фишинг и повторное использование учётных данных смягчаются политикой аутентификации и 2FA, но Weblate не может помешать пользователям раскрывать учётные данные за пределами сервиса. (сопровождающий)
Злонамеренные переводы могут стать проблемами XSS, форматной строки, команды или политики в нижестоящих приложениях, которые отображают их небезопасно. (документировано) (источник: Модель угроз локализации)
Настраиваемые пользователем поверхности исходящих URL-адресов с задокументированными ограничениями частных целей по умолчанию отклоняют внутренние или непубличные цели; привилегированные списки разрешённых, прокси и конфигурация, контролируемая администратором, могут намеренно расширять достижимость. (сопровождающий)
Большие истории репозиториев, масштаб проектов и объём фоновых задач требуют определения размера развёртывания и операционных ограничений, выходящих за рамки проверки одного входного параметра Weblate. (сопровождающий)
Обязательства нижестоящих сторон¶
Операторы должны развёртывать Weblate за производственным HTTPS с правильными заголовками прокси, именами хостов, ограничениями размера запроса и поведением безопасных куки. (документировано) (источник: Инструкции по настройке, ENABLE_HTTPS, ALLOWED_HOSTS)
Операторы, включающие обработку пересылаемых IP-адресов клиентов, должны доверять только обратным прокси под своим контролем и предотвращать возможность недоверенных клиентов обходить эти прокси для прямого доступа к Weblate. (документировано) (источник: WEBLATE_TRUSTED_PROXY_ADDRESSES, Работа за обратным прокси)
Операторы должны назначать команды, роли, токены с областью действия проекта, учётные данные системы контроля версий и разрешения управления проектом в соответствии с наименьшими привилегиями для своей организации. (документировано) (источник: Контроль доступа, API REST для Weblate)
Операторы, предоставляющие Обработчики уведомлений, должны включать их только там, где это необходимо, и обеспечивать мониторинг ёмкости, ограничения размера тела и опциональные ограничения источников или граничные элементы управления, подходящие для трафика их поставщика. Они должны принимать документированное раскрытие идентификаторов и стоимость планирования для каждой доставки или использовать аутентифицированные интеграции, где это доступно. (сопровождающий)
Операторы должны относиться к спискам разрешённых частных целей, прокси и привилегированным настройкам исходящих интеграций как к намеренному расширению ограничений сетевой достижимости Weblate по умолчанию. (сопровождающий)
Операторы должны поддерживать ограничения импорта резервных копий, ограничения скорости API и ограничения скорости веб-интерфейса на значениях, соответствующих ёмкости и степени открытости экземпляра. (документировано) (источник: Конфигурация)
Операторы должны защищать каталог данных Weblate, конфигурацию, учётные данные резервного копирования, сгенерированные ключи, базу данных, хранилище данных и локальный доступ к оболочке как доверенную инфраструктуру. (документировано) (источник: Резервное копирование и перенос Weblate, Инструкции по настройке)
Нижестоящие продуктовые команды должны обрабатывать переведённые строки как недоверенное содержимое в своих собственных приложениях, если только они не провели отдельное рецензирование, экранирование и проверку для целевого средства отрисовки. (документировано) (источник: Модель угроз локализации)
Известные модели неправильного использования¶
Широкое раскрытие конечных точек веб-обработчиков, включение обработчиков проектов и reliance на полезные нагрузки веб-обработчиков как на аутентифицированное удостоверение фабрики. Это небезопасно, потому что некоторые поддерживаемые обработчики ориентированы на совместимость и возвращают диагностику сопоставления. Используйте средства контроля развёртывания и предпочитайте аутентифицированные интеграции, где это возможно. (сопровождающий)
Предоставление разрешений рабочего пространства, проекта, СКВ или управления доступом пользователям, которым доверяют только как переводчикам. Это небезопасно, потому что эти разрешения могут влиять на подключения к хостингу кода, репозитории, учётные данные или других пользователей. Назначайте более узкие роли. (документировано) (источник: Контроль доступа, Интеграции с хостингом кода)
Назначение общесайтовых разрешений ролям, предназначенным для ограниченного проекта или делегирования службе поддержки. Общесайтовые разрешения применяются ко всему экземпляру и не сужаются выбором проектов команды. В частности,
group.editпозволяет изменять область общесайтовой команды и предоставлять участникам команды доступ к приватным проектам, к которым управляющий не имеет прямого доступа, аuser.editпозволяет изменять членство в командах и статус суперпользователя для редактируемых учётных записей, включая собственную учётную запись вызывающего. Делегируйте разрешения через команды проекта или рабочего пространства для ограниченных областей. (документировано) (источник: Контроль доступа)Отправка конфиденциальных исходных строк или приватного содержимого клиента поставщикам машинного перевода без отношения к поставщику как к получателю данных. Это небезопасно, потому что Weblate должен передавать содержимое в настроенную службу, и отправляемое содержимое зависит от поставщика и включённой функции. Настраивайте поставщиков в соответствии с политикой обработки данных для проекта. (сопровождающий)
Импорт резервных копий проектов из недоверенных источников как административное удобство. Это небезопасно, потому что резервные копии несут метаданные проекта, содержимое перевода и состояние репозитория. Держите ограничения импорта включёнными и импортируйте только резервные копии, подходящие для целевого экземпляра. (документировано) (источник: Резервное копирование и перенос Weblate)
Отношение к проверкам перевода Weblate как к доказательству того, что нижестоящие приложения не могут быть атакованы через переведённые строки. Это небезопасно, потому что нижестоящее средство отрисовки определяет конечный контекст выполнения. Рецензируйте и экранируйте переводы в потребляющем приложении. (документировано) (источник: Модель угроз локализации)
Известные ненаходки¶
Отчёт о том, что в достижимый веб-обработчик можно вызвать без аутентификации фабрики, и он только инициирует смоделированное планирование обновления или возвращает документированную диагностику сопоставления, сам по себе не является
VALID. Конечная последовательность принятых запросов или отсутствие ответа429на уровне приложения не демонстрирует сбой доступности. Он направляется вVALID-HARDENING, если только он не обходит документированные ограничения, не сопоставляется с несвязанными репозиториями, не допускает утечку данных за пределы документированных полей, не вызывает несоразмерное потребление ресурсов или устойчивую деградацию службы, или не имеет эффектов, выходящих за рамки смоделированного планирования для каждой доставки. (сопровождающий)Сообщение о том, что веб-обработчик не обновляет компонент, чей URL-адрес репозитория имеет общий хост или суффикс пути с полезной нагрузкой, не является уязвимостью; Weblate сопоставляет только точные URL-адреса репозиториев и документированные варианты. (документировано) (источник: Сопоставление целей веб-обработчиков)
Отчёт о том, что управляющий проектом может изменить настройки репозитория, учётные данные системы контроля версий или конфигурацию проекта, не является уязвимостью, когда действующее лицо имеет задокументированное разрешение на это действие. (документировано) (источник: Контроль доступа)
Сообщение о том, что исходные строки, переводы или происхождение проектов и компонентов из проекта «Приватный» или «Пользовательский» доступны через общую память переводов, не является уязвимостью, когда уполномоченный управляющий явно включил вклад. Общий вклад публикует эти данные вне контроля доступа к проекту. Ограниченные компоненты остаются исключёнными. (документировано) (источник: Совместная память переводов, Накопитель)
Отчёт, содержащий данные приватного проекта или ограниченного компонента, не является уязвимостью, когда пользователь имеет действующее разрешение
reports.viewна выбранной родительской области. Это разрешение намеренно авторизует полную область отчётов. (документировано) (источник: Отчёт о прогрессе перевода, Контроль доступа)Сообщение о том, что администратор проекта может получить ограниченных потомков из полной резервной копии проекта, или что управляющий дополнениями может настроить встроенное дополнение для обработки его документированных ограниченных потомков или межкомпонентных входных данных, не является уязвимостью. Это постоянные административные возможности, и они не наследуют прямой доступ настроившего пользователя к компонентам. (документировано) (источник: Дополнения, Резервные копии на уровне проекта, Контроль доступа)
Отчёт против поведения сторонней надстройки не является уязвимостью ядра Weblate, если только отчёт не показывает, что границы разрешений или установки Weblate обойдены. (сопровождающий)
Отчёт о том, что злонамеренный локальный оператор может читать конфигурацию, запускать команды управления или изменять файлы, находится вне модели, потому что локальные операторы являются доверенной инфраструктурой. (сопровождающий)
Сообщение о том, что предоставленная оператором переменная окружения, аргумент контейнера или смонтированная конфигурация может изменить сгенерированную конфигурацию службы, не является уязвимостью. Это доверенные входные данные развёртывания. Слой CI/CD, GitOps, PaaS, Helm или другой слой оркестрации, позволяющий менее доверенным пользователям задавать выбранные значения, владеет этой границей делегирования и должен проверять значения перед созданием рабочей нагрузки Weblate. (сопровождающий)
Отчёт о том, что нижестоящее приложение отображает опасный перевод, не является уязвимостью Weblate, если только сам Weblate не нарушает заявленное свойство при хранении, проверке, рецензировании или отображении этого перевода. (документировано) (источник: Модель угроз локализации)
Условия, которые изменяют эту модель¶
Пересматривайте эту модель, когда изменения затрагивают публичные интерфейсы, аутентификацию или авторизацию, предположения о развёртывании, обработку недоверенного ввода, внешние интеграции, возможности выполнения или связанные с безопасностью значения по умолчанию. Проверьте, охватывают ли существующие область, действующие лица, границы доверия, предположения, свойства безопасности и решения сортировки это изменение. (сопровождающий)
Пересматривайте эту модель в том же изменении, только когда эти элементы меняются или оставляют пробел. Это включает неподдерживаемый компонент, становящийся поддерживаемой поверхностью продукта, изменение заявленного свойства безопасности или принятый отчёт об уязвимости, который не может быть направлен к существующему решению сортировки. (сопровождающий)
Функции, следующие существующим границам и свойствам безопасности, не нуждаются в отдельных записях. Держите схемы конечных точек, подробности разрешений, инструкции по настройке, механику реализации и числовые ограничения в соответствующей документации по функциям или администрированию. Ссылайтесь на эту документацию, когда деталь нужна для объяснения отдельной границы, исключения или результата сортировки. Обзор, подтверждающий существующее покрытие, не требует правки модели угроз. (сопровождающий)
Решения при сортировке¶
Решение |
Значение |
Лицензировано |
|---|---|---|
|
Нарушает свойство, заявленное Weblate, через действующее лицо и входные данные в области действия. |
Свойства безопасности, предоставляемые Weblate, Входные предположения, Модель противника |
|
Ни одно заявленное свойство не нарушено, но Weblate решает снизить известный риск неправильного использования, например, срабатывание совместимого веб-обработчика, которое остаётся в рамках смоделированных эффектов. |
Известные модели неправильного использования, Свойства безопасности, которые Weblate не предоставляет |
|
Требует контроля злоумышленника над входными данными, которые эта модель помечает как доверенные. |
|
|
Требует возможности, которую эта модель исключает. |
|
|
Попадает в сторонние надстройки, сгенерированную документацию, тесты, локальную настройку или другой компонент, помеченный как находящийся вне области действия. |
|
|
Проявляется только после выбора развёртывания, который намеренно удаляет заявленное свойство. |
|
|
Касается свойства, которое Weblate явным образом не предоставляет. |
|
|
Совпадает с задокументированным повторяющимся ложным срабатыванием. |
|
|
Не может быть чётко направлено ни к одному из вышеуказанных решений. |