forumApri un argomento

Abbiamo provato a fare un'analisi delle vulnerabilità sul nostro codice ma ci siamo bloccati: quali sono le trappole più comuni?

EEbru K***Partecipante
Ruolo
Specialista risorse umane
Settore
Produzione mobili
Tipo di organizzazione
ditta individuale
Iscrizione
ott 2024
Messaggio
105
#1

Ad Austin sviluppiamo una piattaforma di analisi dati finanziari B2B con un team core di 4 sviluppatori. In vista dell'audit di sicurezza richiesto da un cliente enterprise, volevamo fare una secure code review interna su circa 12.000 righe di nuovo codice, riguardanti soprattutto query al database e layer di autenticazione. Al momento il budget per una consulenza di sicurezza esterna è limitato.

Ci siamo messi al lavoro tre settimane fa ma siamo finiti in un vicolo cieco operativo. Abbiamo lanciato un tool di analisi statica open source e sono usciti fuori oltre 320 alert. Mentre il team discuteva su quali fossero falsi positivi e quali minacce reali, la velocità dei nostri sprint si è quasi dimezzata. Gli sviluppatori si sono messi sulla difensiva, il processo è rallentato tantissimo e abbiamo comunque la sensazione che i veri bug di logica applicativa ci stiano sfuggendo.

Quali sono gli errori più comuni in cui cadono i piccoli team di sviluppo quando revisionano il proprio codice in ottica di sicurezza? Come possiamo trasformare questo processo in una routine gestibile senza logorare il team e senza bloccare le scadenze di rilascio?

HHakan U***PartecipanteMembro della community
Iscrizione
apr 2024
Messaggio
43
Più utile#2

Risposta breve: l'errore più comune è cercare di risolvere tutti insieme centinaia di alert generati dai tool automatici senza stabilire delle priorità trattando tutto il codice con lo stesso livello di attenzione. La revisione del codice sicuro diventa sostenibile solo se si fa threat modeling per restringere le aree a rischio e si filtrano le regole dell'analisi statica.

Per prima cosa abbatti il rumore di fondo del tool di analisi statica. È normalissimo avere 320 avvisi: molti riguardano standard di formattazione troppo rigidi o segnalazioni di stile a basso rischio. Riduci il set di regole del tool per concentrarti solo sulle vulnerabilità critiche e ad alta priorità (SQL injection accessi non autorizzati ai dati, gestione insicura delle sessioni ed errori di crittografia). Disattivando temporaneamente gli avvisi informativi e di livello medio ridurrai i riscontri da analizzare a una quantità gestibile.

Come secondo passo, riduci il perimetro della revisione dalle 12.000 righe totali alle sole superfici critiche. Sottoporre a una revisione di sicurezza completa le classi di supporto che non scrivono direttamente sul database, che non gestiscono input utente o che non fanno controlli di autorizzazione sfinisce il team. Invece di 12.000 righe, dovresti concentrarti forse solo sui 1.500 punti di contatto davvero critici.

Infine tieni presente che gli scanner statici non rileveranno mai falle logiche nelle autorizzazioni (come un utente che modifica un parametro per visualizzare la fattura di un'altra azienda). Per scovare questi problemi di logica applicativa, fate test incrociati basati su scenari all'interno del team: uno sviluppatore deve verificare manualmente l'endpoint scritto dal collega chiedendosi cosa succederebbe se mancasse il controllo sui ruoli.

FFeyza S***PartecipanteMembro della community
Iscrizione
ago 2023
Messaggio
251
#3

Configura bene la "taint analysis" (tracciamento dei dati non attendibili) nei tool di analisi statica. Segui il percorso dei parametri inseriti dall'utente per vedere se vengono sanificati prima di arrivare al database o ai comandi di sistema. Se disattivi le regole che considerano vulnerabilità SQL ogni singola concatenazione di stringhe, elimini all'istante almeno due terzi degli avvisi.

NNuri E***Esperto
Ruolo
Coordinatore generale
Settore
Pelle
Tipo di organizzazione
distributore di zona
Iscrizione
feb 2023
Messaggio
386
#4

Far revisionare il codice sotto il profilo della sicurezza allo sviluppatore che non ha una formazione in merito è solo una formalità. Chi scrive il codice non può vedere i propri errori di progettazione. Se il budget è limitato, richiedere un audit esterno mirato di 2-3 giorni solo per l'autenticazione e il modulo di pagamento è molto più economico ed efficace rispetto a farlo sull'intero sistema.

EErcan T***Partecipante
Ruolo
Direttore tecnologico
Settore
Elettrotecnica ed elettronica
Tipo di organizzazione
distributore di zona
Iscrizione
gen 2023
Messaggio
1

Doki · Scansione vulnerabilità · 2024

#5

Non fate di nuovo l'errore di revisionare 12.000 righe tutte insieme. Suddividete la revisione della sicurezza nelle pull request. Che non ci siano più di 300 righe di codice per ogni merge e mettete solo 5 punti critici di sicurezza nella checklist. Bisogna controllare mentre si scrive il codice, non quando lo sprint sta per chiudersi.

OOrhan D***Esperto
Ruolo
Addetto al negozio
Settore
Servizi IT
Tipo di organizzazione
startup appena avviata
Iscrizione
nov 2024
Messaggio
228
#6

Alla prima scansione avevamo ricevuto 410 avvisi. Ci siamo sbattuti come matti con tutto il team per due settimane. Poi abbiamo configurato il filtro di sicurezza solo sulle 10 vulnerabilità web più critiche; il numero è sceso subito a 19. E di quei 19 riscontri, solo 4 rappresentavano un rischio reale da correggere per davvero.

AAhmet Z***Esperto
Ruolo
Tecnico di assistenza
Settore
Commercio all'ingrosso alimentare
Tipo di organizzazione
azienda familiare
Iscrizione
dic 2023
Messaggio
159
#7

i tool automatici non sanno cosa fa il codice, fanno solo pattern matching. se nelle query del database usate librerie parametrizzate eliminate già in automatico gran parte dei rischi di sql injection, non state a fissarvi su ogni singolo alert del tool x niente.

SSinan B***Nuovo membro
Ruolo
Pianificazione produzione
Settore
Pubblicità e promozione
Tipo di organizzazione
media impresa
Iscrizione
set 2026
Messaggio
59
#8

Sul nostro primo prodotto abbiamo discusso per giorni in team su complesse regole di validazione con regex, convinti di aver fatto una secure code review perfetta. Al terzo giorno dal rilascio in produzione, un cliente ha modificato l'id nel parametro dell'url ed è riuscito a scaricare il bilancio di un'altra azienda. Era proprio questo tipo di falle logiche che i tool non riuscivano a rilevare.

HHande B***Partecipante
Ruolo
Direttore operativo
Settore
Sport e fitness
Tipo di organizzazione
boutique agency
Iscrizione
giu 2023
Messaggio
353
#9

Ci sono tre classiche trappole in cui si cade: 1) Prendere l'output dei tool come oro colato e perdere ore dietro ai falsi positivi, 2) Far percepire la revisione di sicurezza come una valutazione delle performance dello sviluppatore innescando un atteggiamento difensivo, 3) Confondere lo stile del codice con una vulnerabilità di sicurezza.

