Allstar — это приложение GitHub, устанавливаемое в организациях или репозиториях для установки и
применять политики безопасности. Его цель — иметь возможность постоянно отслеживать и
обнаруживать любые настройки GitHub или содержимое файлов репозитория, которые могут быть опасными или
не следовать рекомендациям по безопасности. Если Allstar обнаружит, что репозиторий отсутствует
соответствия, он выполнит такое действие, как создаст проблему или восстановит безопасность
настройки.
Конкретные политики должны быть легко настраиваемыми, чтобы попытаться соответствовать
потребности различных проектных сообществ и организаций. Также, разработка и
создание новой политики должно быть легким.
Allstar разработан в рамках организации OpenSSF, как
часть Обеспечение работы над критически важными проектами
Группа . OpenSSF работает
экземпляр Allstar здесь для всех
установить и использовать в своих организациях на GitHub. Однако Allstar может управляться
если потребуется, см. документацию оператора для получения дополнительных сведений.
Содержание статьи
Быстрый запуск
Установите приложение Allstar GitHub на свой
организации и репозитории. При установке Allstar вы можете просмотреть
запрашиваемые разрешения. Allstar запрашивает доступ для чтения к большинству настроек и файлов
содержимое для обнаружения соответствия требованиям безопасности. Он запрашивает доступ на запись к задачам в
создавать проблемы и проверять, чтобы разрешить действие block
.
Следуйте инструкциям по быстрому запуску, чтобы настроить конфигурацию.
файлы, необходимые для включения Allstar в ваших репозиториях. Подробнее о
расширенная конфигурация, см. ниже.
Помогите! У меня проблемы, созданные Allstar, и они мне не нужны.
Включить конфигурацию
Allstar можно включить для отдельных репозиториев на уровне приложения с помощью
возможность включения или отключения каждой политики безопасности по отдельности. Для
конфигурации на уровне организации, создайте репозиторий с именем .allstar
в вашем
организация. Затем создайте файл с именем allstar.yaml
в этом
репозиторий.
Allstar может быть настроен как на подписку, так и на отказ. Только при включении
явно перечисленные репозитории включены. При отказе все репозитории
включены, и репозитории нужно будет явно добавить в
отказаться. Allstar настроен на подписку по умолчанию и поэтому не включен на
любой репозиторий сразу после установки. Чтобы продолжить по умолчанию
стратегия подписки, перечислите репозитории для Allstar, которые будут включены в вашем
организация вроде так:
optConfig:
optInRepos:
- репо-1
- репо-два
Чтобы переключиться на стратегию отказа (рекомендуется), установите для этого параметра значение true:
optConfig:
optOutStrategy: true
Если вы хотите включить Allstar во всех репозиториях, кроме нескольких, вы можете использовать функцию отказа.
и перечислите репозитории, которые нужно отключить:
optConfig:
optOutStrategy: true
optOutRepos:
- репо-1
- репо-два
Переопределение репозитория
Отдельные репозитории также могут подключаться или отключаться, используя файлы конфигурации внутри
эти репозитории. Например, если организация настроена с
стратегия отказа, репозиторий может отказаться от участия, включив файл
.allstar / allstar.yaml
с содержанием:
И наоборот, это позволяет репозиториям выбирать и включать Allstar, когда
организация настроена со стратегией согласия. Поскольку включение — это
стратегия по умолчанию, вот как работает Allstar, если репозиторий .allstar
не
существуют.
На уровне организации allstar.yaml
переопределение репозитория может быть отключено
с настройкой:
optConfig:
disableRepoOverride: истина
Это позволяет организации-владельцу иметь центральную точку утверждения для
репозиториев, чтобы запросить отказ через PR GitHub. Понятно, что Allstar
или отдельные политики могут не иметь смысла для всех репозиториев.
Включить политику
Каждый отдельный файл конфигурации политики (см. Ниже) также содержит точный
тот же объект конфигурации optConfig
. Это позволяет детализации включить
политики в отношении индивидуальных репозиториев. Политика не будет действовать, если
он включен и Allstar включен в целом.
Определение
Действия
Для каждой политики можно настроить действие, которое Allstar предпримет, когда
обнаруживает, что репозиторий не соответствует требованиям.
-
журнал
: это действие по умолчанию, оно действительно выполняется для всех
действия. Все результаты и подробности выполнения политики регистрируются. Журналы в настоящее время
видны только оператору приложения, планы по их раскрытию обсуждаются. -
проблема
: это действие создает проблему GitHub. Только одна проблема создается за
policy, а в тексте описаны подробности нарушения политики. Если
вопрос уже открыт, он пингуется с комментарием каждые 24 часа (не
в настоящее время настраивается пользователем). Как только нарушение будет устранено, проблема будет
будет автоматически закрыт Allstar в течение 5-10 минут. -
fix
: это действие зависит от политики. Политика внесет изменения в
Настройки GitHub для исправления нарушения политики. Не все политики смогут
в поддержку этого (см. ниже).
Предлагаемые, но еще не реализованные действия. Определения будут добавлены в
будущее.
-
блок
: Allstar может установить статус GitHub
Чек
и заблокировать любой PR в репозитории от объединения в случае неудачной проверки. -
электронная почта
: Allstar отправит электронное письмо администратору (ам) репозитория. -
rpc
: Allstar отправлял rpc в какую-то специфичную для организации систему.
Политики
Как и в конфигурации включения приложения Allstar, все политики включены и
настроен с помощью файла yaml в репозитории организации .allstar
,
или каталог репозитория .allstar
. Как и в случае с приложением, правила являются обязательными.
по умолчанию действие по умолчанию log
не дает видимых результатов. А
простой способ включить все политики — создать файл yaml для каждой политики с
содержание:
optConfig:
optOutStrategy: true
действие: проблема
Действие fix
еще не реализовано ни в одной политике, но будет реализовано
в тех политиках, где это применимо в ближайшее время.
Защита филиала
Файл конфигурации этой политики называется branch_protection.yaml
а конфигурация
определения
здесь .
Политика защиты веток проверяет, что защита веток GitHub
настройки
правильно настроены в соответствии с указанной конфигурацией. Текст выпуска
опишет, какая настройка неверна. См. GitHub's
документация
для исправления настроек.
Двоичные артефакты
Файл конфигурации этой политики называется binary_artifacts.yaml
а конфигурация
определения
здесь .
Эта политика включает чек от
оценочная карта . Удалить
бинарный артефакт из репозитория для достижения соответствия. Как оценочная карта
результаты могут быть подробными, возможно, потребуется запустить систему показателей
чтобы увидеть всю подробную информацию.
Внешние сотрудники
Файл конфигурации этой политики называется outside.yaml
а определения конфигурации
находятся
здесь .
Эта политика проверяет наличие Вне
Соавторы
иметь доступ администратора (по умолчанию) или push (необязательно) к
репозиторий. Только члены организации должны иметь этот доступ, иначе
участники, которым не доверяют, могут изменять настройки уровня администратора и передавать вредоносный код.
SECURITY.md
Файл конфигурации этой политики называется security.yaml
а определения конфигурации
находятся
здесь .
Эта политика проверяет, есть ли в репозитории файл политики безопасности в
SECURITY.md
и что он не пустой. В созданном выпуске будет ссылка на
GitHub
вкладка
это поможет вам закрепить политику безопасности в вашем репозитории.
Будущая политика
Пример репозитория конфигураций
См. Пример этого репо.
используемой конфигурации Allstar. Как администратор организации, рассмотрите
README.md с некоторой информацией о том, как Allstar используется в вашем
организация.
Содействовать политике
Определение интерфейса.
И SECURITY.md, и За пределами
Политики сотрудников довольно просты для
понять и скопировать хорошие примеры.