红色代码病毒分析

2001年08月07日 14:14:00

CODE RED 利用 IIS WEB 服务器 .IDA 缓冲区溢出漏洞传播。 如果它感染了一个主机,将会在受影响机器上作如下活动:

1、建立起初始蠕虫环境
2、建立起100个蠕虫线程
3、前99个线程会传播感染其它主机
4、第100个线程会检查自身是否运行于一个英文版本的 Windows NT/2000

如果是,它将会替换该主机页面

Welcome to http://www.worm.com !, Hacked By Chinese!

该信息会在10小时后自动消失,除非再次受到感染。

如果不是英文版本,它也会被用作感染其它主机。

5、每个线程会检查当地时间
如果时间位于 20:00 UTC 和 23:59 UTC 间,该线程会往 www.whitehouse.gov 发送 100K 字节数据。
如果小于 20:00 UTC,它会继续传播感染其它主机


在下面的详细分析中,将要用到

IDA(Interactive Disassembler) ,它来自www.datarescue.com。
MS VC++ 调试环境

我将该蠕虫分为三个部分以便研究:核心功能模块,hack web 页面模块,攻击 www.whitehouse.gov 模块。

一、核心功能模块

1、起始感染容器(已被感染并将传播蠕虫的主机)

当被感染时,系统内存将会呈现如下信息:


4E 00 4E 00 4E 00 4E 00
4E 00 4E 00 4E 00 4E 00
4E 00 4E 00 4E 00 4E 00
92 90 58 68 4E 00 4E 00
4E 00 4E 00 4E 00 4E 00
FA 00 00 00 90 90 58 68
D3 CB 01 78 90 90 58 68
D3 CB 01 78 90 90 58 68
D3 CB 01 78 90 90 90 90
90 81 C3 00 03 00 00 8B
1B 53 FF 53 78

EIP 会被 0x7801CBD3 重写。在 0x7801CBD3 处的代码将会被分解成 call ebx ,当 EIP 被 call ebx 重写保岬贾鲁绦蛄髦囟ㄏ蚧囟颜弧6颜簧系拇虢崽饺涑娲耄萌涑娲朐谄鹗?HTTP 请求体中。

2、建立起始堆栈变量

CODEREF: seg000:000001D6 WORM

首先,蠕虫建立一个充满 CCh 的 218h 字节堆栈,然后它将转而激活跳转函数。
所有的变量会被引用为 EBP-X 值。

3、装载函数(建立跳转表"jump table")
CODEREF: seg000:00000203 DataSetup

首先,蠕虫会引用 exploit 代码在 EBP-198h 中的数据部分。然后,它需要创建自己内部函数跳转表。
该蠕虫用到了一项 RVA (Relative Virtual Addresses) 查询技术,在一个 nutshell 中,RAV 被用来得到 GetProcAddress 的地址。GetProcAddress 然后被用来得到 LoadLibraryA 地址。它会用到这两个函数装载下面的函数:

GetSystemTime
CreateThread
CreateFileA
Sleep
GetSystemDefaultLangID
VirtualProtect

TcpSockSend

socket
connect
send
recv
closesocket

最后,蠕虫会存储 w3svc.dll 的基地址,该地址将被用来更改页面。


4、检查已经创建的线程:
CODEREF: seg000:00000512 FUNC_LOAD_DONE

它会运行 WriteClient (ISAPI Extension API 的一部分),发送"GET" 回进攻机。这应该是告诉告诉攻击机它已成功感染该机。

然后,它会计算活动的蠕虫线程
如果线程等于100,控制会转向 hack web 页面功能项。
如果线程小于100,它会创建新的线程。每一个新线程都是蠕虫的简单复制。

5、检查已存在的 c:/notworm
它有一个"lysine deficiency" 功能,用来保持恶意代码进一步传播。
如果该文件存在,它不会作其它动作;如果不存在,它会进行下一步。

6、检查受影响系统时间:
CODEREF: seg000:00000803 NOTWORM_NO
CODEREF: seg000:0000079D DO_THE_WORK

如果时间位于 20:00 UTC 和 23:59 UTC 间,该线程会往 www.whitehouse.gov 发送 100K 字节数据。
如果小于 20:00 UTC,它会继续传播感染其它主机

7、感染一个新的主机
如果能建立一个80端口连接,它将会发送自己的一个复制到那个 IP,如果发送成功,它会关闭 socket 并转到第5步,从而开始一个新的循环。

二、hack webpage 模块

如果100个线程产生,该模块会被调用

1、检查系统语言是否为英文,然后转到核心模块第5步
CODEREF: seg000:000005FE TOO_MANY_THREADS

2、休眠2小时
CODEREF: seg000:00000636 IS_AMERICAN
这应该是在更改页面之前作尽可能的传播。

3、试图改变受影响系统的 WEB 页面
CODEREF: seg000:0000064F HACK_PAGE

三、攻击www.whitehouse.gov 模块

创建 socket 连接到 www.whitehouse.gov 80 端口发送 100K 字节数据:
CODEREF: seg000:000008AD WHITEHOUSE_SOCKET_SETUP

首先,它会创建一个 socket 并连接到 198.137.240.91 (www.whitehouse.gov/www1.whitehouse.gov) 80 端口,
CODEREF: seg000:0000092F WHITEHOUSE_SOCKET_SEND

如果连接成功,它会创建一个循环:发送18000h 单字节send()''s 到该站点

CODEREF: seg000:00000972 WHITEHOUSE_SLEEP_LOOP

在 18000h send()''s 后,它会休眠4个半小时,然后重复此攻击。

From: Marc Maiffret by ntbugtraq maillist
CNNS 编译

