传统应用程序访问:

传统上,无论是 SaaS 服务还是企业应用程序,都是通过 RESTful API 和 gRPC 等 API 访问的。即使是基于浏览器的访问,也是通过 JavaScript 利用 API 访问这些应用程序。通常,应用程序暴露的每一个资源都有一个相应的 API 端点,该端点具有 HTTP 方法,可对资源执行各种操作。为了说明问题,让我们考虑一个简单的 SaaS 人力资源应用程序。该应用程序管理员工、部门和工资单等各种资源。下面是一些关键资源及其相应的 API 端点:

  • 雇员:GET /api/employees – 读取所有员工的名单;POST /api/employees – 添加新员工;GET /api/employees/{id} – 读取特定员工的详细信息;PUT /api/employees/{id} – 更新特定员工的详细信息;DELETE /api/employees/{id} – 删除特定员工
  • 部门GET /api/departments – 读取所有部门的列表;POST /api/departments – 添加新部门;GET /api/departments/{id} – 读取特定部门的详细信息;PUT /api/departments/{id} – 更新特定部门的详细信息;DELETE /api/departments/{id} – 删除特定部门
  • 工资单GET /api/payrolls – 检索所有薪资记录的列表;POST /api/payrolls – 创建新的薪资记录;GET /api/payrolls/{id} – 检索特定薪资记录的详细信息;PUT /api/payrolls/{id} – 更新特定薪资记录的详细信息;DELETE /api/payrolls/{id} – 删除特定薪资记录

在本例中,有三个 API 端点–员工、部门和工资单。

零信任安全

利用 SASE/SSE 和服务网格技术的零信任安全利用规则进行操作,其中每条规则提供特定于上下文的对 API 端点和方法的访问。上下文包括访问资源的用户的 JWT 声明;用户访问应用资源的网络上下文;用户访问应用资源的端点的设备状态;用户的地理位置;访问天数;访问时间;以及其他相关因素。下面是一些说明人力资源应用程序零信任安全的规则示例:

  1. 规则:员工数据访问 – 人力资源经理可通过企业网络访问符合要求的设备,检索员工列表(GET:/api/employees)和特定员工的详细信息(GET:/api/employees/{id} )。
  2. 规则:部门管理 – 管理员可在工作日上午 9 点至下午 6 点之间,通过国内任何网络访问符合要求的设备,添加(POST:/api/departments)、更新(PUT:/api/departments/{id} )或删除(DELETE:/api/departments/{id} )部门详细信息。
  3. 规则:薪资记录创建–薪资专员可通过办公场所内的兼容设备从企业 VPN 进行访问,创建 (POST:/api/payrolls)、更新 (PUT:/api/payrolls/{id})、检索 (GET: /api/payrolls/{id}) 或删除 (DELETE:/api/payrolls/{id}) 特定薪资记录。

这些规则确保根据用户身份、网络环境、设备合规性、位置和时间限制等综合因素来授予资源访问权,从而实现零信任安全原则。

应用程序接口端点和方法的意义

如您所见,API 端点的粒度可实现细粒度访问控制。API 端点反映了应用程序的资源,允许进行精确的访问管理。有些应用程序可能不会为每个资源使用 URL 端点;相反,它们可能会使用 HTTP 请求标头来指示所访问的资源,在某些情况下,资源本身会作为 API JSON 主体的一部分被明确提及。无论在哪种情况下,API 都是资源的接口,在安全方面发挥着至关重要的作用。它们使反向代理、API 安全网关和 SASE/SSE 系统的 CASB/ZTNA 等中间安全实体能够从 HTTP 协议元素中提取所管理的资源。然后,这些系统会应用特定于上下文的规则来决定是否允许 HTTP 会话继续进行。这一流程可确保根据当前上下文对每个请求进行实时评估,从而有效降低风险并保护敏感数据。

GenAI 正在改变访问应用程序的方式

SaaS 和企业应用程序正在不断发展,以接受用于资源管理的自然语言输入。这意味着要有一个 API 端点,能够解释和处理自然文本、音频或图像,从而对资源执行操作。例如,人力资源应用程序可能有一个 API 端点,用户可以在这里用自然语言输入他们的意图。然后,应用程序将解释这一意图,在内部执行必要的操作,并返回结果。如果需要额外的说明或输入,系统可以提示用户获取更多信息。下面是一些自然提示示例,说明如何执行各种操作:

  • 自然提示:”给我看所有员工的名单”
  • 自然提示:”给我 123 号员工的详细信息” 2. 部门管理
  • 自然提示:”添加一个名为’市场营销’的新部门”
  • 自然提示:将部门 ID 456 的名称更新为 “销售””
  • 自然提示:”删除 ID 为 789 的部门” 3. 创建薪资记录:
  • 自然提示:”为员工 ID 123 创建薪资记录”
  • 自然提示:”用新的详细信息更新工资单记录 ID 456
  • 自然提示:”给我看 ID 789 的工资单记录
  • 自然提示:”删除工资单记录 ID 101112

