QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

为什么需要考虑 API 的安全性?

  • 2019-10-12
  • 本文字数:1975 字

    阅读完需:约 6 分钟

为什么需要考虑API的安全性?

各类企业在智能手机的应用程序中,越来越多地依赖 API 与客户端进行交互,但这种方式也有一些弱点。



随着网络攻击者继续利用易受攻击的人、过程和技术,他们的行动也瞄向了常规目标之外;似乎没有任何事情不在他们的目标范围之内,没有人能百分之百地免受他们的恶意攻击。


尽管组织机构在保护自己方面取得了进展,但是一旦一个组织被击破,其他的很快也就暴露了。


今天的攻击者尤其关注 API,它们正迅速成为新的攻击前沿阵地。最近的报告表明,到 2022 年,API 滥用将成为企业 web 应用程序中数据泄露的罪魁祸首。因此,保护 API 变得越来越重要。


虽然 API 安全这些概念还有些新,但是通过 API 执行攻击的行为并非最近才出现。多年来,大多数组织机构都遇到过类似的威胁,这些威胁正是针对其网络和面向 Internet 的应用程序。


现在,他们必须把精力集中在移动应用程序、API 和后端服务器上,因为网络攻击者过去采用了类似方法,把这些应用程序、API 和后端服务器作为了攻击目标。在讨论与今天的 API 相关风险之前,我们必须首先准确地理解是什么使它们显得独特和易受攻击。

基于 API 的应用程序与传统应用程序的对比

基于 API 的应用程序与传统应用程序有很大的不同。例如,在过去,用户/访问者会通过浏览器访问 web 服务器,而大多数“数据处理”是在服务器上执行的。但随着客户端设备变得越来越多样化,变得越来越强大——即有了更快的 CPU、更大内存、更多带宽等等——很多逻辑从后端服务器转移到了前端(即客户端设备本身),如下图所示。



在现代应用程序中,下游服务器更像是基于 API 的应用程序所使用数据的一个网关代理。在此实例中,渲染组件就是使用原始数据的客户端,而不是服务器本身。


例如,还记得在早些年,人们使用智能手机和传统网站预订机票。人们会在手机上打开浏览器,尝试使用航空公司网站,这些网站是专为大型电脑显示器而非小型智能手机屏幕设计的。


但这并没有带来很好的用户体验,所以公司开始更新他们的网站,使其对智能手机用户更加友好。尽管这改善了用户体验,但浏览网站和完成机票预订仍然相当麻烦。


因此,航空公司、酒店、汽车租赁公司等都开始开发自己的移动应用程序。人们预订航班时,不再试图从手机上的浏览器里打开该航空公司移动版网站,而是下载并安装该公司的移动应用程序,并直接从智能手机上使用该应用程序进行预订。那么,这带来了什么变化呢?


当使用航空公司的移动应用程序预订航班时,该应用程序使用 API 调用与后端服务器交互,主要用于获取航班时间表、可乘坐航班、价格和座位等数据。该应用程序还与用户进行交互,允许用户指定旅行日期、出发和到达城市、座位选择和购买选项。


在这种情况下,智能手机可以不使用浏览器,而是在移动应用程序内部执行了几乎所有的机票预订处理负载。尽管这极大地改善了使用智能手机时的机票预订体验,但也带来了一个问题:


API 是否也像基于浏览器的应用程序一样容易受到网络攻击?

与 API 相关的风险

不幸的是,API 也暴露在攻击之下,并且类似于基于浏览器的应用程序,基于 API 的应用程序在很大的程度上也存在着类似的安全问题。


但是,由于 API 暴露了移动应用程序的底层实现,并且用户的状态通常由客户端应用程序维护和监视,每个 HTTP 请求(对象 ID、过滤器等)中会发送更多的参数,所以有一些 API 的安全问题具有其独特性。在大多数情况下,这些问题导致的漏洞可以从以下三个方面来考虑:


  • 泄露敏感数据

  • 被拦截的通讯

  • 对后端服务器发起拒绝服务攻击(DoSS)

一个具有高尚动机的好项目

随着威胁范围的扩大和 API 使用的增加,我和 Inon Shkedy(Traceable.ai 的安全研究主管)带头领导了OWASP API十大安全项目。该项目旨在帮助组织、开发人员和应用程序安全团队更加了解 API 的风险。


