Publier les détails d'une vulnérabilité avant sa correction disponible aide davantage les attaquants que les défenseurs. La fonctionnalité Sécurité conserve les détails de chaque constatation non publique au sein de Coroid, et seule une personne ayant l'autorité décide quand elles seront divulguées.
Publique et non publique
Chaque constatation appartient à l'une des deux catégories :
- Publique: la vulnérabilité est déjà publiée, par exemple une dépendance avec un avis publié. Les demandes de fusion de correctif peuvent mentionner cet avis.
- Non publique: tout le reste, comme un problème détecté lors d'un audit, par Coroid Révision ou par une règle de code dans votre propre code, ou des identifiants divulgués.
Une constatation est publique uniquement lorsqu'elle est liée à un avis publié qui n'a pas été retiré, ou lorsqu'un propriétaire ou administrateur publie son correctif privé (ci-dessous).
Le filtre de publication
Tout ce que Coroid publie en dehors de Coroid passe d'abord par le filtre de publication : organes de révision, commentaires et résumés de révision en ligne, résultats de vérification et leurs annotations, titres et descriptions de pull request, messages de validation, commentaires de problème, messages Slack et e-mails, ainsi que les exports. Le filtre examine toute mention d'un problème de sécurité dans le texte, qu'il soit confirmé ou non.
Sur un dépôt public, ou un dépôt dont Coroid ne peut pas confirmer la visibilité, une constatation non publique est remplacée par une ligne neutre avec un lien :
Coroid a détecté un éventuel problème de sécurité ; les détails se trouvent dans Coroid.
Sur un dépôt privé, le texte est publié. Une constatation non confirmée est marquée comme « Allégation de sécurité non vérifiée : Coroid ne l'a pas encore vérifiée ».
Les identifiants sont toujours masqués, partout. Voir Secrets divulgués.
Visibilité du dépôt
Coroid considère un dépôt comme privé uniquement s'il dispose d'une information claire et récente indiquant qu'il est privé, provenant des événements de GitHub ou d'une demande directe à GitHub, datant de moins d'une heure. Un dépôt interne est considéré comme public. Si Coroid ne peut pas le déterminer, il traite le dépôt comme public.
Notifications et exports
- Cloche: pour une constatation non publique, la cloche indique uniquement la gravité et le projet, par exemple « Une constatation critique nécessite une attention », avec un lien vers la constatation dans la section Sécurité.
- Slack et e-mail ne contiennent qu'une ligne indiquant qu'une constatation nécessite une attention, ainsi que le lien. Ils ne contiennent jamais la vulnérabilité ni le code.
- Exports: l'export CycloneDX liste les vulnérabilités uniquement pour les constatations publiques. Le paquet de paramètres de l'organisation ne contient aucune constatation.
Corriger sur un dépôt public
Sur un dépôt privé, un correctif pour une constatation non publique est une demande de fusion pull request normale. Ses messages de validation et sa description décrivent le correctif, et non l'attaque.
Sur un dépôt public, ou un dépôt dont Coroid ne peut pas confirmer la visibilité, un dépôt pull request public, une branche ou une validation révélerait le problème avant sa correction. Ainsi, Coroid n'y soumet jamais un tel correctif. La tâche de correction s'arrête avec une raison ne mentionnant aucun détail sur la constatation, et la modification préparée est conservée en tant que correctif privé.
Correctifs privés
Une constatation avec un correctif privé apparaît sous Correctifs privés. Seuls les propriétaires et administrateurs peuvent la voir.
- Télécharger le correctif enregistre la modification préparée sous forme de fichier
.patch, pour être révisée ou appliquée par vous-même. - Publier enregistre que la constatation est désormais divulguée, et crée une tâche qui applique la modification préparée sans changement et ouvre son pull request. Publiez lorsque vous êtes prêt à rendre le correctif et la constatation publics, par exemple une fois la date de publication coordonnée atteinte. Un correctif trop volumineux pour être publié depuis Coroid peut toujours être téléchargé et appliqué manuellement.
- Supprimer supprime la modification préparée.
La publication et la suppression sont enregistrées dans le journal d'audit de l'organisation, et toutes deux suppriment la modification préparée de Coroid.
Un correctif privé que personne ne publie ou ne supprime est conservé pendant une durée limitée. Après 180 jours, les propriétaires et administrateurs en sont informés. Après 365 jours, il est supprimé, et ils en sont également informés.
Planifié
- Contacts de sécurité par projet, qui peuvent réviser et publier des correctifs privés aux côtés des propriétaires et administrateurs.
- Fork privés de GitHub: préparer un correctif dans le fork privé d'un avis de sécurité de dépôt GitHub, avec ses tests de régression, plutôt que de le conserver dans Coroid.
- Rapports aux mainteneurs: Lorsqu'une vulnérabilité se trouve dans le code d'une dépendance, un rapport privé est rédigé à l'attention de ses mainteneurs, et ce rapport n'est envoyé qu'par une personne.