这些例子表明,自然语言提示可以取代直接调用资源级应用程序接口的需要。

应用的演变

在谈论安全挑战之前,让我们先来看看应用程序的一些演变方式。

传统应用程序拥有自己的 GenAI 界面

基于自然语言访问的传统应用程序正在改变用户与软件的交互方式。现有的 SaaS 和企业应用程序仍然提供传统的资源级 API 访问;不过,它们现在得到了增强,以支持基于生成式人工智能的访问。这种方法允许用户通过自然语言提示来管理资源,使交互更加直观和用户友好。这些应用程序通常包括自己的图形用户界面(GUI),用于聊天,从而使大量内存上下文与各种相关提示相关联。这意味着软件可以理解并记住对话流程,为用户查询提供更准确、更相关的回复。通过整合自然语言处理功能,这些应用程序可以将复杂的操作分解为简单的对话指令。例如,用户无需手动输入数据或使用复杂的 API 调用,只需说:”为员工 ID 123 创建薪资记录”,系统就能理解并无缝执行请求。

传统应用通过成熟的生成式人工智能供应商提供的解决方案得到增强

最近,像 ChatGPT 这样的生成式人工智能服务提供商正在通过整合函数调用和插件等功能来增强传统应用程序。这些升级使现有应用程序能够与 ChatGPT 和类似界面无缝互动。从本质上讲,GenAI 服务提供商通过其界面捕捉用户提示,解读潜在意图,并通过生成和执行 RESTful API 调用或通过向后台系统发送新提示来确定适当的插件,以满足这些请求。然后用自然语言将结果反馈给用户,使整个过程直观且方便用户使用。例如,用户可以留在 ChatGPT 环境中,通过一个简单的对话界面执行命令,而不是在多个界面中进行操作。ChatGPT 已支持 800 多个插件,允许各种 SaaS 应用程序提供商将其服务注册为插件。这种集成意味着用户无需切换标签或离开 ChatGPT 界面即可执行这些插件所涵盖的任务。

人工智能代理和代理工作流程

随着应用的不断发展,具有代理工作流程的人工智能代理正在成为另一种变革趋势。这些人工智能代理旨在自主运行,代表用户管理任务和工作流程,只需最少的干预。通过利用先进的机器学习算法和复杂的人工智能模型,这些代理可以执行各种各样的任务,成为现代应用生态系统中不可或缺的一部分。人工智能代理可无缝集成到现有应用程序中,通过自动执行常规任务和优化工作流程来增强其能力。例如,在客户服务应用程序中,人工智能代理可以自主处理常见询问、处理请求,甚至在必要时将复杂问题上报给人工代理。这不仅能提高效率,还能确保始终如一的高质量用户体验。这些代理具备从互动中学习的能力,可以不断改进其性能并适应用户偏好。这意味着,随着时间的推移,人工智能代理可以预测用户需求并主动管理任务,从而进一步简化操作并减轻用户的认知负担。它们可以与各种系统和应用程序对接,创建一个具有凝聚力的集成环境,让数据和操作无缝流动。人工智能代理的主要优势之一是能够在规定的约束条件和目标(通常称为代理工作流)内运行。这使它们能够以目标为导向执行任务,确保行动符合用户定义的优先事项和组织目标。例如,项目管理工具中的人工智能代理可以根据项目目标和时间表自主分配任务、跟踪进度并提供更新。人工智能代理可以协助不同应用和服务之间的协调与沟通。人工智能代理可作为中介机构,解释自然语言提示,并将其转化为多个系统间的可执行行动。人工智能代理使用推理模型,根据用户意图创建由各种任务组成的计划,然后通过与不同插件和应用程序通信来执行这些任务。在用户需要与多种工具和平台进行交互的环境中,这种能力尤为有益。

传统的零信任安全实施不充分

如 “零信任安全 “部分所述,传统的零信任网络安全实施假定所有对应用程序的访问都是通过特定于资源的 API 和传统 HTTP 操作进行的。现有的 CASB 和 ZTNA 解决方案就属于这些传统的零信任安全实现。随着 GenAI 及其基于自然语言的交互的出现,安全实现需要不断发展。传统的 API 和 JSON/XML 主体正在得到自然语言输入和输出的补充,这就需要进行更深入的分析,以辨别用户意图和结果。安全规则不能再仅仅依赖于特定的 API 端点和主体元素;现在必须在了解用户意图的基础上制定安全规则,以应用针对特定内容和上下文的细粒度访问控制。例如,想象一下用户通过 ChatGPT 或其自身的聊天界面与薪资应用程序进行交互。用户可能会说:”给我看看上个季度的工资记录”,而不是直接调用带有固定参数的 API。安全系统必须解释这一自然语言请求,并确保请求和响应符合公司的安全策略。这就要求对请求的上下文和所涉及的具体安全限制有细致入微的了解。因此,不断发展的零信任安全模型必须包括分析和理解自然语言输入的机制,确保访问控制在 GenAI 时代保持稳健并与上下文相关。