这个项目之所以重要,是因为:“在当今应用程序驱动的世界中,创新的一个基本元素就是 API。从银行、零售、运输到物联网、自动驾驶汽车和智慧城市,API 是现代移动端、SaaS 和 web 应用程序的关键部分,我们可以在面向客户、面向合作伙伴和机构内部的应用程序中随处可见 API 的使用。从本质上讲,API 暴露了应用程序的逻辑和敏感数据,如个人身份信息(Personally Identifiable Information,简称 PII),正因为如此,它越来越多地成为攻击者的目标。没有安全的 API,快速创新将是不可能的。”


OWASP API 安全项目旨在开发、发布和跟踪组织在使用 API 时所面临的十大风险,类似于OWASP十大最关键的Web应用程序安全风险项目。从中断的对象级授权到不充分的日志记录和监视,这个列表汇总了企业面临的最关键的 API 风险,同时还提供了示例攻击场景和减轻这些威胁的建议。


所以,IT 团队、安全专业人员和开发人员都应该仔细阅读这个列表,以便更好地理解 API 带来的好处,同时了解在攻击者将目光投向这个新兴目标时,API 的实现所带来的潜在风险。


英文原文:


Why You Need to Think About API Security


2019-10-12 16:132505

评论

发布
暂无评论
发现更多内容

TOGAF 10新鲜出炉了!

涛哥 数字产品和业务架构

企业架构 TOGAF

SqlServer主备构建探索

Lane

SqlServer

在线Excel转公式工具

入门小站

工具

Spring Data Elasticsearch 使用示例

Java elasticsearch 4月月更

灵感乍现!造了个与众不同的Dubbo注册中心扩展轮子

捉虫大师

Java dubbo 注册中心 4月月更

yarn add electron安装失败

空城机

YARN Electron

课程四

ASCE

融云国产化适配排坑指南

融云 RongCloud

H2 数据库采用客户/服务器端连接数据的 JDBC 参数

HoneyMoose

《写作的逻辑》读书笔记

坚果

4月月更

H2 数据库如何以服务器方式启动

HoneyMoose

Docker下,pinpoint环境搭建

程序员欣宸

Java Docker 4月月更 Pinpoint

使用 GoRouter 进行 Flutter 导航:Go 与 Push

坚果

4月月更

Redis太难?阿里P8总结的Redis灵魂拷问70题解析,还不懂我就哭了

Java架构追梦

Java 后端开发 程序员面试 Redis 数据结构

常见问题(FAQ)

源字节1号

redis优化系列(六)高可用集群Redis Cluster的认识

乌龟哥哥

4月月更

[Day27]-[二叉树] 遍历

方勇(gopher)

LeetCode 算法和数据结构

Amazon Aurora 读写能力扩展之 ShardingSphere-JDBC 篇

SphereEx

Apache 数据库 开源 ShardingSphere SphereEx

如果只有一周时间,怎么快速提升线上系统的稳定性?

Samson

运维 监控 技术管理 SRE 系统稳定性

APICloud数据云3.0使用教程

YonBuilder低代码开发平台

后端开发 APP开发 APICloud 数据云

没日没夜做需求,就能交出满分答卷吗?

LigaAI

敏捷开发 需求

FL STUDIO20.9中文版汉化包注册激活教程

茶色酒

FL STUDIO20.9

Flutter 网络请求 Dio 拦截器详解

岛上码农

flutter ios 安卓开发 4月月更 跨平台应用

IDC最新报告:澳鹏AI全生命周期数据解决方案在市场上具独特优势

澳鹏Appen

人工智能 大数据 数据标注 训练数据 数据训练

linux之mktemp命令

入门小站

在线文本代码对比

入门小站

工具

Tomcat:网络请求原理分析

IT巅峰技术

OpenHarmony加速行业应用落地,多款软件发行版正在通过兼容性测评

OpenHarmony开发者

OpenHarmony

Windows Edge 浏览器的有关 URL 链接的复制粘贴

HoneyMoose

为什么需要考虑API的安全性?_语言 & 开发_Erez Yalon_InfoQ精选文章