Cosa ti piace di più di Coverity?
Utilizziamo lo strumento di analisi statica Coverity per le scansioni di sicurezza del codice server C/C++.
Coverity ha un tasso di rilevamento più elevato poiché ci affidiamo molto a questa scansione del codice per il nostro codice applicativo.
Abbiamo integrato senza problemi questo strumento SAST (Coverity) nella nostra pipeline CI/CD e le vulnerabilità venivano notificate al rispettivo sviluppatore via mail.
Fornisce un meccanismo per controllare i risultati e contrassegnare i falsi positivi in modo efficiente.
Il supporto per diversi linguaggi è un altro fattore che si distingue bene rispetto ad altri strumenti.
Il tempo necessario per scansionare grandi quantità di codice è significativamente più veloce rispetto ad altri strumenti. Recensione raccolta e ospitata su G2.com.
Cosa non ti piace di Coverity?
Tuttavia, ci sono alcuni punti di miglioramento che ho pensato di evidenziare per rendere questo strumento ancora migliore per gli utenti finali.
strzcpy vs. NULL_STRING
Coverity non riconosce che strzcpy aggiunge un terminatore x00.
ab_pfetch*
Su Windows attualmente abbiamo molti falsi positivi di OVERRUN.
bsearch su tabella a larghezza fissa vs. Literal
Il modello di Coverity per bsearch presume che bsearch acceda alla chiave sull'intera larghezza della chiave. Se bsearch viene dato una tabella di dimensioni fisse (massime), e ad esempio strcmp come funzione di confronto, allora in realtà quando bsearch viene chiamato con una piccola chiave letterale, tutto va bene. Purtroppo Coverity pensa che bsearch leggerà oltre la fine del letterale, anche se strcmp non lo farà.
NO_EFFECT su var_arg
Su Windows attualmente abbiamo un avviso NO_EFFECT su tutti gli usi di va_args
TAINTED_SCALAR
Coverity avverte per l'uso di dati contaminati, dati che potrebbero essere controllati da un attaccante. Questo può portare a corruzione dei dati, iniezione di codice,...
Quando possibile, Coverity segnala difetti aggiuntivi descrivendo l'uso pericoloso dei dati contaminati INTEGER_OVERFLOW.
RW.LITERAL_OPERATOR_NOT_FOUND su printf con TEL_Format
Quando si utilizza un formato definito TEL come TEL_Flpu, TEL_Fsu, TEL_Fpid,... Coverity a volte richiede uno spazio prima della 'T' da TEL_Fxxx.
TAINTED_STRING
Coverity avverte per l'uso di dati contaminati, dati che potrebbero essere controllati da un attaccante. Questo può portare a corruzione dei dati, iniezione di codice, iniezione SQL, attraversamento di directory,
PW.PRINTF_ARG_MISMATCH - * precisione o * dimensione vs. parametri size_t o ptrdiff_t
Build o scansioni a 64 bit - Lo standard C afferma che la * precisione o dimensione sono di tipo int. Questo è generalmente di 4 byte. Su build a 64 bit size_t e ptrdiff_t sono di 8 byte.
Se avessi inviato una correzione ieri, il Coverity Connect di oggi continuerebbe a segnalare il difetto. Recensione raccolta e ospitata su G2.com.