Управление функциями и оповещениями расширенной безопасности GitHub

Завершено

Теперь, когда безопасность проекта настроена, все, что необходимо сделать, заключается в мониторинге функций и оповещений GitHub Advanced Security для вашего проекта.

В этом уроке вы узнаете, как использовать обзор безопасности для мониторинга рисков безопасности в проекте. В этом уроке также рассматривается использование конечных точек расширенной безопасности GitHub для управления функциями и оповещениями расширенной безопасности GitHub.

Использование обзора безопасности

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

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

Снимок экрана: обзор безопасности на уровне организации.

Благодаря высокому уровню интерактивности и многочисленным фильтрам обзор безопасности полезен как для широкого, так и для конкретного анализа состояния безопасности вашей организации. Например, вы можете использовать его для мониторинга внедрения функций вашей организации или определенной команды при развертывании GitHub Advanced Security в вашей организации или для просмотра всех оповещений определенного типа и уровня серьезности во всех репозиториях в вашей организации.

Используйте конечные точки расширенной безопасности GitHub

В следующей таблице объясняется, какие конечные точки доступны для каждой функции расширенной безопасности со ссылками на их документацию.

функция Конечные точки документация
Сканирование кода Получение и обновление оповещений сканирования кода из репозитория.
Создайте автоматические отчеты для проверки кода оповещений в организации.
Отправка результатов анализа, созданных с помощью средств автономного сканирования кода.
API сканирования кода
Сканирование секретов Включите или отключите сканирование секретов для репозитория.
Извлечение и обновление уведомлений о проверке секретов из закрытого репозитория.
API репозиториев
API проверки секретов
Проверка зависимостей Включать и отключать уведомления и граф зависимостей для репозитория.
Включение и отключение исправлений безопасности для репозитория.
Просмотр сведений о зависимостях.
API репозиториев
API GraphQL

Если вы решили использовать GitHub Actions для автоматизации рабочих процессов безопасности, важно правильно задать разрешения для GITHUB_TOKEN, используемых для выполнения вызовов API, прошедших проверку подлинности. GITHUB_TOKEN имеет разрешения по умолчанию в зависимости от области:

Область Доступ по умолчанию (разрешительный) Доступ по умолчанию (ограниченный) Максимальный доступ к форкнутым репозиториям
Действия чтение и запись никакой читать
чеки чтение и запись никакой читать
содержание чтение и запись читать читать
Развертывания чтение и запись никакой читать
токен идентификатора чтение и запись никакой читать
Вопросы чтение и запись никакой читать
метаданные читать читать читать
Пакеты чтение и запись никакой читать
запросы на вытягивание чтение и запись никакой читать
проекты репозиториев чтение и запись никакой читать
события безопасности чтение и запись никакой читать
Статусы чтение и запись никакой читать

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

Вы также можете использовать ключ permissions в файлах рабочих процессов для изменения разрешений для GITHUB_TOKEN для всего рабочего процесса или отдельных заданий. Этот ключ позволяет настроить минимальные необходимые разрешения для рабочего процесса или задания. Если используется ключ permissions, все неуказанные разрешения не имеют доступа, за исключением области метаданных, которая всегда получает доступ на чтение.

name: Create issue on commit

on: [ push ]

jobs:
  create_commit:
    runs-on: ubuntu-latest
    permissions:
      issues: write
    steps:
      - name: Create issue using REST API
        run: |
          curl --request POST \
          --url http(s)://[hostname]/api/v3/repos/${{ github.repository }}/issues \
          --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
          --header 'content-type: application/json' \
          --data '{
            "title": "Automated issue for commit: ${{ github.sha }}",
            "body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**. \n\n The commit hash was: _${{ github.sha }}_."
            }' \
          --fail

В предыдущем примере доступ на запись предоставляется в рамках одной области и одного задания.

Кроме того, можно использовать ключ permissions для добавления и удаления разрешений на чтение для вилированных репозиториев, но обычно невозможно предоставить доступ на запись. Исключением из этого поведения является, если вы выбрали параметр отправлять токены на запись в рабочие процессы из pull requests в параметрах GitHub Actions.