第1章 什么是API安全
本章内容提要:
- 什么是API?
- 什么导致API安全或不安全?
- 以目标为基础定义安全性。
- 识别威胁和漏洞。
- 基于机制来实现安全目标。
应用程序接口(API)无处不在。打开智能手机或者平板电脑,看看上边安装的应用程序,几乎无一例外都会与一个或多个远程API保持通信,或下载新闻,或获取通知,或上传新内容,等等。
启动浏览器,打开开发者工具并加载网页,你就会看到为呈现定制化的网页(无论喜欢不喜欢),许多API正在后台运行。在服务器上,这些API调用是以微服务的形式,基于内部API相互间的通信来完成的。
更有甚者,家用的日常用品,比如Amazon Echo或者Google Home的智能扬声器、电冰箱、电表以及电灯泡等,都在与云端的API进行通信,这种现象已经变得越来越普遍了。无论是对于普通消费者还是对于工业环境而言,物联网(IoT)正在快速地变为现实,这很大程度上是由不断增长的,运行于物联网设备上及云端上的API所推动的。
API的普及让应用程序的功能越来越强大,但也导致应用程序变得越来越复杂,同时也带来了越来越高的安全风险。当我们的工作和娱乐逐渐依赖于API的时候,如果API受到了攻击,我们就会成为受害者。API用得越多,被攻击的可能性就越大。API易于使用这一特性对于开发人员来说又非常具有吸引力,但同时也很容易成为不怀好意的攻击者的目标。当前,一些新的隐私和数据保护立法,如欧盟的GDPR等,都对企业在保护用户数据方面提出了法律要求,如果保护不力,企业将会受到严惩。
GDPR
《通用数据保护条例》(The General Data Protection Regulation)是欧盟法律的重要组成部分,于2018年生效。其目的是确保欧盟公民的个人数据不被滥用,并从技术和组织控制两方面对个人数据给予充分的保护。条例内容包括安全控制(本书会涉及这些内容),隐私技术(如姓名和其他个人信息,本书不会涉及这方面内容),以及在收集或共享个人数据之前须征得同意。条例要求数据泄露后,公司务必在72小时内报告情况,违反者将可能遭受高达2000万欧元或公司全球营业额4%的罚款。其他地区目前也在效仿欧盟,出台类似的隐私和数据保护法案。
本书关注的重点是如何保护API免受攻击,以便放心地将其公之于众。