Bot Framework 安全性指導方針
適用于: SDK v4
在金融服務、零售、旅遊業等重要商務領域中,Bot 變得越來越普遍。 Bot 可能會收集非常敏感的資料,例如信用卡、SSN、銀行帳戶和其他個人資訊。 因此,請務必讓 Bot 安全,並防範常見的威脅和弱點。
您可以採取一些標準預防措施來改善 Bot 的安全性。 某些安全性措施類似于其他軟體系統中所使用的安全性措施,而有些是 Bot Framework 特有的。 如需後者,請參閱 Azure 安全性基準測試。 基準測試提供如何在 Azure 上保護您的雲端解決方案的建議。
簡單來說,安全性問題
本文將安全性問題分成 2 個類別:
威脅:有人可能用來危害 Bot 的策略,例如詐騙、竄改、洩漏資訊、拒絕服務等等。
弱點:Bot 或 Bot 管理可能容易受到這類策略的影響,例如 Bug 或 lax 安全性。
降低弱點是減輕威脅的好方法,而降低弱點的已知方式是在開發和部署程式中實作安全性檢查點。
常見的安全性指導方針
下列領域涵蓋應用程式通用的標準安全性最佳做法。
保護網路流量
通訊協定存在,可提供密碼編譯控制,以解決傳輸期間的資料竄改和洩漏。 在此方面,Bot 應該只透過安全通道進行通訊。
若要切換式網路上的任何安全系統的資料,必須使用 HTTPS 通訊協定,以 傳輸層安全性 保護之加密連線中的 HTTP (TLS) 或 安全通訊端層 (SSL) 。 另請參閱 RFC 2818 - HTTP Over TLS。
注意
所有Bot Service通道都需要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驗證可讓您驗證使用者,並從各種身分識別提供者取得存取權杖,例如Azure Active Directory、GitHub、Uber等等。 您也可以設定自訂 OAuth2 識別提供者的驗證。 這種功能,讓您能夠撰寫可在所有支援的識別提供者和通道上運作的一個驗證程式碼。 若要使用這些功能,您必須執行下列步驟:
- 在您的 Bot 上以靜態方式設定
settings
,其中包含您向識別提供者註冊應用程式的詳細資料。 - 使用您在先前的步驟中提供的應用程式資訊所支援的
OAuthCard
登入使用者。 - 透過Azure AI Bot Service API擷取存取權杖。 最佳做法是限制已驗證的使用者可以保持 登入的時間長度。
如需詳細資訊,請參閱 使用者驗證 一文。
網路聊天
當您使用網路聊天控制項時,您必須記住模擬和身分識別詐騙的一些重要安全性考慮。 如需詳細資訊,請參閱Direct Line增強式驗證。