应用程序编程接口 (API) 已成为将当今APP经济的粘合剂,同时也正在成为黑客攻击的头号目标。API的运行方式与URL的运行方式大致相同,用户使用Web搜索时,页面展示结果是动态的,以手机银行应用程序为例,API也以类似的方式运行,它可以获取用户的姓名、账号和账户余额,并相应地填充交互页面中的字段。但API更容易受到攻击者的青睐,因为API包括所有安全检查,并且通常直接与后端服务通信。
应用程序安全方面一直存在一个问题:输入验证。如果没有适当的功能和安全测试,API可能会成为一个完美的攻击点。因为API受应用程序信任,可以进行高速、海量数据交换。
三类常见的API漏洞
通过对大量应用程序安全市场客户的调查,并参考开放Web应用程序安全项目 (OWASP) 后,调查人员汇总了以下三类最常见的API漏洞:
1.Broken Object Level Authorization (BOLA)
BOLA的通俗定义是对对象访问请求的验证不充分,它允许攻击者通过重用访问令牌来执行未经授权的操作。Peloton事件是最近诸多BOLA利用中比较有名的一个案例,攻击者可以查看包括标有私人事件在内的,几乎所有用户的个人资料。此类攻击可能影响到从开发到运营,再到营销和公共关系的每个业务组。
2.无效的用户身份验证
此类漏洞的准确定义是“身份验证机制中的实施缺陷”,允许攻击者冒充合法用户。这里关联两种常见的漏洞利用类型:第一个是由自动化机器人执行的凭证填充。查找有用户身份验证缺陷的API是自动攻击的理想目标。此漏洞的更复杂用途是进行侦察,以确定API的工作方式。例如我们输入“a@a.com /”密码的用户名/密码组合,应用程序显示“密码无效”,那么攻击者就会知道用户名是有效的。攻击者将使用此数据点来增加凭证填充(或其他类型的攻击)成功的机会。
3.资产管理不当
此API缺陷是环境隔离和管理不足的结果,允许攻击者访问安全性不足的API端点。在农机企业约翰迪尔的安全事件中,可能就是由于开发人员API无需编辑即可访问生产数据,进而暴露了约翰迪尔客户的系统。属于此类别的其他漏洞还包括未监控开发API中的敏感数据,以及让已弃用的仍API处于在线或公开状态。
目前API安全事件层出不穷,无论企业用户使用的是API 优先方法,还是刚刚开始由API 辅助的数字化转型之旅,了解API存在的漏洞以及相关风险都是至关重要的。
【本文是51CTO专栏作者“安全牛”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】