Suggerimenti per ottimizzare la sicurezza nell'automazione
È necessario che gli sviluppatori di automazione di Visual Studio accettino la responsabilità di creare applicazioni protette comprendendo le vulnerabilità di sicurezza. Un'applicazione protetta garantisce la riservatezza, l'integrità e la disponibilità delle informazioni dei clienti. Inoltre, protegge l'integrità e la disponibilità delle risorse di elaborazione controllate dal proprietario o dall'amministratore del sistema.
Ai fini di questa discussione, una vulnerabilità di sicurezza è un difetto in un prodotto che consente a un intruso, anche quando il prodotto viene utilizzato correttamente, di:
appropriarsi dei privilegi nel sistema dell'utente
regolarne, modificarne o reindirizzarne il funzionamento
comprometterne i dati
oppure
presupporre un'attendibilità non concessa.
Importante |
---|
Non dare mai per scontato che l'applicazione verrà eseguita soltanto in alcuni ambienti, in particolare se si tratta di un'applicazione molto diffusa. Ci sono buone probabilità che l'applicazione venga utilizzata in ambienti non previsti. Si supponga invece che il codice verrà eseguito negli ambienti più ostili. Pertanto, progettare, scrivere e testare il codice con le dovute precauzioni. |
La creazione di applicazioni protette garantisce una serie di vantaggi. Codice progettato e compilato considerando l'importanza della sicurezza fin dall'inizio è più affidabile rispetto a codice per il quale la sicurezza viene considerata solo in un secondo momento. Inoltre, le applicazioni progettate in modo protetto sono meno soggette alle critiche, più interessanti per gli utenti e comportano costi di riparazione e di supporto inferiori.
API rischiose
Dal punto di vista della sicurezza, alcune funzioni API possono essere considerate più rischiose rispetto ad altre. Alcune possono essere implicitamente rischiose per la loro modalità di funzionamento. Altre possono essere rischiose se non vengono chiamate o gestite nel modo corretto. Il punto è che è necessario conoscere i problemi e le peculiarità delle diverse funzioni API chiamate e, se queste ultime costituiscono rischi di sicurezza di qualunque natura, assicurarsi che vengano utilizzate correttamente.
Non dare inoltre per scontato che se il codice utilizza solo funzioni API considerate "protette", l'applicazione sarà a sua volta automaticamente protetta. Operazioni di programmazione poco attente possono esporre l'applicazione a un numero di rischi uguale o superiore a quello legato all'utilizzo di funzioni cosiddette "pericolose". Queste operazioni possono includere:
gestione non corretta delle eccezioni
utilizzo di percorsi hardcoded
utilizzo di stringhe di connessione hardcoded
oppure
mancato controllo delle credenziali o delle autorizzazioni dell'utente.
Per proteggere le applicazioni, è necessario conoscere in modo approfondito i problemi di sicurezza del codice ricercando l'argomento relativo. La pubblicazione di Microsoft Press "Writing Secure Code" e il sito Security Coding Guidelines all'indirizzo https://msdn2.microsoft.com/en-us/library/d55zzx87.aspx sono ottime risorse (informazioni in lingua inglese).
Un altro importante punto da considerare è che molti problemi di sicurezza derivano da applicazioni che considerano affidabili gli input di dati in modo indiscriminato. È essenziale che le applicazioni esaminino e valutino attentamente i dati quando vengono ricevuti per verificare che siano ben formati e affidabili prima di utilizzarli.
Funzionalità di sicurezza dell'automazione
Oltre a seguire queste indicazioni, l'automazione di Visual Studio offre alcune modalità semplici e specifiche per favorire la sicurezza del sistema dalle vulnerabilità di sicurezza dell'automazione. È importante ricordare, tuttavia, che queste modalità non costituiscono un rimedio per tutti i problemi di sicurezza. Rappresentano comunque un buon punto di partenza. Per informazioni, vedere Sicurezza dei componenti aggiuntivi.
Cercare e seguire attentamente le indicazioni sulla sicurezza .NET prima di compilare applicazioni di automazione.
Vedere anche
Concetti
Risorse per la creazione di applicazioni sicure