1.未受保护API:在现行的Open API开放平台中,一般需要对第三方厂商的API接入身份进行监管和审核,通过准入审核机制来保护API。当某个API因未受保护而被攻破后,会直接导致对内部应用程序或内部API的攻击。比如因REST、SOAP保护机制不全使攻击者透明地访问后端系统即属于此类。
加强保护机制审查和代码规范。
2. 弱身份鉴别:当API暴露给公众调用时,为了保障用户的可信性,必须对调用用户进行身份认证。因设计缺陷导致对用户身份的鉴别和保护机制不全而被攻击,比如弱密码、硬编码、暴力破解等。
利用某些用户段时间内批量访问登录/注册接口的特性设置规则。或者设置验证码,访问次数/频率限制。加强保护机制审查和代码规范。
3. 中间人劫持:因API的通信链路安全机制不全,攻击者通过攻击手段将自己成为API链中的某个受信任链,从而拦截数据以进行数据篡改或加密卸载。此类攻击,通常发生在网络链路层。
加强保护机制审查和代码规范。
4. 传统Web攻击:在这里主要是指传统Web攻击类型,通过攻击HTTP协议中不同的参数,来达到攻击目的,比如SQL注入、LDAP注入、XXE等。而攻击者在进一步攻击中,会利用权限控制缺失、CSRF进行横向移动,从而获取更大的战果。
利用参数画像进行检测。网上也有很多模型专门针对这些传统web攻击,但是waf里面的规则已经可以解决大部分传统攻击。
5。 弱会话控制:有时API身份鉴别没有问题,但对会话过程安全保护不足,比如会话令牌(Cookie、一次性URL、SAML令牌和OAuth令牌)的保护。会话令牌是使API服务器知道谁在调用它的主要(通常是唯一的)方法,如果令牌遭到破坏、重放或被欺骗,API服务器很难区分是否是恶意攻击行为。
加强保护机制审查和代码规范。
6。 反向控制:与传统的交互技术不同,API通常连接着两端。传统的应用中大多数安全协议都认为信任服务器端是可信的,而在API中,服务器端和客户端都不可信。如果服务器端被控制,则反向导致调用API的客户端出现安全问题,这是此类安全问题出现的原因。
掌握攻击者反向攻击的动机:获取敏感数据?根据动机进行定制策略或者模型。
7。 框架攻击:在API安全威胁中,有一些特殊存在的攻击场景,它们是API规范、架构设计导致的安全问题,这类威胁统称为框架攻击。最常见的比如同一API存在不同版本,导致攻击者攻击低版本API漏洞;同一API的不同客户端调用,可能PC端没有安全问题而移动端存在安全问题等。
加强保护机制审查和代码规范。
API1-失效的对象级授权:攻击者通过破坏对象级别授权的API,来获得未经授权的或敏感的数据,比如通过可预测订单ID值来查询所有订单信息
即水平越权,垂直越权,参数遍历。
2. API2-失效的用户认证:开发者对API身份认证机制设计存在缺陷或无保护设计,导致身份认证机制无效,比如弱密码、无锁定机制而被暴露破解、Token未校验或Token泄露导致认证机制失效等。
加强保护机制审查和代码规范。
■ API3-过度的数据暴露:在API响应报文中,未对应答数据做适当的过滤,返回过多的、不必要的敏感信息。比如查询用户信息接口时却返回了身份证号、密码信息;查询订单信息时也返回了付款银行卡号、付款人地址信息等。
■ API4-缺乏资源和速率控制:在API设计中,未对API做资源和速率限制或保护不足,导致被攻击。比如用户信息接口未做频次限制导致所有用户数据被盗;文本翻译接口没有速率限制导致大量文件上传耗尽翻译服务器资源。
■ API5-失效的功能级授权:与API1类似,只不过此处主要指功能级的控制,比如修改HTTP方法,从GET改成DELETE便能访问一些非授权的API;普通用户可以访问api/userinfo的调用,直接修改为api/admininfo,即可调用管理类API。
■ API6-批量分配:在API的业务对象或数据结构中,通常存在多个属性,攻击者通过篡改属性值的方式,达到攻击目的。比如通过设置user.is_admin和user.is_manager的值提升用户权限等级;假设某API的默认接口调用参数为{"user_name":"user","is_admin":0},而恶意攻击者修改请求参数,提交值为{"user_name":"attacker","is_admin":1},通过修改参数is_admin的值来提升为管理员权限。
■ API7-安全性配置错误:系统配置错误导致API的不安全,比如传输层没有使用TLS导致中间人劫持;异常堆栈信息未处理直接抛给调用端导致敏感信息泄露。
■ API8-注入:与OWASP Web安全注入类型相似,主要指SQL注入、NoSQL注入、命令行注入、XML注入等。
■ API9-资产管理不当:对于API资产的管理不清,比如测试环境的、已过期的、低版本的、未升级补丁的、影子API等接口暴露,从管理上没有梳理清楚,导致被黑客攻击。
■ API10-日志记录和监控不足:对API缺失有效的监控和日志审计手段,导致被黑客攻击时缺少告警、提醒,未能及时阻断。比如没有统一的API网关、没有SEIM平台、没有接入Web应用防火墙等。
可以看到 这些攻击无法攻击者自己发动单机/分布式/稀疏式攻击,或者劫持别人的身份/设备进行攻击,攻击的目的无非使目标瘫痪,获取敏感数据。
参考:
《API安全技术与实战》
明航:异常行为分析(Abnormal behavior analysis)建模的一些思考