forumApri un argomento

Abbiamo preso in carico il codice lasciato dall'agenzia: come fare una revisione sicura del codice e da dove iniziare?

SSultan A***Partecipante
Ruolo
QA Engineer
Settore
Trasporti
Tipo di organizzazione
Azienda da 300 dipendenti
Iscrizione
ago 2025
Messaggio
143

Doki · Consulenza conformità KVKK · 2023

#1

Siamo una startup di trasporti e logistica di 12 persone con sede a Dallas. Abbiamo lavorato per 10 mesi con una software agency per sviluppare un portale web personalizzato dove i nostri clienti possono consultare le offerte sui carichi, caricare i documenti di trasporto e tracciare i container in tempo reale. Abbiamo speso circa 35.000 USD per il progetto. Lo sviluppo è terminato, abbiamo svolto i test di collaudo e il contratto con l'agenzia si è concluso. Abbiamo preso in carico l'intero codice sul nostro repository Git.

Il nostro sviluppatore senior, assunto per gestire la manutenzione e le nuove funzionalità internamente, clonando il repository e facendo la prima analisi ha trovato cose che ci hanno fatto allarmare. Ha notato che la password di root del database e le chiavi per i servizi SMS esterni sono scritte in chiaro dentro ai file di codice, e che alcune librerie open source non vengono aggiornate da almeno due anni. Il portale conta in totale 45 mila righe di codice PHP e JavaScript.

Siamo molto preoccupati per la possibile presenza di backdoor sconosciute, falle nei permessi o vulnerabilità che possano portare a fughe di dati. Avendo un solo sviluppatore, da dove dovremmo cominciare un processo completo di revisione sicura del codice e quali passaggi dobbiamo seguire?

HHilal Z***PartecipanteMembro della community
Iscrizione
dic 2024
Messaggio
136
Più utile#2

Risposta breve: la revisione sicura del codice consiste nella scansione delle vulnerabilità note e delle dipendenze tramite strumenti di analisi statica automatizzata, seguita da un controllo manuale dei passaggi critici di autenticazione e logica di business. Poiché un singolo sviluppatore non può leggere a mano 45 mila righe, dovete strutturare il lavoro in tre fasi: scansione automatica, verifica delle dipendenze e audit manuale mirato.

La prima fase consiste nella bonifica dei dati sensibili nel repository e nella scansione delle dipendenze. Le password hardcodate nel sorgente non vanno solo rimosse dal file, ma vanno rigenerate subito sul database e sui servizi esterni. Successivamente, lanciando tool di scansione delle dipendenze open source, si devono individuare e patchare le falle note nelle librerie utilizzate.

La seconda fase riguarda l'integrazione di strumenti di analisi statica del codice (SAST). Questi tool analizzano l'intero codice sorgente prima dell'esecuzione, segnalando in pochi minuti vulnerabilità di base come SQL injection, Cross-Site Scripting (XSS) e convalida non sicura degli input.

La terza fase, nonché la più critica, è l'audit manuale della logica di business. Gli strumenti automatici non possono capire se un cliente riesce a visualizzare il documento di trasporto o la fattura di un altro utente. Il vostro sviluppatore deve verificare a mano una per una soprattutto le autorizzazioni utente, le funzioni di caricamento file e gli endpoint API esposti.

MMehmet M***Partecipante
Ruolo
Esperto di marketing digitale
Settore
Formazione
Tipo di organizzazione
distributore di zona
Iscrizione
nov 2025
Messaggio
302
#3

La primissima cosa da fare subito è ripulire la cronologia di Git. Anche se cancellate la password dal file di codice e fate un nuovo commit, quei dati restano visibili in chiaro per sempre nella cronologia dei commit. Usate scanner open source per i segreti su tutta la history, riscrivete la cronologia rimuovendo le credenziali e cambiate immediatamente quelle password sui server.

DDilara T***Partecipante
Ruolo
Responsabile social media
Settore
Logistica
Tipo di organizzazione
azienda all'interno di un gruppo
Iscrizione
ago 2024
Messaggio
333
#4

Già da domani fate lanciare al vostro sviluppatore il comando nativo di security audit del vostro package manager. Su librerie vecchie di due anni ci saranno sicuramente dozzine di bollettini di sicurezza critici già noti. Solo aggiornare i pacchetti alle versioni stabili e recenti eliminerà all'istante metà dei vostri rischi.

OOnur A***EspertoMembro della community
Iscrizione
nov 2025
Messaggio
64
#5

Anche noi l'anno scorso abbiamo lanciato un'analisi statica su un progetto da 30 mila righe appena ereditato. Il sistema ha generato 142 possibili avvisi; analizzandoli, il nostro dev ha trovato 8 falle reali che avrebbero potuto causare direttamente una fuga di dati dal DB. Per sistemare quelle 8 falle ci sono voluti appena tre giorni.

İİlknur O***Partecipante
Ruolo
Coordinatore corrieri
Settore
Allevamento
Tipo di organizzazione
catena di negozi
Iscrizione
feb 2025
Messaggio
109
#6

Non fate troppo affidamento sui tool di analisi automatica, rischiate di annegare tra centinaia di falsi positivi in report da migliaia di righe. I data leak più gravi non derivano dalle vulnerabilità delle librerie, ma dai banali errori di controllo sessione che lo sviluppatore dell'agenzia ha trascurato pensando "tanto chi vuoi che ci provi". Concentratevi sui test logici manuali.

