
Tekunda Team

Tekunda Team

Samengevat: Een false positive is een scannerbevinding die code markeert die niet echt kwetsbaar is. Salesforce wil niet dat je die wegdrukt, maar een schriftelijke onderbouwing voor elke bevinding: de scanner en regel, het exacte bestand en de regel, het datapad, en de controle die de code al beschermt. Vage een-regel-afwijzingen zijn de meest voorkomende reden dat een false-positive document met vragen terugkomt.
Elke AppExchange security review-inzending bevat scanrapporten, en geen echte codebase scant volledig schoon. Sommige bevindingen zijn echte problemen die je oplost. Andere markeren code die al veilig is, en die documenteer je. Deze gids gaat over de tweede groep: hoe je false-positive onderbouwingen schrijft die het Salesforce security review-team accepteert, en de fouten die ze laten afkeuren. Voor de bevindingen die je echt moet oplossen, en de volgorde daarvan, zie Salesforce security review checklist: wat je oplost, en in welke volgorde.
Een false positive is een bevinding die technisch onjuist is voor jouw code, niet een die je liever niet aanpakt. Een scanner markeert een patroon; of dat patroon exploiteerbaar is hangt af van context die de scanner niet altijd ziet. Is de code echt beschermd, dan heb je een false positive om te documenteren. Weet je niet zeker of hij beschermd is, behandel hem dan als een echte bevinding en los hem op, want gokken is hier precies wat een document in een afkeuring verandert.
De categorieen die vaak genoeg terugkeren om op te plannen zijn:
WITH USER_MODE of AccessLevel.USER_MODE.
Voordat je een enkele onderbouwing schrijft, weet welke bevindingen je uberhaupt moet aanpakken. De drempel is niet nul bevindingen, en die verandert per tool:
Alles boven de ruisgrens wordt of opgelost of gedocumenteerd. Er is geen derde optie om het stilletjes te negeren.
Salesforce vraagt om een document dat uitlegt waarom elk gemarkeerd item geen beveiligingsrisico vormt, en het vraagt je specifiek te zijn over hoe je beschermt tegen de kwetsbaarheid die de scanner aangaf. Gelijk hebben is niet genoeg. De reviewer leest het document, dus het document moet het bewijzen.
Geef elk gemarkeerd item een eigen entry in plaats van een algemene paragraaf. Een sterke entry beantwoordt, op volgorde:
Schrijf het zo dat iemand die je code nooit heeft geopend het pad van invoer naar de controle kan volgen en kan beamen dat het veilig is. Dat is de hele test.
De afkeuringen die we zien clusteren in een handvol vermijdbare fouten:
Salesforce audit vermelde packages periodiek opnieuw, wat betekent dat je meer dan eens false-positive onderbouwingen schrijft. Wanneer je package-metadata in source control staat, zijn elke permission set, sharing rule en named credential geversioneerd, zodat je kunt wijzen naar de exacte controle die een onderbouwing schraagt en kunt tonen dat die niet veranderde. Teams die metadata als code behandelen hergebruiken het document van vorig jaar in plaats van de redenering opnieuw op te bouwen.
Wil je liever een partner die de review eerder haalde en deze onderbouwingen met je schrijft, dan bouwt en verpakt Tekunda AppExchange-producten als Salesforce PDO.
Kan ik een bevinding gewoon onderdrukken in plaats van documenteren?
Nee. Alles boven de ruisdrempel van de scanner wordt of opgelost of uitgelegd in het false-positive document. Een onderdrukte bevinding zonder onderbouwing leest als een onafgehandelde.
Hoe gedetailleerd moet elke entry zijn?
Gedetailleerd genoeg zodat een reviewer de code vindt en de controle bevestigt zonder het jou te vragen. In de praktijk is dat scanner en regel, bestand en regel, het datapad, en de exacte controle die beschermt.
Vergen dynamische false positives extra bewijs?
Ja. Voeg een screenshot toe die bewijst dat het juiste endpoint is gescand, anders leest de bevinding als ongetest in plaats van veilig.