Condividi tramite


Procedure di sicurezza consigliate per C++

Aggiornamento: novembre 2007

In questo argomento vengono fornite informazioni relative a procedure e strumenti di sicurezza consigliati. L'utilizzo di queste risorse non rende le applicazioni immuni da eventuali attacchi, ma ne riduce le probabilità di successo.

Funzionalità di sicurezza di Visual C++

In questa sezione vengono illustrate le funzionalità di sicurezza incorporate nel linker e nel compilatore Visual C++.

  • /GS (Controllo protezione buffer)
    Questa opzione del compilatore indica al compilatore di inserire codice per il rilevamento di sovraccarico nelle funzioni a rischio di violazione. In caso di sovraccarico, l'esecuzione viene interrotta. Per impostazione predefinita, questa opzione è attivata.

  • /SAFESEH (L'immagine ha gestori delle eccezioni sicuri)
    Questa opzione del linker indica al linker di inserire nell'immagine di output una tabella contenente l'indirizzo di ogni gestore eccezioni. In fase di esecuzione il sistema operativo utilizza questa tabella per garantire che vengano eseguiti esclusivamente i gestori eccezioni autorizzati. Questo consente di evitare l'esecuzione di gestori eccezioni introdotti da eventuali utenti malintenzionati mediante un attacco in fase di esecuzione. Per impostazione predefinita, questa opzione è disattivata.

  • /analyze (Analisi codice a livello aziendale)
    Questa opzione del compilatore attiva l'analisi del codice che segnala potenziali problemi di sicurezza, quali sovraccarico del buffer, memoria non inizializzata, risoluzione dei riferimenti del puntatore null e perdite di memoria. Per impostazione predefinita, questa opzione è disattivata. Per ulteriori informazioni, vedere Cenni preliminari sull'analisi del codice per C/C++.

CRT con sicurezza avanzata

In Visual C++ 2005 la libreria di runtime C (CRT, C Runtime Library) è stata ampliata in modo da includere versioni sicure delle funzioni che implicano rischi di sicurezza, ad esempio, la funzione di copia della stringa strcpy non verificata. Poiché le precedenti versioni non sicure di queste funzioni sono ormai obsolete, il relativo utilizzo provoca la generazione di avvisi in fase di compilazione. Si consiglia ai programmatori di non eliminare tali avvisi, ma di utilizzare le versioni sicure di queste funzioni CRT. Per ulteriori informazioni, vedere Security Enhancements in the CRT.

Iteratori verificati

Grazie agli iteratori verificati, agli utenti delle classi dei contenitori della libreria C++ standard vengono notificati eventuali tentativi di accedere a elementi esterni ai limiti del contenitore. Per ulteriori informazioni, vedere Checked Iterators.

Analisi del codice gestito

Lo strumento di analisi del codice gestito, noto anche come FxCop, verifica la conformità degli assembly alle linee guida di progettazione di Microsoft .NET Framework. FxCop analizza il codice e i metadati all'interno di ogni assembly per controllare l'eventuale presenza di errori nelle aree seguenti:

  • Progettazione delle librerie

  • Localizzazione

  • Convenzioni di denominazione

  • Prestazioni

  • Sicurezza

Lo strumento di analisi del codice gestito è incluso in Visual Studio Team System e può essere inoltre scaricato da https://www.gotdotnet.com/team/fxcop/.

Windows Application Verifier

Disponibile nell'ambito dell'utilità Application Compatibility Toolkit, Application Verifier (AppVerifier) è uno strumento che assiste gli sviluppatori nell'identificare potenziali problemi relativi a compatibilità, stabilità e sicurezza delle applicazioni.

AppVerifier effettua il monitoraggio dell'utilizzo del sistema operativo, inclusi file system, Registro di sistema, memoria e API, da parte di un'applicazione mentre questa è in esecuzione. Lo strumento fornisce quindi indicazioni per risolvere a livello di codice sorgente i problemi rilevati.

Il verificatore consente di eseguire le operazioni seguenti:

  • Verificare i potenziali problemi di compatibilità dell'applicazione causati da errori di programmazione comuni.

  • Esaminare un'applicazione alla ricerca di problemi connessi alla memoria.

  • Determinare la conformità di un'applicazione ai vari requisiti dei programmi di certificazione per il logo Designed for Windows XP o Certified for Windows Server™ 2003.

  • Identificare potenziali problemi di sicurezza in un'applicazione.

Windows Application Verifier è disponibile all'indirizzo https://www.microsoft.com/windows/appcompatibility/appverifier.mspx.

Funzionalità di sicurezza di .NET Framework

In questa sezione viene fornita una panoramica delle due funzionalità di sicurezza di .NET Framework.

Account utente Windows

L'utilizzo di account utente Windows appartenenti al gruppo Administrators espone gli sviluppatori, e di conseguenza gli utenti, a rischi relativi alla sicurezza. Per ulteriori informazioni, vedere Esecuzione come membro del gruppo Users.

Miglioramento della sicurezza mediante la funzionalità Controllo dell'account utente in Windows Vista

Il Controllo dell'account utente è una funzionalità di Windows Vista in cui gli account utente dispongono di privilegi limitati. Per ulteriori informazioni, vedere Effetti del Controllo dell'account utente sull'applicazione.

Vedere anche

Concetti

Effetti del Controllo dell'account utente sull'applicazione

Riferimenti

System.Security

Altre risorse

Sicurezza delle applicazioni