Att publicera detaljer om en sårbarhet innan det finns en korrigering hjälper angripare mer än försvarare. Säkerhet håller detaljer om varje fynd som inte är offentligt inom Coroid, och endast någon med behörighet avgör när detaljerna får lämna systemet.
Offentligt och icke-offentligt
Varje fynd tillhör en av två kategorier:
- Offentligt: sårbarheten har redan publicerats, till exempel i ett beroende med en publicerad säkerhetsrekommendation. Korrigerande pull requests kan hänvisa till rekommendationen.
- Icke-offentligt: allt annat, till exempel ett problem som en granskning, Coroid Granskning eller en kodregel har hittat i din egen kod, eller en läckt inloggningsuppgift.
Ett fynd är offentligt endast om det är kopplat till en publicerad säkerhetsrekommendation som inte har återkallats, eller om en ägare eller administratör publicerar dess privata korrigering (se nedan).
Publiceringskontrollen
Allt som Coroid publicerar utanför Coroid passerar först publiceringskontrollen: granskningsmeddelanden, kommentarer och sammanfattningar i granskningar, resultat från kontroller och deras anteckningar, titlar och beskrivningar för pull request, commit-meddelanden, kommentarer i ärenden, Slack- och e-postmeddelanden samt exporter. Kontrollen granskar om texten innehåller något säkerhetsproblem, oavsett om det har bekräftats.
I ett offentligt repository eller ett repository vars synlighet Coroid inte kan bekräfta, ersätts ett icke-offentligt problem med en neutral rad med en länk:
Coroid har hittat ett möjligt säkerhetsproblem. Mer information finns i Coroid.
I ett privat repositorypubliceras texten. Ett problem som ännu inte har bekräftats märks med ”Obekräftat säkerhetspåstående: Coroid har inte verifierat det ännu.”
Inloggningsuppgifter maskeras alltid, överallt. Se Läckta hemligheter.
Repositoryts synlighet
Coroid behandlar ett repository som privat endast när det finns en tydlig, aktuell uppgift om att det är privat, från händelser hos GitHub eller genom att fråga GitHub direkt. Uppgiften får inte vara äldre än en timme. Ett internt repository räknas som offentligt. Om Coroid inte kan avgöra synligheten behandlas repositoryt som offentligt.
Aviseringar och exporter
- Aviseringar: för ett icke-offentligt fynd visar aviseringen endast allvarlighetsgrad och projekt, till exempel ”Ett kritiskt fynd behöver åtgärdas”, med en länk till fyndet under Säkerhet.
- Slack och e-post innehåller bara en rad om att ett fynd behöver åtgärdas, och en länk. De innehåller aldrig information om sårbarheten eller koden.
- Exporter: CycloneDX-exporten listar sårbarheter endast för offentliga fynd. Paketet med organisationens inställningar innehåller inga fynd.
Korrigeringar i offentliga repositoryn
I ett privat repository är en korrigering av ett icke-offentligt fynd en vanlig pull request. Commit-meddelanden och beskrivningen handlar om korrigeringen, inte om angreppet.
I ett offentligt repository eller ett repository vars synlighet Coroid inte kan bekräfta skulle en offentlig pull request, branch eller commit avslöja problemet innan det har åtgärdats. Därför skapar Coroid inte någon sådan korrigering där. Korrigeringsuppgiften avbryts med en orsak som inte avslöjar några detaljer om fyndet, och den förberedda ändringen sparas som en privat korrigering.
Privata korrigeringar
Ett fynd med en privat korrigering visar den under Privata korrigeringar. Endast ägare och administratörer kan se den.
- Ladda ned korrigeringen sparar den förberedda ändringen som en
.patch-fil, så att du kan granska den eller tillämpa den själv. - Publicera registrerar att fyndet nu offentliggörs och skapar en uppgift som tillämpar den förberedda ändringen oförändrad och öppnar dess pull request. Publicera när du är redo att göra både korrigeringen och problemet offentliga, till exempel när ett samordnat releasedatum har nåtts. En korrigering som är för omfattande för att publiceras från Coroid kan fortfarande laddas ned och tillämpas manuellt.
- Kassera tar bort den förberedda ändringen.
Publicering och kassering registreras i organisationens granskningslogg, och båda åtgärderna tar bort den förberedda ändringen från Coroid.
En privat korrigering som ingen publicerar eller kasserar sparas under en begränsad tid. Efter 180 dagar får ägare och administratörer en påminnelse. Efter 365 dagar tas den bort, och de får ett meddelande om det.
Planerat
- Säkerhetskontakter per projekt, som tillsammans med ägare och administratörer kan granska och publicera privata korrigeringar.
- Privata forkar i GitHub: förbereda en korrigering med ett regressionstest i en privat fork för en säkerhetsrekommendation i ett GitHub-repository, i stället för att spara den i Coroid.
- Rapporter till underhållare: när sårbarheten finns i koden för ett beroende, skapa ett utkast till en privat rapport för dess underhållare, som endast en person kan skicka.