研究人员发现 Swagger 相关漏洞
liuian 2024-12-03 16:30 46 浏览
网络安全机构Rapid7发现了一个有关Swagger驱动代码生成器的漏洞,该漏洞有可能让使用Node.js、PHP、Ruby和Java(也有可能包括其他语言)语言所开发的程序暴露在被黑客利用的危险之下。上周Charlie Osborne在ZDNet发表了一篇文章,文章讲述了这个漏洞。
当某个API被Swagger等API描述语言查看的时候,这个描述会被用来自动生成SDK,该SDK可以让开发人员更轻松的使用他们所选平台上相关的Web API。类似的是,这个API描述还会自动生成一个功能端点。理论上,这两者都有可能产生风险。这个漏洞不仅会在技术上影响到自动生成的API端点,还有可能导致两种结果:
- 黑客能够修改在API描述被用来生成端点之前对该描述进行篡改。
- 这个篡改有可能逃过API设计和开发人员的监测。
而在SDK端,情况则稍有不同,因为很多API的SDK都并非API提供者自己所提供的。SDK通常是第三方所开发的,尤其是在一些不那么流行的平台上。
Rapid7表示,研究人员在Swagger代码生成器(Swagger CodeGen)中找到了一个漏洞,该漏洞有可能会影响到文章开头所提到的那些语言,还有人担心其他一些语言也会受到影响。Swagger CodeGen接近于一个开源工具,许多第三方SDK生成产品提供商都在使用。Rapid7程序安全研究员Scott Davis表示,该漏洞允许攻击者远程执行代码,存在于 Swagger Code Generator 中,属于参数注入漏洞,允许攻击者在 Swagger JSON 文件中嵌入代码,使用 Java、PHP、NodeJS 和 Ruby 等语言开发的 Web 应用如果整合了 Swagger API 会受到影响。
简单说,这个漏洞的危险性在于,黑客可以在基于Swagger的API定义中植入恶意的可注入参数,从而导致自动生成的SDK也携带这些参数。之后,所有由这些SDK所开发的程序也会受到影响,API提供方和终端用户也有可能受到影响。例如,Rapid7发现这种基于Swagger的定义可以在Node.js、PHP、Ruby和Java环境中被远程操控。没有什么可以组织第三方使用基于Swagger的工具来对公共API进行描述,以及根据这些描述来自动生成多个SDK。开发人员要做的是,谨慎对待每一个SDK,在使用任何一个在网络上下载的SDK之前,都要怀疑它有可能存在恶意注入参数。
另外,API提供商也需要保护自己的端点和基础系统不受一些常见的威胁的影响,例如代码注入。他们需要保护自己的API描述,以及相关的资产不会被篡改。
今年4月Rapid7最早将这个问题报告给了Swagger的供应商和API团队。6月16日CERT获得了补丁;23日,一个Metasploit模式被放出。目前Swagger建议开发人员使用OWASP ESAPI这个工具来净化代码以及缓和威胁。然而,OWASP ESAPI工具并不适用于所有语言。目前Swagger CodeGen的开发商已经放出了临时补救措施,但是这个措施只能解决一时的问题。
出处:sdk.cn
相关推荐
- 免费手机模拟器(免费手机模拟器下载)
-
目前能成功在电脑上模拟苹果系统的iOS模拟器,对比市面上常见的安卓模拟器少太多了,主要原因还是iOS系统比较封闭,难于开发。虽然前面说开发很困难,但是国内还是有一些厉害的IT小组成功推出了iOS模拟器...
- 新手怎么制作word表格(工作表格制作)
-
步骤如下:1、本次演示使用的软件为word文字处理软件,软件版本为Microsoftoffice家庭和学生版2016。2、首先打开Excel电子表格,根据问题描述,我们在word中插入两页表格。3、...
-
- 电脑开机启动进不了系统怎么办
-
一、修复错误如果频繁无法正常进入系统,则开机后马上按F8,看能否进入安全模式或最后一次配置正确模式,如能则进入后会自动修复注册表,并回忆前几次出现不正常现象时进行了什么操作,并根据怀疑是某个应用软件导致问题产生,将其卸载,然后正常退出,...
-
2026-01-02 13:05 liuian
- win11任务栏隐藏不了(win11任务栏怎么隐藏)
-
方法/步骤: 1、打开电脑桌面,双击我的计算机。 2、打开控制面板。 3、点击类别切换到大图标或小图标。 4、找到通知区域图标打开。 5、选择显示图标或隐藏图标也可以仅显示通知,选好以后点击...
- 笔记本注册表编辑器怎么打开
-
你好,要打开注册表编辑器,可以按照以下步骤进行操作:1.打开“运行”对话框。可以通过按下Win+R键组合,或者在开始菜单中搜索“运行”来打开。2.在“运行”对话框中,输入“regedit”并点...
- 怎样查询ip地址(怎么顺着ip地址找人)
-
答:查看ip地址的步骤如下,1.通过网页进行查询:可以通过第三方平台进行查询。2.通过电脑内部的网络连接进行查询:首先我们点击桌面右下角的开始,在开始的选项栏当中找到运行,点击运行,然后再用新的对...
- windows server 2003的应用(win2003应用程序服务器)
-
WindowsServer2003支持FAT16、FAT32和NTFS文件系统,同时也支持CDFS(光盘文件系统)和UDF(通用磁盘格式)。NTFS文件系统的安全性高于FAT文件系统,支持域的管理...
- c盘格式化恢复软件(格式化c盘 软件)
-
点我名字,然后点“他的空间”,我的空间有各种恢复软件的详细介绍、下载地址以及使用说明。C盘格式化后需重装操作系统,系统装好后,要恢复其他盘的软件的话可以在格式化C盘前将桌面数据备份在其他盘,重装完成后...
- u盘磁盘被写保护最简单解除方法
-
u盘磁盘被写保护解除方法,去掉u盘写保护可以先检查u盘写保护的按钮是否打开,然后在电脑上将u盘文件拷贝一份,接着右键点击u盘,选择属性选项,点击工具选项进入,点击开始检查选项,最后如果有问题点击修复即...
- 免费刷机工具(免费刷机工具哪个好用)
-
刷机机灵你的安卓手机智能管家:刷机精灵软件是一款适用于Andorid设备的一键刷机软件。它能够自动安装设备驱动、自动获取ROOT权限、自动刷入ClockworkmodRecovery以完成Andr...
- 硬盘重新分区怎么分(硬盘重新分区后怎么装系统)
-
对已分区的硬盘重新分区的方法如下:1. 备份重要数据:重新分区会格式化硬盘,导致数据丢失。因此,在进行重新分区之前,需要备份重要数据。2. 进入磁盘管理工具:在Windows操...
- 一键ghost快捷键(1键ghost)
-
一、开机连续按F8,在系统启动菜单中,选择一键还原选项进行一键还原。二、制作启动盘重装操作系统。安装GHOST版本操作系统方法:1、将制作好的PE启动U盘插入电脑USB接口(台式用户建议将u盘插在主机...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
