楼主: nkspark
收起左侧

[技术原创] 《云安全》在线系列讲座之六 --- 搭建自己的云查杀平台Step by Step

  [复制链接]
nkspark
 楼主| 发表于 2011-4-25 14:23:32 | 显示全部楼层
本帖最后由 nkspark 于 2011-4-25 15:05 编辑

Step 2 架设云端服务器

当我们准备好黑白名单之后,搭建自己的云查杀平台的工作已经完成了大半.云端服务器的基本功能就是对用户提交的MD5值返回判定结果,如果MD5值在黑名单中,就直接告诉用户,这是病毒,至于病毒叫啥名字,本首席一向认为应该认真讲究一点,但目前绝大多数反病毒公司对待病毒命名都不大讲究,这也从某一方面显示了这些公司只要还能赚钱,其它能对付就对付了。本首席也不较真了,本讲座搭建的云查杀平台中病毒名字统一为“Win32/Trojan.Mtcd.Generic“。如果用户提交的MD5值在白名单中,就告诉用户此为正常文件。

如果用户提交的MD5值既不在黑名单中,也不在白名单中,那么告诉用户什么结果呢?告诉用户是病毒,至于为什么,本首席在下次讲座《云端用户管理》中解释。

现在我们来看看云端服务器可能承受的负载。假设本首席的云查杀平台有2亿用户,1/10的在线率就是2000万用户,这2000万用户中,绝大多数都在浏览网页、处理邮件,下载程序运行的少而又少,假设1/10000的比例发生在一小时之内,也就是2000次/小时的查询负载。一台386就能满足本首席的云查杀平台对2亿用户的支持。本首席每次讲云安全的时候,都会觉得自己的云端有点儿寒酸,这是为什么呢?

其实对于大规模突发查询的情形,本首席也考虑到了。但云查杀的特点就是“用户对实时性的要求不高”,哦?这个特点怎么和主流宣传的“云安全的特点是快速实时查杀”不一样,因为实际上,所有网络应用都无法保证实时性,这是基础协议固有缺陷之一。所以当出现大规模突发查询时,排队等就好了,超时怎么办?客户端自然会处理的。

本首席提供的云查杀平台云端服务器CloudServer支持千万量级的MD5黑白名单加载、查询,启动时间在几分钟之内,查询时间在毫秒级。

nkspark
 楼主| 发表于 2011-4-25 15:04:09 | 显示全部楼层
本帖最后由 nkspark 于 2011-4-25 17:00 编辑

CloudServer启动样例:

首先看一下CloudServer要加载的MD5文件:


  1. E:\Program\MD5Handler_2.0\Debug>MD5Handler.exe -f i:\md5list.txt -s i:\newmd5list.txt
  2. Load MD5 file time: 30 s.
  3. 10556768 MD5 strings are loaded! and 5278379 MD5 is unique!
复制代码
md5list.txt文件中包含10556768项MD5值,处理了一下,去掉相同项,剩下5278379项MD5值保存在newmd5list.txt中。

这里假设md5list.txt是白名单,newmd5list.txt是黑名单,看一下CloudServer的加载情况:

  1. E:\Program\CloudServer\Debug>CloudServer.exe
  2. Usage:  -w WhiteListMD5File -b BlackListMD5File
  3. 其中:
  4.           -w WhiteListMD5File   ,给出白名单文件位置;
  5.           -b BlackListMD5File   ,给出黑名单文件位置;

  6. E:\Program\CloudServer\Debug>CloudServer.exe -w i:\md5list.txt -b i:\newmd5list.
  7. txt
  8. 白名单加载完毕,加载有效MD5值 5278379 项,用时 67 秒。
  9. 黑名单加载完毕,加载有效MD5值 5278379 项,用时 18 秒。
  10. 服务器已启动!可接受查询。
复制代码
这里白名单加载有效MD5值显示为5278379 项,实际上处理了md5list.txt文件中包含10556768项MD5值,所以耗时多一些。做过预处理的黑名单加载时间快了4倍。

nkspark
 楼主| 发表于 2011-4-25 15:20:24 | 显示全部楼层
本帖最后由 nkspark 于 2011-4-25 17:01 编辑


彩蛋奉送,CloudServer响应文件定制样例:

当你构建自己的云查杀平台时,可以向用户返回自己定制的Web页面。


  1. Usage: CloudServer -w WhiteListMD5File -b BlackListMD5File  -r ResponseMessageFile
  2. 其中:
  3.             -r ResponseMessageFile,给出显示信息文件位置;
复制代码

