服务器大本营

 找回密码
 我要入营

微信扫码 , 快速开始

QQ登录

只需一步,快速开始

查看: 1045|回复: 0

API已成为攻击者目标,企业如何保护API安全?

[复制链接]

3359

敬重

427

主题

207

精华

管理员

积分
6157

启航之章进阶之印里程之碑突破之证飞跃之星蜕变之勋卓越之路龙年行大运

QQ
发表于 2023-6-3 14:28:18 | 显示全部楼层 |阅读模式

我要入营,结交更多好友,开启更多功能,轻松玩转服务器大本营!

您需要 登录 才可以下载或查看,没有账号?我要入营

x
随着云计算、移动互联网、物联网的蓬勃发展,越来越多的应用开发深度依赖于API之间的相互调用。特别是疫情常态化后,协同办公、在线教育、直播短视频等线上应用蓬勃发展,API在其中既能够起到连接服务的功能,又可以用来传输数据,随着API的绝对数量持续增长,通过API传递的数据量也飞速增长。

与此同时,API也正成为攻击者重点光顾的目标。据Salt Security《State of API Security Report, Q3 2021》报告显示,2021年上半年,整体API流量增长了141%,API攻击流量则增长了348%,针对API的攻击流量正在以普通API流量的3倍速度增长。报告还发现,安全问题在API项目关注的名单中名列前茅,很少有受访者认为他们有信心识别和阻止API攻击。

这是由于API的广泛使用和链接为恶意攻击者提供了广阔的攻击面,一旦成功攻击API,就能获取大量企业核心业务逻辑和敏感数据。除此之外,很多企业并不清楚自己拥有多少API,也并不能保证每个API都具有良好的访问控制,被遗忘的影子API和僵尸API,为攻击者提供了唾手可得的机会。相对于传统Web窗体,攻击API的成本更低、价值更高。

正因如此,2021年发生了很多重量级的API攻击事件,引发了社会各界的广泛关注,例如:黑客通过API漏洞入侵了7亿多Linkedln用户的数据,并在暗网上出售这些数据;黑客攻击Parler网站的API安全漏洞,非法获得1000万用户超过60TB的数据;Clubhouse因API安全漏洞泄露了130万条用户记录。

可以预见,2022年针对API的攻击将成为恶意攻击者的首选,越来越多的黑客利用API窃取敏感数据并进行业务欺诈,为API构建安全防护体系已势在必行。

新兴网络威胁下,传统API网关局限性凸显

一个严峻的事实是,API发展到现在,授权认证体系已经比较完善,但是在授权之后访问的控制相对薄弱。管控的颗粒度因API接口业务需要而不同,在带来访问便利的同时,也可能被恶意利用,带来信息泄漏和被滥用的风险。API设计之初就是为程序调用准备的,天然是工具行为,利用自动化工具通过合法授权下的API滥用,已成为API攻击的难题。

从API的提供方角度,为使用和管理的方便,过度的API开放和宽泛的API调用参数返回,既可能被恶意利用,也可能无形中造成信息泄漏和被滥用的风险。因此传统API安全网关提供的身份认证、权限管控、速率限制、请求内容校验等安全机制几乎无用武之地。

例如,身份认证机制可能存在单因素认证、无口令强度要求、密码明文传输等安全隐患,而访问授权机制风险通常表现为用户权限大于其实际所需权限。同时,即使建立了身份认证、访问授权、敏感数据保护等机制,有时仍无法避免攻击者以机器模拟正常用户行为、运用大量代理IP进行大规模攻击等多种方式来避免速率限制。

在如今互联网的开放场景下,API的应用和部署面向个人、企业、组织机构等不同用户群,是外部网络攻击的主要对象之一,因此更需时刻警惕外部安全威胁。针对API的常见网络攻击包括:重放攻击、DDoS 攻击、注入攻击、会话 cookie 篡改、中间人攻击、内容篡改、参数篡改等,这些新型的安全威胁正在变得更加复杂化、多样化、隐蔽化、自动化。

解铃还须系铃人,提前预防常见的API漏洞,尽可能的保护API的安全!

1、图形验证码

将图形校验码和手机验证码进行绑定,在用户输入手机号码以后,需要输入图形校验码成功后才可以触发短信验证,这样能比较有效的防止恶意攻击。目前大部分应用都是采用这种方式。

2、限定请求次数

在服务器端限定同一IP地址,同一设备,同时间范围内的接口请求次数。比如同一号码重复发送的时间间隔,一般为60或120秒;设置每个IP每天最大的发送量;设置单个手机号每天的最大发送量。

3、流程条件限定

将手机短信验证放在最后进行,比如需要用户必须注册后,或者用户必须填写了某些条件才能进行短信验证。

4、归属地是否一致

服务器端检查用户的IP所在地与手机号归属地是否匹配,如果不匹配则提示用户手动操作等。

5、服务器接口验证

当用户登录成功后,返回一个由Token签名生成的秘钥信息(Token可使用base64编码和md5加密,可以放在请求的Header中),然后对每次后续请求进行Token的封装生成,服务器端在验证是否一致来判断请求是否通过。

(1) 常规的方法:用户登陆后生成token,返回客户端,然后服务器使用AOP拦截controller方法,校验token的有效性,每次token是一样的;

(2) 用户登陆后生成临时token,存到服务器,并返回客户端,客户端下次请求时把此token传到服务器,验证token是否有效,有效就登陆成功,并生成新的token返回给客户端,让客户端在下一次请求的时候再传回进行判断,如此重复。 这种方法有性能问题,但也有一个漏洞,如果用户在一次请求后,还未进行下一次请求就已被黑客拦截到登录信息并进行假冒登录,他一样可以登录成功并使用户强制下线,但这种方法已大大减少被假冒登录的机会。

(3) 两层token:一般第一次用账号密码登录服务器会返回两个token,时效长短不一样,短的时效过了之后,发送时效长的token重新获取一个短时效,如果都过期,那么就需要重新登录了。当然更复杂你还可以做三层token,按照业务分不同token。

6、采用https

线上的api接口开启https访问,这样做的被抓包的难度会提高很多,而且https需要秘钥交换,可以在一定程度上鉴别是否为伪造的网络非真人IP地址。

7、服务器端代理请求

这也是解决网站跨域的方案之一,采用服务器代理可以有效的防止接口真实地址的暴露。

感谢您的阅读,服务器大本营助您成为更专业的服务器管理员!
一入IDC深似海,从此你我是良人!
您需要登录后才可以回帖 登录 | 我要入营

本版积分规则

Loading...

QQ|Archiver|手机版|小黑屋|服务器大本营 ( 赣ICP备2021009089号 )

GMT+8, 2024-6-20 16:45 , Processed in 0.080819 second(s), 25 queries .

Powered by 服务器大本营

© 2021-2023 联系飞飞

快速回复 返回顶部 返回列表