解决方案:
1、如果系统已被感染,请到微软处下载安装补丁,并重启机器,相关信息参考
http://www.cnns.net/article/db/1720.htm

2、如果不能确定,可以通过在 MS-DOS 提示符中键入 netstat -an 查看,如果有过多的外部任意 IP 80 端口的连接,则可能是已受感染

worm, like the original Code Red worm, will only exploit Windows 2000
web servers because it overwrites EIP with a jmp that is only correct under
Windows 2000. Under NT 4.0 that offset is different, so the process will simply
crash instead of allowing the worm to infect the system and spread.
This analysis is of the newly spreading CodeRedII.
To see more information about the previous version of Code Red please see our
previous advisory:
Continued Threat of the "Code Red" Worm


Details
This analysis is broken up into 3 sections: infection, propagation, Trojan

To check if your system has been infected, look for the existence of the files:
c:/explorer.exe
d:/explorer.exe

Also check your IIS s folder and msadc folder to see if the file root.exe
exists. If it does then you have most likely been infected with this worm. Note:
An older sadmin Unicode worm also would rename cmd.exe to root.exe so you could
have a bit of cross over there.

To download this analysis and all disassembly files then go to:
http://www.eeye.com/html/advisories/coderedII.zip

Infection:
1st infection:

A. The first thing the worm does is setup a jump table so that it can get to all
of its needed functions.
seg000:000001D0

B. The worm then proceeds to get its local IP address. This is later used to deal
with subnet masks (propagation) and to make sure that the worm does not re-infect
the local system.
seg000:000001D5

C. Next, the worm gets the local System Language to see if the local system is running
Chinese (Taiwanese) or Chinese (PRC).
seg000:000001F9

D. At this point the worm checks if we have executed before, and if so, then the
worm will proceed to the propagation section. (See the propagation section)
seg000:0000021A

E. Next, the worm will check to see if a CodeRedII atom has been placed
(GlobalFindAtomA). This functionality allows the worm to make sure not to re-infect
the local machine. If it sees that the atom exists then it sleeps forever.
seg000:00000240

F. The worm will add a CodeRedII atom. This is to allow the worm the functionality
to check to see if a system has already been infected with the worm.
seg000:0000027D

G. The worm now sets its number of threads to 300 for non-Chinese systems. If the
system is Chinese then it sets it to 600.seg000:00000286

H. At this point the worm spawns a thread starting back at step A. The worm will
spawn threads according to the number set from G. Each new thread will be a propagation
thread.
seg000:000002BA

I. This is where the worm calls the Trojan functionality. You can find an analysis of
the Trojan mechanism down below in the Trojan System section. seg000:000002C4

K. The worm then sleeps for 1 day if the local system is not Chinese, 2 days if it is.
seg000:000002DA

L. Reboot Windows.
seg000:000002E1

Propagation:
This is used to spread the worm further.
seg000:000002EB

A. Setup local IP_STORAGE variable. This is used for worm propagation functionality and
to make sure not to re-infect the local system.
seg000:000002EB

B. Sleep for 64h milliseconds
seg000:000002F1

C. Get local system time. The worm checks to see if it the year is less than 2002 or
if the month is less than 10. If the date is beyond either of those, then the worm
reboots the local system. That limits the worm to 10/01 for its spreading (in a perfect
world.)
seg000:000002FD

D. Setup SockAddr_in. This will reference the GET_IP section.
seg000:0000031A

E. Setup Socket: This performs a Socket(), stores the handle, then makes it a
non-blocking socket (this is important for speed dealing with connect() calls)
seg000:00000337

F. Connect to the remote host, if it returns a connect right away, go to H.
seg000:00000357

The following is how the worm generates the IP address for the next host to connect to:

GET_IP: ; CODE XREF: sub_1C4+168 p

call GET_OCTET ; load 4th octet (this is in reverse order due to byte ordering)
mov bh, al
call GET_OCTET ; get 3rd octet
mov bl, al
shl ebx, 10h ; shift bx to the top of ebx
call GET_OCTET ; get 2nd octet
mov bh, al
call GET_OCTET ; 1st
mov bl, al
call GEN_OCTET ; get first octet
and eax, 7 ; and it by 7
call CHECK_ADDR_MASK ; ecx has eip

For each octet, generate a pseudo random byte between 1 and 254, next get a random
octet between 1 and 254 and mask it by 7 finally, use this last byte to gen a 1st octet.

Most pertinent bit is CHECK_ADDR_MASK

This specifies the following:
dd 0FFFFFFFFh ; 0 - addr masks
dd 0FFFFFF00h ; 1
dd 0FFFFFF00h ; 2
dd 0FFFFFF00h ; 3
dd 0FFFFFF00h ; 4
dd 0FFFF0000h ; 5
dd 0FFFF0000h ; 6
dd 0FFFF0000h ; 7

This mask is applied to the local systems IP address, and matched to the generated IP
Address. This makes a new IP with 0,1 or 2 bytes of data with the local IP.

For instance, the worm will 1/8th of the time generate a random IP not within any
ranges of the local IP Address.
1/2th of the time, it will stay within the same class A range of the local IP Address
3/8th of the time, it will stay within the same class B range of the local IP Address

Also, note that if the IP the worm generates is 127.x.x.x, 224.x.x.x, or the same as
the local systems IP address then the worm will skip that IP address and generate a
new IP address to try to infect.

The way the worm generates IP addresses allows it to find more possible IIS web servers
quicker then the other CodeRed worms that have previously been released. This new worm
is also going to cause a lot more data to be zig zaged across networks.

