0%

上周的博客文章《Linux内核模块升级》中,讲了通过升级Linux内核驱动模块xen-evtchn,解决掉一个Xen卡死问题,原因是port_user中port重用,触发kernel BUG。evtchn中port_user的实现,对指针的应用很巧妙:

  1. 将指针存储在无符长整形(unsigned long)中。
  2. 将port是否enabled保存在无符长整形从低地址开始的第一个bit中。
Read more »

工作

工作两年多了,一直想在在技术上有所突破,从无到有创建一个项目,从设计到实现,代码到文档,模块到架构,前端到后端,开发到运维,完整搞一遍,提升用计算机解决问题的专业性、规范性、系统性、权威性,在今年实现了。Xenforce是我今年甚至工作以来的得意之作,不但为部门业务提供了强劲动力,自己的技术能力也得到提升,它将很多技术点都串联了起来。

Read more »

目前沙箱虚拟化是基于Xen实现的,沙箱集群大概运行一两个月,会有一台服务器出现Xen卡死的情况,xl命令无法使用,虚拟机无法创建,不得不重启服务器。在项目开发初期,通过重启来解决这样的问题是可以接受的,毕竟出错的概率不是很高,但如果不从根本上解决此问题,心里就像压了一块石头。这样的产品也不能卖给客户,如果你对客户说:“服务器卡死了没关系,重启下就好”,后果会怎样?

现在就彻底解决下这个问题。

Read more »

自从开发完Xenforce+XenforceHub,虚拟机镜像部署变得异常简单,直接在要部署镜像的服务器上运行xenforce pull命令即可将需要的镜像从XenforceHub下载到本地,镜像可直接使用,无需更改配置,而且xenforce pull命令还会处理好镜像依赖,将依赖的镜像也下载下来。镜像部署变得完美,一切变得自动化,一切按照理想的方式工作着。

Read more »

按照计划,十一假期去了日本旅行,行程包括大阪、京都、神户、奈良、冲绳。

刚去第一天,日本就给我留下了深刻印象,那种闲适的感觉,慢慢体会,真想一直待下去。

Read more »

在cuckoo上测试我的xenforce,任务运行结果出现大量timeout错误,虽然以前也遇到过这个问题,但没当回事放过去了,现在有了xenforce还出现这种问题,是可忍孰不可忍,今天就认真排查下这个问题,消灭这只bug。

Bug现象是这样的,任务运行超时,错误日志有两种:

Read more »

上篇《Anti-VM之CPUID指令》,通过CPUID指令获取CPU信息,来判断环境是否是虚拟的。这篇从时间角度判断环境是否是虚拟的。

Intel和AMD为处理器增加了虚拟化扩展(Intel VT-x, AMD AMD-V),使得操作系统不做修改就可虚拟化。以Intel VT-x为例,VMM(Virtual Machine Monitor)运行在root模式,虚拟机运行在非root模式,在非root模式下,一些指令如RDMSR,WRMSR,CPUID需要在VMM才能执行,即会触发 VM exit, 从而带来时间上的开销,通过统计时间,就可以判断当前环境是否是虚拟的。

Read more »

相对于传统的静态分析检测,动态分析技术可以获得恶意样本的详细行为信息。恶意样本作者为了规避动态检测,采取了各种手段,如Anti-VM, Anti-Sandbox, Anti-Debugging。

Anti-VM是为了检测当前运行环境是否是虚拟环境,如果是,恶意样本会停止恶意行为,让安全研究员误认为此样本是良性的。比如恶意样本如果在物理环境下运行,会去连接C&C服务器,当检测到是在虚拟环境下运行时,则去连接正常的域名。

Read more »

这两天有一个大新闻,和美国国家安全局(NSA)有密切关系的方程式组织(Equation Group)遭到The Shadow Brokers攻击,大量黑客工具被泄露到网上,如果你感兴趣,一定已经下载下来把玩了一番:)。

将文件解压缩后,会看到文件用了GnuPG工具进行加密,简单了解了下GnuPG怎么用,现在分享出来。

Read more »