API安全:内部审计师的快速参考

Ravikumar拉马钱德兰
Author: Ravikumar拉马钱德兰, Chennai, India, CISA, CISM, CGEIT, CRISC, CDPSE, oca -多云架构师, CISSP-ISSAP, SSCP, CAP, PMP, CIA, CRMA, CFE, FCMA, CIMA-Dip.MA, CFA, CEH, ECSA, CHFI, MS (Fin), MBA (IT), COBIT-5实现者, 认证COBIT评估员, ITIL 4 -管理专业人士, TOGAF 9认证, 认证SAFe5敏捷师, 专业Scrum大师2
发表日期: 2023年12月21日

人类仍然是最非凡的计算机.” – John F. Kennedy

api(应用程序编程接口)是网络不可分割的一部分. 当我们访问一个网站时,托管该网站的web服务器将显示一个网页. API是一种工具,使网站的数据易于客户端(无论是桌面, laptop, 手机)我们通过它登录. API, 由服务器提供的程序, 可以是处理网络流量的同一个程序的一部分,还是一个单独的程序向客户端提供数据.

API是为两个软件程序之间的交互而设计的, 而UI(用户界面)是为用户直接与程序交互而设计的. API提供可由另一个程序解析和操作的原始数据, 而UI呈现的是人类用户可以轻松读取的数据.

在这个图中,API就像餐馆里的服务员把订单交给厨师一样, 收集订购的食物, 并返回顺序.

API Security

按目标受众划分的api类型

  1. Public APIs. 也称为外部或开放api,开发人员和其他用户可以以最小的限制公开使用.
  2. Partner APIs. 它们不是公开的,而是由战略业务合作伙伴提供的, 需要特定的权限才能访问它们.
  3. Internal APIs. 也称为私有api, 它们对外部用户是隐藏的,只对内部系统和内部开发团队公开.
  4. Composite APIs. 复合api将多个数据或服务api组合在一起. 它们在微服务架构中非常有用, 哪些地方需要来自多个服务的信息来执行单个任务.

按协议划分的api类型

  1. REST. 具象状态传输(Representational State Transfer, REST)架构是最流行的方法,它依赖于分离API前端和后端的客户机/服务器方法, 并且在开发和实现方面提供了相当大的灵活性. REST是无状态的,这意味着API在请求之间不存储数据或状态.
  2. RPC. 远程过程调用(RPC)协议是发送多个参数和接收结果的一种简单方法. RPC api调用可执行的操作或流程, 而REST api主要交换数据或资源,如文档.
  3. SOAP. 简单对象访问协议(SOAP)是由万维网联盟定义的消息传递标准,广泛用于创建通常带有XML的Web api, 虽然它支持广泛的通信协议.

上下文中的API安全性

API Security

API安全是以下三个方面的交集:

  1. 信息安全 是否关心信息从产生到最终销毁的整个生命周期的保护.
  2. 网络安全 处理流经网络的数据的保护,以及防止对网络本身的未经授权的访问.
  3. App 保护 确保软件系统的设计和构建能够承受攻击和误用.

API安全性:最重要的控制

  1. 所有权和管理. 每个API都应该有一个所有者或提供者,他们将通过适当的sla定义和发布使用条款,以限制API的使用和消费方式, 并根据定义和商定的SLA随时修改API的实现.
  2. 根据公司策略设计API. 应该有一个关于API的政策,明确说明API与技术无关, 这意味着它不应该依赖于应用程序, 编程语言和平台.
  3. 隐私和安全. API的设计应该确保消费者数据的私密性,并支持审核跟踪. 应该有端到端的数据安全性,并且应该是网络无关的和以数据为中心的.
  4. API governance. api应根据既定的数字战略开发,并应明确回答以下问题:
    • 取得了什么业务成果?
    • 目标受众是谁?
    • API的愿景是什么?它是否社会化了?
    • 我们是否建立了API架构和组件重用?
    • API安全最佳实践是否已激活?
    • 是否有有效的API生命周期管理?
    • api是否符合现行法律法规?
    • 是否定期对api进行漏洞评估和渗透测试, 是否及时采取了纠正措施?
  5. Audit controls
    • 从源到目的的数据传输是否受到监控, 如果失败了, 有给管理员的提示吗, 它是否记录在审计跟踪中?
    • 不允许使用匿名api吗?
    • 在api上部署的用户身份和密码是否用于内部开发和培训?
    • 是否使用API密钥验证来保护应用程序的验证?
    • 数字证书是否用于所有B2B通信?
    • Are OAuth2.0和为内部和外部生产api部署的安全令牌?

Author’s note: 所表达的意见是作者自己的观点,并不一定代表他所隶属的组织或认证机构的观点.

 

额外的资源