G. Do a select to get the handle. If no handle is returned, then go to K.
seg000:000003B6

H. Set socket to Blocking. This is so select is not required after the connect.
seg000:000003C5

I. Send a copy of the worm.
seg000:000003E4

J. Do a recv(), this is not actually used anywhere.
seg000:000003FC

K. Close the socket and loop to A.

Trojan system:
This portion of the worm is designed to dump root.exe (root.exe is cmd.exe) into msadc
and s, and create a Trojan on the local drive.

seg000:00000804

A. Get System directory, this gets the native system directory (i.e., c:/winnt/system32)
seg000:00000810

B. Append cmd to the system directory string (c:/winnt/system32/cmd.exe)
seg000:00000828

C. Set drive modifier to c:
seg000:0000082D

D. copy cmd.exe to / s/root.exe (Actual path: Drivemodifier:/inetpub/ s/root.exe)
seg000:00000831

E. copy cmd.exe to /msadc/root.exe (Actual Path: DriveModifier:/progra~1/common~1/system/MSADC/root.exe)
seg000:00000863

F. Initialize area for explorer.exe
seg000:000008A2

G. Create Drive/explorer.exe (drive is c, then d)
seg000:00000E83

H. The worm now writes out explorer.exe. There is an embedded binary within the worm
that will be written out to explorer.exe. It has the property that if an embedded byte
is 0xFC, it replaced by 20h 0x00 bytes instead of the regular byte. For more on what
the Trojan explorer.exe binary does then go to the Explorer.exe Trojan section. Also
the way NT works is that when a user logs into the local system it has to load
explorer.exe (desktop, task bar, etc.) however NT looks for explorer.exe first in the
main drive path c:/ which means the Trojan explorer.exe is going to be loaded the next
time a user logs in - therefore keeping the system Trojaned over and repeatedly.
seg000:00000EC8

I. close explorer.exe
seg000:00000ED5

J. Change drive modifier to D, then the worm goes back to the code in step D. After it
is done then it goes back to step k of the infection process.
seg000:00000EDD

Explorer.exe Trojan:
explorer.exe quick overview:

1. Get local systems windows directory.
2. Execute explorer.exe from within the local systems windows directory.
3. The worm now goes into the following loop:

while(1)
{
set SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon/SFCDisable to
0FFFFFF9Dh, which basically disables system file protection.
set SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/Virtual Roots/Scripts to ,,217
set SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/Virtual Roots/msadc to ,,217
Set SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/Virtual Roots/c to c:/,,217
Set SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/Virtual Roots/d to d:/,,217
sleep for 10 minutes
}

The above code creates a virtual web path (/c and /d) which maps /c to c:/ and /d
to d:/. The writer of this worm has put in this functionality to allow for a backdoor
to be placed on the system so even if you remove the root.exe (cmd.exe prompt) from your
/ s folder an attacker can still use the /c and /d virtual roots to compromise your
system. The attacks would look like:

http://IpAddress/c/inetpub/ s/root.exe?/c+dir (if root.exe was still there) or:
http://IpAddress/c/winnt/system32/cmd.exe?/c+dir Where dir could be any command an
attacker would want to execute.

As long as the Trojan explorer.exe is running then an attacker will be able to remotely
access your server.


