web-dev-qa-db-fra.com

Règle SonarQube: "L'utilisation d'arguments de ligne de commande est sensible à la sécurité" dans l'application Spring Boot

SonarQube montre juste un problème de sécurité critique dans l'application Spring Boot très basique. Dans la méthode principale.

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

SonarQube veut que je Make sure that command line arguments are used safely here.

J'ai recherché ceci sur StackOverflow et Google, et je suis surpris de ne pas avoir pu trouver un seul commentaire sur ce problème. Je suis presque sûr qu'il y a des contrôles de sécurité à l'intérieur du SpringApplication.run méthode déjà. Et aussi, je ne me souviens même pas que quiconque désinfecte les principaux arguments de la méthode avant d'appeler SpringApplication.run. Je veux simplement le marquer comme faux positif et continuer.

Une partie de cette question est également posée ici: SonarQube montre une erreur de sécurité dans les contrôleurs Spring Framework et dans la classe principale de Spring Framework Application

Est-ce un faux positif?

11
leventunver

Si vous n'utilisez aucun argument de ligne de commande, vous pouvez éviter de mentionner le paramètre args dans la méthode run. Comme le code ci-dessous.

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class);
    }

}

Cela supprimera le problème de point d'accès sonarqube.

1
sachin

Non, c'est en effet un problème de sécurité critique. Il s'agit simplement de désinfecter les arguments avant de l'utiliser. Il n'y a pas besoin d'une telle préoccupation sur une application simple, mais cela peut être un gros problème sur une application de production.

Plus de détails peuvent être trouvés sur https://rules.sonarsource.com/Java/RSPEC-4823?search=Make%20sure%20that%20command%20line%20arguments%20are%20used%20safely%20here .

1
Francilio Araújo

Il semble que ce soit marqué comme security hotspot selon la documentation du sondeur. Il est dit

Contrairement aux vulnérabilités, les points d'accès de sécurité ne sont pas nécessairement des problèmes ouverts aux attaques. Au lieu de cela, les points d'accès de sécurité mettent en évidence les éléments de code sensibles à la sécurité qui doivent être examinés manuellement. Après examen, vous trouverez soit une vulnérabilité qui doit être corrigée, soit aucune menace.

Vous pouvez en savoir plus à ce sujet ici point d'accès de sécurité

Conformément à cette règle RSPEC-482 ou S482 , les arguments de la ligne de commande doivent être évalués en fonction de

  • Tous les arguments de ligne de commande sont utilisés sans être préalablement nettoyés.
  • Votre application accepte des informations sensibles via des arguments de ligne de commande.

Si votre application entre dans cette catégorie, il s'agit certainement d'un problème de sécurité possible pour votre application.

1
Coder