1.Hadoop Yarn REST API未授权漏洞利用挖矿分析
2.Hadoop--HDFS的源码API环境搭建、在IDEA里对HDFS简单操作
3.企业数仓实战案例- API数据如何接入数仓?
4.Hadoop YARN REST API 未授权访问导致远程代码执行漏洞: CVE-2021-33036/CNVD-2022-51055
Hadoop Yarn REST API未授权漏洞利用挖矿分析
背景情况:在5月5日,源码腾讯云安全警报指出,源码攻击者通过利用Hadoop Yarn资源管理系统REST API的源码未授权漏洞,对服务器进行攻击。源码攻击者可以在未授权的源码flash播放源码情况下远程执行代码。在预警前后,源码我们捕获了多个利用此漏洞进行挖矿的源码案例。以下是源码对其中一个案例的详细分析,包括安全建议和解决方案。源码
漏洞说明:Hadoop是源码一个分布式系统基础架构,其中YARN作为资源统一管理平台,源码用于集群资源的源码统一管理和调度。YARN允许用户通过REST API直接进行应用创建、源码任务提交等操作。源码若配置不当,REST API可能会开放至公网,导致未授权访问。黑客利用此漏洞,通过直接向API提交执行命令,实现远程命令执行,从而进行挖矿活动。
攻击步骤:黑客首先通过curl命令向服务器申请新应用,然后构造并提交包含挖矿命令的json文件。执行命令后,挖矿程序会在目标目录生成相应文件。域名采集源码
入侵分析:案例中,服务器部署了Hadoop YARN并存在未授权访问问题。黑客利用开放的REST API,下载执行.sh脚本并进一步下载启动挖矿程序,实现挖矿目的。脚本核心功能包括清理挖矿进程、文件,下载挖矿程序、配置文件,增加挖矿任务到crontab,以及通过多种方式确保挖矿程序的下载与执行。
安全建议:清理病毒,包括查看进程、检查目录、删除异常文件、清理crontab任务。安全加固措施包括限制端口访问、避免接口暴露于公网、升级Hadoop版本、启用Kerberos认证。安装云镜并开启专业版,及时检测和修复漏洞,或在中马后收到提醒进行止损。
IOCs:包括钱包地址、MD5值、远程唤醒+源码矿池地址及相关URL。这些信息对于识别和防御类似攻击至关重要。
Hadoop--HDFS的API环境搭建、在IDEA里对HDFS简单操作
Hadoop HDFS API环境搭建与IDEA操作指南
在Windows系统中,首先安装Hadoop。安装完成后,可以利用Maven将其与Hadoop集成,便于管理和操作。在项目的resources目录中,创建一个名为"log4j.properties"的配置文件,以配置日志相关设置。
接着,在Java项目中,创建一个名为"hdfs"的包,然后在其中创建一个类。这个类将用于执行对HDFS的基本操作,例如创建目录。
在程序执行过程中,我们首先通过API在HDFS上创建了一个新的目录,并成功实现了。然而,注意到代码中存在大量重复的客户端连接获取和资源关闭操作。为了解决这个问题,我们可以对这些操作进行封装。
通过在初始化连接的uoj+源码方法前添加@Before注解,确保它会在每个@Test方法执行前自动执行。同时,将关闭连接的方法前加上@After注解,使之在每个@Test方法执行完毕后自动执行。这样,我们实现了代码的复用和资源管理的简洁性。
经过封装后,程序的执行结果保持不变,成功创建了目录。这种优化使得代码更加模块化和易于维护。
企业数仓实战案例- API数据如何接入数仓?
在一个物联网大数据项目中,客户提出了一个需求:需要将各个第三方数据接入到数仓中。然而,由于安全或其他因素的考虑,客户不提供数据库层面的对接,而是通过API进行数据查询。为了实现这个需求,我们需要编写代码来实现数据进入数仓。整体思路如下: 首先,我们需要了解第三方数据的API接口,包括请求方式、参数、返回数据格式等。然后,我们可以使用Python编程语言和相关库(如requests、积分兑换+源码json等)来调用这些API接口,获取数据。 接下来,我们需要对获取到的数据进行处理,将其转换为数仓所需的数据格式。这可能涉及到数据清洗、转换、整合等操作。在这个过程中,我们可以使用Python的一些数据处理库,如pandas、numpy等。 处理完数据后,我们需要将数据存储到数仓中。这里我们可以选择使用Hadoop、Spark等大数据处理框架,也可以选择使用其他云服务商提供的数仓服务。在这里,我们采用的是直接操作HDFS文件,直接将数据后的数据以文件的方式导入到HIVE外表中,信息入库方案。 最后,为了保证数据的准确性和完整性,我们需要对整个数据接入过程进行监控和优化。这可以通过设置定时任务、日志记录、异常处理等方式来实现。 在整个过程中,数据以HDFS文件导入到HIVE的过程,就是我们实际工作中操作HDFS的案例。 以下为实际需求文档说明,主要是API的出入参说明: 当拿到如上参数后,我们需要对具体的API进行测试验证。这时候就需要依赖一些方便的工具,对API进行测试,截图使用的是apifox进行的演示截图,同类软件还有postman。 扩展阅读: Postman: 描述: Postman是一款流行的API开发环境,它允许用户通过简化的界面创建HTTP请求,从而测试和开发Web APIs。功能: 支持多种请求类型(如GET、POST、PUT、DELETE等),参数管理,预设置和脚本编写,响应结果查看和美化,集成测试脚本,以及API文档自动生成(使用Swagger或OpenAPI规范)等。使用场景: 适用于API的快速测试、开发、调试以及团队协作。平台: 主要提供桌面应用版本,同时有网页版和浏览器插件供选择。定价: 提供免费版本和付费的高级功能(如团队协作、私有网络集成等)。 APIfox: 描述: APIfox是一个综合性的API工具箱,不仅包含API测试的功能,还融合了API的设计、管理等多个方面的功能。功能: 支持模拟各种HTTP请求,自动化脚本测试,API文档设计和管理,API性能监控,团队合作等功能。使用场景: 适合需要全面管理API生命周期的场景,包括设计、开发、测试、调试和发布等阶段。平台: 主要提供桌面应用版本。定价: 通常也提供免费版本和更全面的付费版本。 当确认API数据无误,可访问后,接下来就可以开始编码过程了。此处,笔者采用的是Python进行数据的获取与处理。其中最核心原理,就是采用python的request发送接收数据。代码案例如下: 其中有几项操作需要说明:采用的是post方式进行发送。
使用python 的try方式,如果出现问题,抛异常,程序继续运行。
通过以上操作后,就可以得到我们的案例数据了。一段十分优美的json语句。 接下来,就需要将json语句转为hive能识别到的文件了。这里就需要额外提两个知识点。具体操作如下: 创建hive表:根据获取到的数据信息以及需求案例中的API描述,可以创建对应的hive表结构。案例如下:建立的是test库,以‘|’ 作为列分割符,以‘ ’回车换行作为行分割符,并且采用text的方式存储。具体对应的存储格式案例如下: 数据格式处理:那么只要将以上的json数据处理成这类格式就可以了。直接上案例代码:此处主要使用的方法有:将json转为python的dict格式;快捷链接方式的书写,将列之间用’|’ 链接;行结尾,以‘ ’链接。最后得到的数据案例如下: 数据上传:数据完成后,就是操作上传到hdfs了,需要使用到python的文件写入模块和hdfs的数据操作模块。案例代码如下:此处,主要采用了两个调用函数的方式来实现。将文件写入和hdfs操作进行了隔离,来进行多模块的调用。 任务是完成了,但是感觉还是不完美,因为,项目没上线啊。不可能在你的开发电脑上天天运行这个程序啊。还需要一个上线流程。 这里,我们采用dolphinscheduler作为整体的调度工具来进行项目的上线操作。我们预创建了一个etl的project来进行各个数据的录入过程。并且在项目中创建一个工作流。工作流中,采用python模块进行调度,其中具体内容,在代码模块中copy我们开发好的代码。然后保存上线,并配置一个定时调度管理。该功能就完成了。记得,自己运行下,查看下日志,十分能正常运行哦。 到此,所有任务完成。 在现实工作环境中,直接操作HDFS的情况较为罕见。当数据量较小时,通过API进行数据接入是一种可行的方案。由于每个API的数据获取方式和格式各不相同,并且缺乏像DataX或Sqoop这样的ETL工具支持,因此往往需要编写代码来手动处理数据录入。然而,在实际工作中,常见的做法是通过配置ETL工具来直接实现数据库的对接,无需编写代码,同时也避免了直接对HDFS的操作——尽管在底层,这些技术的运作原理是相似的。Hadoop YARN REST API 未授权访问导致远程代码执行漏洞: CVE--/CNVD--
最近某客户的信息安全部又发现了一个大数据Hadoop的安全漏洞,以下是关于该漏洞的分析及解决方案。
2. 漏洞信息
3. 漏洞正式解决-升级Hadoop版本
4. 漏洞缓解-不升级Hadoop版本
如果暂时不能升级Hadoop版本,可以采取以下措施临时缓解问题:
5. CVE相关信息与参考链接