Additional information
The information has been provided by Ryan Permeh and Marc Maiffret of eEye Digital Security



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=3480


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Wsyscheck是一款手动清理病毒木马的工具,其目的是简化病毒木马的识别与清理工作。 一般来说,对病毒体的判断主要可以采用查看路径,查看文件名,查看文件创建日期,查看文件厂商,微软文件校验,查看启动项等方法,Wsyschck在这些方面均尽量简化操作,提供相关的数据供您分析。 Wsyscheck基本功能简单介绍: 1:软件设置中的模块、服务简洁显示 简洁显示会过滤所微软文件,但在使用了“校验微软文件签名”功能后,通不过的微软文件也会显示出来。 SSDt右键“全部显示”是默认动作,当取消这个选项后,则仅显示SSDT表中已更改的项目。 2:关于Wsyscheck的颜色显示 进程页: 红色表示非微软进程,紫红色表示虽然进程是微软进程,但其模块中有非微软的文件。 服务页: 红色表示该服务不是微软服务,且该服务非.sys驱动。(最常见的是.exe与.dll的服务,木马大多使用这种方式)。 使用“检查键值”后,蓝色显示的是有键值保护的随系统启动的驱动程序。它们有可能是杀软的自我保护,也有可能是木马的键值保护。 在取消了“模块、服务简洁显示”后,查看第三方服务可以点击标题条”文件厂商”排序,结合使用“启动类型”、“修改日期”排序更容易观察到新增的木马服务。 进程页中查看模块与服务页中查看服务描述可以使用键盘的上下键控制。 在使用“软件设置”-“校验微软文件签名”后,紫红色显示未通过微软签名的文件。同时,在各显示栏的"微软文件校验"会显示Pass与no pass。(可以据此参考是否是假冒微软文件,注意的是如果紫红色显示过多,可能是你的系统是网上常见的Ghost精简版,这些版本可能精简掉了微软签名数据库所以结果并不可信) SSDT管理页: 默认显示全部的SSDT表,红色表示内核被HOOK的函数。查看第三方模块,可以点击两次标签“映像路径”排序,则第三方HOOK的模块会排在一起列在最前面。也可以取消“全部显示”,则仅显示入口改变了的函数。 SSDT页的“代码异常”栏如显示“YES”,表明该函数被Inline Hook。如果一个函数同时存在代码HOOK与地址HOOK,则对应的模块路径显示的是Inline Hook的路径,而使用“恢复当前函数代码”功能只恢复Inline Hook,路径将显示为地址HOOK的模块路径,再使用“恢复当前函数地址”功能就恢复到默认的函数了。 使用“恢复所有函数”功能则同时恢复上述两种HOOK。 发现木马修改了SSDT表时请先恢复SSDT,再作注册表删除等操作。 活动文件页: 红色显示的常规启动项的内容。 3:关于Wsyscheck启动后状态栏的提示“警告!程序驱动未加载成功,一些功能无法完成。” 多数情况下是安全软件阻止了Wsyscheck加载所需的驱动,这种情况下Wsyscheck的功能有一定减弱,但它仍能用不需要驱动的方法来完成对系统的修复。 驱动加载成功的情况下,对于木马文件可以直接使用Wsyscheck中各页中的删除文件功能,本功能带有“直接删除”运行中的文件的功能。 4:关于卸载模块 对HOOK了系统关键进程的模块卸载可能导致系统重启,这与该模块的写法有关系,所以卸载不了的模块不要强求卸载,可以先删除该模块的启动项或文件(驱动加载情况下使用删除后重启文件即消失)。 5:关于文件删除 驱动加载的情况下,Wsyscheck的删除功能已经够用了,大多数文件都可以立即删除(进程模块可以直接使用右键下带删除的各项功能),加载的DLL文件删除后虽然文件仍然可见,但事实上已删除,重启后该文件消失。 文件管理页的“删除”操作是删除文件到回收站,支持畸形目录下的文件删除。应注意的是如果文件本身在回收站内,请使用直接删除功能。或者使用剪切功能将它复制到另一个地方。否则你可能看到回收站内的文件删除了这个又添加了那个。 Wsyscheck的或“dos删除功能”需要单独下载Wsyscheck的附加模块文件WDosDel.dat,将此文件与Wsyscheck放在一起会显示出相关页面,添加待删除文件并重启,启动菜单中将出现“删除顽固文件”字样,选择后转入Dos删除文件。在某些机器上,若执行“dos删除”重启后系统报告文件损坏要修复(此时修复会造成文件系统的真正损坏),此时请不要修复而是立即关闭主机电源,重新开机。(这种情况是Dos删除所带的NTFS支持软件本身的BUG造成的,并不需要真正的修复,只需关闭电源重新开机即可。) “重启删除”与“Dos删除”可以同时使用。其列表都可以手动编辑,一行一个文件路径即可。关闭程序时如果上述两者之一存在删除列表,会问询是否执行。 注意,为避免
数据运营 作用&意义 知错能改,善莫大焉 —错在哪里,数据分析告诉你 运筹帷幄,决胜千里 —怎么做好“运筹”,数据分析告诉你 以往鉴来,未卜先知 —怎么发现历史的规律以预测未来,数据分析告诉你 工作思维 对业务的透彻理解是数据分析的前提 数据分析是精细化运营,要建立起体系化思维(金字塔思维) 自上而下 目标—维度拆解—数据分析模型—发现问题—优化策略 自下而上 异常数据 影响因素 影响因素与问题数据之间的相关关系 原因 优化策略 数据化运营7大经典思路 以目标为导向,学会数据拆分 细分到极致 追踪思路 运营的问题,是追踪出来的,不是一次就看出来的 所有的数据都是靠积累和沉淀才能发现问题,单一的数字没有任何意义,只能称为 “数值” 结合/拆分思路 追踪数据,多个维度结合分析。 从多个维度拆分数据 对比思路 大的营销事件作为节点单独标记,数据剔除出来单独进行分析 节点思路 如运营活动等 行为标记思路 将大动作的优化,大的项目上线及时标注在数据报表中 培养数据的敏感度 培养数据思维,从每天的各种数据报表开始 数据来源 数据埋点 初级 追踪每次用户的行为,统计关键流程的使用程度 中级 在产品中植入多段代码追踪用户连续行为,建立用户模型来具体化用户在使用产品中的操作行为 高级 研发团队合作,通过数据埋点还原出用户画像及用户行为 常用数据分析工具 友盟、Talkingdata 友盟的页面访问分析,对帮助分析用户流失有重要指导意义 网站Alexa排名查询、爱站网、中国网站排名、网络媒体排名 禅大师、ASO100 各种指数 百度指数、搜狗指数、腾讯浏览指数、360指数、某视频网站指数 数据库、运营后台等 工作内容 数据监控 检测异常指标,发现用户对您产品的”怒点“ 如:多次获取手机验证码,次数剧增 这里需要考虑有一个监控指标 新功能数据分析 通过留存曲线检验新功能的效果 通过留存看新功能用户的接受程度 通过用户反馈或调研,了解新功能接受度 数据指标 标记: 红色 整体概况 1、[大盘数据]用户及收入表格+折线图 注册用户(今天、昨日、近3天、近7日、近30天、全部) 新增用户、付费用户、充值总额 2、同时在线趋势折线图 在线人数一向是游戏火热程度的最好衡量 需要有同期对比功能,有参照物才能更好的比较 3、付费渗透 日付费率变化折线图 日付费率通常不稳定,一般情况下看周付费率或月付费率 付费率=充值人数/活跃人数*100% ARPU值变化折线图 ARPU值=总收入/活跃人数 ARPU值影响因素 活跃人数DAU发生较大变化 运营活动影响 金字塔 大R 是否有大R用户异常波动(大R用户流失或大R用户进入) 中、小R 大量中R、小R用户出现或消失 ARPPU值变化折线图 ARPPU值=总收入/付费人数 可以用来监控大R用户异常变化情况 如果该值异常波动,请进一步看鲸鱼用户数据 4、用户留存 新用户留存 次日、3日、7日、14日、30日留存 次日留存是对玩家“第一游戏体验”的最佳印证 与游戏的类型、题材、玩法、美术风格、游戏前期内容吸引度、新手引导有效性有直接的相关性 如果导入的新增玩家群体对游戏题材、玩法、美术风格不予认可,留存将会很差,且可优化的空间较小 优化新手引导和前期的游戏内容则可以有效帮助提升次日留存 7日、30日留存则与游戏难度、持续的活动运营、游戏内奖励机制有密不可分的关系 活跃用户留存 一般不分析活跃用户留存,而是通过DAU观察活跃用户流失数据 留存是评定游戏综合质量的最佳指标 5、平均使用时长和平均使用次数 可以使用柱状图来展现 两项宏观行为指标可反映出用户对app的依赖程度 如果留存较好,但时长和次数均不高,则可能是因过于强调每日登录奖励,但持续的app内容用户家缺乏吸引力所致 用户分析 用户规模 下载数量 新增用户 定义:每日注册并登录游戏的用户数量 ——解决问题 渠道贡献新用户份额分布,监控重点渠道 宏观走势,是否需要进行市场投放 判断是否存在渠道作弊行为、渠道包被下架等问题 日一次会话用户数 即新登用户中只有一次会话,且会话时长低于门阀值 ——解决问题 推广渠道是否有刷量作弊行为 渠道推广质量是否合格 用户导入是否存在障碍点,如网络状况和加载时间等 用户获取成本 解决问题 获取有效新登用户成本 如何选择正确的渠道优化投放 需要根据渠道来细分不同渠道的获取用户成本 了解用户成本 活跃用户 DAU(日活跃用户) 定义 每日登录过游戏的用户 解决问题 了解游戏的核心用户规模 了解游戏产品生命周期变化趋势、渠道活跃用户生命周期 了解游戏产品老用户流失和活跃情况 注意事项 日活跃=新增用户+回流用户+老用户 如果日活跃依靠新增为维持,留存肯定有问题 健康比例3:7,当然不同产品会有一定差异 WAU(周活跃用户) 定义 截止当日,最近一周含当日的7天内,登录过游戏的用户,一般按照自然周计算 解决问题 游戏的周期用户规模 游戏产品的周期性/每周变化趋势衡量 注意事项 利于在不同活跃用户规模的维度上发现和掌握游戏用户规模的变动 数据去重 MAU(月活跃用户) 定义 截止到当天,最近30天(含30天)登录过游戏的用户 解决问题 游戏总体用户规模并评估用户规模稳定性 推广效果评估 了解产品的粘性 注意事项 MAU层级的用户规模更加具有稳定性、相对变化很小 某个时期或版本更新对其可能也产生较大影响 数据去重 一定程度上可以观察游戏的生命周期 DAU/MAU(日活跃用户和月活跃用户的比例值) 一般极低值为0.2 保证产品能够达临界规模的病毒传播和用户粘度 忠实用户 连续3周登录的用户 目前分析价值不大 用户活跃 启动次数(时、日、周、月) 每日启动1次计算为1次启动 需要有一个间隔时间,30秒内多次启动只能计算为1次 解决问题 衡量用户粘度,数值越大越好 识别优质渠道,渠道是否存在刷量 什么渠道/用户启动次数多 日均使用时长 定义 活跃用户每日平均在线时长 解决问题 游戏的参与度怎么样 产品质量把控指标,游戏粘度如何 渠道质量如何 与单次使用时长结合分析留存和流失问题 用户活跃度 DAU/MAU,理论上不低于0.2,0.2*30=6天 解决问题 游戏的人气是增长、衰退还是稳定? 看趋势 一个月中,用户的活跃天数是多少 用户的游戏参与度如何 用户活跃率 活跃率=活跃用户/总用户 了解你的用户的整体活跃度,但随着时间周期的加长,用户活跃率总是在逐渐下降的 用户层次(轻度、中、重) 轻度用户:每周登录1~2次的用户 中度用户:每周登录3~5次的用户 重度用户:每周登录6~7次的用户 解决问题 了解用户忠实度,能否走得动”口碑传播“ 在线统计 实时在线曲线(每5分钟统计一次当时的用户同时在线人数) 上周同期对比 平均同时在线人数、最高同时在线人数和时间 每小时注册用户数 用户在什么节点来的多,需要重点监控该时间段app运行 用户画像 概述 是什么,有什么用,怎么做 构建用户画像的核心工作即是给用户贴“标签”,而标签是通过对用户信息分析而来的高度精炼的特征标识 作用 精准营销 分析产品潜在用户,针对特定群体利用短信、邮件等方式进行营销 用户统计 如购买某类书籍人数 TOP10 数据挖掘 定义 把散乱数据转换成有价值信息的过程 效果评估 完善产品运营,提升服务质量 其实这也就相当于市场调研、用户调研,定位服务群体,提高服务 个性化服务 对服务或产品进行私人定制,精准到某一类甚至每一位客户提供个性化服务 基本构成 用户静态属性 基本指标 年龄、性别、地域、学历、角色、收入、婚姻状态、职业 每个指标均需要从多个角度来分析,以区域为例 各区域充值总金额、充值人数、充值次数、付费率、arpu值分布 交叉分析 以区域和性别为例 不同性别+不同地域环境下,付费率数据…… 渠道分布 品牌、机型、操作系统、分辨率、联网、版本、设备均价、运营商 单设备注册账号数分析 可以分析小号分布情况 用户动态属性 动态属性指具有可变性 基本指标 用户的兴趣爱好、兴趣标签 在互联网上的活动行为特征 用户行为分析环节深入分析 用户消费属性 消费属性指用户的消费意向、消费意识、消费心理、消费嗜好等,对用户的消费有个全面的数据记录,对用户的消费能力、消费意向、消费等级进行很好的管理 用户心理属性 心理属性指用户在环境、社会或者交际、感情过程中的心理反应,或者心理活动 目前,用户心理相对会有难度,不用过多考虑 怎么做 数据收集 数据太多可以采用抽样的方法 数据建模 根据所获取到的数据建立模型,注入数据调整模型参数 数据分析及预测 数据可视化、输出报表、趋势预测 留存分析 留存(次~7日、14日、30日) 解决问题 用户对游戏的适应性 用户对于游戏的粘性 评估渠道用户的质量、投放渠道效果评估 新增用户什么时候流失在加剧? 注意事项 次日留存一定程度上代表了用户对游戏的满意度 主要反映了游戏初期新手对游戏引导和玩法的适应性 关注用户流失率的同时,需要关注用户流失节点 实际运用 常见的7日连续登录礼包 第七天送大卡就是为了次日和7日留存的漂亮 次留很低,可能原因 新手阶段不友好、开场不吸引人、游戏上手难度大 程序bug太多,闪退,卡死,无法登陆等 功能引导太繁琐 次留不低,但是第3-4天大量流失,可能引起的原因 游戏内容重复,单调、游戏挫败感太强;新手无对应保护等 如果只是某个渠道存在这个问题,可能存在渠道作弊 [略]僵尸用户(回归、留存) 流失用户(日周月、自然流失、回归流失) 周流失用户 上周登录过游戏,本周未登录过游戏的用户占上周周活跃用户比例 解决问题 活跃用户的生命周期是多少 哪个渠道的流失率比较高 版本更新对于用户的流失影响是多大 什么时期用户的流失率比较高 当游戏进入稳定期尤其值得关注该指标 (活跃用户的生命周期是多少, 哪个渠道的流失率比较高, 版本更新对于用户的流失影响是多大, 什么时期用户的流失率比较高) 稳定期一般来讲收入和活跃都相对比较稳定,是产品稳定的风向标 付费用户流失监控 用户运营需要高度重视的数据 找到付费用户流失模型(多少天未登录有多少概率流失) 流失原因分析指标 流失用户行为分析 流失前等级分布 是否存在卡点 流失用户生命周期 流失用户付费金额、流失用户付费次数、人数 流失原因分析——流失用户时间节点 流失前运营手段 运营活动、服务器问题、版本更新(bug、新版本用户不接受) app生态 用户成长体系是否健康 用户调研 用户留存分析流程 第一步:分组 按照不同的(时间/渠道/行为等)维度进行用户分组 时间分组 通常用于看整体数据,看整体留存是否出现异常情况 渠道分组 对比不同渠道留存数据 通过不同渠道数据对比,找到异常渠道数据或排出渠道因素 行为分组 按照功能点使用/未使用分组 第二步:对比 根据用户行为进行分组 例子 看贴功能内浏览了3篇贴子的新用户和仅浏览1篇贴子的新用户进行分析 来自A渠道的新用户进行(有使用看贴/未使用看贴)行为分组比较 渠道对比 是不是某些渠道的量出现问题 用户行为 功能使用及参与度 页面访问路径 衍生指标 人均浏览页面数和时长、启动次数、收藏、点赞、关注、评论等 最好形成漏斗模型,规划合理访问路径 关键路径上面各个页面的浏览量 页面转化&用户进入后一步步的转化情况 是否可以简化流程,减少用户操作步骤 (最好形成漏斗模型,规划合理访问路径) 用户习惯分析 平均使用时长 单次使用时长、日使用时长、周使用时长 可以进一步做渠道细分 平均启动次数 日、周、月启动次数 启动天数 周、月游戏天数 使用间隔 平均多长时间启动/使用一次app 用户对app的依赖程度 各个时间段启动app人数分布 用户行为 短期点击行为、搜索行为、收藏行为 等级分析 各个等级平均耗时 用户成长速度 需要严格控制高端用户成长速度 各个等级用户流失 各个等级次日、3日、7日、14日、30日未登录用户数分布 到底在哪个等级阶段用户流失严重? 各个等级用户分布数量 各个等级游戏次数 各个等级充值数据 累计充值总金额、充值人数、充值次数 哪个阶段是付费高峰期? 各个等级首次充值 各个等级首次充值人数、充值次数、各个等级首次充值金额选择 哪个等级段容易拉动首次充值行为? [辅助]各个等级消耗游戏币数据 新用户等级分析 首日等级 所选期间的新增玩家,在其新增当日中最终玩到的等级分布情况 首周等级 所选期间的新增玩家,在其新增7日后玩到的等级分布情况 14日等级 所选期间的新增玩家,在其新增14日后玩到的等级分布情况 近7日等级变化 堆叠图显示每日各个等级人数变化情况 分析新用户成长 (首日等级, 首周等级, 14日等级) 关卡/任务系统 新手引导转化率 任务参与人数及完成情况 支付转化率 漏斗模型的合理使用 用户传播 分享、互动、邀请等 付费分析 整体数据 付费总额 时间段内付费用户消费总额 收入下降,原因? 付费率下降? 付费用户流失比活跃用户流失严重 流失的是大R用户还是中小R用户?流失了多少个 付费用户停止付费但未流失 大R还是中小R停止付费? 哪些消费点的消费在下降或停止? arpu下降? 付费人数增加了? 付费人数无变化、付费金额下降了 哪些消费点的消费在下降?付费点已经饱和? 付费用户 时间段内进行过付费行为的用户数 其次还有一个付费次数、不去重 新增付费用户(日、周、月) 活跃付费用户数 定义 统计时间段内,成功付费的用户数,一般以月为单位统计 活跃付费用户数=月活跃用户数*月付费率 解决问题 了解产品的付费用户规模 付费用户整体的稳定性 了解付费用户构成 鲸鱼用户、海豚用户、小鱼用户各自数量和比例 注意事项 数据是去重的 ARPU 名词定义 平均每活跃用户收入 统计时间段内,总收入/活跃用户数,一般情况下以月为单位 衡量每个用户带来的平均收益 解决问题 评估不同渠道用户的质量 游戏收益贡献、人均收入 用于产品初期不同规模下的收入预估 (评估不同渠道用户的质量, 游戏收益贡献、人均收入) 注意事项 arpu值很高 ——大R付费能力很强,需要重点关注大R用户 付费率高,arpu值低 ——小R用户较多,要多关注小R用户 ARPPU 名词定义 平均每付费用户收入 统计时间段内,付费用户平均所创造的收入,一般以月为单位统计,因为月的数据相对比较稳定 解决问题 了解游戏付费用户平均的付费情况 付费用户整体的付费趋势 加强对鲸鱼用户的分析和监控 注意事项 容易受到鲸鱼和小鱼用户的影响 付费率(一般看月付费率) 名词定义 时间段内,付费用户数/活跃用户数 首充大礼包就是为了拉付费率 月付费率 名词定义 统计时间段类,付费用户/活跃用户比例,一般以月为单位计算 解决问题 游戏产品的付费引导是否合理、付费转化是否达到预期 用户付费倾向和意愿 需要结合首次付费功能、道具、等级整体分析 注意事项 付费率的高低并不代表付费用户的增加和减少 游戏类型不同,付费率有较大的差异 生命周期 定义 一个用户从首次进入游戏到最后一次参与游戏之间的时间间隔 一般计算平均值 14日LTV(新用户后续付费能力指标) 名词定义 用户在生命周期内所创造的收入 14日LTV 14日LTV=今日注册新用户在后续14天内付费额/注册的新用户数 这里计算的是一个平均值 解决问题 用户在游戏中会待多久 用户对于游戏的贡献价值是多少 付费用户流失数量 本周付费用户下周未登录人数 付费习惯 付费周期 首次付费周期 用户注册到第一次充值的平均时间间隔 付费周期 上一次付费和下一次付费的时间间隔 付费渠道 采用那种支付方式充值?支付宝、微信、公众号等 付费面额 主要为首次充值面额 首次大额度要纳入高端用户维系中去 用户问题、多少天未登录都要及时监控和跟进维系 不同时间段首次付费 用户数量 付费总金额 充值后首次消费行为分析 充值之后第一件事情是购买什么东西? 研究触发用户充值行为的原因,便于优化首充,提升付费率 需要把各个消费点理解透彻 新增付费用户 首次付费用户等级分布 首次付费时间间隔 首次充值面额 结合首次付费用户的游戏天数、累计游戏时长综合分析 (首次付费用户等级分布, 首次付费时间间隔, 首次充值面额) 不同性别/年龄阶段付费分析 首次付费分析 首次付费等级 首次付费周期 首次付费消费结构 首次付费选择订单面额分布 首次付费各个时间节点用户数量及付费总金额 看首次付费正在哪个时间段分布比较多 一周为单位,哪些时间点是付费高峰期? 首次付费用户及后续付费行为 首次付费行为产生原因 充值之后第一件事情是购买什么东西? 发现其中的规律,运营中可以更好利用首次付费 首次付费地域分布 首次付费渠道分布 付费场景 一定程度上可以理解为付费点,在哪些地方会产生付费 消费场景 消费人数和消费次数 鲸鱼用户 每日top100付费用户及累计付费金额数据 账号、id、电话、充值总额、消耗总额、最后登录时间、当前等级 加强对金字塔用户的运营管理 营销效果 新增用户 每小时新增用户 衡量推广效果的最基础指标 新增用户/活跃用户的比例也是衡量产品健康度的标准之一 比例过高,需要关注留存 新增用户渠道分布 活跃用户 渠道分布 启动次数 单次平均使用时长 留存率 检验产品用户吸引力的重要指标 若版本稳定的情况下,留存出现明显波动,很可能是渠道的问题 渠道充值数据 其他 用户行为是否正常、机型、设备分布 其他分析 货币产出和消耗数据 各等级货币消耗 消耗总量 消耗人数 消耗次数 不同道具消耗数据 用户调研 用户来源 用户来自哪里 用户属性 用户是谁 用户在做什么 用户行为 流失原因 用户建议 数据分析模型/方法论 [思维模型]AARRR分析模型 获取(Acquisition) 用户如何发现(并来到)你的产品? 激活(Activation) 用户的第一次使用体验如何? 留存(Retention) 用户是否还会回到产品(重复使用)? 收入(Retention) 产品怎样(通过用户)赚钱? 传播(Retention) 用户是否愿意告诉其他用户? 依据该模型,分出更细分的维度,罗列出影响每一个维度的变量 理解到这里即可,该模型更多的是一个思维模型,也可以叫方法论 (获取(Acquisition), 激活(Activation), 留存(Retention), 收入(Retention), 传播(Retention), 依据该模型,分出更细分的维度,罗列出影响每一个维度的变量) [思维模型]5W2H 何因(Why)、何事(What)、何人(Who)、何时(When)、何地(Where)、如何就(How)、何价(How much) 提供一种问题/业务分析思路 活动运营常用方法论,尤其是编写活动执行案的时候 如何更加全面的思考问题 [思维模型]PEST分析法 用于对宏观环境的分析,包括政治(political)、经济(economic)、社会(social)和技术(technological)四方面 适合做大环境、行业分析,一般情况下用途较少 [思维模型]4P营销理论 分析公司的整体营运情况,包括产品(product)、价格(price)、渠道(place)、促销(promotion)四大要素 以用于公司整体运营情况分析 [思维模型]用户行为理论 主要用于用户行为研究 用户行为理论步骤 认知 网站访问 主要指标有:PV、UV、人均访问页面量、访问来源 熟悉 网站浏览 主要指标有:页面停留时长、跳出率、页面偏好 网站搜索 主要指标有:搜索访问次数等 试用 用户注册 用户注册量、注册转化率 使用 用户登录 登录用户数、DAU等 用户订购 订单量、订购频数、内容、转化率 忠诚 用户粘性 回访者比例、访问深度 用户流失 流失数和流失率 [思维模型]鱼骨图 发现问题“根本原因”的分析方法 多维度分析 细分问题 趋势分析/折线图 数据监控 [思维模型]极简数据分析方法论 3个步骤 确定目标、列出公式、确认元素/字段 3个模型 [提升元素量级]漏斗模型 适用范围:需要多个步骤达成的元素 通过提升转化率,提升单个元素量级 [精细化]多维坐标 精细化运营 通过多维坐标将用户分组,对不同组用户采取对应的运营措施 用户运营也有个经典坐标,叫RFM坐标 [监测数据]分组表格 适用范围:随时间变化的用户属性元素 留存率分组表格 用户行为分析模型 行为事件分析 用户留存分析 魔法数字法 留存与关键用户行为关系组合图 GrowingIO留存曲线 漏斗模型 AIDMA理论是漏斗模型的理论基础 漏斗模型用途 漏斗模型适用于应用中某些关键路径的转化率的分析 以确定整个流程的设计是否合理,各步骤的优劣,是否存在优化的空间等 了解用户使用你应用的真正目的,为他们提供合理的访问路径或操作流程 解决方案思想 扩大漏斗口径 提升转化率 反向漏斗模型 倒推用法——根据目标倒推所需资源配置 趋势、对比、分组 趋势 从时间轴的维度,看某个流程或某个步骤前后优化效果及监控 比较 比较类似产品或服务使用流程转化,发现应用中存在的问题 细分 细分来源或不同的客户类型在转化率上的表现 发现一些高质量的来源或客户,通常用于分析网站的广告或推广的效果及ROI 用户行为路径分析 用户路径的分析结果通常以桑基图形式展现 见友盟——功能使用——页面访问路径 主要用途 分析关键路径上的页面跳转以及转化率,找到流失用户的页面 分析到达关键页面的页面来源,分析关键路径到达的页面 RFM模型/分析法(客户关系管理模型-用户分类方法) R:表示客户最近一次购买的时间 时间差 用户类型(活跃用户、休眠用户、流失用户) 理论上,最近一次消费时间越近的用户应该是比较好的用户 刻画用户的关注程度 F:表示客户在最近一段时间内购买的次数/频数 购买次数count 用户忠诚度 M:表示客户在最近一段时间内购买的平均金额 请注意是平均值 刻画用户的购买力 用户精细化运营常用模型 (R:表示客户最近一次购买的时间, F:表示客户在最近一段时间内购买的次数/频数, M:表示客户在最近一段时间内购买的平均金额) 用户细查 单个用户某行为或过程分析——进而上升到用户群体 如有没有多次获取验证码的情况 热力图 A/B测试(对比测试) 定义 通过对app的两个不同版本进行比较,来确定一个性能更好的方案 核心思想 提供多种方案,最终根据数据效果选择最优方案 注意事项 目标用户群一定是随机分配的 运用 不同创意/不同类型banner数据效果测试 在了解和分析各个渠道质量的时候,也可以运用A/B测试方法论 流失预警模型 分类模型 逻辑树分析法 把问题的所有子问题分层罗列 可用于业务问题专题分析 预测模型、分类模型 神经网络 朴素贝叶斯 支持向量机 K-临近邻算法 随机森林 预测模型 逻辑回归 聚合算法 K-Means 关联算法 Apriori算法 可用于游戏道具组合销售策略 异常检测 辅助算法等 主成分分析 特征选择法 降纬算法 数据分析报告 http://www.woshipm.com/operate/588326.html 运营日报 Excel 运营周报 一页简报——对关键指标汇总+总结,往往是领导要看的数据 多页子页——对关键指标的详细解读和说明、可视化 Excel 运营月报 PPT 数据分析报告 http://www.woshipm.com/data-analysis/677567.html 市场分析 市场需求 市场现状 找到突破口、找到目标用户在哪里 明确目标用户群体 年龄 收入 性别 爱好 目标用户体量 期待抢占多少用户比例 产品定位 基于目标用户需求制定计划 市场分析报告 竞品分析 了解 竞品的目标群体和推广策略 了解竞品运营需求,需要进行整理 了解竞品周边项目和战略布局 5w2h、swot分析 产品分析 产品市场定位 产品体验报告 左右资源 运营资源、技术资源、渠道资源 swot分析 数据运营精髓 通过数据指导运营决策 利用数据驱动业务增长 进一步深入 新增用户 新增设备、新增用户 活跃用户 新用户、老用户;各自数量及占比变化 付费用户 新付费用户、老付费用户;增长衰减变化 收入折线图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值