Dokumentation

GitHub-behörigheter och säkerhetskontrollen i Coroid

Vilka behörigheter i GitHub-appen som Säkerhet använder och varför, hur säkerhetskontrollen i Coroid fungerar, hur du gör den obligatorisk och hur GitHubs egna säkerhetsaviseringar importeras.

Säkerhet fungerar via Coroids GitHub-app. På den här sidan beskrivs vilka behörigheter appen behöver för Säkerhet, vad Coroid Security -kontrollen rapporterar, hur du gör GitHub obligatoriskt och hur GitHubs egna säkerhetsaviseringar visas i Säkerhet.

Behörigheter

Säkerhet använder de behörigheter som appen redan har för dina repos: läsa kod och pull requests samt skriva kontroller. De här behörigheterna är valfria, och var och en tillför en funktion:

BehörighetVad den tillförUtan den
Merge queues: skrivskyddad åtkomst, med händelsen Merge groupCoroid Security för merge queue-commitsMerge queues får inget Coroid Security resultat
Dependabot-aviseringar: skrivskyddad åtkomst, med dess händelseImporterar Dependabot-aviseringarImporteras inte
Aviseringar om kodskanning: skrivskyddad åtkomst, med dess händelseImporterar GitHubs aviseringar om kodskanningImporteras inte
Aviseringar om hemlighetsskanning: skrivskyddad åtkomst, med dess händelseImporterar GitHubs aviseringar om hemlighetsskanning, utan själva hemligheternaImporteras inte

När appen begär en ny behörighet ber GitHub organisationens ägare att godkänna den för installationen. Fram till dess visar Säkerhet → Översikt vilka repos som saknar behörigheten, med en länk till installationen på GitHub.

Coroid läser också av om varje repo är offentligt eller privat, från GitHubs händelser och genom att fråga GitHub, för att avgöra vad som får publiceras där. Se Offentliggörande.

Säkerhetskontrollen i Coroid

Coroid Security är en enda kontroll med ett enda namn, oavsett om den körs separat eller som en del av projektets Delivery-diagram i Kvalitetskontroll, så att ett repo bara behöver kräva den en gång. Den rapporterar resultatet av kontrollerna för varje ändring: sårbara beroenden och läckta hemligheter. Det allvarligare av de två avgör resultatet. Kodskanning rapporteras via Kvalitetskontrollens kontroller och säkerhetsgranskning via kontrollen Coroid Review.

Den körs på GitHub-repos som är anslutna via appen:

  • när en pull request öppnas, öppnas igen, uppdateras eller markeras som klar för granskning;
  • vid varje merge queue-commit, med behörigheten Merge queues;
  • när någon kör om kontrollen på GitHub.

Den visas som pågående så snart händelsen kommer in. Länken till informationen öppnar projektet i Säkerhet.

Vad den rapporterar

StatusTillämpadEndast observation
Fullständig täckning av ändringen, inga fynd på eller över tröskelvärdetGodkändGodkänd
Ett fynd på eller över tröskelvärdetUnderkändNeutral, med fyndets namn
Skanningen misslyckades eller kunde inte köras, en fil som ändringen berör är bara delvis täckt eller så gick det inte att läsa konfigurationenUnderkänd, med orsak och anvisningar för att köra omNeutral, med orsak
Inget resultat inom 10 minuterUnderkänd, ”tidsgränsen överskreds”Neutral
Alla skydd är avstängda för projektetNeutralNeutral

Resultatet är aldrig ”hoppades över”: GitHub räknar en obligatorisk kontroll som hoppats över som godkänd, så ett tillämpat skydd som inte kördes skulle visas som godkänt. En obligatorisk kontroll får alltid ett av resultaten ovan, så en merge queue behöver aldrig vänta för evigt.

Kontrollen räknar bara det som ändringen tillför, inte fynd som redan finns på basgrenen. Resultatet nämner aldrig ett fynd som inte är offentligt. Det anger hur många fynd som hittades, vid vilket tröskelvärde och att informationen finns i Coroid.

Gör säkerhetskontrollen i Coroid obligatorisk

När ett skydd tillämpas underkänns kontrollen. GitHub blockerar bara sammanfogningen om repon kräver kontrollen:

  1. Grenregler: redigera regeln för standardgrenen i repons Inställningar → Branches, aktivera Kräv att statuskontroller godkänns innan sammanfogningoch lägg till Coroid Security.
  2. Regeluppsättningar: gå till Inställningar → Rules → Rulesets och lägg till Kräv att statuskontroller är godkända i regeluppsättningen för standardgrenen, lägg till Coroid Securityoch välj Coroids GitHub-app som källa.
  3. Merge queues: kräv kontrollen i samma regel. Appen behöver behörigheten Merge queues för att kontrollen ska köras på merge queue-commits.

Gör kontrollen obligatorisk när de skydd du vill tillämpa är aktiverade. En obligatorisk kontroll som bara observerar godkänns fortfarande.

GitHubs säkerhetsaviseringar

Med GitHubs säkerhetsaviseringar aktiverat i Säkerhet → Inställningar och med behörigheterna ovan importerar Säkerhet aviseringar om Dependabot, kodskanning och hemlighetsskanning som observationer av samma fynd som Coroids egna skanningar upptäcker. Nya aviseringar kommer när GitHub skickar dem, och Coroid läser varje repos aviseringar på nytt en gång om dagen.

  • Importerad, inte bekräftad. En avisering som Coroids egna skanningar inte har bekräftat visas som ”Importerad från GitHub, ännu inte bekräftad”. Den visas i listan och räknas med, men meddelar inte och blockerar inte förrän Coroids skanning bekräftar den.
  • Källorna är oense. När GitHub och Coroid rapporterar ett fynd på olika sätt anges det vid fyndet, tillsammans med statusen från varje källa: finns kvar, borta, avfärdad eller kunde inte läsas.
  • Varje källa stänger fynd på sitt eget sätt. En Dependabot-avisering åtgärdas på GitHub när standardgrenen inte längre innehåller den sårbara versionen. En avisering om kodskanning åtgärdas när analysen av standardgrenen inte längre rapporterar den. En avisering om hemlighetsskanning förblir öppen tills någon löser den på GitHub, så en sammanfogad korrigering stänger den inte.
  • Behörigheten har gått förlorad. Om appen förlorar en behörighet eller GitHub stänger av en funktion visas fynd som bara rapporterats av den källan med statusen ”status okänd sedan” den tidpunkten, och inget stängs.

Översikt visar för varje repo och källa om aviseringarna har lästs, om behörighet saknas, om funktionen är avstängd på GitHub eller om repon inte kunde nås.