浅谈API安全的应用
理论基础
API它的全称是Application Programming Interface,也叫做应用程序接口,它定义了软件之间的数据交互方式、功能类型。随着互联网的普及和发展,API 从早期的软件内部调用的接口,扩展到互联网上对外提供服务的接口。调用者通过调用 API,可以获取接口提供的各项服务,而无须访问源码,也无须理解内部工作机制的细节。
API 它是预先定义的函数,为程序之间的数据交互和功能触发提供服务。调用者只需调用 API,并输入预先约定的参数,即可实现开发者封装好的各种功能,无需访问功能源码或理解功能的具体实现机制。
API通常包含如下组成要素:通信协议、域名、版本号、路径、请求方式、请求参数、响应参数、接口文档等。
API它是程序开发的基础,特别是系统API函数,通过系统自带的API函数可以快速实现程序开发的功能,现在高级语言也都是基于语言特性进行封装各种便于程序开发的API接口,这样就减少了开发者对具体功能的实现,只要直接调用API函数就可以快速实现功能了。但是API的虽然方便了开发,但是也同样存在和暴露出很多安全的风险问题。API的安全风险有被直接HOOK风险、安全漏洞风险、安全攻击风险。
API安全它是由多种安全规则相互交叉,它主要表现是以下三部分:
信息安全:聚焦于信息保护,这种保护包括信息的创建、存储、传输、落还、以及最终销毁的生命周期。
网络安全:解决服务两方面问题,如何保护通过网络传播的数据流以及如何防止未授权的网络。
应用安全:确保设计和部署的应用可以对抗攻击、防止误用。
API安全风险
API 在开发、部署过程中,不可避免会产生各种安全漏洞,这些漏洞通常存在于通信协议、请求方式、请求参数、响应参数、访问行为等环节,面临外部、内部威胁。例如,外部攻击者利用API未授权访问非法获取数据、API参数校验不严谨而被非法篡改。应对外部威胁的同时,API也面临着内部威胁。
API 接口在设计之初未对 API 接口访问频率做限制,使攻击者在短时间内可以进行访问大量 API 接口,这就产生了高频访问行为,这在很短的时间就可以完成如营销作弊、恶意注册等攻击,甚至可能带来 CC 攻击。
OWASP梳理总结的10大API安全风险
1、无效的对象级别授权
API倾向于暴露那些处理对象识别的端点,造成了广泛的攻击面访问控制问题。在每个能够访问用户输入数据的功能中,都应考虑对象级别授权检查。
2、损坏的用户身份验证
身份验证机制通常实施不正确,从而使攻击者可以破坏身份验证令牌或利用实施缺陷来临时或永久地假冒其他用户的身份。损害系统识别客户端/用户的能力会整体损害API安全性。
3、过度的数据泄露
开发人员倾向于公开所有对象属性而不考虑其个体数据敏感性,依靠客户端执行数据过滤并显示。
4、缺乏资源和速率限制
API一般不会对客户端/用户可以请求的资源大小或数量施加任何限制。这不仅会影响API服务器的性能,从而导致拒绝服务(DoS),而且还为诸如暴力破解之类的身份验证漏洞敞开了大门。
5、功能级别授权损坏
具有不同层级、分组和角色的复杂访问控制策略,以及管理功能和常规功能之间的模糊不清,往往会导致授权缺陷。通过利用这些问题,攻击者可以访问其他用户的资源和/或管理功能。
6、批量分配
将客户端提供的数据(例如JSON)绑定到数据模型,而没有基于白名单的适当属性过滤,通常会导致批量分配。无论是猜测对象属性、浏览其他API端点、阅读文档或在请求有效负载中提供其他对象属性,都是攻击者可以修改权限之外的对象属性。
7、安全性配置错误
最常见的安全配置错误是不安全的默认配置、不完整或临时配置、开放的云存储、错误配置的HTTP标头,不必要的HTTP方法、跨域资源共享(CORS)以及包含敏感信息的冗长错误消息导致的。
8、注入
当不受信任的数据作为命令或查询的一部分发送到解释器时会发生注入缺陷,例如SQL、NoSQL的命令注入等。攻击者的恶意数据可能会诱使解释器执行非预期的命令,或未经授权访问数据。
9、资产管理不当
与传统的Web应用程序相比,API倾向于公开更多的端点,这使得文档的准确性和及时更新显得尤为重要。健康的主机和最新的API版本能够有效减轻诸如API版本过期以及调试端点暴露之类的安全问题。
10、日志和监控不足
日志和监控不足,再加上事件响应的缺失或无效集成,使攻击者可以进一步攻击系统,长期驻留,并横向移动到更多系统以篡改、提取或破坏数据。大量入侵调查研究表明,检测到入侵的平均时间超过200天,而且入侵检测警告通常来自外部第三方,而不是企业内部安全流程或监控来检测。
API安全同时在应用安全方面除了参考借鉴OWASP安全风险,同时在面对系统自带API的一些安全漏洞,还要面临一些系统API被HOOK而改变流程的风险。这个是逆向工程的的常规实现方案,这个在软件开发过程中也需要重点关注和应对。
API安全测试
API安全测试主要是对其API的安全性、正确性和可靠性进行测试,以确保产品符合安全要求。它的测试需要包含用户访问、加密和身份验证。API 安全测试从定义要测试的 API 开始。测试工具使用各种规范格式(包括 OpenAPI v2/v3、Postman Collections 和 HAR 文件)提供有关 API 的输入和输出的信息。
API安全测试是一个很复杂的领域,API 的安全测试为手动、自动和混合活动带来了新的挑战。通常API安全测试需要静态分析工具和动态分析工具相结合,在API安全测试中可以基于常见API安全漏洞如 SQL 和 OS 命令注入、授权/身份认证旁路、路径遍历问题和 OWASP Top 10 API 漏洞进行重点安全测试。
静态分析工具,可以有效地识别特定于语言的软件安全问题,或者众所周知的注入攻击类别,继续对API繁重的代码库有效,但前提是这些工具也对用于公开这些API路由的库和平台进行建模。
在API安全测试的时候,也推荐使用OWASP Zap 和Postman 进行API安全测试,同时下面的几个github是可以值得借鉴应用的。
https://github.com/roottusk/vapi
2、API endpoint爆破
https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content/api
3、越权的测试
https://github.com/PortSwigger/autorize
API安全应用
API安全应用应重点通过API的安全漏洞,然后进行做API安全对抗方案的研发和策略制定,API安全应用同时应满足机密性(确保信息只能被指定的用户访问)、完整性(防止未授权的创造、修改和删除)、可用性(当用户需要访问API时、确保是可用的)。
API安全在应用安全方面可以重点关注语言的安全的编码规则、熟悉软件常见的安全漏洞、加强管理访问API的系统和应用凭证。
例如加强对一些系统内部自带的敏感操作的API函数进行保护,可用自实现的方式防止被直接挂钩系统函数而破坏了功能流程。
API安全中在网络安全方面可以重点关注防火墙、负载均衡、反向代理等并使用安全的通信协议(例如https)确保通信中数据安全。
在API安全实践应用中可以遵循以下的一些规则,提高API安全性。
每个 API 都应该使用传输层安全(TLS)来防止数据泄露。虽然这引入了证书管理的复杂性,但现代平台正在转向集成证书解决方案以简化采用。
对于具有已知身份的内部用户,API密钥可用于简化对API的访问,而无需 OAuth2 的复杂性,只要密钥得到安全管理。
3、不要将任何 API 密钥提交到源代码存储库,如有必要,请使用秘密管理解决方案。
4、使用授权中间件来标准化访问控制并避免损坏的功能级授权漏洞。
5、确保对 API 密钥使用精细的权限,以避免提供不必要或意外的访问权限。
6、如果你开发的软件有特别复杂的授权要求,请考虑使用标准库,不要重新发明轮子并增加复杂性和维护问题。
7、使用标准授权模式降低复杂性,同时利用客户端进行密集处理,减少给客户端返回数据量。
8、在软件中强化对日志记录的实施,并确保采用标准模式,有利用后续日志信息的审查和优化。
小结
API安全性已日渐成为了网络应用方面的主要技术需求之一。开发人员需要进一步加大对于API业务模型、分析能力、技术蓝图、以及合规性与标准化方面的深入研究与开发。
通过自动化、多样化的API网络攻击,黑客不仅可以达到消耗系统资源、中断服务的目的,还可以通过逆向工程,掌握 API 应用、部署情况,并监听未加密数据传输,窃取企业数据。
安全架构设计有很多的安全设计原则,比如公开设计原则、权限最小化、开放最小化、默认不信任等。所以在API安全设计过程中也可借鉴参考这些安全性原则。
在API安全中也需要重点关注下API安全的整个生命周期:设计、开发、测试、上线运行、迭代、下线。这个生命周期中会出现的API非法调用、API安全漏洞、API数据泄露问题。
法甲3摩纳哥近5轮3负仍15分领跑北京时间3月20日晚20点,20212022赛季法甲联赛第29轮迎来一场焦点战,领头羊巴黎圣日耳曼去到客场对阵联赛第9名摩纳哥。上半场,摩纳哥进攻屡次造险,由本耶德尔打进一球下半场
刘亦菲我是全家最丑的国民女神刘亦菲,接受采访时称她是全家最丑的,家里人都比她长得好看!要知道刘亦菲从出道以来,就已经是大众公认的美女了!金粉世家里面的白秀珠,神雕侠侣的小龙女,天龙八部的神仙姐姐刘亦菲
预言全部成现实,她们的嘴是开过光吗?此文为高能E蓓子原创,禁止任何形式的转载,转载请后台联系,但欢迎你们转发到朋友圈。上周我们写了小S的九个预言,大家也感受到小S看人看姻缘有多准了。其实贵圈预言家可不只小S一个。就说
6万人参与砍价不成功?拼多多回应不实,货已送达一场游戏直播,意外让拼多多的砍一刀再次冲上热搜。3月17日,斗鱼游戏主播超级小桀在直播中发起拼多多砍一刀换手机的活动,号召粉丝一起参与。砍价到最后不是以百分比进度显示了,是要完成金
娱乐净土王宝强让马蓉狼狈不堪,第三者判刑,最艰难时不忘报恩前言黄渤拍完泰囧以后受访,提到王宝强时说了一句实话。那是我们普通人根本看不到的一面,和我们认为的王宝强大相径庭。这次拍戏我才知道,王宝强根本不是我们认识中的傻根,那么纯洁善良那么简
Linux线上面试高频问题1案例描述?服务线上环境,会出现一些磁盘使用率过高而告警的情况,可能是某个日志文件过大,没有及时清理回收,如何找到大目录和大文件?如何安全的清理大文件?如何使占用的磁盘空间快速释放
乌克兰局势将减缓世界经济复苏并可能永远改变这一局面莫斯科,3月20日新闻。乌克兰局势将减缓大流行后减弱的世界经济复苏,并可能永远改变这一局面。法国世界报对此发出了警告。该报指出,经济合作与发展组织(OECD)预测,全球GDP增长将
3。19金价黄金最新行情走势国际金价周五3月18日下挫。伴随着战事进到第四周,俄罗斯军队在俄罗斯大城市的发展好像止步不前,俄乌战事对风险规避的要求变弱。OECD对通胀传出新警示,黄金行业前景再次涨跌。投资分析
不要浪费每一场危机每当发生大事,随众起哄的多,静心思考的少每逢遇到危机,盯着风险的多,看到机会的少一场危机会让我们真实地感受到一个时代的结束,和另一个时代的开启。不要浪费每一场危机。丘吉尔长期看,股
超级温柔的文案1。出场序顺真的很要重你恰成好熟我恰温好柔2。诗和方远都要去看看总会有想意不到收的获3。人最生好的个三词久重别逢失而复得虚惊一场4。你被黑暗敲打恰恰说明是你光明本身5。最大的安心是
美联储每轮加息都有一个国家被收割得很惨,这次轮到谁?3月17日,美联储决定将联邦基准利率上调25个基点,而在加息点阵图上,年内预计还有6次加息,这是美联储自2018年12月以来首次加息。至此,美国新一轮加息周期开启了!而在此之前,全