web-dev-qa-db-fra.com

La suppression non autorisée est-elle un problème d'intégrité ou de disponibilité?

Lors d'un test d'application Web, j'ai découvert un problème de falsification de paramètres qui permet à un utilisateur de supprimer les commentaires laissés par d'autres utilisateurs. Ils ne peuvent pas modifier le contenu des commentaires des autres utilisateurs, et ils ne peuvent les afficher que lorsque cela est intentionnel.

Je calcule maintenant le score CVSS en utilisant cette calculatrice . Il est assez clair que l'impact sur la confidentialité est nul, mais je ne suis pas clair sur les autres.

Donc, ma question est: aux fins de CVSSv3, la suppression non autorisée est-elle un problème d'intégrité ou un problème de disponibilité (ou les deux)?

26
paj28

Comme indiqué dans cette question (sans réponse) , la disponibilité dans CVSSv concerne la performance du service Web, et non la disponibilité de ses données:

Alors que les métriques d'impact de confidentialité et d'intégrité s'appliquent à la perte de confidentialité ou d'intégrité des données (par exemple, informations, fichiers) utilisées par le composant impacté, cette métrique fait référence à la perte de disponibilité du composant impacté lui-même, comme un service en réseau ( par exemple, Web, base de données, e-mail).

Pour répondre à votre question: seule l'intégrité est pertinente ici.

32
Rhymoid

Je dirais que cela présente un problème de disponibilité clair car l'attaquant est en mesure de supprimer complètement cette ressource spécifique et d'empêcher les autres utilisateurs d'y accéder.

Je dirais également qu'il y a aussi un problème d'intégrité. La calculatrice définit un faible score d'intégrité comme "la modification des données est possible", ce qui, je dirais, est certainement le cas ici.

Pour répondre à votre question: les deux. Votre score dépend de l'importance de ces commentaires pour votre candidature.

12
iainpb

INTÉGRITÉ

Après la suppression, l'ensemble de données résultant affirmera qu'aucun commentaire de ce type n'a été laissé. Cette affirmation est erronée.

4
Billy C.

Cela dépend si votre service dispose de procédures de sauvegarde étendues. Si vos procédures de sauvegarde prennent en compte les bogues et les erreurs utilisateur pouvant entraîner une perte de données et que l'utilisateur soumet une demande de restauration de ces données, ou si vous découvrez la vulnérabilité et êtes en mesure d'affirmer que tous les commentaires qui ont été supprimés de manière incorrecte sont toujours disponibles dans les sauvegardes, on pourrait faire valoir qu'il s'agit d'un problème de disponibilité car les données sont simplement temporairement indisponibles, jusqu'à ce qu'un DBA les restaure. Pas très différent, disons, de rendre tous les commentaires privés par accident.

Ce n'est que lorsque les enregistrements sont définitivement perdus que cela devient un problème de données simples et simples intégrité.

De plus, il pourrait y avoir des problèmes de confidentialité si un attaquant peut supprimer des commentaires qu'il ne serait pas autorisé à voir autrement, car certaines métadonnées peuvent être déduites de l'existence (antérieure) du commentaire, basée par exemple sur le numéro de séquence de ce commentaire. Vous pouvez par exemple déduire des périodes d'activité ou d'inactivité, la quantité de commentaires qu'un élément reçoit…

1
sleblanc

Je ne connais pas CVSS, mais en tant qu'administrateur système, je considérerais que votre problème est un problème d'intégrité - c'est-à-dire qu'une partie du système est incorrectement capable d'affecter une autre partie de celui-ci. Dans votre cas, l'utilisateur B peut supprimer les commentaires de l'utilisateur A.

Il est peu probable qu'un administrateur système soit capable de résoudre ce problème sans quelques modifications d'application, mais on pourrait imaginer un problème similaire sur (disons) un lecteur réseau sur un serveur de travail. L'utilisateur A enregistre un document important, mais l'utilisateur B le supprime (et il ne parvient jamais aux sauvegardes nocturnes). Cela serait traité comme un problème d'intégrité et nous trouverions un moyen de séparer les utilisateurs de sorte que l'utilisateur A puisse lire/écrire dans une zone, mais B ne peut lire qu'à partir de cette zone. Nous ne l'appellerions pas "disponibilité" car le lecteur réseau fonctionnait (comme annoncé) tout au long.

Cela pose également la question de "tel qu'annoncé". Mon exemple de partage réseau a des "conditions de service" implicites (je dis implicites, car je ne suis pas sûr que quiconque les note), tout comme votre application Web. Bien qu'il soit peu probable que de nombreuses applications Web permettant à un utilisateur de supprimer le contenu d'un autre utilisateur soient considérées comme terriblement utiles, vous pourriez dire que c'est censé être ainsi et que vous auriez besoin d'une couche supplémentaire de logiciel pour séparer le contenu des utilisateurs. C'est une sémantique quelque peu discutable, mais cela peut aider à comprendre (ma perception, au moins) de la "disponibilité" par rapport à "l'intégrité".

1
Ralph Bolton