Linee guida sulla sicurezza di Bot Framework

SI APPLICA A: SDK v4

I bot sono sempre più diffusi nelle principali aree aziendali, ad esempio servizi finanziari, vendite al dettaglio, viaggi e così via. Un bot potrebbe raccogliere dati molto sensibili, ad esempio carte di credito, SSN, conti bancari e altre informazioni personali. È quindi importante che i bot siano sicuri e protetti da minacce e vulnerabilità comuni.

È possibile adottare alcune misure preventive standard per migliorare la sicurezza del bot. Alcune misure di sicurezza sono simili a quelle usate in altri sistemi software, mentre alcune sono specifiche di Bot Framework. Per quest'ultima, fare riferimento ad Azure Security Benchmark. Il benchmark fornisce raccomandazioni su come proteggere le soluzioni cloud in Azure.

Problemi di sicurezza in breve

Questo articolo raggruppa i problemi di sicurezza in 2 categorie:

  • Minacce: le tattiche che qualcuno potrebbe usare per compromettere il bot, ad esempio spoofing, manomissione, divulgazione di informazioni, denial of service e così via.

  • Vulnerabilità: i modi in cui il bot o la gestione del bot potrebbero essere soggetti a tali tattiche, ad esempio bug o la sicurezza lax.

La riduzione delle vulnerabilità è un buon modo per attenuare le minacce e un modo noto per ridurre le vulnerabilità consiste nell'implementare punti di controllo di sicurezza nel processo di sviluppo e distribuzione.

Linee guida di sicurezza comuni

Le aree seguenti sono descritte dalle procedure consigliate per la sicurezza standard comuni alle applicazioni.

Protezione del traffico di rete

Esistono protocolli che forniscono controlli crittografici per gestire manomissioni e divulgazione dei dati durante la trasmissione. A questo proposito, i bot devono comunicare solo su canali protetti.

Per scambiare dati in transito, qualsiasi sistema sicuro deve usare il protocollo HTTPS , che trasferisce i dati su HTTP in connessioni crittografate protette da Transport Layer Security (TLS) o Secure Sockets Layer (SSL). Vedere anche RFC 2818 - HTTP su TLS.

Nota

Tutti i canali servizio Bot richiedono HTTPS e TLS 1.2.

Sintassi automatica dei messaggi

Eliminare definitivamente tutti i dati sensibili non appena non sono più necessari, in genere dopo il termine dello scambio di messaggi o dopo un determinato periodo di tempo. Ciò può includere informazioni di identificazione personale, ID, PIN, password, domande di sicurezza e risposte e così via.

Archiviazione di dati

La procedura consigliata richiede di archiviare le informazioni in uno stato sicuro per un determinato periodo di tempo e quindi di eliminarle in un secondo momento dopo che ha servito il suo scopo.

Di seguito sono elencate alcune tecniche di sicurezza comuni.

Firewall del database

  • I firewall negano l'accesso al traffico per impostazione predefinita. L'unico traffico consentito deve provenire da applicazioni o server Web specifici che devono accedere ai dati.
  • È anche consigliabile distribuire un web application firewall. Ciò è dovuto al fatto che gli attacchi sql injection diretti a un'applicazione Web possono essere usati per esfiltrare o eliminare dati dal database.

Protezione avanzata del database

  • Assicurarsi che il database sia ancora supportato dal fornitore e che sia in esecuzione la versione più recente del database con tutte le patch di sicurezza installate per rimuovere le vulnerabilità note.
  • Disinstallare o disabilitare tutte le funzionalità o i servizi non necessari e assicurarsi di modificare le password di qualsiasi account predefinito dai valori predefiniti; o meglio, eliminare tutti gli account predefiniti non necessari.
  • Assicurarsi che tutti i controlli di sicurezza del database forniti dal database siano abilitati, a meno che non vi sia un motivo specifico per cui uno degli elementi deve essere disabilitato.

Ridurre al minimo le informazioni preziose

  • Assicurarsi di non archiviare informazioni riservate che non devono trovarsi nel database.
  • I dati conservati per la conformità o altri scopi possono essere spostati in una risorsa di archiviazione più sicura, ad esempio offline, che è meno vulnerabile alle minacce alla sicurezza del database.
  • Assicurarsi di eliminare tutti i file di cronologia scritti da un server durante la procedura di installazione originale. Se l'installazione ha esito positivo, questi file non hanno alcun valore, ma possono contenere informazioni che possono essere potenzialmente sfruttate.

Istruzione

I bot forniscono uno strumento di interazione innovativo tra un'azienda e i suoi clienti. Ma potrebbero potenzialmente fornire un backdoor per manomettere il sito Web di un'azienda. Pertanto, un'azienda deve garantire che i suoi sviluppatori comprendano l'importanza della sicurezza dei bot come parte della sicurezza del sito Web. Inoltre, anche gli errori degli utenti possono essere un problema. Questo richiederà una formazione sul modo in cui i bot possono essere usati in modo sicuro, ad esempio:

  • Per gli sviluppatori, una strategia deve includere un training interno su come usare il bot in modo sicuro.
  • Ai clienti possono essere fornite linee guida che illustrano in modo dettagliato come interagire con il bot in modo sicuro.

Linee guida per la sicurezza specifiche del bot

Le aree seguenti sono descritte da alcune procedure consigliate per la sicurezza standard per le applicazioni Bot Framework. Le linee guida seguenti descrivono le misure di sicurezza delle procedure consigliate di Bot Framework. Per altre informazioni, vedere Domande frequenti sulla sicurezza e sulla privacy.

Autenticazione del bot Connessione or

Il servizio Bot Connessione or usa in modo nativo HTTPS per scambiare messaggi tra un bot e i canali (utenti). Bot Framework SDK automatizza automaticamente l'autenticazione da bot a canale di base.

Avviso

Se si scrive codice di autenticazione personalizzato, è fondamentale implementare correttamente tutte le procedure di sicurezza. Implementando tutti i passaggi descritti nell'articolo Autenticazione , è possibile ridurre il rischio che un utente malintenzionato sia in grado di leggere i messaggi inviati al bot, inviare messaggi che rappresentano il bot e rubare chiavi segrete.

Autenticazione dell'utente

L'autenticazione di Azure AI servizio Bot consente di autenticare gli utenti e ottenere token di accesso da diversi provider di identità, ad esempio Microsoft Entra ID, GitHub, Uber e così via. È anche possibile configurare l'autenticazione per un provider di identità OAuth2 personalizzato. In questo modo è possibile scrivere una parte del codice di autenticazione che funziona in tutti i provider di identità e i canali supportati. Per usare queste funzionalità, è necessario eseguire i passaggi seguenti:

  1. Configurare settings in modo statico nel bot che contiene i dettagli della registrazione dell'applicazione con un provider di identità.
  2. Usare un oggetto OAuthCard, supportato dalle informazioni sull'applicazione fornite nel passaggio precedente, per l'accesso di un utente.
  3. Recuperare i token di accesso tramite l'API servizio Bot di intelligenza artificiale di Azure. È consigliabile impostare un limite di tempo per quanto tempo un utente autenticato può rimanere connesso.

Per altre informazioni, vedere l'articolo Autenticazione utente.

Chat Web

Quando si usa il controllo chat Web è necessario tenere presenti alcune importanti considerazioni sulla sicurezza relative alla rappresentazione e allo spoofing delle identità. Per altre informazioni, vedere Autenticazione avanzata direct Line.

Informazioni aggiuntive