Strategie di analisi del codice statico [chiuso]

1

Immagina: ci è stato dato il codice sorgente di diversi programmi software, alcuni open source, altri proprietari. Qual è la migliore strategia per analizzare il codice sorgente in ogni caso?

Ad esempio: Sappiamo che il software open source è solitamente più affidabile del software commerciale. Quindi mi chiedo se sia una buona idea, invece di ispezionare il codice open source riga per riga, scaricare il codice originale dal web e confrontarlo con il codice che ci è stato dato. Se non c'è differenza, concludiamo che il codice sorgente è probabilmente sicuro e possiamo saltare l'ispezione del codice manuale.

Questa pratica è accettabile? Esistono altre strategie che possono accelerare l'analisi del codice sorgente?

    
posta A.B. 03.05.2014 - 12:00
fonte

2 risposte

6

Suppongo qui che ciò che si vuole fare sia eseguire analisi statiche allo scopo di identificare i problemi di sicurezza nelle basi di codice che sono state fornite?

Se questo è il caso, c'è un numero di approcci che puoi prendere. Supponendo che le persone che stanno facendo le recensioni non siano esperti analisti di sicurezza delle applicazioni, sarà necessario affidarsi agli strumenti per un sacco di lavoro, anche se attenzione agli strumenti in questo campo sono raramente (se mai) point and click affari .

A seconda della lingua, è possibile che il fornitore abbia alcuni strumenti che possono essere utilizzati (ad esempio FxCop )

Poi ci sono strumenti open source come flawfinder e RATTI

Infine ci sono una serie di soluzioni commerciali come Checkmarx e Fortifica e se vuoi una soluzione gestita Veracode

Il modo in cui procedi dipende dal budget (suggerimento, gli strumenti commerciali non sono economici), le competenze che hai a disposizione e la quantità di tempo per le recensioni.

    
risposta data 03.05.2014 - 15:12
fonte
1

Gli IDE professionali, come Visual Studio per lo sviluppo di Microsoft .NET, sono dotati di estese funzionalità di analisi del codice statiche automatiche . Ti suggerirei di eseguire tutto il codice sorgente attraverso il set completo di regole di analisi del codice, che di solito rivela un bel po ', anche per quanto riguarda la sicurezza (nel caso di .NET, non ho usato altri framework di analisi del codice). Fare tutto questo manualmente sarebbe irrealizzabile, a meno che non ci sia un budget molto grande.

Esistono anche diversi strumenti di analisi del codice non Microsoft per il framework .NET, ad es. JetBrains ReSharper.

Se il codice sorgente è scritto in un'altra lingua, puoi trovare un elenco di strumenti per l'analisi del codice statico su Wikipedia .

    
risposta data 03.05.2014 - 13:31
fonte

Leggi altre domande sui tag