Gestionați caracteristicile și avertizările GitHub Advanced Security

Finalizat

Acum că securitatea proiectului tău este stabilită, tot ce trebuie să faci este să monitorizezi și să gestionezi funcțiile și alertele de securitate avansată GitHub pentru proiectul tău.

În această unitate, vei învăța cum să folosești Security Overview pentru a monitoriza riscurile de securitate din proiectul tău. De asemenea, vei învăța cum să folosești endpoint-urile GitHub Advanced Security pentru a gestiona funcțiile de securitate și alertele.

Folosirea Prezentării de Securitate

Prezentarea generală a securității este disponibilă în fila Securitate și calitate pentru organizații și depozite. Îl poți folosi pentru a obține o perspectivă de ansamblu asupra posturii de securitate a organizației tale sau pentru a identifica depozite care necesită atenție.

  • Nivel organizațional: Afișează informații agregate și specifice depozitului de securitate pentru depozitele deținute de organizație. Informațiile pot fi, de asemenea, filtrate după caracteristica de securitate.
  • Nivel de echipă: Afișează informații de securitate specifice depozitului pentru depozitele unde echipa are privilegii de administrator.
  • Nivelul depozitului: Arată ce funcții de securitate sunt activate pentru depozit și oferă opțiuni pentru configurarea funcțiilor disponibile care nu sunt activate în prezent.

Captură de ecran a Prezentării generale a securității la nivel de organizație.

Datorită interfeței sale interactive și capabilităților de filtrare, Security Overview suportă atât analize de securitate largi, cât și țintite.

De exemplu, îl poți folosi pentru:

  • Monitorizează adoptarea funcțiilor de securitate în întreaga organizație.
  • Urmăriți adoptarea de către echipele individuale în timpul implementării GitHub Advanced Security.
  • Revizuiește alertele de un anumit tip sau severitate în toate depozitele.

Folosește endpoint-urile avansate de securitate GitHub

Tabelul următor rezumă punctele finale API disponibile pentru fiecare funcție GitHub Advanced Security.

caracteristicii puncte finale documentație
Scanarea codului Recuperează și actualizează alertele de scanare a codurilor.
Creează rapoarte automate pentru organizații.
Încarcă rezultatele analizei CodeQL offline.
API de scanare a codului
Scanare secretă Activează sau dezactivează scanarea secretă pentru depozite.
Recuperează și actualizează alertele secrete de scanare.
API-ul depozitelor
API de scanare secretă
Revizuire dependență Activează sau dezactivează alertele de dependențe și graful de dependențe.
Activează sau dezactivează corecțiile de securitate.
Vizualizați informațiile de dependență.
API-ul depozitelor
API-ul GraphQL

Configurarea GITHUB_TOKEN permisiunilor

Dacă folosești GitHub Actions pentru a automatiza fluxurile de lucru de securitate, este important să configurezi permisiunile acordate apelurilor GITHUB_TOKEN API autentificate folosite.

Tabelul următor rezumă permisiunile implicite.

domeniu Acces implicit (permissiv) acces implicit (restricționat) Acces maxim din depozite bifurcate
acțiuni citire/scriere niciunul citi
Controale citire/scriere niciunul citi
conținut citire/scriere citi citi
Implementări citire/scriere niciunul citi
id-token citire/scriere niciunul citi
Probleme citire/scriere niciunul citi
metadate citi citi citi
Pachete citire/scriere niciunul citi
solicitări de extragere citire/scriere niciunul citi
proiecte de depozit citire/scriere niciunul citi
evenimente de securitate citire/scriere niciunul citi
Stările citire/scriere niciunul citi

Poți modifica permisiunile acordate GITHUB_TOKEN în fișierele individuale ale fluxului de lucru.

  • Dacă permisiunile implicite sunt restrictive, este posibil să fie nevoie să crești permisiunile pentru ca fluxurile de lucru să se poată finaliza cu succes.
  • Dacă permisiunile implicite sunt permisive, ar trebui să elimini permisiunile inutile.

Ca o bună practică de securitate, acordați întotdeauna cele mai puține privilegii necesare.

Poți folosi și cheia permissions pentru a configura permisiuni pentru un întreg flux de lucru sau pentru joburi individuale. Când permissions este specificat, toate permisiunile nespecificate sunt setate la zero, cu excepția scopului metadatelor , care primește întotdeauna acces la citire .

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\nThe commit hash was: _${{ github.sha }}_."
            }' \
            --fail

În exemplul anterior, accesul la scriere este acordat la aria de aplicare a problemelor pentru o singură lucrare.

Poți folosi și cheia permissions pentru a adăuga sau elimina permisiuni de citire pentru fluxurile de lucru declanșate din depozite bifurcate. Permisiunile de scriere, în general, nu pot fi acordate decât dacă opțiunea Send writes tokens to workflows from pull requests este activată în setările GitHub Actions.

Perspective privind detectarea, remedierea și prevenirea

Security Overview organizează perspectivele în trei perspective principale.

Vizualizare Scop
Detectare Monitorizează unde sunt descoperite vulnerabilități, secrete și riscuri de dependență.
Remediere Urmărește modul în care alertele sunt corectate, prioritizate și rezolvate între depozite.
Prevenire Măsoară modul în care vulnerabilitățile sunt prevenite înainte de a ajunge la ramurile protejate.

