法律咨询热线  400-700-0148

盈科|解读 原来还可以这样理解API、SDK

已被浏览805

更新日期:2019-12-26

来源:盈科律师事务所

一、API、SDK是什么

1、API定义    

API(Application Programming Interface)即应用程序接口,是一些预先定义的函数,或指软件系统不同组成部分衔接的约定,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。

通俗点讲,API就是接口、通道,负责一个程序和其他软件的沟通,本质是预先定义的函数。如果对方需要你提供一个API,是指一个工程提供给另外一个工程的接口(一般是基于http协议,只要你符合我定义的标准,你就可以来使用我)。

1.jpg

2、API类型

API有四种主要类型:

开放API:也称为公共API,访问这些类型的API没有限制,因为它们是公共可用的。

内部API:也称为私有API,只有内部系统才会公开这类API,因此,这类API不太为人所知,通常意味着要在公司内部使用。该公司在不同的内部团队中使用这种类型的API,以改进其产品和服务。

合作伙伴API:一个人需要特定的权限或许可证才能访问这类API,因为它们对公众不可用。

复合API:这类API结合了不同的数据和服务API。它是一个作为执行的结果而不是应任务的请求同步运行的任务序列。它的主要用途是加快执行过程,提高web界面中侦听器的性能。

3、SDK定义

SDK(Software Development Kit)即软件开发工具包,一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。软件开发工具包括广义上指辅助开发某一类软件的相关文档、范例和工具的集合。SDK可以包括API(或多个API)、IDE(集成开发环境)、文档、库、代码示例和其他实用程序。它拥有一组较为健全的特性和功能,减少了开发程序和应用程序的复杂性。

通俗点讲,SDK就是由第三方服务商提供的实现软件产品某项功能的工具包。如果对方需要你提供一个SDK,是指基于对方工程的编程语言,提供一个代码包,在这个代码包中,你可以调用操作系统的接口,可以调用其他系统的接口,或者什么都不调用,都与对方无关。

2.jpg

4、SDK类型

SDK主要包括以下几大类:

①消息推送类:如有极光推送、个推推送、Mob推送;

②数据统计分析类:如友盟;

③第三方登录类:如微信登录分享、微博登录分享、QQ登录分享;

④支付类:如微信支付、支付宝支付、银联支付;

⑤地图导航类:百度地图、高德地图;

⑥其他:如社交分享类、风控插件以及一切基础库等。

二、API 与 SDK区别

API和SDK是相似的,因此很难确切地理解两者之间的区别,或者何时应该选择使用其中之一。从本质上来看,API是一个具体的函数,一个确定的功能,已经明确了它的作用;而SDK就像是很多方法的集合体,是一个工具集。更准确地讲,SDK通常包含一个或多个API并帮助实现它们。然而,API并不总是有一个附带的SDK。

举个例子,比如你要做加法,就调用计算机SDK的加法API,要做减法就调用减法API,无论你想完成什么计算,SDK里总有能实现的方法。再比如你要开车去一个地方,车就是SDK,可以让你完成到达目的地的目的。车上的方向盘,灯,发动机,油门,刹车像一个个API,你在使用SDK时,就是调用一个个API功能。如果贴心一点的车,可能还带有使用说明(SDK说明文档)。

虽然API是专门为执行允许应用程序之间通信的特定功能而构建的,但是SDK是一个集成的平台,它拥有一套创建这些应用程序的工具。API促进并允许应用程序之间的交互,但它们本身不足以创建一个全新的应用程序。换句话说,如果希望添加一些特定的特性,那么API可能更适合该项目的创建。如果正在启动一个全新的项目,SDK将提供启动和运行所需的工具。

三、API与SDK的安全风险

1、API常见风险

API为用户的互动式数字体验提供了支撑,但它们同时也为恶意黑客提供了访问公司数据的多种途径。利用API的常见攻击方式包括:

①API参数篡改——黑客常用该技术逆向工程API或获得敏感数据的访问权。

②会话cookie篡改——此类攻击试图利用cookie绕过安全机制或向应用服务器发送虚假数据。

③中间人攻击——通过监听API客户端和服务器之间未经加密的连接,黑客可获取到敏感数据。

④内容篡改——通过注入恶意内容(比如JSON Web标记中下毒),攻击者能在后台部署并执行漏洞利用程序。

⑤DDOS攻击——攻击者可利用编写糟糕的代码通过发送无效输入参数来消耗计算机资源,造成基于API的Web应用服务中断。

2、API典型风险事件

①Instagram因API接口漏洞,遭受严重数据泄露 

2017年,Instagram遭受了严重的数据泄露,许多高知名度用户的电话号码和电子邮件被黑客非法获取,泄露的原因是其API存在漏洞,后Instagram声明称Bug已修复,账号密码未泄露。

②Google API中的漏洞可导致超5000万用户数据泄露

2018年10月,谷歌对外界宣布称其Google+服务将于2019年8月全面关闭,因为该公司通过内部审查(以及华尔街日报的曝光)发现,Google+中的一个漏洞导致三年时间内50万用户的信息遭到暴露。但事情并没有就此止步,同年12月,谷歌又发表声明称,Google+ API中的另一个漏洞(11月7日软件更新的一部分)暴露了5250万个账户的用户信息。

