华为云用户手册

  • 什么是勒索病毒 勒索病毒,是伴随数字货币兴起的一种新型病毒木马,通常以垃圾邮件、服务器入侵、网页挂马、捆绑软件等多种形式进行传播。一旦遭受勒索病毒攻击,将会使绝大多数的关键文件被加密。被加密的关键文件无法通过技术手段解密,用户将无法读取资产中的文件,即使向黑客缴纳高昂的赎金,也不一定能将被加密的文件无损的还原。黑客通常要求通过数字货币支付赎金,一般无法溯源。 如果关键文件被加密,企业业务将受到严重影响;黑客索要高额赎金,也会带来直接的经济损失,因此,勒索病毒的入侵危害巨大。 勒索病毒具有传播方式多样性和顽固的攻击性特征,一旦被勒索病毒入侵,资产和经济都将遭受重大损失。
  • Linux主机安全加固建议 设置所有OS系统口令(包括管理员和普通用户)、数据库账号口令、应用(WEB)系统管理账号口令为强口令,密码12位以上。强口令设置请参见账户密码最佳实践。 将主机登录方式设置为密钥登录。密钥登录设置请参见主机密码被暴力破解的解决方案。 应用程序不以管理员权限账号运行,应用程序(如Web)不使用数据库管理员权限账号与数据库交互设置安全组,仅向公网开放必要端口,业务WEB控制台端口、局域网内部通信端口避免暴露在公网。关闭高危端口(如SSH端口),或采取限制允许访问端口的源IP、使用VPN/ 堡垒机 建立的运维通道等措施消减风险。 业务数据定期异地备份,避免黑客入侵主机造成数据丢失。 定期检测系统和软件中的安全漏洞,及时更新系统安全补丁,将软件版本升级到官方最新版本。 建议从官方渠道下载安装软件,对非官方渠道下载的软件,建议使用杀毒软件扫描后再运行。 为彻查主机和应用方面潜在的安全风险,建议使用华为云官方提供的管理检测与响应服务进行全面的安全体检或使用主机安全服务深度防御: 管理检测与响应服务请参见:https://www.huaweicloud.com/product/ses.html。 企业主机安全 服务请参见:https://www.huaweicloud.com/product/hss.html。 父主题: 主机安全排查(Linux操作系统)
  • 什么是挖矿 数字货币因其技术去中性化和经济价值等属性,逐渐成为大众关注的焦点,同时,通过恶意挖矿获取数字货币是黑灰色产业获取收益的重要途径。 其中,挖矿是指通过大量计算机运算获取数字货币-虚拟货币奖励的过程。恶意挖矿攻击就是在用户不知情或未经允许的情况下,占用受害者的系统资源和网络资源进行挖矿,从而获取加密货币牟利。 肉鸡也称傀儡机,是指可以被黑客远程控制的机器。肉鸡可以是各种系统,如Windows、Linux、Unix等,更可以是一家公司、企业、学校甚至是政府军队的服务器。 主机被挖矿最直接的影响就是大量消耗系统资源,使系统其他软件或服务运行缓慢,性能变差。同时,黑客还可能通过挖矿程序窃取机密信息,比如机密文件、关键资产的用户名和密码等,导致资产遭受更进一步的损失。
  • 解决方案&防护措施 针对UDP反射放大攻击方式,您可根据业务的实际情况做出应对措施,下面提出几点建议性防护措施,供您参考。 关注网络安全防护设备和服务厂商发布的最新安全公告,及时对此类攻击做出针对性防护策略。 云服务器内通过防火墙对UDP端口进行限制。 通过安全组对UDP端口进行限制,华为云用户可参见E CS 配置安全组规则。 启动绑定本地监听IP,禁止对外访问、禁用UDP协议、启用登录认证。 调整应用程序中的一些参数,并且重启服务器达成禁用UDP的效果。 通过对业务历史报文数据的统计学习,建立正常业务包大小的正态分布图,由此可以清晰识别出超大或超小包攻击报文。 父主题: UDP反射放大攻击安全排查
  • 整改建议 针对不同的投诉类型,华为云会实施不同的风险遏制措施。 您可以打开反垃圾邮件组织地址,输入您的IP,单击“Start Testing”,查询有无IP记录,判断是否为反垃圾邮件组织的投诉,如图 反垃圾邮件组织所示,然后做出对应情况的处理。 图1 反垃圾邮件组织 如果页面未显示任何IP记录并停留在初始页面,表示非反垃圾邮件组织投诉。 请您尽快停止使用该IP地址的主机发送垃圾邮件,并对邮箱做好防护,防止他人恶意利用。若未在预警邮件规定的时间内整改完成,您的资源将会面临被拦截限制(包括但不限于封禁端口、冻结IP)的风险。 如果页面显示有您的IP记录,表示是反垃圾邮件组织投诉。 反垃圾邮件组织已将您的IP列入黑名单,会限制绑定该IP地址的主机访问网站和对外发送邮件,请您尽快停止使用该IP地址的主机发送垃圾邮件,并对邮箱做好防护。 被反垃圾邮件组织拉黑,将严重损害华为云的服务形象,华为云将永久冻结您的IP且无法解冻。请重新绑定新的IP地址使用。
  • 常用命令 命令 作用 cd 切换目录。 当前目录:【./】(同级目录)可省略 上一级目录:【../】 上上一级目录:【../../】 dir /a:(磁盘) 缺省包含所有文件(系统文件.隐含文件) more 分屏显示文件内容 tasklist 查看进程 netstat -ano 查看链接 wmic startup list full 查看自启 net user 查看用户 示例: 查找D:\Apps\下,包含“DR”的文件: dir /a-d /s "D:\Apps\IDE" | findstr "DR" 查找C盘下,包含“exe”的文件和目录:dir /s C: | findstr "exe"
  • 操作步骤 查看主机是否存在异常进程。 查询命令:top 根据CPU占用率、进程名称等判断是否存在异常进程,如下可疑进程CPU占用率超过100%。 根据异常进程PID值,查看文件位置。 查询命令:lsof -p+进程PID值(如25267) 发现目录下的异常文件(带有xmr或mine的标识)。 查看文件命令:ll -art 查询木马路径:pwd 查询文件中是否存在异常地址:strings +文件名(如config.json)+ |grep xmr 建议重点排查以下目录:/etc为配置文件、/tmp为临时文件、/bin为可执行文件。 用户命令;用到的库文件可能在/lib,配置文件可能在/etc,/sbin为可执行文件。 管理命令;用到的库文件可能在/lib,配置文件可能在/etc,/usr/为只读文件,shared read-only,/usr/local为第三方软件) Linux命令大全请参见Linux命令大全。 发现疑似矿池信息,将URL(xmr.flooder.org:80)放到微步上检测,结果为矿池。 查看主机用户权限。 查询命令:cat /etc/passwd|grep +用户名(如bash) nologin的用户没有登录权限,此处需重点查看存在登录权限的用户。 根据主机登录日志文件,查看异常登录记录。 查询命令:cat +文件名(如 secure)|grep Acc|grep +用户名(如oracle) 根据成功日志寻找登录主机的习惯时间,需关注与木马植入相近的时间。 根据登录的时间关注是否有异常IP登录及登录的频次(包括成功或失败的次数),若异常IP登录次数多则疑似为爆破行为。 如果上述方法均不能解决您的疑问,请“提交工单”寻求更多帮助。
  • 操作步骤 打开“TCPView”文件夹,双击“Tcpview.exe”文件,在弹出的对话框中,单击“Agree”。 查看当前TCP连接状态,判断该进程是否为木马程序。 如果发现存在不知名进程,并且存在大量的SYN_SENT状态的连接,该进程疑似为木马程序。 如果某个进程的连接的端口非常有规律(如6666,2333等),或者在RemoteAddress这一栏自动解析的host中包含mine,pool,xmr等关键字,该进程疑似被感染病毒。 (仅供参考)您可以通过安全检测网站,检测外网远程地址或者URL进行在线查询判断。 检测地址:https://x.threatbook.cn/ 微步检测IP:需要检测的网站IP。
  • 排查方法 本章节内容主要指导您:排查主机是否被作为UDP反射攻击的“放大器”利用。 使用root账户登录服务器。 本例中,该服务器正常运行情况下每秒发送10个长度为800Byte的UDP数据包。 执行以下命令,查看当前的网络连接与进程。 netstat -anput 分析当前的网络连接与进程是否存在异常,建议利用netstat -anpt命令进行查看;若当前连接与进程已停止或被隐藏,可以利用抓包方式进行分析,需要安装tcpdump抓包工具。 执行以下命令抓包,分析UDP流量攻击。 tcpdump -nn udp 抓包结果如图1显示。 图1 UDP对外攻击数据包 执行以下命令,将抓包分析结果暂存至/home文件夹中,文件名为udp.pcap。 nohup tcpdump -nn udp -c 1000000 -w /home/udp.pcap & 执行以下命令,对抓包分析结果进行分析,结果如图2所示。 tcpdump -nn -r /home/udp.pcap|awk -F'.' '{print $1}'|sort|uniq -c 图2 抓包分析结果 根据步骤3可知,图中被检查的设备正在对另一个IP地址发送数十个UDP长度为1460Byte的数据包,明显超出正常业务数据包的范畴,说明该设备正在被利用为UDP反射攻击的“放大器”对外攻击。 通过步骤b可知,图中设备UDP连接次数每秒高达5万次以上,说明图中设备所提供的服务被攻击者利用实施UDP反射放大攻击,需要对设备采取必要的防护措施,避免设备资源被攻击行为占用,影响正常业务。 父主题: UDP反射放大攻击安全排查
  • DDoS攻击的原理 拒绝服务(Denial of Service,简称DoS)攻击也称洪水攻击,是一种网络攻击手法,其目的在于使目标电脑的网络或系统资源耗尽,服务暂时中断或停止,导致合法用户不能够访问正常网络服务的行为。当攻击者使用网络上多个被攻陷的电脑作为攻击机器向特定的目标发动DoS攻击时,称为分布式拒绝服务攻击(Distributed Denial of Service Attack,简称DDoS)。
  • UDP反射放大攻击简介 UDP反射放大攻击,是一种具有超大攻击威力,且成本低廉,难以追踪的DDoS攻击方式。 基于UDP报文的反射DDoS攻击是这类攻击的一种实现形式,如图1所示。攻击者并不是直接发起对攻击目标的攻击,而是利用互联网的某些服务开放的服务器,通过伪造被攻击者的地址,向中间服务器发送基于UDP服务的特殊请求报文,而这些请求报文会形成成倍的数据发送到攻击目标,从而对后者间接形成DDoS攻击。 图1 UDP反射放大原理图
  • 案例 以下为主机被端口扫描攻击的几个案例: 案例一: 此机器正在对外大量扫描6379端口,示例如图1所示。 图1 端口扫描 查询发现这些IP地址均为境外IP。 案例二: 主机内发现异常进程,如图2所示。 图2 异常进程 查询发现此IP地址连接C&C。 C&C是指command-and-control命令与控制。简单来说就是一种机器与机器之间的通讯方式。 C&C服务器是由攻击者的计算机将命令发送到受恶意软件入侵的系统,并从目标网络接收被盗的数据。
  • 排查思路 本文档为您介绍两种Windows主机排查方法,推荐选择“工具溯源排查”的方法: 方案一:工具取证排查(推荐):使用Windows官方的进程/链接/自启动分析工具进行排查。 使用工具取证排查方案时,建议如下软件工具: 表1 软件工具 工具名称 下载地址 ProcessExplorer https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer Tcpview https://docs.microsoft.com/zh-cn/sysinternals/downloads/tcpview Autoruns https://docs.microsoft.com/zh-cn/sysinternals/downloads/autoruns busybox-x86_64 https://busybox.net/downloads/binaries/1.16.1/busybox-x86_64 方案二:DOS系统命令排查:通过Windows主机DOS系统命令排查。 父主题: 主机安全排查(Windows操作系统)
  • 分析过程 怀疑是业务堆积,处理慢导致时延。 通过查看监控数据,发现业务请求并不是很多,堆积最多时也只有50条消息,同时每秒新增消息只有10条左右,应该还没有到达处理极限。 排查EIP流量情况,发现入流量存在下降的场景。 联系EIP服务技术人员协助排查,未发现问题。 从业务日志中分析消费组行为。 通过查看服务端日志,消费组存在大量rebalance动作,大部分rebalance都会秒级完成,但偶尔会有分钟级别的rebalance耗时,而rebalance过程中是无法正常消费的,只有在rebalance动作完成才可以进行消费。 该现象与问题现象描述的偶现长时间时延行为相吻合,问题确定。
  • 背景知识介绍 消费组可以简单认为有两种状态REBALANCING和STABILIZED。 REBALANCING:消费组元数据发生变化,该状态下消费组中的所有消费者都无法进行正常的业务消费,该场景触发场景为消费组内有新的消费者加入或有已经建立连接的消费者退出。 STABILIZED:rebalance完成,消费组处于稳定状态,该状态下消费组中的消费者可以进行正常的业务消费,触发条件是,当前消费组内的所有消费者都同步完成新的消费组元数据,包括之前已经同步过的消费者,也需要重新同步。 消费组简单流程如下: 有新的消费者加入或退出,服务端记录的消费组元数据更新,服务端更新消费组进入REBALANCING状态。 服务端等待所有消费者(包含已有的消费者)同步最新的元数据。 所有消费者同步完最新的元数据后,服务端更新消费组状态为STABILIZED。 消费者开始正常的消费业务。
  • 问题解决措施 以下三种措施都可以解决此问题,请根据实际情况任意选择一种。 升级Kafka客户端的版本到2.7或以上版本,并设置“socket.connection.setup.timeout.ms”大于1s,且小于“request.timeout.ms/Kafka服务端节点数”。 修改Kafka客户端的“request.timeout.ms”大于“127s”。 修改Kafka客户端Linux系统的网络参数“net.ipv4.tcp_syn_retries”为“3”。
  • Java客户端常见报错 未关闭 域名 校验 出现下图的错误信息: 解决方案:检查consumer.properties和producer.properties文件,ssl.endpoint.identification.algorithm参数必须设置为空,关闭域名校验开关。 ssl.endpoint.identification.algorithm= 加载SSL证书文件失败 出现下图的错误信息: 解决方案: 请检查对应地址的client.jks文件是否存在。 检查进程和文件所属权限。 检查consumer.properties和producer.properties文件中的ssl.truststore.password参数是否配置正确。 ssl.truststore.password为服务器证书密码,不可更改,需要保持为dms@kafka ssl.truststore.password=dms@kafka Topic名称错误 出现下图的错误信息: 解决方案:用户重新创建Topic或者打开自动创建Topic开关。
  • 详细分析 查看用户消费组行为日志文件,文件中存在以下三种日志: Preparing to rebalance group 1 表示消费组开始进行rebalance,消费组状态变更为REABLANCING。 Stabilized group 表示消费组rebalance完成,消费组状态变更为STABILIZED。 Member consumer-xxx in group 1 has failed 表示消费组内的某一个消费者超时退出,一般触发场景是消费者长时间没有与服务端通信导致,比如处理消息耗时太久阻塞等。 对文件中每次Preparing到Stabilized完成的时间进行计算得到以下结果图。图中时间为UTC+0时间,对应北京时间需要加8小时。 图1 消费组rebalance图 从以上图中可以看出,消费组rebalance的性能在7月1号06:49(即北京时间7月1号14:49)以后存在明显劣化的情况,导致客户端异常。
  • Go客户端常见报错 使用GO客户端无法连接Kafka SSL,报“first record does not look like a TLS handshake”错误。 解决方案:go默认是关闭的,2021年1月前创建的实例,需要打开TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256或TLS_RSA_WITH_AES_128_CBC_SHA256加密套件。2021年1月以及之后创建的实例,需要打开TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256加密套件。
  • 响应消息 表2 响应参数 参数名称 是否必选 参数类型 说明 id 否 String 批处理作业的id。 appId 否 String 批处理作业的后台app id。 name 否 String 批处理作业名称。 owner 否 String 批处理作业所属用户。 proxyUser 否 String 批处理作业所属代理用户(资源租户)。 state 否 String 批处理作业的状态,请参见创建批处理作业中的表7。 kind 否 String 批处理作业类型,只支持spark类型参数。 log 否 Array of Strings 显示当前批处理作业的最后10条记录。 sc_type 否 String 计算资源类型。用户自定义时返回CUSTOMIZED。 cluster_name 否 String 批处理作业所在队列。 queue 否 String 批处理作业所在队列。 create_time 否 Long 批处理作业的创建时间。是单位为“毫秒”的时间戳。 update_time 否 Long 批处理作业的更新时间。是单位为“毫秒”的时间戳。 feature 否 String 作业特性。表示用户作业使用的Spark镜像类型。 basic:表示使用 DLI 提供的基础Spark镜像。 custom:表示使用用户自定义的Spark镜像。 ai:表示使用DLI提供的AI镜像。 spark_version 否 String 作业使用spark组件的版本号,在“feature”为“basic”或“ai”时填写,若不填写,则使用默认的spark组件版本号2.3.2。 image 否 String 自定义镜像。格式为:组织名/镜像名:镜像版本。 当用户设置“feature”为“custom”时,该参数生效。用户可通过与“feature”参数配合使用,指定作业运行使用自定义的Spark镜像。关于如何使用自定义镜像,请参考《 数据湖探索 用户指南》。 req_body 否 String 请求参数详情。
  • 响应示例 { "id": "0a324461-d9d9-45da-a52a-3b3c7a3d809e", "appId": "", "name": "", "owner": "", "proxyUser": "", "state": "starting", "kind":"", "log": [ "stdout: ", "stderr: ", "YARN Diagnostics: " ], "sc_type": "A", "cluster_name": "test", "queue": "test", "create_time": 1531906043036, "update_time": 1531906043036}
  • URI URI格式 POST /v2.0/{project_id}/datasource/enhanced-connections/{connection_id}/associate-queue 参数说明 表1 URI参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 connection_id 是 String 连接ID,用于标识跨源连接的UUID。具体为创建增强型跨源连接返回的连接ID。
  • 响应消息 表3 响应参数 参数名称 是否必选 参数类型 说明 is_success 是 Boolean 执行请求是否成功。“true”表示请求执行成功。 message 是 String 系统提示信息,执行成功时,信息可能为空。 table_count 是 Integer 表的总个数。 tables 是 Array of Objects 表的信息。具体参数请参见表4。 表4 tables参数 参数名称 是否必选 参数类型 说明 create_time 是 Long 表创建时间。是单位为“毫秒”的时间戳。 data_type 否 String 所列OBS表数据的类型,目前支持:parquet、ORC、CSV、JSON、Avro格式。 说明: 只有OBS表有该参数。 data_location 是 String 数据存储位置,分为DLI和OBS。 last_access_time 是 Long 最近更新时间。是单位为“毫秒”的时间戳。 location 否 String OBS表的存储路径。 说明: 只有OBS表有该参数。 owner 是 String 表创建者。 table_name 是 String 表名称。 table_size 是 Long DLI表的大小。非DLI表该参数值为0。单位为“Byte”。 table_type 是 String 表类型。 OBS表为EXTERNAL DLI表为MANAGED View为VIEW partition_columns 否 Array of Strings 分区字段。只有OBS分区表有该参数,其他表没有该参数。 page-size 否 Integer 分页大小,最小为1,最大为100。 current-page 否 Integer 当前页码,最小为1。 若URI中的过滤条件“with-detail=false”,则tables相关参数中只返回“data_location”,“table_name”,“table_type”三个参数。
  • 响应示例 { "is_success": true, "message": "", "table_count": 1, "tables": [ { "create_time":1517364268000, "data_location":"OBS", "data_type":"csv", "last_access_time":1517364268000, "location":"obs://DLI/sqldata/data.txt", "owner":"test", "partition_columns": ["a0"], "table_name":"obs_t", "table_size":0, "table_type":"EXTERNAL" } ]}
  • URI URI格式: GET /v1.0/{project_id}/databases/{database_name}/tables 参数说明 表1 URI 参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 database_name 是 String 查看表所在的数据库名称。 表2 query参数 参数名称 是否必选 参数类型 说明 keyword 否 String 过滤表名称的关键词。 with-detail 否 Boolean 是否获取表的详细信息(所有者,size等)。默认值为“false”。 page-size 否 Integer 分页大小,最小为1,最大为100。 current-page 否 Integer 当前页码,最小为1。 with-priv 否 Boolean 是否返回权限信息。 table-type 否 String 数据库表类型。包含以下类型: DLI表: MANAGED_TABLE OBS表 : EXTERNAL_TABLE 视图:VIRTUAL_VIEW datasource-type 否 String 数据源类型。包括如下类型: CloudTable CSS DLI DWS Geomesa HBase JDBC Mongo OBS ODPS OpenTSDB Redis RDS without-tablemeta 否 Boolean 是否获取表的元数据。默认值为“false”。该参数为“true”时,可以大大提高响应速度。 带入query参数的URL示例如下: GET /v1.0/{project_id}/databases/{database_name}/tables?keyword=tb&with-detail=true
  • 响应消息 返回码 成功返回200。 响应参数 表2 响应参数说明 参数 是否必选 参数类型 说明 create_time 是 Long 创建集群的时间。 description 否 String 集群的描述信息。 cu_count 是 Integer 与集群绑定的计算单元个数。 owner 是 String 创建集群的用户。 cluster_name 是 String 集群名称。 status 是 String 具体集群状态信息可参见表3。 resource_mode 是 Integer 集群类型。 0:共享集群 1:专属集群
  • 示例 请求样例: None 成功响应样例: { "clusters": [ { "create_time": 1508143955000, "cu_count": 16, "description": "test", "owner": "tenant1", "cluster_name": "cluster1", "status": "AVAILABLE", "resource_mode": 0 } ] } 调用接口出错后,将不会返回上述结果,而是返回错误码和错误信息,详细介绍请参见错误码。
  • URI URI格式: DELETE /v1.0/{project_id}/databases/{database_name}/tables/{table_name} 参数说明 表1 URI 参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 database_name 是 String 待删除的表所在的数据库名称。 table_name 是 String 待删除的表名称。 表2 query参数 参数名称 是否必选 参数类型 说明 async 否 Boolean 是否异步方式删除数据库,取值为“true”或者“false”。默认值为:false。 带入query参数的URL示例如下: DELETE /v1.0/{project_id}/databases/{database_name}/tables/{table_name}?async={is_async}
  • 请求消息 表2 请求参数 参数名称 是否必选 参数类型 说明 queue_name 是 String 队列名称。示例值:queue1。 user_name 是 String 被赋权用户名称。给该用户赋使用队列的权限,回收其使用权限,或者更新其使用权限。示例值:tenant2。 action 是 String 指定赋权或回收。值为:grant,revoke或update。当用户同时拥有grant和revoke权限的时候才有权限使用update操作。示例值:grant。 grant:赋权。 revoke:回收权限。 update:清空原来的所有权限,赋予本次提供的权限数组中的权限。 privileges 是 Array of Strings 待赋权、回收或更新的权限列表。可操作的权限可以是以下权限中的一种或多种。示例值:["DROP_QUEUE", "SUBMIT_JOB"]。 SUBMIT_JOB:提交作业 CANCEL_JOB :取消作业 DROP_QUEUE :删除队列 GRANT_PRIVILEGE: 赋权 REVOKE_PRIVILEGE:权限回收 SHOW_PRIVILEGES:查看其它用户具备的权限 RESTART:重启队列 SCALE_QUEUE:规格变更 说明: 若需更新的权限列表为空,则表示回收用户在该队列的所有权限。
  • 示例 请求样例: { "job_id":"6b29eb77-4c16-4e74-838a-2cf7959e9203"} 成功响应样例: { "is_success":"true", "message": "check upload id success", "mask":[ "mask_str_01", "mask_str_02" ]} 调用API出错后,将不会返回上述结果,而是返回错误码和错误信息,详细介绍请参见错误码。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全