FFiliz A***EspertoMembro della community
Iscrizione
mag 2025
Messaggio
14
#10

Il succo di quanto detto è questo: alzate la soglia di allarme degli scanner automatici per ridurre il rumore, spezzettate le revisioni in parti più piccole e testate con scenari manuali le falle nella logica di autorizzazione che i tool non sono in grado di intercettare.

LLevent K***PartecipanteMembro della community
Iscrizione
lug 2024
Messaggio
2
#11

stavo pensando la stessa cosa. quano decidiamo senza misurare finiamo sempre nello stesso punto.

ogni punto non scritto è un punto che in futuro le due parti ricorderanno diversamente. boh lascio una nota, potrebbe servire.

MMehmet K***PartecipanteMembro della community
Iscrizione
gen 2025
Messaggio
237
#12

A me è successo l'esatto contrario, per questo scrivo. La sicurezza non è assoluta; significa rendere l'attacco non conveniente.

Naturalmente cambia se la vostra situazione è diversa.

TTolga G***Veteran
Ruolo
Segretaria
Settore
Plastica
Tipo di organizzazione
distributore di zona
Iscrizione
gen 2024
Messaggio
138
#13

sono d'accordo.

CCaner Z***Partecipante
Ruolo
Rappresentante vendite sul campo
Settore
Cam
Tipo di organizzazione
attività con due sedi
Iscrizione
gen 2024
Messaggio
155
#14

Breve riassunto per i nuovi arrivati: Le modifiche ai dati di pagamento non vanno mai verificate tramite il canale di provenienza.

La sicurezza non è assoluta; significa rendere l'attacco non conveniente. Buon lavoro.

PPolat S***VeteranMembro della community
Iscrizione
set 2024
Messaggio
9
#15

Nel nostro caso è andata così. Un backup non testato non è un backup.

Se scrivete qui il risultato, sarà utile anche ad altri.

GGökhan A***Partecipante
Ruolo
Produttore · mobili
Iscrizione
ott 2023
Messaggio
74
#16

Avete ragione sono passato anch'io per la stessa strada. Le persone difendono le abitudini, non i processi. La resistenza nasce da lì.

Buon lavoro.

FFiliz P***EspertoMembro della community
Iscrizione
nov 2024
Messaggio
14
#17

Concordo pienamente. Quando prendete una decisione, scrivete anche lo scenario peggiore, non solo quello migliore.

Se avete domande, scrivete, rispondo per quanto possibile.

DDuyguPartecipante
Ruolo
Analista di mercato
Iscrizione
giu 2024
Messaggio
102
#18

Riassumo l'argomento, perché sono state date diverse risposte. Le persone difendono le abitudini, non i processi. La resistenza nasce da lì.

SSedaNuovo membro
Ruolo
Insegnante · secondo lavoro
Tipo di organizzazione
cooperativa
Iscrizione
ott 2024
Messaggio
42
#19

sono nella stessa situazione, per questo chiedo. se è la prima volta, inizia in piccolo, il ridimensionamento viene dopo.

se rimproverate i falsi allarmi, nessuno segnalerà più nulla. questa è la mia opinione, non la scrivo come verità assoluta.

UUğur K***EspertoMembro della community
Iscrizione
mar 2023
Messaggio
44
#20

Non trascurare nulla: Gran parte del tempo perso si accumula nelle pratiche in attesa di approvazione.

Inizia con un piccolo test non impegnarti subito su tutto. Buon lavoro.

Rispondi