Bot Framework 安全性指導方針
適用於: SDK v4
在金融服務、零售、旅遊業等重要商務領域中,Bot 變得越來越普遍。 Bot 可能會收集非常敏感的數據,例如信用卡、SSN、銀行帳戶和其他個人資訊。 因此,Bot 必須安全並防範常見的威脅和弱點。
您可以採取一些標準預防措施來改善 Bot 的安全性。 某些安全性措施類似於其他軟體系統中所使用的安全性措施,有些則是 Bot Framework 特有的措施。 針對後者,請參閱 Azure 安全性效能評定。 基準檢驗提供如何在 Azure 上保護您的雲端解決方案的建議。
簡言之,安全性問題
本文會將安全性問題分成 2 個類別:
威脅:某人可能用來危害 Bot 的策略,例如詐騙、竄改、洩漏資訊、阻斷服務等等。
弱點:Bot 或 Bot 管理可能容易受到這類策略的影響,例如 Bug 或寬鬆的安全性。
減少弱點是減輕威脅的好方法,而降低弱點的已知方式是在開發和部署程式中實作安全性檢查點。
常見的安全性指導方針
下列領域涵蓋應用程式通用的標準安全性最佳做法。
保護網路流量
通訊協定存在,可提供密碼編譯控制,以解決傳輸期間數據竄改和洩漏的問題。 在這方面,Bot 應該只透過安全通道進行通訊。
若要交換任何安全系統上的數據,必須使用 HTTPS 通訊協定,以傳輸傳輸層安全性 (TLS) 或安全套接字層 (SSL) 保護之加密連線中的 HTTP 數據。 另 請參閱 RFC 2818 - HTTP Over TLS。
注意
所有 Bot 服務通道都需要 HTTPS 和 TLS 1.2。
自我解構訊息
一旦不再需要敏感數據,通常會在訊息交換結束或經過一段時間之後,就永久刪除任何敏感數據。 這可以包含個人標識資訊、標識碼、PIN、密碼、安全性問題和解答等等。
資料存放區
最佳做法是要求在安全狀態中儲存資訊一段時間,然後在其提供服務之後捨棄資訊。
以下列出一些常見的安全性技術。
資料庫防火牆
- 防火牆預設會拒絕存取流量。 唯一允許的流量應該源自需要存取數據的特定應用程式或 Web 伺服器。
- 您也應該部署 Web 應用程式防火牆。 這是因為針對 Web 應用程式的 SQL 插入式攻擊這類攻擊可用來從資料庫外洩或刪除數據。
資料庫強化
- 請確定廠商仍然支持資料庫,而且您執行的是已安裝所有安全性修補程式以移除已知弱點的最新版本資料庫。
- 卸載或停用您不需要的任何功能或服務,並確定從預設值變更任何預設帳戶的密碼;或者,請刪除您不需要的任何默認帳戶。
- 請確定資料庫提供的所有資料庫安全性控制件都已啟用,除非有任何專案停用的特定原因。
將重要資訊降到最低
- 請確定您未儲存任何不需要在資料庫中的機密資訊。
- 為了符合規範或其他目的而保留的數據可以移至更安全的記憶體,或許脫機,這較不容易受到資料庫安全性威脅的影響。
- 請務必刪除在原始安裝程式期間由伺服器寫入的任何歷程記錄檔。 如果安裝成功,這些檔案沒有值,但可以包含可能遭到惡意探索的資訊。
教育程度
Bot 可在公司與其客戶之間提供創新的互動工具。 但他們可能會提供一個後門來竄改公司的網站。 因此,公司必須確保其開發人員瞭解 Bot 安全性的重要性,做為網站安全性的一部分。 此外,用戶的錯誤也可能是個問題。 這將需要一些關於 Bot 如何安全地使用的教育,例如:
- 針對開發人員,策略應包含有關如何安全地使用 Bot 的內部訓練。
- 您可以提供客戶指導方針,詳細說明如何安全地與 Bot 互動。
Bot 特定的安全性指導方針
Bot Framework 應用程式的一些標準安全性最佳做法涵蓋下列領域。 下列指導方針說明 Bot Framework 最佳做法安全性措施。 如需詳細資訊,請參閱 安全性和隱私權常見問題。
Bot 連接器驗證
Bot 連接器服務原生會使用 HTTPS 在 Bot 與通道之間交換訊息(使用者)。 Bot Framework SDK 會自動為您進行基本的 Bot 對通道驗證。
警告
如果您正在撰寫自己的驗證程序代碼,請務必正確實作所有安全性程式。 藉由實作驗證文章中所述的所有步驟,您可以降低攻擊者能夠讀取傳送至 Bot 的訊息、傳送模擬 Bot 的訊息,以及竊取秘密密鑰的風險。
使用者驗證
Azure AI Bot Service 驗證 可讓您驗證使用者,並從各種身分識別提供者取得 存取令牌 ,例如 Microsoft Entra ID、 GitHub、 Uber 等。 您也可以設定自定義 OAuth2 識別提供者的驗證。 這一切可讓您撰寫 一段驗證程序代碼 ,可在所有支持的識別提供者和通道上運作。 若要利用這些功能,您需要執行下列步驟:
- 以靜態方式
settings
在 Bot 上設定,其中包含向識別提供者註冊應用程式的詳細數據。 - 使用,由您在上一
OAuthCard
個步驟中提供的應用程式資訊所支援,登入使用者。 - 透過 Azure AI Bot Service API 擷取存取令牌。 最佳做法是限制已驗證的使用者可以保持 登入的時間長度。
如需詳細資訊,請參閱 使用者驗證 一文。
網路聊天
當您使用 網路聊天 控件時,必須記住一些關於模擬和身分識別詐騙的重要安全性考慮。 如需詳細資訊,請參閱 Direct Line 增強驗證。