SSena S***PartecipanteMembro della community
Iscrizione
mag 2023
Messaggio
175
#7

un'agenzia che hardcoda le password quasi sicuramente non ha guardato manco la parte di upload file. testate subito se quando il cliente carica i documenti si riesce a piazzare un eseguibile php dietro, quella è la porta più pericolosa di tutte.

BBurcu E***Partecipante
Ruolo
Responsabile amministrativo
Settore
Immobiliare
Tipo di organizzazione
Azienda di produzione da 40 persone
Iscrizione
feb 2023
Messaggio
37
#8

Registrate i risultati emersi all'interno di una matrice di rischio di sicurezza aziendale. Classificate le vulnerabilità come critiche, alte e medie. Mantenere il sistema attivo in produzione per i clienti prima di aver risolto le criticità che minacciano direttamente il database e la privacy degli utenti può comportare gravi responsabilità legali.

BBetülEsperto
Ruolo
Consulente di direzione
Iscrizione
ott 2023
Messaggio
164
#9

Riaprite il contratto stipulato con l'agenzia e dategli un'occhiata. Nella maggior parte dei contratti è presente una clausola di garanzia, implicita o esplicita, che prevede la consegna del codice in conformità agli standard di settore e alle pratiche di sicurezza di base. Hardcodare le password nel codice costituisce un chiaro vizio del servizio; potreste avere il diritto di inviare una diffida formale all'agenzia per richiedere i dovuti fix.

İİlknur C***PartecipanteMembro della community
Iscrizione
feb 2025
Messaggio
18
#10

come fanno i tool di analisi statica del codice a verificare il codice senza eseguirlo? in che modo riescono a capire esattamente se una funzione contiene una vulnerabilità senza installarla su un server di produzione e senza connettersi al database?

HHalideNuovo membro
Ruolo
Direttore di fondazione
Iscrizione
ago 2024
Messaggio
44
#11

Non ho alcuna esperienza in materia di revisione sicura del codice, quindi chiedo. I primi tre mesi vanno bene, i problemi emergono al quarto mese.

Inizia con un piccolo test, non impegnarti subito su tutto. Se avete domande, scrivete, rispondo per quanto possibile.

HHüseyin Z***PartecipanteMembro della community
Iscrizione
mar 2023
Messaggio
76
#12

mi chiedo anch'io.

İİsmail Ş***Partecipante
Ruolo
Tecnico di supporto sistemi
Settore
Produzione mobili
Tipo di organizzazione
boutique agency
Iscrizione
apr 2024
Messaggio
32
#13

Questo approccio ha un costo, di cui non si parla. Se la verifica in due passaggi è attiva, una password rubata da sola non serve a nulla.

Se avete domande, scrivete, rispondo per quanto possibile.

MMustafa A***Partecipante
Ruolo
Direttore di zona
Settore
Carta
Tipo di organizzazione
cooperativa
Iscrizione
mar 2023
Messaggio
37
#14

Stavo pensando la stessa cosa. Un report di scansione automatica e un penetration test non sono la stessa cosa.

Io seguirei questa strada.

EEmre K***Partecipante
Ruolo
Coordinatore corrieri
Settore
Diritto
Tipo di organizzazione
cooperativa
Iscrizione
feb 2025
Messaggio
1
#15

Ho vissuto la stessa cosa. Quando decidiamo senza misurare, finiamo sempre nello stesso punto.

È tutto, scusate se mi sono dilungato.

AAlper Ç***Partecipante
Ruolo
Addetto al servizio clienti
Settore
Trasporti
Tipo di organizzazione
Azienda da 120 dipendenti
Iscrizione
lug 2024
Messaggio
41
#16

Stavo pensando la stessa cosa. Se la verifica in due passaggi è attiva, una password rubata da sola non serve a nulla.

Le soluzioni che funzionano su piccola scala crollano quando si cresce, l'ho imparato tardi. Lascio una nota, potrebbe servire.

MMert E***PartecipanteMembro della community
Iscrizione
set 2024
Messaggio
28
#17

tre cose da controllare mentre lo fai ma le persone difendono le abitudini, non i processi. la resistenza nasce da lì.

SSerkan S***PartecipanteMembro della community
Iscrizione
gen 2023
Messaggio
87
#18

Sono nella stessa situazione, per questo chiedo. onestamente se permessi e ambito non sono scritti quel test non deve iniziare.

Nessun processo migliora senza tracciamento perché non sai cosa correggere... Questa è la mia opinione non la scrivo come verità assoluta.

MMustafa M***Partecipante
Ruolo
Addetto al controllo qualità
Settore
Commercio all'ingrosso alimentare
Tipo di organizzazione
distributore di zona
Iscrizione
feb 2024
Messaggio
106
#19

A me è successo l'esatto contrario, per questo scrivo. L'errore commesso da revisione sicura del codice è generalmente reversibile ma costoso.

Se il percorso di notifica è lungo, la notifica non arriva; una notifica mancante significa un evento scoperto tardi.

BBurak Can M***Veteran
Ruolo
Fondatore · e-commerce
Tipo di organizzazione
Azienda di 20 persone
Iscrizione
apr 2023
Messaggio
212
#20

Il mio dubbio è stato chiarito, grazie. Il tempo che impiegate a rilevare un problema ne determina direttamente il costo.

Se avete domande, scrivete rispondo per quanto possibile.

Rispondi