Viziunea de prevenire ajută organizațiile să evalueze cât de eficient controlul de securitate oprește schimbările riscante înainte ca acestea să fie fuzionate.

Printre exemple se numără:

  • Vulnerabilități corectate în timpul revizuirii pull request-urilor.
  • Constatările scanării codului au fost rezolvate înainte de fuziune.
  • Activitate de remediere Copilot Autofix.
  • Evenimente de protecție push prin scanare secretă.
  • A prevenit riscurile de dependență.

Interpretarea alertelor între funcții de securitate

Security Overview agregă informații din mai multe funcții de securitate GitHub pentru a ajuta echipele să înțeleagă riscul organizațional.

Sursele frecvente de alertă includ:

  • Alerte de scanare a codurilor: Vulnerabilități și tipare de codare nesigure detectate de CodeQL sau scanere terțe.
  • Alerte de scanare secretă: Acreditări expuse, chei API și token-uri.
  • Alerte Dependabot: Dependențe vulnerabile și riscuri legate de pachete.
  • Revizuirea dependenței: Riscuri introduse prin modificări de dependență în pull requests.

Echipele pot filtra alertele după:

  • Severitate
  • Depozit
  • Tip de caracteristică
  • Interval de timp
  • Proprietatea echipei
  • Starea alertei

Aceste filtre susțin atât analiza la nivelul întregii organizații, cât și investigații concentrate.

Urmărirea remedierilor și informații despre Autofix

Security Overview ajută, de asemenea, la monitorizarea progresului remedierii.

Echipele de securitate pot urmări:

  • Alertele pull request au fost rezolvate înainte de fuziune.
  • Tendințe în remediere.
  • Copilot Autofix generează pull request-uri.
  • Ratele de validare și finalizare a fuziunilor.
  • Depozite cu alerte recurente nerezolvate.

Aceste informații ajută organizațiile să identifice blocajele, să prioritizeze depozitele cu risc ridicat și să măsoare eficacitatea remedierii.

Vizibilitate asupra evenimentelor de ocolire și semnalele de guvernanță

Prezentarea generală de securitate evidențiază și metrici de guvernanță și politici în întreaga organizație.

Printre exemple se numără:

  • Împinge evenimentele de ocolire a protecției.
  • Activitatea de aplicare a protecției filialelor.
  • Tendințe de excludere în alertă.
  • Audit activitatea jurnalului.
  • Adoptarea poliței și metrici de acoperire.

Aceste metrici îi ajută pe administratori să înțeleagă:

  • Unde utilizatorii ocolesc protecțiile.
  • Dacă polițele necesită rafinament.
  • Dacă controalele de securitate sunt aplicate în mod consecvent.

Combinate cu jurnalele de audit, seturile de reguli și politicile de protecție a ramurilor, aceste informații susțin raportarea conformității, revizuirile operaționale și îmbunătățirea continuă a securității.

Roluri și responsabilități în domeniul securității

Adoptarea cu succes a GitHub Advanced Security necesită o proprietate clară din partea echipelor de dezvoltare, securitate și administrative.

Diferite roluri interacționează cu funcțiile avansate de securitate GitHub pe tot parcursul ciclului de viață al dezvoltării software și al răspunsului la incidente.

Responsabilitate Dezvoltatori Ingineri de securitate Administratori de depozite / organizații
Revizuiește și corectează alertele de scanare a codului Da Da Nu
Revizuiește alertele de scanare secretă Da Da Da
Actualizarea dependențelor vulnerabile Da Da Nu
Validează solicitările de pull Copilot Autofix Da Da Nu
Triați și prioritizați alertele de securitate Nu Da Da
Configurarea politicilor de securitate și a seturilor de reguli Nu Da Da
Gestionarea protecției ramurilor și a politicilor de flux de lucru Nu Nu Da
Monitorizarea Panourilor de Prezentare a Securității Nu Da Da
Revizuiește jurnalele de audit și semnalele de guvernanță Nu Da Da
Configurează setările de securitate ale depozitului și organizației Nu Nu Da
Coordonarea fluxurilor de lucru pentru răspunsul la incidente Nu Da Da
Aprobați excepțiile de politică sau concedierile Nu Da Da

Exemple de proprietate a fluxului de lucru

Un flux de lucru tipic de securitate GitHub Advanced implică mai multe roluri care lucrează împreună.

  1. Un dezvoltator primește o alertă de scanare a codului într-o pull request.
  2. Un inginer de securitate revizuiește severitatea alertei și recomandă o abordare de remediere.
  3. Copilot Autofix propune o actualizare pull request.
  4. Dezvoltatorul validează corectarea și actualizează codul dacă este necesar.
  5. Administratorii depozitelor aplică protecțiile ramurilor și verificările obligatorii înainte de fuziune.
  6. Echipele de securitate revizuiesc jurnalele de audit și tendințele de remediere prin intermediul Security Overview.

Definirea clară a responsabilităților ajută organizațiile să scaleze adoptarea GitHub Advanced Security, menținând în același timp guvernanța, responsabilitatea și consistența operațională.