③Panera Bread 数据泄露事件

这家烘焙连锁店的网站上开放了一个未经验证的API终端,任何人都可以通过该API查看其客户信息,比如用户名、邮箱地址、电话号码、信用卡后四位、生日等等。最终,8个月的时间里,该公司3700万客户数据被泄露。

3、SDK常见风险

①隐瞒收集用户个人信息

近年来,涉及第三方SDK隐瞒收集个人信息的安全事件逐渐增多,有些第三方利用SDK隐瞒收集个人信息标识、行动轨迹、个人偏好、网络设备信息等,并上传至远程服务器,甚至是境外服务器。

②SDK借助合法APP执行恶意操作

为了谋取经济利益,部分恶意开发者渗入到SDK开发环节,以提供第三方服务的方式吸引APP开发者来使用他们的SDK。这些恶意SDK借助合法应用可以有效地躲避一部分应用市场和安全厂商的检测。恶意开发者能够利用后门对用户手机进行远程静默安装应用、静默添加联系人、获取用户隐私信息等。

③第三方SDK自身安全性令人堪忧

目前,绝大部分第三方SDK缺乏安全审核环节,造成代码存有未知安全漏洞。目前,已经发现的SDK安全漏洞包括HTTP误用,SSL/TLS不正确配置、敏感权限滥用、通过日志造成信息泄露等。

4、SDK典型风险事件

①微信支付SDK惊爆漏洞:黑客可0元购买任意商品

2018年7月,国外安全社区 Seclists.Org里一名白帽子披露了微信支付官方SDK存在严重的XXE漏洞,可导致商家服务器被入侵,且黑客可避开真实支付通道,用虚假的支付通知来购买任意产品。

值得一提的是,这名白帽子不知如何联系微信安全团队人员,所以在 Twitter上@360Netlab,于是360代为转达了该漏洞。这就造成了在没有提前通知厂商的情况下就公布了这一漏洞。

针对微信支付安全漏洞问题,腾讯方面回复36氪称,微信支付技术安全团队已第一时间关注及排查,并对该SDK漏洞进行更新,修复了已知的安全漏洞,并在此提醒商户及时更新。

6.jpg

②“寄生推”病毒感染

2018年4月,腾讯安全反诈骗实验室的TRP-AI反病毒引擎捕获到一个恶意推送信息的软件开发工具包(SDK)——“寄生推”,它通过预留的“后门”云控开启恶意功能,私自Root用户设备并植入恶意模块,进行恶意广告行为和应用推广,以实现牟取灰色收益。300多款知名APP遭遇“寄生推”的病毒感染,其中不乏用户超过千万的巨量级软件,潜在影响用户超2000万。

③友盟 SDK 越权调用未导出组件漏洞

2017年9月22日,360信息安全部的Vulpecker安全团队发现了国内消息推送厂商友盟的SDK存在可越权调用未导出组件的漏洞,并利用该漏洞实现了对使用了友盟SDK的APP的任意组件的恶意调用、任意虚假消息的通知、远程代码执行等攻击测试。

在360显危镜后台数据库中根据该含有漏洞版本的SDK的特征值查询确认,发现约有3万多APP受此漏洞的影响,根据包名去重后约7千多款APP产品,涉及多种类型的应用。该消息推送SDK使用范围较广,且受影响APP多是与终端用户日常生活息息相关的应用,一旦被恶意攻击者利用危害将非常严重。基于该漏洞,可以实现对终端用户推送虚假诈骗信息、远程窃取用户终端设备中的敏感数据(例如通讯录、照片、账号密码等数据)等功能。此外,该漏洞的危害依赖于Android应用本身提供的功能而有所不同,因此对终端用户的攻击方式亦是姿态各异,造成的危害也是多种多样的。

此漏洞已经得到友盟官方修复,请用户及时更新智能手机上安装的各类APP,防止手机里的隐私数据和财产被不法分子轻易窃取。

7.jpg

四、安全防范不可或缺

随着信息技术的快速发展,全球数据呈现爆发增长、海量集聚的特点,对社会经济发展、人民生活等都产生了重大影响。我国“十三五”规划纲要中指出,实施国家大数据战略,把大数据作为基础性战略资源,全面实施促进大数据发展行动,加快推动数据资源共享开放和开发应用,助力产业转型升级和社会治理创新。我国企业级大数据进入了快速发展时期,行业应用持续升温。

然而,在大数据快速发展的同时,与之相关的数据安全问题层出不穷,APP违法违规使用个人信息的问题十分突出,甚出现一批批非法获取信息、信息泄露、侵犯个人信息的事件,引发社会关注。为此,国家出台了相应的法律法规及相关政策文件等规制数据安全问题,网络安全等级保护2.0的时代已宣告正式到来。在国家渐严的审查与打击下,一批批不合规企业为此付出了巨大的代价,数据安全与合规化刻不容缓。

为了数据合规与网络运营的安全健康发展,除了法律和政策层面进行规范和引导,还需充分调动各界力量,形成“政府规制、社会监督、企业履责”的网络监督机制,共同营造良好的网络数据安全生态。


作者简介

李思思:北京盈科(杭州)律师事务所律师。

法律咨询电话: 400-700-0148

English Service: 400-700-1516

Read More About Us

盈科中国区律所

盈科全球法律服务网络