Application Security

Falsi Positivi

Un falso positivo è quando uno strumento di sicurezza segnala un problema che in realtà non esiste.

Falsi Positivi

TL;DR

In ambito di sicurezza, un falso positivo si verifica quando uno strumento segnala un problema che in realtà non esiste.

Cos’è un Falso Positivo?

Un falso positivo si verifica quando uno strumento di sicurezza segnala un problema che in realtà non esiste.

Esempio semplice:

  • Problema reale: L’allarme antincendio si attiva perché c’è un incendio.
  • Falso positivo: L’allarme antincendio si attiva a causa del vapore della cottura.

L’allerta è reale, ma non c’è alcun pericolo effettivo.

Perché i Falsi Positivi Sono un Problema

I falsi positivi non solo fanno perdere tempo. Possono portare a problemi reali col passare del tempo.

Portano a:

  • Tempo sprecato a risolvere problemi che non esistono
  • Frustrazione tra i team di sicurezza e sviluppo
  • Maggiore rischio perché i problemi reali vengono ignorati

Perché si Verificano i Falsi Positivi

Gli strumenti di sicurezza sono progettati per essere cauti. È più sicuro per loro dare troppe avvertenze piuttosto che perdere un attacco reale.

Motivi comuni:

  1. Nessun contesto

    Uno strumento vede una password hardcoded, ma è solo in un file di test.

  2. Codice complesso

    Lo strumento pensa che l’input dell’utente sia non sicuro, ma il codice lo pulisce già.

  3. Regole obsolete

    Nuovi software sicuri sembrano una vecchia minaccia.

  4. Regole troppo ampie

    Ad esempio, segnalare ogni uso di eval() anche quando è sicuro.

Il Vero Costo dei Falsi Positivi

Il vero problema si presenta quando si accumulano troppe allerte.

  • I team smettono di prestare attenzione alle allerte.
  • Le build e i rilasci rallentano.
  • Ingegneri qualificati perdono tempo a rivedere problemi inesistenti.

Falsi Positivi vs Falsi Negativi

TermineCosa Significa
Vero PositivoUn vero problema è correttamente individuato
Falso PositivoViene segnalato un problema che non è reale
Vero NegativoIl codice sicuro è correttamente ignorato
Falso NegativoUn vero problema viene mancato (questo è pericoloso)

Termini Correlati

FAQ

Come posso sapere se un’allerta è un falso positivo?

Dovresti esaminare il codice per determinare se un utente reale potrebbe attivare il problema.

Gli strumenti possono avere zero falsi positivi?

No. L’obiettivo è ridurli, non eliminarli completamente.

Dovrei smettere di usare uno strumento con molti falsi positivi?

Non immediatamente. La maggior parte degli strumenti necessita di essere adattata al tuo codice.

Ready to validate what matters?

Ready to validate what matters?

Plexicus is Proof-Driven AppSec: validated findings, contextual understanding, and reviewed remediation — anchored in evidence, scoped with you.

Qualification

Check whether AI Swarm Pentest fits your environment.

Share the minimum context. We will review the scope and tell you the next commercial step.

Before submitting — verify you fit

Teams with fewer than 50 developers: start a 14-day Trial instead of booking a demo. Start a 14-day Trial →

0 / 280

No commitment. If you don't fit, we'll tell you.

SAMPLE HANDOVER · ILLUSTRATIVE

Sample evidence handover

A trimmed view of what your team receives at the end of an AI Swarm Pentest engagement. Real engagements include full technical evidence, executive narrative, and a remediation plan.

VALIDATED FINDING Evidence attached

Server-Side Request Forgery in webhooks/receiver

demo-project/sample-app · src/webhooks/receiver.py:42

SeverityHigh CVSS 3.18.6 Priority79 Confirmedvia replay

Untrusted caller-supplied URLs reach an internal egress without an allowlist. Replayed in a sandbox against a fresh authorised target — the same control was validated to fail twice.

REVIEWER-READY REMEDIATION Merge-ready PR

Validate the target URL against an allowlist of permitted hostnames. Reject private/internal IP ranges. Enforce HTTPS only.

plexicus/remediation/webhooks-ssrf 3 changed · 0 new files
42resp = requests.get(target_url)
42+if not is_allowed_host(target_url):
43+  raise WebhookRejected(target_url)
44+resp = requests.get(target_url, timeout=5)
Every engagement hands over:
  • Executive briefing
  • Validated findings list
  • Merge-ready PRs
  • Compliance mapping (NIS2 · DORA · CRA)