大家好,我是阿萨。 日常测试中常见各种安全风险。那么都有哪些安全风险呢?
与任何软件开发周期一样,必须从一开始就内置API安全性。遵循这些指导原则来设计、部署和保护你的API。
API通过控制请求的发出和处理方式,使软件应用程序能够相互交互。由于云计算的兴起以及从单一应用到微服务的转变,它们已经成为当今数字世界的关键元素。
现在全球有超过24000个公共API被数百万开发人员和数十万组织使用。
根据RapidAPI 2021年11月的一项调查,几乎所有受访者都认为,成功执行API战略对确保其组织未来的收入和增长至关重要。这意味着API正在成为大多数现代应用程序的支柱,因此它们的安全性是现代信息安全的核心。
什么是API安全性?
API为用户、应用程序和物联网设备提供对敏感数据和其他网络资源的访问。但如果没有强大的安全性,它们就非常容易受到各种攻击,从而导致数据泄露和网络受损。
API安全性的目标是确保API请求经过身份验证、授权、验证和清理,并且在服务处于负载状态时仍然可以处理。现代应用程序或服务有许多使用不同协议和请求格式的API端点,因此API安全性的特征不同于标准web服务器,后者只需要保护少数标准端口和请求。
API安全性不仅来自网络安全控制,还来自经过健壮编码的API,这些API可以处理和丢弃无效和恶意的传入请求,以保持API所公开的数据和资源的机密性、可用性和完整性。
为什么API安全性很重要?
随着越来越多的企业通过api访问数据和服务,这些API成为数据盗窃和软件攻击的诱人目标。
不安全的api是一个严重的威胁。它们通常是网络中最容易暴露的组件,容易受到DoS攻击,很容易被反向工程利用。例如,Coinbase、Experian、John Deere和Peloton在线服务中的API漏洞可能暴露了用户的个人数据或为欺诈交易提供了便利。
Salt Security客户数据显示,从2021年7月到2022年7月,每个客户的整体API流量增长了168%,其中恶意API攻击流量激增117%,占整体API流量的2.1%。Noname Security的一份报告发现,76%的受访者在2021年9月至2022年9月期间遭遇了API安全事件。
最常见的API安全风险
在开发过程中以及每当API更新时,应解决以下API安全风险:
破坏对象级授权。当请求可以访问或修改请求者不应该访问的数据时,例如能够通过篡改请求中的标识符访问另一个用户的帐户,就会发生BOLA。
破坏函数级授权。当没有实现最小权限原则(POLP)时就会出现这种情况,通常是由于过于复杂的访问控制策略造成的。它导致攻击者能够执行敏感命令或访问针对特权帐户的端点。
用户身份验证失败。与BOLA一样,如果身份验证过程被破坏,攻击者可以一次性甚至永久地冒充另一个用户。
过多的数据暴露。API对请求的响应通常返回比相关或必要的数据更多的数据。尽管数据可能不会显示给用户,但可以很容易地检查这些数据,并可能导致敏感信息的潜在暴露。
资产管理不当。API的开发和部署通常是快节奏的,在急于发布新的或更新的API时,经常会遗漏完整的文档。这将导致暴露的和幽灵端点,以及对旧api如何工作和需要实现的理解不足。
缺乏资源和速率限制。API端点通常对互联网开放,如果对请求的数量或大小没有限制,则对DoS和暴力攻击开放。
注入缺陷。如果没有正确地解析和验证请求数据,攻击者可能会发起命令或SQL注入攻击来访问它或在未经授权的情况下执行恶意命令。
大规模作业。软件开发框架经常证明,只需一行代码就可以将从在线表单接收到的所有数据插入到数据库或对象中,这被称为批量赋值,从而无需编写重复的表单映射代码。如果没有指定哪些数据是可接受的,就会打开各种攻击向量。
以上就是常见的API风险,快看看你家的公司有没有类似的问题。