API安全已经成为企业组织的一个关键性业务发展问题,而非仅仅是信息安全的问题。而一个设计良好的API治理框架,不仅可以帮助企业建立起完整的开发、部署和管理API的指导方针和应用规则,同时也为企业API开发提供了一种结构化的方法。有效的API治理还有助于企业识别和减轻与API相关的风险,例如安全漏洞、合规问题和性能问题。通过实现API治理最佳实践,组织可以优化他们的API应用组合,改善团队之间的协作,并增加从API投资中获得回报。
图:API安全治理框架体系
研究人员认为,一个完善的API治理框架,应该全面涵盖其安全性、技术管理、利用率、监控、标准管理、性能管理以及合规管理等多个方面。本文将对这些关键组成部分进行分析,并给出治理策略建议。
1、API安全性
API安全性是API治理的关键组件,主要保护API免受的违规访问、滥用和其他安全风险的威胁。为了确保API的安全性,企业需要采取多种措施:
OWASP测试是一个标准化的安全测试过程,旨在识别API中潜在的安全漏洞。它需要各种安全测试技术的支撑,例如注入攻击、跨站点脚本和访问控制问题等等;
渗透测试是另一种用于识别API中潜在安全漏洞的技术。它涉及对API的模拟攻击,以识别可能被攻击者利用的潜在弱点;
API使用监控是指检测API使用中不寻常或不自然模式的过程。这种监控可以帮助识别潜在的安全威胁,防止API的误用和滥用;
代码审查也是API安全性的一个重要方面。通过彻底检查API代码,开发人员可以识别潜在的安全缺陷和漏洞,并在它们成为威胁之前解决它们;
身份验证和授权机制对于保护API的安全性也至关重要。这些机制确保只有被合法授权的用户才能访问所有API中被授权的资源。此外,API端点的设计必须区分用户和管理员,以防止未经授权的访问;
实现强大的安全措施对于确保API的安全性和完整性至关重要。通过实施这些措施,组织可以保护API免受潜在的安全威胁,并确保API服务安全可靠地交付给用户。
2、API技术管理
API技术是API治理中的重要组成部分,它包括为API开发选择和管理适当的技术堆栈。为了确保技术的有效使用,企业需要对现有API开发技术进行记录备案,不断引入新技术并淘汰过时技术,同时促进新技术的落地应用。
对现有API开发技术进行记录备案,可以让组织对用于API开发和管理的技术有一个清晰的理解。这些信息可以帮助识别技术堆栈中的潜在安全防护缺口、重叠和冗余。
引入新技术是API技术发展的另一个重要方面。它可以确保技术堆栈保持最新状态,并与最新的行业标准和最佳实践保持一致。此外,检查Gartner等研究机构发布的魔力象限可以帮助组织识别新兴技术,并评估其对API开发和管理的适用性。在评估当前技术堆栈的有效性时,识别生产事故并为其贴上技术标签也是至关重要的。它有助于识别需要改进的领域,并识别无法满足业务需求的旧技术。
3、API利用
API利用也是API治理框架的一个关键组成部分,它主要指监控和优化API的使用,以确保其价值和应用效率的最大化。为了实现这一点,企业需要采取一些措施,主要包括:
- 在管理端集中使用API,这样可以让组织清楚地了解各种应用程序和服务之间的API使用情况,识别潜在的性能瓶颈以及需要优化的领域;
- 撤销或合并未使用的API,确保这些API不会消耗不必要的资源,并降低API生态系统的整体复杂性;
- 要确保使用率高的API能够得到及时扩展和优化。通过识别利用率高的API,组织可以优化其性能,增加可扩展性,并改善整体用户体验;
- 公开API目录,这样开发人员更容易发现和重用现有API,而非构建新的API,这不仅节省了时间和资源,还能够提高API应用的一致性,降低了API生态系统的整体复杂性;
- 最后,计算API成本并实施成本优化也至关重要。通过确定运行时成本(如CPU、网络和日志量),组织可以实施成本优化措施并将不必要的成本降至最低。
4、API运行监控
API监控是API治理的一个关键方面,它涉及跟踪和分析API的性能、可用性和安全性。为了确保有效的API监控,组织需要尽快实施以下技术措施:
- 首先,建立API监控的要求规范是必要的。这包括建立一个专用的监视系统,并定义监视指标和阈值,跟踪关键性能指标,如响应时间、错误率和正常运行时间,以确保API的安全性和性能;
- 发布日志保留和卷号(volume number)也是API监视的重要方面。它可以帮助组织识别API使用性能的变化趋势,组织可以使用此数据来识别需要优化的过度使用API,或者检测其中的安全漏洞;
- 此外,为不寻常的模式、峰值和其他异常参数设置警报可以帮助组织快速识别和响应问题。这确保了各种API安全问题都能及时得到解决,减少长时间停机或服务中断的风险。
- 最后,要密切监控API的SQL注入和其他攻击。组织应该实施预防和检测此类攻击的措施,例如输入验证、加密和访问控制等,这有助于将数据泄露的风险降至最低,并确保API是安全和合规的。
5、API标准
API标准是API治理的重要组成部分,因为它们确保API在整个组织中得到一致的开发和维护。为了确保遵守API标准,组织应该实施以下措施:
- 遵循OpenAPI标准,该标准定义了描述RESTful API的标准方法。遵循这个标准可以确保API有良好的文档记录,易于理解,并可与其他API实现互操作;
- 使用自动化的API审计工具。这些工具可以扫描API代码和配置,以发现潜在的问题,例如安全漏洞或违规。这有助于确保API是安全的、兼容的和高质量的;
- 要求团队提交API YAML文件和Postman集合。这确保了API文档和测试工件是最新的,并且易于其他团队访问,有助于确保API经过良好的文档记录和测试。
- 最后,支持金丝雀发布(canary release)和版本控制对于确保API能够有效地部署和管理至关重要。Canary发布涉及将新功能部署给一小部分用户,在向更广泛的用户发布之前测试其影响。版本控制包括为每个API分配一个唯一的版本号,以确保对一个版本的更改不会影响其他版本。
6、API性能管理
API性能管理是API治理的一个关键方面,因为它直接影响用户体验和API组合运营的成本。为了确保API应用保持最佳的性能状态,企业应该实施以下措施:
- 使用Kibana、AppDynamics或Nginx等工具监控API性能。这些工具可以洞察API响应时间、错误率和其他性能指标。通过监控API性能,组织可以快速发现问题并采取纠正措施;
- 为低性能API设置警报,并通知团队采取行动。这可以确保及时发现和解决性能问题,最大限度地减少对用户的影响;
- 优化低性能API。每个用户都希望API能够快速响应,任何延迟或错误都可能导致满意度降低甚至是业务损失。通过优化API性能,组织可以提供更好的用户体验并降低运营成本。
7、API合规
API合规管理是为了确保API遵从内部公司策略和监管需求,合规主要有两种类型:内部合规和监管合规。
内部合规指的是遵守管理组织内API开发和使用的内部策略和标准。这些策略可以包括数据安全、隐私和治理;监管合规指的是遵守管理API开发和使用的外部法规和标准。这些法规可以包括特定于行业的标准,例如用于医疗保健的HIPAA或用于支付卡数据的PCI DSS。
为了确保API合规性,企业可以执行连续扫描,例如静态和动态扫描,以确定潜在的技术合规性问题,其中静态扫描可以分析代码的安全漏洞,而动态扫描可以模拟对API的攻击,以识别潜在的漏洞。在早期开发过程中检测API安全性是很重要的,因为这可以帮助在开发周期的识别和解决合规问题。
参考链接:https://dzone.com/articles/api-governance-best-practices-and-strategies-for-e