
Tekunda Team

Tekunda Team

En bref : Un faux positif est un constat de scanner qui signale du code qui n'est pas reellement vulnerable. Salesforce ne veut pas que vous le fassiez taire, mais une justification ecrite pour chacun : le scanner et la regle, le fichier et la ligne exacts, le chemin des donnees, et le controle qui protege deja le code. Les rejets en une ligne, vagues, sont la raison la plus frequente pour laquelle un document de faux positifs revient avec des questions.
Chaque soumission a la security review AppExchange contient des rapports de scan, et aucune vraie base de code ne scanne parfaitement propre. Certains constats sont de vrais problemes que vous corrigez. D'autres signalent du code deja sur, et ceux-la, vous les documentez. Ce guide porte sur le second groupe : comment rediger des justifications de faux positifs que l'equipe de security review Salesforce accepte, et les erreurs qui les font rejeter. Pour les constats a corriger reellement, et l'ordre pour le faire, voir Checklist de la security review Salesforce : quoi corriger, et dans quel ordre.
Un faux positif est un constat techniquement faux pour votre code, pas un constat dont vous prefereriez ne pas vous occuper. Un scanner signale un motif ; que ce motif soit exploitable depend d'un contexte que le scanner ne voit pas toujours. Si le code est reellement protege, vous avez un faux positif a documenter. Si vous n'etes pas sur qu'il soit protege, traitez-le comme un vrai constat et corrigez-le, car deviner ici est precisement ce qui transforme un document en rejet.
Les categories qui reviennent assez souvent pour les anticiper sont :
WITH USER_MODE ou
AccessLevel.USER_MODE.
Avant de rediger une seule justification, sachez quels constats vous devez meme traiter. Le seuil n'est pas zero constat, et il change selon l'outil :
Tout ce qui depasse le bruit est soit corrige, soit documente. Il n'y a pas de troisieme option consistant a l'ignorer en silence.
Salesforce demande un document expliquant pourquoi chaque element signale ne pose pas de risque de securite, et vous demande d'etre precis sur la maniere dont vous protegez contre la vulnerabilite indiquee par le scanner. Avoir raison ne suffit pas. Le relecteur lit le document, donc c'est le document qui doit le prouver.
Donnez a chaque element signale sa propre entree plutot qu'un seul paragraphe general. Une entree solide repond, dans l'ordre :
Redigez-la pour que quelqu'un qui n'a jamais ouvert votre code puisse suivre le chemin de l'entree jusqu'au controle et convenir qu'il est sur. C'est tout le test.
Les rejets que nous voyons se regroupent en quelques erreurs evitables :
Salesforce re-audite periodiquement les packages publies, ce qui signifie que vous redigerez des justifications de faux positifs plus d'une fois. Quand les metadonnees de votre package vivent dans un controle de source, chaque permission set, sharing rule et named credential est versionne, ce qui vous permet de pointer le controle exact qui soutient une justification et de montrer qu'il n'a pas change. Les equipes qui traitent les metadonnees comme du code reutilisent le document de l'an dernier au lieu de reconstruire le raisonnement de zero.
Si vous preferez un partenaire qui a deja passe la revue pour rediger ces justifications avec vous, Tekunda construit et empaquette des produits AppExchange en tant que PDO Salesforce.
Puis-je simplement supprimer un constat au lieu de le documenter ?
Non. Tout ce qui depasse le seuil de bruit du scanner est soit corrige, soit explique dans le document de faux positifs. Un constat supprime sans justification se lit comme non traite.
Quel niveau de detail chaque entree exige-t-elle ?
Assez pour qu'un relecteur localise le code et confirme le controle sans vous demander. En pratique : scanner et regle, fichier et ligne, chemin des donnees, et le controle exact qui protege.
Les faux positifs dynamiques demandent-ils une preuve supplementaire ?
Oui. Joignez une capture prouvant que le bon endpoint a ete scanne, sinon le constat se lit comme non teste plutot que sur.