ResponseMessageFile由3行组成,分别对应MD5值为未知文件、正常文件、病毒文件的响应Web页面:
  1. <html><body>//<br>//+++++++++++++++++++++++++++++++++++++++++++++<br>//<br>//CloudServer<br>//<br>// Written by Spark.<span>   </span>nkspark_at_gmail.com<br>//<br>//         2011.04.24<br>//+++++++++++++++++++++++++++++++++++++++++++++<br>//<br><br></body></html>
  2. <html><head></head><body>//<br>//+++++++++++++++++++++++++++++++++++++++++++++<br>//<br>//CloudServer<br>//<br>// Written by Spark.<span>   </span>nkspark_at_gmail.com<br>//<br>//         2011.04.24<br>//+++++++++++++++++++++++++++++++++++++++++++++<br>//<br><br>此为正常文件!<span id="porcentaje" style="color: red">0</span></body></html>
  3. <html><head></head><body>//<br>//+++++++++++++++++++++++++++++++++++++++++++++<br>//<br>//CloudServer<br>//<br>// Written by Spark.<span>   </span>nkspark_at_gmail.com<br>//<br>//         2011.04.24<br>//+++++++++++++++++++++++++++++++++++++++++++++<br>//<br><br><span id="porcentaje" style="color: red">1</span><table id="tablaMotores"><tr>此为病毒文件!</tr><tr><td>CloudAV</td><td>1.0</td><td>2011-04-23</td><td>Win32/Trojan.Mtcd.Generic</td></tr></table></body></html>

复制代码

lampwich
发表于 2011-4-25 16:52:40 | 显示全部楼层
首席的帖子都很好看...
nkspark
 楼主| 发表于 2011-4-25 17:18:46 | 显示全部楼层
本帖最后由 nkspark 于 2011-4-25 17:51 编辑

Step 3 客户端分发

当CloudServer启动后,我们自己的云查杀平台已经基本构建完成,用户端的查询软件可以任意编写,只要兼容CloudServer的自己定制的响应信息就可以了。本首席在CloudServer预设的响应信息完全与VirusTotal的查询响应信息格式一致,所以用本首席提供的CloudScanner就可以无缝的工作在CloudServer搭建的云查杀平台。这段话的意思是各位同学也可以使用自己编写的客户端,不一定非使用本首席的CloudScanner不可。

说实话,本首席提供的工具搭建的平台叫“云查杀”平台非常勉强。在专业人士眼里,“查”是“查”,“杀”是“杀”,是完全不同的两个概念。不过即使号称是反病毒公司的专业人士,很多人已经不知道“查杀”包含的是“检测”和“修复”两个概念,“修复”已经被完全等同于“删除”。嗯,在某专利里还有覆盖还原作为“修复手段”,比删除强一点点。不过想象一下,当整个C盘的可执行文件,少算一点儿,2G大小吧,都被病毒感染的情况下,传统意义下的“修复”可能10几分钟就完成了所有的病毒修复工作,而所谓云主防覆盖还原3天3夜才传回来1G,这种情况没有可能发生吗?

所以,本首席的这个平台,可能叫“云检测”更符合实际一点儿。
nkspark
 楼主| 发表于 2011-4-25 17:43:55 | 显示全部楼层
本帖最后由 nkspark 于 2011-4-25 17:48 编辑

客户端使用样例:
  1. E:\Program\CloudScanner_2.0\bin\Debug>CloudScanner.exe
  2. Usage: CloudScanner.exe [-c] [-f FileName | -d FolderName | -m MD5ListFile]
  3. 其中:
  4.        -f FileName   ,要扫描的文件全路径名。
  5.        -d FolderName ,要扫描的目录全路径名。
  6.        -m MD5ListFile,要扫描的MD5列表文件全路径名。
  7.        -r            ,包含子目录递归扫描。
  8.        -c            ,清除发现的病毒。
  9.        -v            ,显示详细结果。
  10.        -b            ,检查引擎可信度。
  11.        -s            ,云端服务器地址。
  12.        -t ResultFile ,统计扫描结果。
复制代码
  1. E:\Program\CloudScanner_2.0\bin\Debug>CloudScanner.exe -v -s 127.0.0.1 -f e:\Virus\NOTEPAD.EXE
  2. e:\Virus\NOTEPAD.EXE,正常文件,扫描用时0秒。
复制代码

nkspark
 楼主| 发表于 2011-4-25 17:53:00 | 显示全部楼层

本次讲座到此结束,欢迎收看。
nkspark
 楼主| 发表于 2011-4-25 18:29:09 | 显示全部楼层
lampwich 发表于 2011-4-25 16:52
首席的帖子都很好看...


多谢夸奖,欢迎常来。
poach55
发表于 2011-4-27 23:06:35 | 显示全部楼层
学习了,又学了些东西,谢谢。
ezpod32432
发表于 2011-4-28 08:26:15 | 显示全部楼层
技术帖必须顶啊。。。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-2-6 01:56 , Processed in 0.123380 second(s), 14 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表