Bot Framework security guidelines (Beveiligingsrichtlijnen voor Bot Framework)
VAN TOEPASSING OP: SDK v4
Bots worden steeds vaker gebruikt in belangrijke bedrijfssectoren, zoals de financiële sector, de detailhandel, de reisbranche, enzovoort. Een bot kan zeer gevoelige gegevens verzamelen, zoals creditcards, SSN, bankrekeningen en andere persoonlijke gegevens. Het is dus belangrijk dat bots veilig zijn en beschermen tegen veelvoorkomende bedreigingen en beveiligingsproblemen.
U kunt enkele standaard preventieve maatregelen nemen om de beveiliging van uw bot te verbeteren. Sommige beveiligingsmaatregelen zijn vergelijkbaar met de beveiligingsmaatregelen die worden gebruikt in andere softwaresystemen, terwijl sommige specifiek zijn voor het Bot Framework. Raadpleeg de Azure Security Benchmark voor de laatste. De benchmark biedt aanbevelingen voor het beveiligen van uw cloudoplossingen in Azure.
Beveiligingsproblemen in een notendop
In dit artikel worden beveiligingsproblemen gegroepeerd in twee categorieën:
Bedreigingen: De tactieken die iemand kan gebruiken om uw bot in gevaar te brengen, zoals spoofing, manipulatie, informatie vrijgeven, denial of service, enzovoort.
Beveiligingsproblemen: de manieren waarop uw bot of het beheer van uw bot vatbaar kan zijn voor dergelijke tactieken, zoals bugs of laxbeveiliging.
Het verminderen van uw beveiligingsproblemen is een goede manier om bedreigingen te beperken en een bekende manier om beveiligingsproblemen te verminderen, is door beveiligingscontrolepunten te implementeren in het ontwikkel- en implementatieproces.
Algemene beveiligingsrichtlijnen
De volgende gebieden worden behandeld door standaard aanbevolen beveiligingsprocedures die gebruikelijk zijn voor toepassingen.
Netwerkverkeer beveiligen
Er bestaan protocollen die cryptografische besturingselementen bieden om manipulatie en openbaarmaking van gegevens tijdens verzending aan te pakken. In dit opzicht mogen bots alleen communiceren via beveiligde kanalen.
Voor het uitwisselen van gegevens op de kabel moet elk beveiligd systeem gebruikmaken van het HTTPS-protocol , dat gegevens via HTTP overdraagt in versleutelde verbindingen die worden beveiligd door Transport Layer Security (TLS) of Secure Sockets Layer (SSL). Zie ook RFC 2818 - HTTP via TLS.
Notitie
Voor alle Bot Service-kanalen zijn HTTPS en TLS 1.2 vereist.
Berichten zelfvernietigend
Verwijder gevoelige gegevens definitief zodra deze niet meer nodig zijn, meestal nadat het bericht is uitgewisseld of na een bepaalde tijd. Dit kan bestaan uit persoonlijke identificatiegegevens, id's, pincodes, wachtwoorden, beveiligingsvragen en antwoorden, enzovoort.
Gegevensopslag
De best practice vraagt om gegevens gedurende een bepaalde tijd in een veilige status op te slaan en deze later te negeren nadat het doel ervan is bereikt.
Hieronder vindt u enkele algemene beveiligingstechnieken.
Databasefirewalls
- Firewalls weigeren standaard de toegang tot verkeer. Het enige verkeer dat is toegestaan, moet afkomstig zijn van specifieke toepassingen of webservers die toegang nodig hebben tot de gegevens.
- U moet ook een webtoepassingsfirewall implementeren. Dit komt doordat aanvallen zoals SQL-injectieaanvallen die zijn gericht op een webtoepassing, kunnen worden gebruikt om gegevens uit de database te exfiltreren of te verwijderen.
Databasebeveiliging
- Zorg ervoor dat de database nog steeds wordt ondersteund door de leverancier en dat u de nieuwste versie van de database uitvoert met alle beveiligingspatches die zijn geïnstalleerd om bekende beveiligingsproblemen te verwijderen.
- Verwijder of schakel functies of services uit die u niet nodig hebt en zorg ervoor dat u de wachtwoorden van standaardaccounts van hun standaardwaarden wijzigt; of beter, verwijder alle standaardaccounts die u niet nodig hebt.
- Zorg ervoor dat alle besturingselementen voor databasebeveiliging die door de database worden geleverd, zijn ingeschakeld, tenzij er een specifieke reden is om te worden uitgeschakeld.
Waardevolle informatie minimaliseren
- Zorg ervoor dat u geen vertrouwelijke informatie opslaat die niet in de database hoeft te staan.
- Gegevens die worden bewaard voor naleving of andere doeleinden, kunnen worden verplaatst naar veiligere opslag, mogelijk offline, wat minder vatbaar is voor beveiligingsrisico's voor databases.
- Zorg ervoor dat u eventuele geschiedenisbestanden verwijdert die zijn geschreven door een server tijdens de oorspronkelijke installatieprocedure. Als de installatie is geslaagd, hebben deze bestanden geen waarde, maar kunnen deze informatie bevatten die mogelijk kan worden misbruikt.
Onderwijs
Bots bieden een innovatieve interactietool tussen een bedrijf en haar klanten. Maar ze kunnen mogelijk een achterdeur bieden voor manipulatie met de website van een bedrijf. Daarom moet een bedrijf ervoor zorgen dat de ontwikkelaars het belang van botbeveiliging begrijpen als onderdeel van de websitebeveiliging. Bovendien kunnen de fouten van gebruikers ook een probleem zijn. Hiervoor is enige opleiding vereist over hoe bots veilig kunnen worden gebruikt, bijvoorbeeld:
- Voor de ontwikkelaars moet een strategie interne training bevatten over het veilig gebruiken van de bot.
- Klanten kunnen richtlijnen krijgen waarin wordt beschreven hoe ze veilig met de bot kunnen communiceren.
Botspecifieke beveiligingsrichtlijnen
De volgende gebieden worden gedekt door enkele standaard aanbevolen beveiligingsprocedures voor Bot Framework-toepassingen. In de volgende richtlijnen worden de best practice beveiligingsmaatregelen van Bot Framework beschreven. Zie de veelgestelde vragen over beveiliging en privacy voor meer informatie.
Bot Connector-verificatie
De Bot Connector-service maakt systeemeigen gebruik van HTTPS om berichten uit te wisselen tussen een bot en kanalen (gebruikers). De Bot Framework SDK automatiseert eenvoudige bot-naar-kanaal-verificatie voor u.
Waarschuwing
Als u uw eigen verificatiecode schrijft, is het essentieel dat u alle beveiligingsprocedures correct implementeert. Door alle stappen te implementeren die worden beschreven in het verificatieartikel , kunt u het risico beperken dat een aanvaller berichten kan lezen die naar uw bot worden verzonden, berichten verzendt die uw bot imiteren en geheime sleutels steelt.
Gebruikersverificatie
Met Azure AI Bot Service-verificatie kunt u gebruikers verifiëren voor en toegangstokens ophalen van verschillende id-providers, zoals Microsoft Entra-id, GitHub, Uber, enzovoort. U kunt ook verificatie configureren voor een aangepaste OAuth2-id-provider . Hiermee kunt u één stukje verificatiecode schrijven die werkt voor alle ondersteunde id-providers en kanalen. Als u deze mogelijkheden wilt gebruiken, moet u de volgende stappen uitvoeren:
- Statisch configureren
settings
op uw bot die de details van uw toepassingsregistratie bij een id-provider bevat. - Gebruik een
OAuthCard
, ondersteund door de toepassingsgegevens die u in de vorige stap hebt opgegeven, om een gebruiker aan te melden. - Toegangstokens ophalen via azure AI Bot Service-API. Een goede gewoonte is om een tijdslimiet in te stellen voor hoelang een geverifieerde gebruiker aangemeld kan blijven.
Zie het artikel Gebruikersverificatie voor meer informatie.
Webgesprek
Wanneer u het Webchat besturingselement gebruikt, moet u rekening houden met enkele belangrijke beveiligingsoverwegingen voor imitatie en identiteitsvervalsing. Zie Verbeterde verificatie via Direct Line voor meer informatie.
Aanvullende informatie
- Gebruikersverificatie
- Verificatie toevoegen aan uw bot via Azure AI Bot Service
- Beveiliging en testen inschakelen op localhost
- Geheimen en tokens
- Verificatietechnologieën
- Verbeterde functies voor direct line-verificatie
- Aanbevelingen voor beveiliging in Azure Security Center
- Bedreigingsbeveiliging in Azure Security Center
- Gegevensbeveiliging in Azure Security Center
- Containerbeveiliging in Security Center