专业、专注、专心
生产生活中常见现象
归类于: 社科知识

转自:天涯的博客

  250定律

  拉德认为:每一位顾客身后,大体有250名亲朋好友。如果您赢得了一位顾客的好感,就意味着赢得了250个人的好感;反之,如果你得罪了一名顾客,也就意味着得罪了250 名顾客。

  在你的网站访客中,一个访客可能可以带来一群访客,任何网站都有起步和发展的过程,这个过程中此定律尤其重要。

  达维多定律
  达维多认为,一个企业要想在市场上总是占据主导地位,那么就要做到第一个开发出新产品,又第一个淘汰自己的老产品。 国内网站跟风太严重,比如前段时间的格子网,乞讨网,博客网,一个成功了,大家一拥而上。但实际效果是,第一个出名的往往最成功,所以在网站的定位上,要动自己的脑筋,不是去捡人家剩下的客户。同理,买人家出售的数据来建站效果是很糟糕的。

  木桶定律

  水桶定律是指,一只水桶能装多少水,完全取决于它最短的那块木板。这就是说任何一个组织都可能面临的一个共同问题,即构成组织的各个部分往往决定了整个组织的水平。 注意审视自己的网站,是速度最糟糕?美工最糟糕?宣传最糟糕?你首先要做的,不是改进你最强的,而应该是你最薄弱的。

  马太效应

  《新约》中有这样一个故事,一个国王远行前,交给三个仆人每人一锭银子,吩咐他们:“你们去做生意,等我回来时,再来见我。”国王回来时,第一个仆人说: “主人,你交给我们的一锭银子,我已赚了10锭。”于是国王奖励他10座城邑。第二个仆人报告说:“主人,你给我的一锭银子,我已赚了5锭。” 于是国王例奖励了他5座城邑。第三个仆人报告说:“主人,你给我的一锭银子,我一直包在手巾里存着,我怕丢失,一直没有拿出来。”于是国王命令将第三个仆人的一锭银子也赏给第一个仆人,并且说:“凡是少的,就连他所有的也要夺过来。凡是多的,还要给他,叫他多多益善。”这就是马太效应。 在同类网站中,马太效应是很明显的。一个出名的社区,比一个新建的社区,更容易吸引到新客户。启示是,如果你无法把网站做大,那么你要做专。作专之后再做大就更容易。

  手表定理

  手表定理是指一个人有一只表时,可以知道现在是几点钟,而当他同时拥有两只表时却无法确定。

  一个网站,你只需要关注你特定的用户群需求。不要在意不相干人的看法。

  不值得定律

  不值得做的事情,就不值得做好 不要过度seo,如果你不是想只做垃圾站。不要把时间浪费在美化再美化页面,优化再优化程序,在你网站能盈利后,这些事情可以交给技术人员完成。

  彼得原理

  劳伦斯.彼得认为:在各种组织中,由于习惯于对在某个等级上称职的人员进行晋升提拔,因而雇员总是趋向于晋升到其不称职的地位。

  不要轻易改变自己网站的定位。如博客网想变门户,盛大想做娱乐,大家拭目以待吧。

  零和游戏原理

  当你看到两位对弈者时,你就可以说他们正在玩“零和游戏”。因为在大多数情况下,总会有一个赢,一个输,如果我们把获胜计算为得1分,而输棋为-1分,那么,这两人得分之和就是:1+(-1)=0 不要把目光一直盯在你的竞争网站上,不要花太多时间抢它的访客。我们把这些时间用来寻找互补的合作网站,挖掘新访客。

  华盛顿合作规律

  华盛顿合作规律说的是: 一个人敷衍了事,两个人互相推诿, 三个人则永无成事之日。 如果你看准一个方向,你自己干,缺人手就招。不要轻易找同伴一起搞网站,否则你会发现,日子似乎越过越快了,事情越做越慢了。

  邦尼人力定律

  一个人一分钟可以挖一个洞,六十个人一秒种却挖不了一个洞。合作是一个问题,如何合作也是一个问题。

  你需要有计划。

  牛蛙效应

  把一只牛蛙放在开水锅里,牛蛙会很快跳出来;但当你把它放在冷水里,它不会跳出来,然后慢慢加热,起初牛蛙出于懒惰,不会有什么动作,当水温高到它无法忍受的时候,想出来,但已经没有了力气。 如果你是soho,注意关注你的财务。不要等到没钱了再想怎么挣,你会发现那时候挣钱更难。

  蘑菇管理

  蘑菇管理是许多组织对待初出茅庐者的一种管理方法,初学者被置于阴暗的角落(不受重视的部门,或打杂跑腿的工作),浇上一头大粪(无端的批评、指责、代人受过),任其自生自灭(得不到必要的指导和提携)。

  做网站毕竟要遭遇这样的阶段,搜索引擎不理你,友情链接找不到,访客不上门。这是磨练。

  奥卡姆剃刀定律

  如无必要,勿增实体。

  把网站做得简单,再简单,简单到非常实用,而不是花俏。google的首页为什么比雅虎好?

  巴莱多定律(Paredo 也叫二八定律)

  你所完成的工作里80%的成果,来自于你20%的付出;而80%的付出,只换来20%的成果。

  随时衡量你所做的工作,哪些是最有效果的。

  马蝇效应

  林肯少年时和他的兄弟在肯塔基老家的一个农场里犁玉米地,林肯吆马,他兄弟扶犁,而那匹马很懒,慢慢腾腾,走走停停。可是有一段时间马走得飞快。林肯感到奇怪,到了地头,他发现有一只很大的马蝇叮在马身上,他就把马蝇打落了。看到马蝇被打落了,他兄弟就抱怨说:”哎呀,你为什么要打掉它,正是那家伙使马跑起来的嘛!” 在你心满意足的时候,去寻找你的马蝇。没有firefox,不会有ie7,firefox就是微软的马蝇之一。马蝇不可怕,怕的是会一口吃掉你的东西,像 ie当初对网景干的那样。

  最高气温效应

  每天最热总是下午2 时左右,我们总认为这个时候太阳最厉害,其实这时的太阳早已偏西,不再是供给最大热量的时候了。此时气温之所以最高,不过是源于此前的热量积累。

  你今天的网站流量,是你一个星期或更长时间前所做的事带来的。

  超限效应(溢出效应)

  刺激过多、过强和作用时间过久而引起心理极不耐烦或反抗的心理现象,称之为“超限效应”。 别到别人论坛里发太多广告。别在自己网站上放太多广告。别在自己的论坛里太多地太明显地诱导话题。

  懒蚂蚁效应

  生物学家研究发现,成群的蚂蚁中,大部分蚂蚁很勤劳,寻找、搬运食物争先恐后,少数蚂蚁却东张西望不干活。当食物来源断绝或蚁窝被破坏时,那些勤快的蚂蚁一筹莫展。“懒蚂蚁”则“挺身而出”,带领众伙伴向它早已侦察到的新的食物源转移。 不要把注意力仅仅放在一个网站上,即使这个网站现在为你带来一切。你要给自己一些时间寻找新的可行的方向,以备万一。

  长尾理论

  GPKE.NET认为,只要存储和流通的渠道足够大,需求不旺或销量不佳的产品共同占据的市场份额就可以和那些数量不多的热卖品所占据的市场份额相匹敌甚至更大。 对于搜索引擎,未必你需要一个热门词排在第一位,如果有一千个冷门词排在第一位,效果不但一样,还会更稳定更长远。

  破窗理论

  栋建筑上的一块玻璃,又没有及时修好,别人就可能受到某些暗示性的纵容,去打碎更多的玻璃。 管理论坛时,如果你发现第一个垃圾贴,赶紧删掉他吧。想想:落伍现在为什么那么多××贴?现在控制比最初控制难多了。

  “羊群效应”,又称复制原则(Copy Strategy)

  一个羊群(集体)是一个很散乱的组织,平时大家在一起盲目地左冲右撞。如果一头羊发现了一片肥沃的绿草地,并在那里吃到了新鲜的青草,后来的羊群就会一哄而上,争抢那里的青草,全然不顾旁边虎视眈眈的狼,或者看不到其它地方还有更好的青草。

  不要轻易跟风,保持自己思考的能力。

  墨菲定律

  如果坏事情有可能发生,不管这种可能性多么小,它总会发生,并引起最大可能的损失。

  除非垃圾站,否则不要作弊,对搜索引擎不要,对广告也不要。

  光环效应

  人们对人的某种品质或特点有清晰的知觉,印象比较深刻、突出, 这种强烈的知觉, 就像月晕形式的光环一样,向周围弥漫、扩散,掩盖了对这个人的其他品质或特点的认识。

  不要轻易崇拜一个人或者公司、一个概念、一种做法。

  蝴蝶效应

  一只亚马逊河流域热带雨林中的蝴蝶,偶尔扇动几下翅膀,两周后,可能在美国德克萨斯州引起一场龙卷风。

  不管你做什么,网站或者其他,你都应该关注新闻。机遇或者灾难可能就在那。

  阿尔巴德定理

  一个企业经营成功与否,全靠对顾客的要求了解到什么程度。 我赞同别人的点评:看到了别人的需要,你就成功了一半;满足了别人的需求,你就成功了全部。

  尤其是做网站。

  史密斯原则

  如果你不能战胜他们,你就加入到他们之中去。

  不要试图做孤胆英雄。如果潮流挡不住,至少,你要去思考为什么。

yanhui @ 2:33 pm
入侵防御系统的过去、现在和未来
归类于: 安全技术

入侵防御系统(IntrusionPreventionSystem,IPS)是这段时间网络安全业内比较热门的一个词,这种既能及时发现又能实时阻断各种入侵行为的安全产品,自面世那天起,就受到各大安全厂商和用户的广泛关注。
    有人认为,入侵防御系统(IPS)就是入侵检测系统(IntrusionDetectionSystem,IDS)的升级产品,有了IPS,就可以替代以前的IDS系统,这也正是gartner在2003年发表那篇著名的“IDS is dead” 的理由。
    从入侵防御系统的起源来看,这个“升级说”似乎有些道理:NetworkICE公司在2000年首次提出了IPS这个概念,并于同年的9月18日推出了BlackICEGuard,这是一个串行部署的IDS,直接分析网络数据并实时对恶意数据进行丢弃处理。
    但这种概念一直受到质疑,自2002年IPS概念传入国内起,IPS这个新型的产品形态就不断地受到挑战,而且各大安全厂商、客户都没有表现出对IPS的兴趣,普遍的一个观点是:在IDS基础上发展起来的IPS产品,在没能解决IDS固有问题的前提下,是无法得到推广应用的。
    这个固有问题就是“误报”和“滥报”,IDS的用户常常会有这种苦恼:IDS界面上充斥着大量的报警信息,经过安全专家分析后,被告知这是误警。但在 IDS旁路检测的部署形式下,这些误警对正常业务不会造成影响,仅需要花费资源去做人工分析。而串行部署的IPS就完全不一样了,一旦出现了误报或滥报,触发了主动的阻断响应,用户的正常业务就有可能受到影响,这是所有用户都不愿意看到和接受的。正是这个原因,导致了IPS概念在05年之前的国内市场表现平淡。
    随着时间的推进,自2006年起,大量的国外厂商的IPS产品进入国内市场,各本土厂商和用户都开始重新关注起IPS这一并不新鲜的“新”概念。
    IPS到底是什么?
    “IPS可以阻断攻击,这正是IDS所做不了的,所以IPS是IDS的升级,是IDS的替代品”,可能很多人都会有这种看法。
    我们先来看IPS的产生原因:
    A:串行部署的防火墙可以拦截低层攻击行为,但对应用层的深层攻击行为无能为力。
    B:旁路部署的IDS可以及时发现那些穿透防火墙的深层攻击行为,作为防火墙的有益补充,但很可惜的是无法实时的阻断。
    C:IDS和防火墙联动:通过IDS来发现,通过防火墙来阻断。但由于迄今为止没有统一的接口规范,加上越来越频发的“瞬间攻击”(一个会话就可以达成攻击效果,如SQL注入、溢出攻击等),使得IDS与防火墙联动在实际应用中的效果不显著。
    于是就有下面的一种想法,如图1所示。

    图1:IPS的起源

    这就是IPS产品的起源:一种能防御防火墙所不能防御的深层入侵威胁(入侵检测技术)的在线部署(防火墙方式)安全产品。
    而为什么会有这种需求呢?是由于用户发现了一些无法控制的入侵威胁行为,这也正是IDS的作用。
    入侵检测系统(IDS)对那些异常的、可能是入侵行为的数据进行检测和报警,告知使用者网络中的实时状况,并提供相应的解决、处理方法,是一种侧重于风险管理的安全产品。
    入侵防御系统(IPS)对那些被明确判断为攻击行为,会对网络、数据造成危害的恶意行为进行检测和防御,降低或是减免使用者对异常状况的处理资源开销,是一种侧重于风险控制的安全产品。
    这也解释了IDS和IPS的关系,并非取代和互斥,而是相互协作:没有部署IDS的时候,只能是凭感觉判断,应该在什么地方部署什么样的安全产品,通过IDS的广泛部署,了解了网络的当前实时状况,据此状况可进一步判断应该在何处部署何类安全产品(IPS等)。
    IPS应该看重那些方面的功能?
    有些人认为:“IPS应该具备各种扩展功能,ACL、路由、NAT,一个都不能少”。“IPS最重要的就是性能了,其他的都不重要”。
    入侵防御系统作为串接部署的设备,确保用户业务不受影响是一个重点,错误的阻断必定意味着影响正常业务,在错误阻断的情况下,各种所谓扩展功能、高性能都是一句空话。这就引出了IPS设备所应该关心的重点——精确阻断,即精确判断各种深层的攻击行为,并实现实时的阻断。
    精确阻断解决了自IPS概念出现以来用户和厂商的最大困惑:如何确保IPS无误报和滥报,使得串接设备不会形成新的网络故障点?
    而作为一款防御入侵攻击的设备,毫无疑问,防御各种深层入侵行为是第二个重点,这也是IPS系统区别于其他安全产品的本质特点;这也给精确阻断加上了一个修饰语:保障深层防御情况下的精确阻断,即在确保精确阻断的基础上,尽量多地发现攻击行为(如SQL注入攻击、缓冲区溢出攻击、恶意代码攻击、后门、木马、间谍软件),这才是IPS发展的主线功能。
    如何确保对深层入侵行为的准确判断?刚刚推出天清入侵防御系统的专业安全厂商启明星辰有着自己独特的技术和专利。启明星辰的技术专家介绍说,依托多年以来在入侵检测技术方面的深厚积累,启明星辰独创性地建立了柔性化检测机制,在确保精确判定攻击行为的基础上,涵盖了各种攻击手法类型。
    我们知道常用的攻击检测方法有两种,一种方法是通过定义攻击行为的数据特征来实现对已知攻击的检测,其优势是技术上实现简单、易于扩充、可迅速实现对特定新攻击的检测和拦截;但仅能识别已知攻击、抗变种能力弱。另一种方法是通过分析攻击产生原理,定义攻击类型的统一特征,能准确识别基于相同原理的各种攻击、不受攻击变种的影响,但技术门槛高、扩充复杂、应对新攻击速度有限。两种检测机制如图2所示。

    图2:基于特征和原理的检测机制对比

    融合“基于特征的检测机制”和“基于原理的检测机制”形成的“柔性检测”机制,它最大的特点就是基于原理的检测方法与基于特征的检测方法并存,有机组合了两种检测方法的优势。这种融合不仅是一个两种检测方法的大融合,而且细分到对攻击检测防御的每一个过程中,在抗躲避的处理、协议分析、攻击识别等过程中都包含了动态与静态检测的融合,如图3所示。

    图3:启明星辰柔性检测机制原理

    通过运用柔性检测机制,天清入侵防御系统进一步增强了设备的抗躲避能力、精确阻断能力、变形攻击识别能力和对新攻击应变能力,提高了精确检测的覆盖面。
    当然,前面提到的扩展功能和高性能,也是入侵防御系统所必需关注的内容,但也要符合产品的主线功能发展趋势。如针对P2P的限制:P2P作为一种新兴的下载手段,得到了极为广泛的运用,但由无限制的P2P应用会影响网络的带宽消耗,并且还随此带来知识产权、病毒等多种相关问题。而实现对P2P的控制和限制,需要较为深入的应用层分析,交给IPS来限制、防范,是一个比较恰当的选择。而ACL控制、路由、NAT等,这些都是防火墙可以完成的工作,在IPS 上来实现这些功能,就有画蛇添足之嫌了。
    性能表现是IPS的又一重要指标,但这里的性能应该是更广泛含义上的性能:包括了最大的参数表现和异常状况下的稳定保障。也就是说,性能除了需要关注诸如 “吞吐率多大?”,“转发时延多长?”,“一定背景流下检测率如何?”等性能参数表现外,还需要关注:“如果出现了意外情况,怎样/多快能恢复网络的正常通讯?”,这个问题也是IPS出现之初被质疑的一个重点。串接设备出现故障和旁路设备不一样,是会影响到正常业务运营的,而做深层分析的串接设备更加如此,在长时间做大量数据深度分析的情况下,如何确保通讯的顺畅?如何确保出现异常情况后通讯的顺畅?
    天清入侵防御系统通过内置硬件Watchdog、软件监控进程,对系统的异常实时监控和处理,实现了软件和硬件的双BYPASS功能,在各种异常情况下确保了网络的通畅,部署后不增加网络故障点。天清IPS始终遵循最短时间优先原则,调度任务、算法和CPU时间,具体如图4所示。

        图4:天清IPS的性能表现
(1)自动检测硬件资源,并根据任务特点 内置多种匹配算法,根据网络流量;

(2)进行充分合理的分配 特点自动选择效率最高的算法

(3)采用CPU绑定技术,减少串行处理带来的等待和切换时间

    IPS的未来发展方向是什么?
    明确了IPS的主线功能是深层防御、精确阻断后,IPS未来发展趋势也就明朗化了:不断丰富和完善IPS可以精确阻断的攻击种类和类型,并在此基础之上提升IPS产品的设备处理性能。
    而在提升性能方面存在的一个悖论就是:需提升性能,除了在软件处理方式上优化外,硬件架构的设计也是一个非常重要的方面,目前的ASIC/NP等高性能硬件,都是采用嵌入式指令+专用语言开发,将已知攻击行为的特征固化在电子固件上,虽然能提升匹配的效率,但在攻击识别的灵活度上过于死板(对变种较难发现),在新攻击特征的更新上有所滞后(需做特征的编码化)。而基于开放硬件平台的IPS由于采用的是高级编程语言,不存在变种攻击识别和特征更新方面的问题,但在性能上存在处理效率瓶颈:暂时达不到电信级骨干网络的流量要求。
    所以,入侵防御系统的未来发展方向应该有以下两个方面:
    第一, 更加广泛的精确阻断范围:扩大可以精确阻断的事件类型,尤其是针对变种以及无法通过特征来定义的攻击行为的防御。
    第二, 适应各种组网模式:在确保精确阻断的情况下,适应电信级骨干网络的防御需求。
本篇文章来源于 中国安全网-安全您的网络 原文链接:http://www.securitycn.net/html/market/analyse/3857.html

yanhui @ 11:31 pm
关于ARP攻击的防护措施
归类于: 安全技术

作者: cnqing
来源: 原创文章
日期: 2006-3-13,18:52

关于arp的详细资料请读者自行查找参考,鉴于arp的危害性本文不详细介绍攻击方法.
我们首先要知道以太网内主机通信是靠MAC地址来确定目标的.arp协议又称”地址解析协议”,它负责通知电脑要连接的目标的地址,这里说的地址在以太网中就是MAC地址,简单说来就是通过IP地址来查询目标主机的MAC地址.一旦这个环节出错,我们就不能正常和目标主机进行通信,甚至使整个网络瘫痪.
ARP的攻击主要有以下几种方式
一.简单的欺骗攻击
这是比较常见的攻击,通过发送伪造的ARP包来欺骗路由和目标主机,让目标主机认为这是一个合法的主机.便完成了欺骗.这种欺骗多发生在同一网段内,因为路由不会把本网段的包向外转发,当然实现不同网段的攻击也有方法,便要通过ICMP协议来告诉路由器重新选择路由.
二.交换环境的嗅探
在最初的小型局域网中我们使用HUB来进行互连,这是一种广播的方式,每个包都会经过网内的每台主机,通过使用软件,就可以嗅谈到整个局域网的数据.现在的网络多是交换环境,网络内数据的传输被锁定的特定目标.既已确定的目标通信主机.在ARP欺骗的基础之上,可以把自己的主机伪造成一个中间转发站来监听两台主机之间的通信.
三.MAC Flooding 
这是一个比较危险的攻击,可以溢出交换机的ARP表,使整个网络不能正常通信
四.基于ARP的DOS
这是新出现的一种攻击方式,D.O.S又称拒绝服务攻击,当大量的连接请求被发送到一台主机时,由于主机的处理能力有限,不能为正常用户提供服务,便出现拒绝服务.这个过程中如果使用ARP来隐藏自己,在被攻击主机的日志上就不会出现真实的IP.攻击的同时,也不会影响到本机.防护方法:

1.IP+MAC访问控制.

单纯依靠IP或MAC来建立信任关系是不安全,理想的安全关系建立在IP+MAC的基础上.这也是我们校园网上网必须绑定IP和MAC的原因之一.

2.静态ARP缓存表.

每台主机都有一个临时存放IP-MAC的对应表ARP攻击就通过更改这个缓存来达到欺骗的目的,使用静态的ARP来绑定正确的MAC是一个有效的方法.在命令行下使用arp -a可以查看当前的ARP缓存表.以下是本机的ARP表
C:\Documents and Settings\cnqing>arp -a

Interface: 210.31.197.81 on Interface 0×1000003
Internet Address Physical Address Type
210.31.197.94 00-03-6b-7f-ed-02 dynamic
其中”dynamic” 代表动态缓存,即收到一个相关ARP包就会修改这项.如果是个非法的含有不正确的网关的ARP包,这个表就会自动更改.这样我们就不能找到正确的网关MAC,就不能正常和其他主机通信.静态表的建立用ARP -S IP MAC.
执行”arp -s 210.31.197.94 00-03-6b-7f-ed-02″后,我们再次查看ARP缓存表.
C:\Documents and Settings\cnqing>arp -a

Interface: 210.31.197.81 on Interface 0×1000003
Internet Address Physical Address Type
210.31.197.94 00-03-6b-7f-ed-02 static
此时”TYPE”项变成了”static”,静态类型.这个状态下,是不会在接受到ARP包时改变本地缓存的.从而有效的防止ARP攻击.静态的ARP条目在每次重启后都要消失需要重新设置.
3.ARP 高速缓存超时设置
在ARP高速缓存中的表项一般都要设置超时值,缩短这个这个超时值可以有效的防止ARP表的溢出.
4.主动查询
在某个正常的时刻,做一个IP和MAC对应的数据库,以后定期检查当前的IP和MAC对应关系是否正常.定期检测交换机的流量列表,查看丢包率.

总结:ARP本省不能造成多大的危害,一旦被结合利用,其危险性就不可估量了.由于ARP本身的问题.使得防范ARP的攻击很棘手,经常查看当前的网络状态,监控流量对一个网管员来说是个很好的习惯.

yanhui @ 10:47 pm
应付DDoS攻击的一些常识
归类于: 安全技术

       不知道身为网络管理员的你是否遇到过服务器因为拒绝服务攻击都瘫痪的情况呢?就网络安全而言目前最让人担心和害怕的入侵攻击就要算是拒绝服务攻击了。他和传统的攻击不同,采取的是仿真多个客户端来连接服务器,造成服务器无法完成如此多的客户端连接,从而无法提供服务。

  一,拒绝服务攻击的发展:

   从拒绝服务攻击诞生到现在已经有了很多的发展,从最初的简单Dos到现在的DdoS。那么什么是Dos和DdoS呢?DoS是一种利用单台计算机的攻击 方式。而DdoS(Distributed Denial of Service,分布式拒绝服务)是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布、协作的大规模攻击方式,主要瞄准比较大的站点,比如一些商业公 司、搜索引擎和政府部门的站点。DdoS攻击是利用一批受控制的机器向一台机器发起攻击,这样来势迅猛的攻击令人难以防备,因此具有较大的破坏性。如果说 以前网络管理员对抗Dos可以采取过滤IP地址方法的话,那么面对当前DdoS众多伪造出来的地址则显得没有办法。所以说防范DdoS攻击变得更加困难, 如何采取措施有效的应对呢?下面我们从两个方面进行介绍。

  二,预防为主保证安全

  DdoS攻击是黑客最常用的攻击手段,下面列出了对付它的一些常规方法。

  (1)定期扫描

   要定期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理。骨干节点的计算机因为具有较高的带宽,是黑客利用的最佳位置,因此 对这些主机本身加强主机安全是非常重要的。而且连接到网络主节点的都是服务器级别的计算机,所以定期扫描漏洞就变得更加重要了。

  (2)在骨干节点配置防火墙

  防火墙本身能抵御DdoS攻击和其他一些攻击。在发现受到攻击的时候,可以将攻击导向一些牺牲主机,这样可以保护真正的主机不被攻击。当然导向的这些牺牲主机可以选择不重要的,或者是linux以及unix等漏洞少和天生防范攻击优秀的系统。

  (3)用足够的机器承受黑客攻击

   这是一种较为理想的应对策略。如果用户拥有足够的容量和足够的资源给黑客攻击,在它不断访问用户、夺取用户资源之时,自己的能量也在逐渐耗失,或许未等用户被攻死,黑客已无力支招儿了。不过此方法需要投入的资金比较多,平时大多数设备处于空闲状态,和目前中小企业网络实际运行情况不相符。
  (4)充分利用网络设备保护网络资源

   所谓网络设备是指路由器、防火墙等负载均衡设备,它们可将网络有效地保护起来。当网络被攻击时最先死掉的是路由器,但其他机器没有死。死掉的路由器经重 启后会恢复正常,而且启动起来还很快,没有什么损失。若其他服务器死掉,其中的数据会丢失,而且重启服务器又是一个漫长的过程。特别是一个公司使用了负载 均衡设备,这样当一台路由器被攻击死机时,另一台将马上工作。从而最大程度的削减了DdoS的攻击。

  (5)过滤不必要的服务和端口

   可以使用Inexpress、Express、Forwarding等工具来过滤不必要的服务和端口,即在路由器上过滤假IP。比如Cisco公司的 CEF(Cisco Express Forwarding)可以针对封包Source IP和Routing Table做比较,并加以过滤。只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。

  (6)检查访问者的来源

  使用Unicast Reverse Path Forwarding等通过反向路由器查询的方法检查访问者的IP地址是否是真,如果是假的,它将予以屏蔽。许多黑客攻击常采用假IP地址方式迷惑用户, 很难查出它来自何处。因此,利用Unicast Reverse Path Forwarding可减少假IP地址的出现,有助于提高网络安全性。

  (7)过滤所有RFC1918 IP地址

   RFC1918 IP地址是内部网的IP地址,像10.0.0.0、192.168.0.0 和172.16.0.0,它们不是某个网段的固定的IP地址,而是Internet内部保留的区域性IP地址,应该把它们过滤掉。此方法并不是过滤内部员工的访问,而是将攻击时伪造的大量虚假内部IP过滤,这样也可以减轻DdoS的攻击。

  (8)限制SYN/ICMP流量

   用户应在路由器上配置SYN/ICMP的最大流量来限制SYN/ICMP封包所能占有的最高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量 时,说明不是正常的网络访问,而是有黑客入侵。早期通过限制SYN/ICMP流量是最好的防范DOS的方法,虽然目前该方法对于DdoS效果不太明显了, 不过仍然能够起到一定的作用。
  三,寻找机会应对攻击

  如果用户正在遭受攻击,他所能做的抵御工作将是非常有限的。因为在原本没有准备好的情况下有大流量的灾难性攻击冲向用户,很可能在用户还没回过神之际,网络已经瘫痪。但是,用户还是可以抓住机会寻求一线希望的。

   (1)检查攻击来源,通常黑客会通过很多假IP地址发起攻击,此时,用户若能够分辨出哪些是真IP哪些是假IP地址,然后了解这些IP来自哪些网段,再找网网管理员将这些机器关闭,从而在第一时间消除攻击。如果发现这些IP地址是来自外面的而不是公司内部的IP的话,可以采取临时过滤的方法,将这些IP 地址在服务器或路由器上过滤掉。

  (2)找出攻击者所经过的路由,把攻击屏蔽掉。若黑客从某些端口发动攻击,用户可把这些端口屏蔽掉,以阻止入侵。不过此方法对于公司网络出口只有一个,而又遭受到来自外部的DdoS攻击时不太奏效,毕竟将出口端口封闭后所有计算机都无法访问internet了。

  (3)最后还有一种比较折中的方法是在路由器上滤掉ICMP。虽然在攻击时他无法完全消除入侵,但是过滤掉ICMP后可以有效的防止攻击规模的升级,也可以在一定程度上降低攻击的级别。

  总结:

   目前网络安全界对于DdoS的防范还是没有什么好办法的,主要靠平时维护和扫描来对抗。简单的通过软件防范的效果非常不明显,即便是使用了硬件安防设施 也仅仅能起到降低攻击级别的效果,Ddos攻击只能被减弱,无法被彻底消除。不过如果我们按照本文的方法和思路去防范DdoS的话,收到的效果还是非常显 著的,可以将攻击带来的损失降低到最小。

本篇文章来源于 中国安全网-安全您的网络 原文链接:http://www.securitycn.net/html/research/service/2316.html

yanhui @ 10:43 pm
AD的一点常识
归类于: Windows技术

备份域控制器(BDC)backup
在 Windows NT Server 4.0 或更早的版本中,接收域目录数据库副本的运行 Windows NT Server 的计算机(数据库中包含该域的所有帐户和安全策略信息)。

它将定期自动同步该副本与主域控制器 (PDC) 上的主副本。BDC 也将验证用户的登录信息并按 PDC 的需要提高其功能。在一个域中可以有多个 BDC。当域配置为混合模式时,Windows NT 3.51 和 4.0 BDC 能够参与到 Windows 2000 域中。
 
主域控制器 (PDC)principal
在 Windows NT Server 4.0 或更早版本的域中,运行 Windows NT Server 负责验证域登录和维护域目录数据库的计算机。PDC 跟踪域中所有计算机帐户的更改。它是直接接收这些变化的唯一的计算机。每个域只有一个 PDC。在这个版本的 Windows 中,在每个域中的某个域控制器标识为 PDC 以便与 Windows NT 4.0 和更早版本的 Windows NT 兼容

yanhui @ 9:39 pm
MCSE 与 MCSA 升级 Windows Server 2008 之路
归类于: 考试

注:本文转载自微软台湾网站

今天在微软台湾网站看到这么一篇文章,讲解如何将MCSE或者MCSA升级到Windows Server 2008,于是转过来给各位兄弟们分享。

随着 Windows Server 2008 上市之日在即,微软的 Windows Server 2008 专业认证架构也逐渐清晰,其中最大的改变是,MCSE 和 MCSA 认证不再继续使用,由 MCTS 和 MCITP 来接手,MCTS 以实际配置设定为主,以给定的条件来应用工具做系统设定为主要的考试方向,而 MCITP 则是以实务工作为主,例如在企业内管理服务器的服务器管理员 (Server Administrator),以及综理整个企业层次的网络与应用系统服务的企业管理员 (Enterprise Administrator) 等两种角色。

本页内容

Windows Server 2008 认证体系

MCSA 与 MCSE 升级到 Windows Server 2008

准备方法

Windows Server 2008 认证体系

微软将 Windows Server 2008 的配置工作切分为三个部份,各为三个主要的考试:

•Exam 70-640: TS: Microsoft Windows Server 2008 Active Directory Configuration,以配置 Windows Server 2008 的 Active Directory 基础架构为主,其中包含 AD DS (Domain Service),AD LDS (Lightweight Directory Service),AD RMS (Right Management Service),AD FS (Federation Service) 与 AD CS (Certificate Service) 五大项,以及对 AD 环境的基本设定与维护工作。

•Exam 70-642: TS: Microsoft Windows Server 2008 Network Infrastructure Configuration,以配置 Windows Server 2008 的网络服务及网络基础架构为主,其中有 TCP/IP 寻址,DNS Service,DHCP Service,路由服务 (Routing Service),网络存取保护 (Network Access Protection),档案与打印服务以及基本服务器维护工作。

•Exam 70-643: TS: Microsoft Windows Server 2008 Application Infrastructure Configuration,以配置服务器应用以及应用程序服务器 (Application Server) 为主,其中有 Terminal Service,IIS,Web 安全性,部署服务器 (WDS,Windows Activation等) 与应用服务 (WSS,Windows Media Service) 等配置工作。

MCITP 部份切分为服务器与企业管理员两个部份:

•Exam 70-646: PRO: Windows Server 2008 Server Administrator,以管理与维护服务器环境为主,包括 Network Infrastructure,Active Directory Infrastructure 与应用程序服务器等。

•Exam 70-647: PRO: Windows Server 2008 Enterprise Administrator,以规划与设计企业网络环境为主,包括 Network Infrastructure,Active Directory Infrastructure 与应用程序服务器等为规划与设计重点。

MCSA MCSE 升级到 Windows Server 2008

现有的 MCSA on Windows Server 2003 与 MCSE on Windows Server 2003 可以利用升级的考试来升级至 Windows Server 2008 的 MCTS,视 MCSA 与 MCSE 及考试类别,决定考试通过后所取得的 MCTS 认证数量与类型。

MCSA on Windows Server 2003 的升级考为 Exam 70-648: TS: Upgrading MCSA on Windows Server 2003 to Windows Server 2008 Technology Specialists,通过后可以获得 MCTS: Windows Server 2008 Active Directory Configuration 与 MCTS: Windows Server 2008 Network Infrastructure Configuration 两种认证。而 MCSE on Windows Server 2003 的升级考为 Exam 70-649: TS: Upgrading MCSE on Windows Server 2003 to Windows Server 2008 Technology Specialists,通过后可以获得全部的三种 MCTS 认证。

由于要升级的考试范围不同,所以 70-648 和 70-649 有不同的测验范围,但大致以 70-640,70-642 与 70-643 三科考试范围为主,但由于升级考试是针对已经具有足够系统管理与网络管理经验的 MCSA 与 MCSE 所设计,因此考试科目的评量范围就没有 640/642 与 643 如此深入。

考试科目

Exam 70-648: TS: Upgrading MCSA on Windows Server 2003 to Windows Server 2008,Technology Specialists

问题数与通过分数

问题数:55

通过分数:700 (分为两个 Section 计分)

测验技能

配置网络存取 (Exam 70-642)

•配置远程访问

•配置网络存取保护 (Network Access Protection)

•配置网络验证

•配置数据传输协议

•配置无线存取

•配置凭证服务

•配置 DHCP

•配置 IPv4 与 IPv6 寻址

•配置路由 (Routing)

配置 DNS (Exam 70-642)

•配置领域 (zone)

•配置领域解析 (zone resolution)

•配置DNS客户端设定

•为DNS配置 DHCP 与 WINS

部署服务器 (Exam 70-642)

•配置 Windows Deployment Service (WDS)

•捕捉 WDS 影像

•部署 WDS 影像

•配置 Windows 启用

•建立虚拟机

•配置 Virtual Server 设定

•安装 Windows Server Enterprise

•安装 Server Core

维护 Active Directory 环境 (Exam 70-640)

•建立备份与复原

•执行脱机维护

•配置自定义目录服务分割区

•配置 Active Directory Domain Service 稽核

•使用 GPO 配置审核策略

•监控 Active Directory

配置 Active Directory 基础架构 (Exam 70-640)

•配置 Active Directory 的通讯安全性

•配置验证

考试科目

Exam 70-649: TS: Upgrading MCSE on Windows Server 2003 to Windows Server 2008,Technology Specialists

问题数与通过分数

问题数:55

通过分数:700 (分为三个 Section 计分)

测验技能

配置网络存取 (Exam 70-642)

•配置远程访问

•配置网络存取保护 (Network Access Protection)

•配置网络验证

•配置数据传输协议

•配置无线存取

•配置凭证服务

•配置 DHCP

•配置 IPv4 与 IPv6 寻址

•配置路由 (Routing)

配置 Terminal Service (Exam 70-643)

•配置 Terminal Service Remote Application (TS RemoteApp)

•配置 Terminal Service Gateway (TS Gateway)

•配置 Terminal Service Load Balancing

•配置 Terminal Service 资源分配

•配置 Terminal Service 授权

•配置 Terminal Service 客户端联机

•配置 Terminal Service 服务器选项

配置 Web Service 基础架构 (Exam 70-643)

•配置 FTP

•配置备份

•配置 Web 应用程序

•配置应用程序集区

•配置 IIS 组件

•发布 IIS 网站

•移转站台与 Web 应用程序

•配置 SMTP Service

配置统一描述,探索与整合服务 (UDDI Service)

配置 Web Service 安全性 (Exam 70-643)

•配置 Handlers 以缩小受攻击界面

•配置 .NET 信任层次

•配置验证 (Authentication)

•配置权力 (Right)

•配置权限 (Permission)

•配置授权 (Authorization)

•配置凭证 (Certificate)

部署与监控服务器 (Exam 70-642)

•配置 Windows Deployment Service (WDS)

•捕捉 WDS 影像

•部署 WDS 影像

•配置 Windows 启用

•建立虚拟机

•配置 Virtual Server 设定

•安装 Windows Server Enterprise

•安装 Server Core

配置服务器角色 (Exam 70-640)

•使用服务器管理员实作服务器角色

•配置 Active Directory Lightweight Directory Service

•配置 Active Directory Right Management Service

•配置 Active Directory Server Core

•配置 RODC (Read-only Domain Controller)

•配置 Active Directory Certificate Service

•配置 Active Directory Federation Service

维护 Active Directory 环境 (Exam 70-640)

•建立备份与复原

•执行脱机维护

•配置自定义目录服务分割区

配置 Active Directory 基础架构 (Exam 70-640)

•配置 Active Directory 的通讯安全性

•配置 Global Catalog

准备方法

由于目前 (2007/12) Windows Server 2008 仍在 Release Candidate 阶段,而且相关的课程尚未完成 Release,只有在 Beta 环境下的教材,但已经可以勾勒出 70-648 与 70-649 考试的轮廓,考生亦需要实地操作以累积经验,但部份的主题和现有的 MCSA/MCSE 技能有些许的重迭,所以可能会看到似曾相似的问题。

目前可用来准备 70-648 与 70-649 科目的教材,只有 6415,6416 与 6417 三种:

•Course 6415A: Updating Your Network Infrastructure Technology Skills to Windows Server 2008

•Course 6416A: Updating Your Active Directory Technology Skills to Windows Server 2008

•Course 6417A: Updating Your Application Platform Technology Skills to Windows Server 2008

未来还会推出新的教材:

•Course 6416B: Updating Your Network Infrastructure and Active Directory Technology Skills to Windows Server 2008

•Course 6417B: Updating Your Application Platform Technology Skills to Windows Server 2008

书籍部份,目前只有 Microsoft Press 所出的 Introducing Windows Server 2008 可以在市面上找到,相关的书籍可能还要再等等,约 2008 年三月会有更多书籍上市。

yanhui @ 7:56 pm
Hyper-V高可用性群集实测报告
归类于: Windows技术

早就听说Hyper-V Beta可以支持快速迁移和高可用性,最近抽空测试了一下Hyper-V的主机群集(Host Clustering)功能,结果相当理想,甚至超出了盆盆的预期。所以赶紧写一个文档,分享给广大的微软技术爱好者,也算是盆盆赠送给ITECN粉丝的新年礼物*^_^*。

一、商业价值和技术原理


群集的意义何在?这就要从虚拟化的应用场景来说起。Hyper-V属于服务器虚拟化技术,这和我们熟悉的Virtual Server是同一类型的,而服务器整合则是其主要的应用场景之一。服务器整合可以极大地提升服务器的利用率(从原本的10~20%提升到60~70%)、可以很好地节省服务器采购的费用、可以大大节省电费和降温费用(每台服务器每年的电费和降温费用,超过服务器投资的1/3),更重要的是,服务器整合还可以大大提高服务响应的速度。

然而服务器整合也会带来一个潜在的问题。

在传统IT架构中,为了安全和稳定性,物理服务器通常是专机专用,也就是说,一台物理计算机只安装一个关键业务程序。一旦物理硬件损坏,只会影响到该服务器上的关键业务。而采用服务器整合的虚拟化技术后,物理主机上可能同时运行多台虚机(每台虚机里跑一个关键业务程序),多个虚机之间可以实现安全隔离,如附图所示。这好比把所有的鸡蛋放在一个篮子里,一旦物理主机硬件损坏,其上的多台虚机,及其中运行的关键业务都会同时中断。 
  
而Hyper-V则支持高可用性群集功能,不管是有计划的主机维护、还是突发的硬件故障,虚机都可以在另外一台主机上快速重启,而且服务中断的时间很短,几乎可以忽略不计。盆盆自己做了总结,Hyper-V主机群集有以下一些显著特点:

1. 内置支持Hyper-V虚机

Windows Server 2008群集,现在已经内置支持Hyper-V虚机,可以把虚机作为Windows Server 2008群集中的可用服务。

2. 支持多节点

到目前为止(Hyper-V Beta),可以最多支持16个节点的遇故障转移群集(Failover Clustering)!我们既可以手动指定虚机迁移的目标主机,而当意外故障发生时,系统会自动寻找具备充足内存的目标主机,默认是下一个主机。

3. 操作步骤简单

Hyper-V基于Windows Server 2008群集功能,相对于Windows Server 2003,其设置的步骤非常简单,甚至是不熟悉原理的用户,也能轻松实现。

4. 极大减少停机时间

服务器停机有两种情况:计划维护和意外故障。根据VMware公司的统计,计划维护停机的时间约占日常停机事件的80~90%,例如我们要对服务器进行升级、打补丁或者进行其他维护。意外故障,例如硬件的突发故障,断电等等。

针对80~90%的计划维护停机,Hyper-V可以进行快速迁移(Quick Migration)。虚机的磁盘文件(.VHD)存放在共享存储设备(iSCSI或者光纤SCSI设备)上,同时挂载到多台主机上,所以快速迁移时,不需要迁移庞大的磁盘文件,如附图所示。 

如果需要对主机Node1进行维护,只需把其上的虚机保存状态(save state),也就是把当前虚机内存里的内容保存到文件里,保存状态所产生的文件也保存在共享存储上,然后该虚机就可以在另外一台主机Node2上恢复。

由此可见,快速迁移所需的时间和以下两大因素有关:

(1)共享存储的带宽

(2)虚机内存的容量

例如对于一台1GB内存的虚机,如果共享存储是带宽为1Gb(125MB)的iSCSI,只需约16秒的停机时间(1Gb/8≈125MB,1GB/125MB=8秒,8×2=16秒);如果是4Gb的光纤存储,则只需约4秒!不同虚机内存和存储带宽所对应的停机时间,如附图所示。 

如果是突发性的硬件故障或者断电,则可以借助高可用性群集功能,该虚机可以在另外一个节点上重新启动。这时候相对快速迁移而言,虚机里的关键业务需要更长的停机时间。

5. 支持跨区域故障转移

Hyper-V还支持所谓的stretch clustering(延伸群集),也就是跨越地理位置的故障转移群集功能,一旦某个站点发生故障,其他地方的另外一个站点可以立刻恢复工作!

6. 和System Center的完美集成

Hyper-V不仅可以实现高可用性,还可以实现负载平衡。这可以和System Center进行完美整合。例如企业通过两台虚机提供订单服务(负载平衡),当三月份业务繁忙时,System Center Operation Manager监测到两台虚机的性能开始不堪重负,则可以很方便地借助System Center Virtual Machine Manager根据模板创建一个新的虚机加入到这个NLB群集,继续提供服务,整个过程几乎不需要人工干预,而且非常有效。


二、
Hyper-V/VMware/Xen,孰优孰劣?


说老实话,作为虚拟化市场的先驱,VMware的技术无疑更加成熟。VMware采用一种所谓的VMotion技术。VMotion采用内存后台备份的机制,可以实现在线迁移,也就是说,几乎没有停机时间。

VMotion也需要共享存储的支持,虚机的磁盘文件保存在共享存储设备上,但是需要指出的是,VMotion并不是基于群集的。

1. VMotion的原理

假设虚机要从主机A迁移到主机B上。VMotion的过程简述如下:

(1)VMotion首先尝试把虚机的内存映像从主机A拷贝到主机B。在这个过程中,主机A上的虚机继续对外提供服务。

(2)在内存映像拷贝过程中。用户对该虚机的任何内存写入操作,都会记录到一张叫做内存位图(Memory Bitmap)的表中。

(3)内存映像拷贝完成后,会把内存位图表拷贝到主机B上。这段时间虚机会暂时停止工作(时间极短,如果尝试Ping的话,通常只有一个数据包显示超时),如附图所示。 
  
(4)当虚机在主机B上启动时,系统会把内存位图表里记录的已修改页(Modified Memory Page)继续拷贝到主机B中,直到结束。

2. VMware VMotion和Hyper-V快速迁移之间的对比

(1)由于VMotion采用后台内存拷贝的模式,只有在拷贝内存位图表时,才会临时中止客户端访问,用户几乎感觉不到服务中断(一般最多1~2秒)

而Hyper-V快速迁移则需要有一个内存状态的保存和恢复时间,根据虚机内存和存储带宽的大小,有少量的服务中断时间(少则1~2秒,多则1~2分钟)。

从原理上讲,Hyper-V采用的是比较简单的内存状态保存的技术,以避免在内存映像传输时,后续的内存写入同步问题,以增加停机时间作为代价,但一般来说这点时间还是可以容忍的,通常不会有损SLA。

(2)VMotion需要相对比较昂贵的费用(必须采购更高版本才能获得)

而Hyper-V快速迁移则包含在Windows Server 2008的授权费用中,不需要额外付费。

(3)VMotion需要两台主机的CPU为同一系列(最好是同一型号),以避免CPU指令集的不同而导致的指令兼容问题。

Hyper-V快速迁移当然不需要这个限制。

(4)VMotion适用于计划维护停机事件,如果是突发故障,可以借助VMware的HA功能(需要付费),让虚机在另外一台主机上重启。

而Hyper-V则可以借助主机群集功能同时实现快速转移和高可用性。

(5)VMotion是VMware Infrastructure的核心功能之一,它也是DRS(动态资源调度)的基础。系统可以根据一定的优先级和性能监控,自动通过VMotion在不同主机之间在线迁移虚机,以便平衡数据中心的可用资源。

相信今后的Hyper-V的正式版本,也有类似的机制,例如可以借助System Center Operation Manager自动监控虚机和物理主机的性能,然后借助System Center Virtual Machine Manager进行快速迁移。

那么Xen呢,Citrix的XenServer Enterprise可以实现类似的XenMotion功能,盆盆没有测试过,估计类似于VMware的功能。今后盆盆会抽空进行测试,并给出相应的测试报告。


三、实验环境简述


至少需要两台物理计算机(必须
满足Hyper-V的安装条件),用来安装Windows Server 2008(Hyper-V),并加入到域。两个独立的网段,一个作为心跳网络(Heartbeat Network),还一个连接生产环境。如果有iSCSI共享存储设备,还需要有一个网段专门连接到该存储网络。

盆盆当然不可能购置iSCSI/FC共享存储设备,所以需要准备一台专门的虚机,借助IET或者Openfiler(基于Linux)、WinTarget(基于Windows)等工具虚拟出iSCSI共享存储设备。只是性能和真实的iSCSI设备相比,自然不可同日而语,而且也远不如普通的IDE/SATA硬盘(毕竟是用虚拟磁盘来模拟的)。不过我们这里只是一个实验,看看效果就行了。

所以盆盆这里有三台物理计算机,其中一台计算机安装虚机(可以是Virtual Server、Hyper-V或者VMware等虚机),并把该虚机提升为域控制器;另外两台安装Hyper-V,并加入到该域中,实验环境的网络拓扑结构如附图所示。 

这里不再描述如何借助WinTarget或者IET、Openfiler搭建虚拟iSCSI共享存储设备,大家可以参考帮助文档。


四、配置
Hyper-V高可用性


在Windows Server 2008配置Hyper-V高可用性非常方便,只需分为三步走:配置验证、创建群集、设置高可用性。

1. 配置验证

在Hyper-V主机上添加“Failover Cluster”角色,然后打开“Failover Cluster Management”管理单元,如附图所示,并单击右侧操作窗格里的“Validate a Configuration”。 

接下来指定需要添加到群集里的两个节点(Hyper-V主机),然后可以选择“Run only tests I Select”选项,并在接下来的页面里指定所需验证的选项,这里可以略过共享磁盘的相关验证(虚拟出来的设备,很难通过验证,但是不影响实验结果)。

然后可以开始验证过程,并检查验证结果,如果有问题,则需要退回重新检查。

2. 创建群集

在“Failover Cluster Management”管理单元窗口里单击“Create a Cluster”,然后添加所需加入的Hyper-V主机节点。

然后指定群集的访问IP地址和群集名字,如附图所示。

接下来确认群集设置,即可开始创建群集,最后在群集创建成功页面上单击“Finish”按钮即可,如附图所示。

3. 设置高可用性

接下来就可以把某个Hyper-V虚机作为Windows Server 2008群集所管理的服务。这里我们首先需要打开Hyper-V管理单元,新建或者复制一个虚机,请注意必须把该虚机的磁盘文件保存在共享磁盘上。

确保关闭该虚机,然后在“Failover Cluster Management”管理单元上单击“Configure a Service or Application”,然后在“Select a Service or Application”页面确保选择“Virtual Machine”选项,如附图所示。

然后选中刚才所新建的虚机(本例是Hyper-VCluster),如附图所示。

确认无误后,即可开始配置该虚机的高可用性,最后在结果页面上单击“Finish”按钮,如附图所示。


五、测试
Hyper-V快速迁移


一切就绪后,就可以开始测试Hyper-V的快速迁移功能了。很简单,只需启动该Hyper-V虚机,然后在“Failover Cluster Management”管理单元左侧控制台树里定位到“Services and Applications”分支,可以看到该虚机当前处于“Online”的状态。

鼠标右键单击该虚机,并在快捷菜单里单击“Move this service or application to another node”,并选择另外一台Hyper-V主机,如附图所示。 

然后在“Failover Cluster Management”管理单元左侧控制台树里定位到“Services and Applications”分支下方的测试虚机,即可在中间的详细窗格里看到该虚机的当前所在的主机是Node1(本例是TOPHOME主机),并且可以看到该虚机正在保存状态,如附图所示。

一旦保存状态完毕后,即可看到该虚机已经切换到另外一台主机(本例是MarkThink),并且可以看到该虚机正在从保存状态中恢复,如附图所示。

整个迁移过程速度非常快,盆盆给这台虚机配置512MB内存,虽然是在模拟的共享存储上进行配置,但是迁移的速度很快,差不多20秒左右即可迁移完毕,这个速度还是完全可以承受的。

已发表 2008年2月14日 17:03 作者 ahpeng 归档在:

yanhui @ 7:25 pm
[排序题]以下哪种形式最安全?
归类于: Windows技术

发表在远景论坛上,原帖的URL如下:
http://bbs.pcbeta.com/thread-177456-1-1.html

盆盆
假设操作系统是Windows Vista,假设启用UAC,希望执行某个管理员任务。现在的问题是,从Windows安全的角度出发,你觉得以下几种方法,安全性由高到低的排列顺序(举个例子,假设是5 3 2 1 4 ,代表安全性最高的是5,其次是3,以此类推)?并且给出科学的理由。

1. 以内置的Administrator登录系统,然后直接执行管理员任务。
2. 以管理员组成员身份登录系统,双击该管理员任务,在弹出的UAC对话框上单击“继续”。
3. 以标准用户身份登录系统,双击该管理员任务,在弹出的UAC对话框上选择某个管理员帐户,并输入密码,然后继续。
4. 以标准用户身份登录系统,用runas命令以某个管理员身份运行该任务,并在弹出的UAC对话框上单击“继续”。
5. 以标准用户身份登录系统,用快速用户切换的方法,切换到某个管理员帐户,然后执行该任务,在弹出的UAC对话框上单击“继续”。

TonyXiang

5 2 4 3 1
5是最安全的,不同帐户间的进程是被绝对隔离的,所以在执行平常任务时使用标准帐户,需要执行管理任务时才切换进入管理员帐户。这个是最安全的,即使外界恶意入侵了标准帐户桌面,也无法调用管理员帐户的进程。
其次是2,有些人可能认为使用3或者4好更好一些。其实以前我也这么认为,但自从看了微软官方的technet那篇关于uac的文章以后就不这么想了。3和4都存在一个共同的问题,就是有可能恶意软件假造这么一个权限提升请求的东西出来,诱骗用户输入管理员帐户和密码,威胁到系统安全。而2模式下,采用的是aam(管理员批准提升模式),就算恶意软件假造这么一个东西,也是没有用的。因为一个假造“继续”按钮是不能让恶意软件得到管理员权限的。而真正的“继续”按钮会被隔离在安全桌面进行,是其他软件不容易侵入的。剩下的3和4哪个更安全,其实我也说不太清楚。只是感觉4要更安全一些,因为4是自己主动去选择run as某个管理员帐户运行,所以也许被恶意软件假造出这么一个请求提升权限的界面要相对困难一些。而直接电击管理员任务,更加容易被恶意软件截获。先于系统的提升请求对话框,假造一个来诱骗管理员帐户和密码。所以我认为4比3要安全一些1就不用说了,谁都知道用内置的Administrator登录系统是最不安全的。

盆盆
解释到位,非常佩服!为了帮助兄弟们更好地理解,这里补充几句,权作狗尾续貂哈:

Mark Russinovich说过,可以把窗口站和桌面看成是安全边界。而不同会话中的桌面,则可以实现最高级别的安全隔离。这就是为什么方法5最安全的原因。因为在方法5里,低、高级别的进程隔离在不同的会话中,非常安全。而传统的认识,runas似乎和快速用户切换一样,其实不然。从安全角度来说,两者区别很大。这时候低、高级别的进程都运行在同一个桌面上,安全隔离的程度并不是最高。 UAC对话框运行在安全桌面上,和其他用户程序运行在不同的桌面,安全隔离的程度比较高。TonyXiang朋友说得很对,确实标准用户的提升,有可能招致恶意软件的“社会工程学”攻击,解决方法是设置安全策略,强制用户必须按Ctrl+Alt+Del才能触发UAC凭据录入界面。需要指出的是,Windows Vista的低、高级别的进程虽然还是运行在同一个桌面上,但是由于MIC、UIPI的功能,不同级别的进程之间可以实现一定程度的隔离,这比Windows 2000/XP要安全很多。

只是Mark Russinovich也说了,UAC/MIC/UIPI代替不了安全边界。

不过,非常重要的是,据微软产品组Robert的指导,合理的排序应该是5 3 (24) 1,以标准用户登录,比以管理员登录更加安全。我以上的理解并一定完全正确,可能随着学习的深入,会改变看法,我会及时更新这个帖子,以尽可能反应正确的结论。

TonyXiang
不过我们所讨论的一个假定的前提是
计算机周围的物理环境是安全的,也就是不会有不法分子物理接触计算机
如果你开着计算机又走开了,其他人跑过来捣乱,那么2反而又变成相当不安全的了。本地安全策略里可以更改两条来防止这种问题,一个是盆盆所说的,强制使用Ctrl+Alt+Del才能触发UAC凭据录入界面,第二条是设置在aam模式下的权限提升仍然需要输入管理员密码。

盆盆
非常感谢你的回复!
一般来说,离开工作站时,应该按WIN+L锁定机器,让Windows进入安全桌面,实现桌面的隔离。
不过如果不能确保物理安全,这5个方法都可以说不够安全,任何一个稍微懂IT的攻击者,最乐观的情况下,不超过5分钟即可攻破帐户安全体系。

 TonyXiang
这个到是,计算机都被物理接触了,还有什么安全可言。。。
偶在学校宿舍里就是去其他寝室转转,一般也会把计算机锁定。。。

盆盆
安全永远是相对的。要实现安全,一定要把某些部件当作可信的部分,例如物理环境、Winlogn进程等等,微软把这些可信部分叫做TCB(可信计算基础)。
我个人的理解,TCB好比是数学里面的公理,是没有道理可言的。例如“直线是两点间的最短距离”,本身就是公理,没有办法进一步切分证明。
编后询问微软安全工程师Robert对于该问题的看法。他给出的答案是5 3 (24) 1。很显然用标准用户登录系统,要比用管理员帐户登录系统更加安全(哪怕由于UAC的原因,管理员组成员实际拿到标准用户权限)。Robert认为,2和4的安全程度很难做出区别,就要看UAC和Runas,哪个可能具有重大的安全漏洞。

已发表 2007年8月3日 13:18 作者 ahpeng归档在:

yanhui @ 5:53 pm
制作雨滴
归类于: Photoshop

1.绘制出初始的雨滴形状
打开一幅绿叶的图片,新建一个图层,按 (D) 键盘键设置默认颜色,此时前景色色板将变成黑色。按 (L) 键使用 “套索”工具,其羽化值为2 px建立一个雨滴形状的选区,并填充成黑色。为使雨滴的羽化后的边缘能硬化,选择“图像”>“调整”>“色阶”,在“色阶”对话框中将“输入色阶”设置为 160、1.00、190。最后的雨滴形状效果如下图:

s1.jpg
 

2.建立透明雨滴的图层样式
打开图层1的 “图层样式”对话框做如下设置:
(1)打开 “混合选项”部分,将“填充不透明度”更改为 3%。
(2)添加一小块浓厚的投影:打开 “投影”部分,设置“不透明度”为 100%,将“距离”更改为 1 像素,“大小”更改为 1 像素,在“品质”部分,点按“等高线”曲线缩览图右侧的向下小箭头并选择“高斯”曲线。
(3)添加一个柔和的内阴影:打开“内阴影”部分,在“结构”部分,将“混合模式”设置为“颜色加深”,“不透明度”设置为 43%,“大小”设置为 10 像素。
(4)在形状边缘周围另外添加一个内阴影:打开“内发光”部分,在“结构”部分,将“混合模式”设置为“叠加”,“不透明度”设置为 30%,颜色为黑色。
(5)在形状中添加高光和内发光:打开“斜面和浮雕”部分,在“结构”部分,将“方法”设置为“雕刻清晰”,“深度”设置为 250%,“大小”设置为 15 像素,“软化”设置为 10 像素。在“阴影”部分,将“角度”设置为 90,“高度”设置为 30,“不透明度”设置为 100%。然后将“暗调模式”设置为“颜色减淡”,其颜色为白色,“不透明度”设置为 37%。
现在已完成了图层样式的设置,但先不要点按“好”。

s2.jpg
 

3.存储此图层样式备以后使用
点按“图层样式”对话框右侧的“新建样式”按钮。这将打开一个对话框,您可以在其中命名该样式并点按“好”进行存储。(可以通过选择“窗口”>“样式”,在打开的“样式”调板中最后一个缩览图的位置找到该样式)4.制作更多的雨滴
可以在“图层 1”上再绘制一些水滴,可以使用画笔选择相应的倾斜的椭圆形笔刷直接绘制雨滴,但笔刷的硬度要设置成90%多。您可以使用“橡皮擦”工具来编辑或移去现有的水滴。我们的最终效果如下所示:
s3.jpg

实现这一“水”效果的步骤全部是在一个“图层样式”中完成的。因此一旦创建好这一效果,就可将它存储并应用到任何透明区域上具有硬边不透明度的图层中。这也意味着您可以在带有样式的图层上绘画,并呈现出栩栩如生的效果,看上去非常棒。

yanhui @ 3:10 pm
瘟神的尾行——Rootkit技术发展史
归类于: Windows技术

瘟神的尾行——Rootkit技术发展史
作者:小金
一. 无法驱逐的“助手”
网管小张正在手忙脚乱的寻找他的手工杀毒工具包,因为他在安装一个网管工具的时候无意中走了神,点击了“下一步”按钮后才惊觉安装程序的界面里一个不引人注目的角落里写着“安装CNNIC网络实名”这一行小字,而且最开头部分有一个小小的勾。于是著名的“中国网民的得力助手”便理所当然的在他的机器里安了家。
心里把厂商骂了十八遍的小张终于翻出了他外出修机时最得意的工具IceSword和超级巡警,果然在进程列表和SSDT列表里发现了红色警报,小张笑了笑,对付这些一般用户无法卸载的恶意流氓,自己可谓经验丰富了,当下便三下五除二的把CNNIC的进程给终结了,SSDT也给恢复了初始状态,然后小张去删除注册表启动项——突然发出的一个错误提示声音把小张吓了一跳,再定睛一看,他的笑容凝固了:“删除项时出错”。不会吧?小张急忙去删除CNNIC目录,结果彻底愣在了那里,系统弹出的错误提示很明确的告诉他,“无法删除文件,文件可能正在被使用”。怎么回事?小张一下子没了头绪……
达尔文的进化论告诉我们,“物竞天择,适者生存”,同样,在这安全与入侵的网络世界里,也在进行着这样一场选择的过程……

二. 被AIDS纠缠的互联网
Rootkit是什么?如果您在几年前就是本刊的读者,那您一定已经看过小金写的涉及Rootkit的相关文章,一种在当时可以被称为“艾滋病毒AIDS”的技术产物,只是,在这场“适者生存”的残酷游戏里,最终存活的,只剩下Rootkit了,于是,今天的Rootkit地位已经等同于当年的感冒病毒——因为它实在是太普遍了,在用户上网的同时,瘟神时刻都紧随着其后,以求伺机而入。
小知识:什么是Rootkit?
Rootkit自身也是木马后门或恶意程序的一类,只是,它很特殊,为什么呢?因为,你无法找到它。
正如自然界的规则一样,最流行的病毒,对生物的伤害却是最小的,例如一般的感冒,但是最不流行的病毒,却是最夺命的。Rootkit木马就是信息世界里的AIDS,一旦感染,就难以用一般手段消灭了,因为它和自然界里的同类做的事情一样,破坏了系统自身检测的完整性——抛开术语的描述也许难以理解,但是可以配合AIDS的图片想象一下,由于AIDS破坏了人体免疫系统,导致白细胞对它无能为力,只能眼睁睁看着人体机能被慢慢破坏。计算机系统没有免疫功能,但是它提供了对自身环境的相关检测功能——枚举进程、文件列表、级别权限保护等,大部分杀毒软件和进程工具都依赖于系统自带的检测功能才得以运作,而Rootkit木马要破坏的,正是这些功能。
要了解Rootkit木马的原理,就必须从系统原理说起,我们知道,操作系统是由内核(Kernel)和外壳(Shell)两部分组成的,内核负责一切实际的工作,包括CPU任务调度、内存分配管理、设备管理、文件操作等,外壳是基于内核提供的交互功能而存在的界面,它负责指令传递和解释。由于内核和外壳负责的任务不同,它们的处理环境也不同,因此处理器提供了多个不同的处理环境,把它们称为运行级别(Ring),Ring让程序指令能访问的计算机资源依次逐级递减,目的在于保护计算机遭受意外损害——内核运行于Ring 0级别,拥有最完全最底层的管理功能,而到了外壳部分,它只能拥有Ring 3级别,这个级别能操作的功能极少,几乎所有指令都需要传递给内核来决定能否执行,一旦发现有可能对系统造成破坏的指令传递(例如超越指定范围的内存读写),内核便返回一个“非法越权”标志,发送这个指令的程序就有可能被终止运行,这就是大部分常见的“非法操作”的由来,这样做的目的是为了保护计算机免遭破坏,如果外壳和内核的运行级别一样,用户一个不经意的点击都有可能破坏整个系统。
由于Ring的存在,除了由系统内核加载的程序以外,由外壳调用执行的一般程序都只能运行在Ring 3级别,也就是说,它们的操作指令全部依赖于内核授权的功能,一般的进程查看工具和杀毒软件也不例外,由于这层机制的存在,我们能看到的进程其实是内核“看到”并通过相关接口指令(还记得API吗?)反馈到应用程序的,这样就不可避免的存在一条数据通道,虽然在一般情况下它是难以被篡改的,但是不能避免意外的发生,Rootkit正是“制造”这种意外的程序。简单的说,Rootkit实质是一种“越权执行”的应用程序,它设法让自己达到和内核一样的运行级别,甚至进入内核空间,这样它就拥有了和内核一样的访问权限,因而可以对内核指令进行修改,最常见的是修改内核枚举进程的API,让它们返回的数据始终“遗漏”Rootkit自身进程的信息,一般的进程工具自然就“看”不到Rootkit了。更高级的Rootkit还篡改更多API,这样,用户就看不到进程(进程API被拦截),看不到文件(文件读写API被拦截),看不到被打开的端口(网络组件Sock API被拦截),更拦截不到相关的网络数据包(网络组件NDIS API被拦截)了,幸好网络设备的数据指示不受内核控制,否则恐怕Rootkit要让它也不会亮了才好!我们使用的系统是在内核功能支持下运作的,如果内核变得不可信任了,依赖它运行的程序还能信任吗?

这段概念是三年前写下的,而如今的网络世界,越来越多的木马后门在反病毒产品的围剿下消灭殆尽,就如同在一个密封的箱子里投入五大毒虫,让它们自相残杀,无论结局怎么样,总会有一方顽强的存活下来,而幸存的这只毒虫,就是最强最可怕的,只不过,反病毒产品并非每次都能成为存活下来的一方,而能够存活下来的非反病毒产品,必然是Rootkit。
这唯一幸存的毒虫所采用的技术迅速成了众人研究学习的重点,于是,Rootkit在短短几年内就走下了神秘的舞台,越来越“平民化”了,网络终于成为一个新的“艾滋病村”,在如此“平民化”的氛围里,Rootkit终于有了它“平民化”的名称: 驱动木马、驱动马、带驱动的木马,诸如此类,而它的本名,也被缩写为“RK”,多用于高人之间的交流称谓。
而普通上网民众,对这些东西的存在完全是概不知情的,或者,仅限于一个模糊的概念……
当其他类型的木马后门技术已可以轻而易举被歼灭以后,Rootkit技术就成了这场对抗赛的主力军,于是,为了存活,“驱动马”也开始出现不同的发展分支,在普通网民尚未察觉的时候,它们早已经“变异”出不同派系了……

一切的开端:SSDT Hook
在很早很早以前,一些用户突然觉得自己的机器存在异常,并经常有被人监控的感觉,于是使用杀毒软件进行全盘扫描,答案却是否定的,于是用户就信任杀毒软件,放心的去用了,直到有一天,“灰鸽子”木马在网上闹得轰轰烈烈,用户慌忙去下载了最新专杀工具,这一下,用户被吓坏了:我是什么时候被感染的灰鸽子?
普通网民第一次与“会隐形的木马”打交道,莫过于灰鸽子事件了,但是为什么“灰鸽子”无法被任务管理器和那时候的杀毒软件找到,甚至用户自己手动去查找,也是无功而返呢?这是因为,灰鸽子使用了最初的Rootkit技术:SSDT钩子。
而后,又有一些尚在雏形阶段的恶意流氓软件,也开始大玩“隐身”了,用户们是丝毫没有察觉的,除非一些恶意程序太过于张扬,但是,即使如此,他们也始终找不到异常情况发生的依据,任务管理器里没有、搜索文件没有、就连注册表监视软件,也没了回应……
造成这些现象的原因是什么呢?因为灰鸽子,以及后来出现的恶意程序,它们使用的交互接口,并非Ring 3用户层上的标准Win32 API,而是通过各种手段,例如驱动程序,进入到Ring 0内核层的Native API。
“Native API”(原生API)是Windows NT架构系统中真正工作的API,众所周知,Windows是一个通过大量API函数来实现程序功能的系统,然而,由于Windows是支持POSIX标准(可移植操作系统接口,Portable Operating System Interface)的系统,这就意味着,它除了能运行标准Windows平台程序(即Win32程序)以外,还支持少量其他平台上的程序运行,如OS/2。由于不同平台的程序功能实现方法差异,系统就必须分别为它支持的各个符合POSIX标准的程序提供相应的接口函数,如果根据这个思路去开发一套庞大而完整的接口函数调用,那就太不切实际了,于是,在NT架构系统上,开发者设计了两种不同性质的API接口层,一种被称为“用户态API”,它包括常见的Win32 API和POSIX接口API等,这些API运行在Ring3用户层上,构成了今天的Windows世界;而另一种是被称为“Native”性质的API,它们才是真正的系统API,通常运行在内核态上,实现真正的系统核心功能调用。同时为了实现POSIX,开发者还设计了被称为“子系统”(Sub System)的技术来将不同的系统环境区别开来,正常情况下,从系统引导到桌面时,我们就处于“Win32”子系统下,这时候起到作用的自然就是Win32 API。普通程序员平时接触到的几千个Win32 API,实际上都是通过几百个Native API的不同封装形式来实现的。系统厂商极少提供这些API的公开文档,是因为它们要比一般的函数难以应用而且可能发生变化,当程序员使用Win32 API时,最终的执行过程是在系统经过兼容性检查、错误处理、参数选项分离等一系列复杂转换后,才送入Native API进行处理的,Native API才是真正执行并反馈运行结果的主体,用户层的API调用只是一种封装形式罢了,例如fopen和CreateFile这两个Win32函数,它们的真正执行函数是Native性质的NtCreateFile,这就是rootkit可以让一般的进程工具不能发现自己的原因,因为它直接干涉了Native API的执行结果。
因为API还有这样复杂的故事,所以现在的恶意程序纷纷为了能最大限度提升自己的权限而变身rootkit性质程序,去“钩”这些原生API,而达到同等层次的安全检测工具和反病毒产品,也为了达到同样的效果而做了同样的事情,到了这个地步,安全产品和恶意软件在执行过程中已经没有区别了,唯一的区别是对用户和系统环境造成的后果差异而已。
既然大家都要控制到原生API层,那么他们的做法有没有共同点呢?答案是一定的,Windows作为一个规范的系统,就必须在原生API和用户层API之间存在一个标准的接口来实现数据传递,并限制用户使用其他不知名的操作来达到目的,这个接口由一个名为“ntdll.dll”的动态链接库文件负责,所有用户层API的处理都是调用这个DLL文件中的相关API入口实现的,但它只是一个提供从用户层跳转到内核层的接口,它并不是最终执行体。当API调用被转换为ntdll内的相关API函数后,系统就会在一个被称为“SSDT”(System Service Descriptor Table,系统服务描述符表)的数据表里查找这个API的位置,然后真正的调用它,这时候执行的API就是真正的原生API了,它们是位于NT系统真正内核程序ntoskrnl.exe里的函数。这一过程,就是系统服务的调用,例如外壳程序需要运行一个新的进程,那么它就会调用kernel32.dll导出的API函数CreateProcess,接下来就是kernel32.dll内的执行过程,实际上它只是把这个请求又包装了一下,变形为自己发出的参数,去调用ntdll.dll里导出的NtCreateProcess函数,然后ntdll.dll通过一个中断请求int 2Eh(Sysenter)进入内核态,并把我们最初的新建进程请求转换为“服务号”一起传递过去,到了内核的世界里,在正常手段下对API的调用都需要先通过一个函数地址描述表的转变来实现,SSDT就是这个表,它记录了一个庞大的地址索引,内容为几百个原生API在内核中导出的地址位置,除此之外还有一些有用的其他信息,在这个例子里,系统根据SSDT里记录的服务号与函数对应关系来确认我们要使用什么函数,以及这个函数在内核中的位置信息,最终实现功能调用,函数执行完毕后再把结果通过ntdll接口一层层传递回去,直到发出请求的程序收到一个表示处理结果的状态代码,这一次系统服务的调用过程就结束了。
由于上述原理,无论是恶意程序还是反病毒产品都会优先考虑把SSDT的内容给篡改以达到效果,简单的说,例如一个恶意程序把SSDT里对于获取进程标识的服务号对应的原生API地址修改为指向自己位于Ring0层的驱动入口,那么每次系统执行到这个函数时,都会由于SSDT的错误引导而进入了作者指定的服务模块中,就会导致相关的操作请求和参数被这个第三方模块记录和篡改,于是各种奇怪的现象就会发生了,就拿隐藏自身进程的rootkit技术来说,其原理就在于通过篡改SSDT里枚举进程的原生API服务号先指向自己的模块,再由自己的模块另行传递到真正的系统服务上(如果没有这一步操作或者操作错误,那么这个对应的系统服务就会作废甚至引发系统崩溃),并对真正的系统服务返回的数据进行加工处理,如删除带有自己进程名的数据,那么最终返回的数据里自然就“看不到”这个进程了。
通过操纵SSDT,以这个技术维生的Rootkit嚣张跋扈过一段时间,无论是木马后门还是流氓插件和恶意软件。在幕后挣钱的作者们也结结实实的过了个肥得流油的好年,然而好景不长,Anti-Rootki t(反Rootkit,即“ARK”)的概念被提出了,ARK工具也诞生了,如国产的IceSword、超级巡警等。此类ARK工具的运作原理和Rootkit大相径庭,它们也是通过驱动模块将自身投入系统内核中,从而达到了与Rootkit们平起平坐的公平竞争地位,然后,位于用户层的程序主体和进入内核态的驱动模块同时产生一个相同的查询API,例如枚举当前系统进程列表等,由于Rootkit的存在,用户层的程序主体最终得到的数据会比驱动模块返回的数据少那么几个——很明显,Rootkit驱动拼命要隐藏起来的用户层程序就此暴露,不打自招了;而同时,ARK还能将当前SSDT服务号指向的函数幕后的执行主体找出来,如果某个服务号指向的函数对应的执行主体不是NTOSKRNL.EXE(XP及以上系统中,某些机器是ntkrnlpa.exe),则可以断定该服务号有问题了。超级巡警以及后来的ARK更是直接提供了“一键恢复”功能,只需用户鼠标轻轻一点,所有第三方程序在SSDT挂住的钩子纷纷“脱钩”,短时间内就把RK布下的层层障碍给解除了,在一段时间内RK的势头迅速被压了下去,短暂的世界太平,短暂的,恩。

对于SSDT Hook,现在的所有Anti-Rootkit工具都能轻易找出并解除它的钩子(脱钩,Unhook),如IceSword、RKU、超级巡警等。
运行IceSword,首先点击“进程”,观察这里是否存在红色标记的进程,如果有,说明你的系统里绝对存在SSDT Hook,那红色的进程正是被底层驱动隐藏起来的文件,将它的具体位置记下来,并将其终止。
现在点击进入SSDT列表,会发现一些被红色标注出来的行列,记住它的“当前服务函数所在模块”,这个就是实施SSDT Hook的底层驱动文件。
然后,使用超级巡警切换至高级模式,将SSDT恢复为初始状态,它的所有防御就被解除了,现在直接查找刚才记录的文件去删除吧。

进一步试探:Shadow SSDT Hook
RK作者不甘心,无论是出于技术上的抗争还是利益上的损失,反正,ARK既然让我丢了面子或瘪了钱包,那么,“有朝一日龙得水,定叫长江水倒流!”,一些人开始尝试研究破解Anti-Rootkit工具,誓与之抗争到底,另一些人,则开始了新的探索,最终,双方都有了成效:首先,pjf的大作IceSword被成功反汇编了,虽然得到的并不是最初的C语言代码而是汇编语句,但是对于研究Rootkit的人来说,汇编在他们眼里,就如同看网络小说一样轻而易举,很快,就有人识破了作者的检测逻辑,可以绕过IceSword以及其他采用类似检测方法的工具的Rootkit就此诞生,甚至一部分RK已经开始反过来监控ARK,一旦相应ARK的驱动被加载,立即开始玉石俱焚——将用户机器弄成经典的蓝屏死机,不明就里的用户在几次与蓝色屏幕对望后,通常都会无奈的放弃;而另一种蓝屏则是更深层次的问题导致的,下面会提到。
而探索另一个方向的研究者们,也传来了捷报:Windows系统里,除了那个大家都在玩的SSDT(KeServiceDescriptorTable)以外,还有一个隐藏得非常深入的类似SSDT结构的数据段在同时工作着,它被称为“Shadow SSDT”(SSDT映射),这个“KeServiceDescriptorTableShadow”功能并未从系统内核中导出,但是通过外联的系统级别调试器,却看到了它的踪影。Shadow SSDT的作用和SSDT本身差不多,只不过它主要是提供一些基于图形用户界面(GUI)下的系统服务函数,并保存了一份与SSDT相同的服务列表,当然,这也是提供给基于GUI下的程序调用的。Shadow SSDT被安排在win32k.sys中,非常少文献提及它,因此这几乎是个被人遗忘的角落,Rootkit作者们很快就发现,控制这里也能达到一定的效果,因为Shadow SSDT同样具备了SSDT的所有功能,只不过是要利用的时候多了一些步骤而已,于是RK又有了新的玩法,这一次,轮到ARK傻眼了,那时候ARK根本没有做到Shadow SSDT这一步,于是,只钩住Shadow SSDT的Rootkit们得以无法无天的生存下去,任由用户怎么发现恶意程序怎么恢复SSDT都好,始终都是影响不到此类Rootkit!
这个情形,一直到具备了Shadow SSDT检测功能的ARK工具出现才结束,例如大名鼎鼎的RootKit Unhooker(RKU),它那强大的SSDT以及其Shadow检测脱钩功能,帮助许多人解决了这些新生的捣蛋鬼,于是,Rootkit作者们又开始寻求新的生存之道。
此类Hook由于出现得比较晚,很多当初流行的ARK都没有涉及这块,所以,我们只能使用RKU、狙剑等工具对其进行操作。
运行RKU(Rootkit Unhooker),它是英文软件,但是操作十分简便。点击“Shadow SSDT”,如果系统中存在Shadow SSDT Hook,你会发现软件底部状态栏里“Services/Hooked”不再是“xxx/0”的状态,同时相应被Hook的函数显示行里,“Hooked”一栏为“Yes”,现在记下这个文件的位置和地址,然后直接点“UnHooked ALL”,接下来,去找文件删除吧。

逼近顶峰:Inline Hook
世界上最荒谬的事情是什么?是顺着被人故意弄乱方向的路牌,往错误的方向走了好远都没察觉到有问题?还是被朋友恶作剧的将男女洗手间的标识换了位置?如果有天去造访寺院,却发现里面居然是清一色的道士在念经,你一定会惊呼,这简直太荒谬了!
在狂热的Rootkit领域里,类似的荒谬正在散布开来,那就是高级的Hook形式——Inline Hook。
在最初的运作流程里,所有被设置了挂钩的函数操作,最终还是要回到原始功能模块内处理的,毕竟第三方程序作者不是Windows系统编写者,为了保证系统的正常运行,最明智的做法当然是让被拦截的相关函数请求在经过自己编写的模块的层层检测并发现无害以后,立即将这个即将进行正常工作的请求原封不动的送到它该干活的地方去,以便系统完成整个工作流程,所以大家都在打SSDT等地方的主意,就是为了在这条必经之路上插上一脚,力求能绊倒那些看着不顺眼的路人。而现在,路上出现会砍脚的保安了,怎么办,难道玩不下去了吗?然而,迎接挑战正是每个研究者的兴趣所在,于是,荒谬的念头带出了可怕的技术,这就是Inline Hook。
其实,Inline Hook早就作为一种高级的Hook技术存在了,在用户层上的一些特殊程序如游戏外挂等,为了获得最完整可靠的数据,它们都不再采用错误指路牌的方法来将数据转移了,因为这样很可能会因为触发程序编写者针对此问题而设置的处理程序,最终功亏一篑。那么,怎么样才能让这个处理程序不能达到触发条件呢?那就是千万别去钩这个程序,但是如果不钩住程序,又该如何取得相关数据呢?在这样的思考模式下,一种新的钩子技术诞生了:它虽然也在玩钩子,但是它却不是来钩目标程序的,而是将系统里相应的API函数给虏了去,由于任何普通程序作者对系统API都是绝对信任的,于是,当他们的程序请求调用相关API并将参数一同发送过去时,由于提供这个API的相应模块被钩住了,它的“先知”——布施钩子者就抢先一步得到了数据内容,接下来就得看作者的编程功底来决定程序的生死了,因为作者并不能自己写出相应的系统函数,他就必须得设法将数据送回原函数执行模块里去,这一步稍有差错,就会导致调用这个API的程序崩溃退出。
正因如此,Inline Hook是一种相对一般Hook而言更复杂的技术,除非作者有较深的编程功底和对系统的了解,否则冒冒失失就大量使用这个技术是很容易出问题的,不仅受害者不好过,攻击者也无法取得他所需数据,得不偿失。
既然在用户层(Ring 3)上使用Inline Hook都要如此注意,那么在Rootkit的世界里有没有人吃螃蟹呢?答案是一定的,当钩住SSDT和Shadow SSDT的途径都被堵死以后,Rootkit技术终于向Inline Hook迈出了一步。
设想一下,当所有检测工具都在虎视眈眈SSDT这个关口时,某个Rootkit早已用自己的函数把系统内核里的敏感函数给替换了,当用户层的函数操作请求通过正常的SSDT找到相应内核态函数的执行主体时,却不知道这个执行主体早已被Rootkit冒名顶替了,那么情形会是怎么样的呢?虽然所有检测工具都报告情况正常,但是机器内其实早已被Rootkit安家,如果这个Rootkit预置了在某个时刻进行破坏行为的逻辑,那么用户直到系统出问题的那一刻,都还不知道究竟发生了什么事情!
位于Ring 0的Inline Hook是十分隐蔽的,除非研究者对系统了解较深,否则他想破了头也不能找出原因所在,更别提连杀个进程的概念都很迷茫的普通用户了。但是使用Inline Hook是必须付出代价的,由于内核的复杂性,尤其因为位于这一层的函数是所有程序都必须频繁调用的,很多时候如果设钩者没考虑周全,导致某个已经Inline Hook的函数被意外的直接调用,就会导致严重后果。所以,使用Inline Hook的Rootkit能否正常稳定的工作,是与作者的水平连接得十分紧密的,一个不成熟的用户层Inline Hook程序大不了就是跟着它要监控的程序一起引发内存错误导致非法操作异常退出,仅此而已,但是到了系统核心层,这里可没有任何错误检测模块来保证你的程序在做出会导致内核崩溃的事情之前就赶紧将它终止——这已经是最底层了,一个错误的内存读写都会直接引发内核级别的崩溃,即我们俗称的“蓝屏死机”(BSoD,Blue Screen of Dealth)。于是,不成熟的Inline Hook Rootkit的代价就是系统变得及其不稳定,在用户看来,电脑表现出来的症状就是莫名其妙的非常容易蓝屏,这就是技术不成熟的Rootkit导致的后果,只不过,这个代价是由受害的用户来承担的。
不过,目前能流行开来的Inline Hook Rootkit,基本上都是已经在开发者的机器上经历了无数次蓝屏考验后才出场的,所以通常情况下,用户并不会因为这些Rootkit的存在而频频蓝屏,并且,它已经成为当前Rootkit的主流技术。

对付Inline Hook,无论是狙剑、RKU还是Wsyscheck都可以做到,以狙剑为例,点击程序主界面的“扩展功能”,然后点击“SSDT检查”,你会突然有眼花缭乱的感觉,所以请点击右键——“筛选可疑项”,让它仅仅把异常部分显示出来(注意那个SnipeSword.sys,它是狙剑自身的驱动,不要弄错了),如果系统存在异常,“HOOK类型”里会列出相关说明,如HOOK、Inline-Hook等,首先可以尝试右键选择“恢复所有HOOK”,然后刷新一次,如果仍然列出异常项目,就得在相应的项目列上点击右键选择“恢复选定的Inline-HOOK”了。

紧紧缠绕的寄生藤:FSD Hook
随着RK与ARK的斗争进展,SSDT Hook(包括Shadow Hook)的道路被清理了,Inline Hook也被揪出来清理了,但是一些用户惊讶的发现,他们仍然无法删除这些已经暴露在眼皮底下的文件,这是为什么?
在解说这个问题之前,我们先来了解一些概念。为了让用户敲打键盘、点击鼠标、插入U盘等就能直接进入计算机的世界,操作系统在幕后是做了相当多的工作的,这些在底层运作的功能层层汇聚,最终建立出一个可用的操作平台,其中,负责管理磁盘数据和文件读写的部分被称为“文件系统”(File System,FS),其中,Windows系列操作系统是采用IOS(Input/Output Supervisor,输入输出管理程序)技术进行文件系统管理的。它接管所有的存储设备,如硬盘、可移动式磁盘、光驱等。
IOS是一种层次结构的管理方案,展现在用户层上的是各种应用程序的读写操作,其下一层紧接着的是被称为“可安装文件系统”(Installable File System,IFS)的接口层,这一层是以下各层的最终汇聚,通俗点说,也就是我们在屏幕上看到磁盘盘符、光驱盘符、U盘盘符、网络磁盘映射盘符等图标并对它们进行操作的由来。继IFS以后,就是各种文件系统驱动所在的层,即“FSD”(File System Driver,文件系统驱动),这一层直接与IOS连接,用于接受并处理属于自己任务分派内的数据;FSD下一层直达IOS,而到了IOS的下一层,数据就开始往硬件化发展了。
而这次Rootkit的目标,就是到达IOS之前的最后一层:FSD。
FSD在Windows系统中属于开放给编程人员可接触到的最深入的一块区域(再往下就是操作系统自身提供的驱动和硬件厂商的事情了),所以,这一层的权限是很高的,控制了这个层次,开发者就能掌握到最多最全面的文件读写操作控制,于是,当所有的道路都被Anti-Rootkit工具阻挠后,Rootkit作者开始反抗,方法是阻止他们的工具将揪出来的Rootkit直接歼灭。
FSD并非绝对禁地,在这之前,反病毒厂商和磁盘数据加密厂商早就在这一层里专研了,一部分人致力于编写自己的FSD,而更多的人,是通过编写FSD Filter Driver(文件系统驱动过滤器)来达到目的,以便从中析出它们敏感的数据来进行其他工作,而Filter驱动的一个要点就是钩住FSD,即“FSD Hook”。当FSD被你掌握后,你就可以通过操纵它的数据来控制别人的文件读写请求,对于Rootkit来说,它们可以将一些敏感文件如自身驱动程序文件、用户层相关文件等设置为除了它们自己以外的程序都无法对其进行读写的效果,到了用户层,直接反映出来的就是无法对其进行编辑、改名和删除。
用了这个技术,Rootkit作者们又可以偷笑了,因为即使用户用各种手段找到了它并将其进程终止,他也无法操作那些被保护起来的文件。
只是,钩子始终是钩子,总会有人去脱钩的,在克制FSD Hook技术的ARK工具出现后,一部分人面对着十分难以操作的FSD而放弃了,因为到了这一层已经非常容易导致系统不稳定了。
而一些人,仍然走了下去。
如何清理这个类型的Rootkit呢?以最容易操作的Wsyscheck为例,首先运行Wsyscheck(你会发现一个有趣现象:IceSword无法检测到Wsyscheck的Hook,因为它用的技术是Inline Hook和FSD Hook),点击进入“内核检查”,选中“FSD检查”,留意“代码异常”项里是否有标注为“Yes”的项,如果有,请在界面里右键点击,并选择“恢复所有函数”。Wsyscheck的进程列表并非使用IceSword一类的逻辑,所以如果你看到存在红色的列表也不要太过于紧张,它只是表示这个程序是没有系统签名验证、且类型特殊(如服务、加载驱动等)的应用程序而已,并非是IceSword这样的“坏人标识”。

产于极端的终极技术:FSD Inline Hook
Rootkit到了FSD Hook这一层,对系统造成的影响已经相当危险了,然而,由于出现了对抗的工具触动了某些人的利益,终于,一个著名的流氓软件吃了这只大家都会因为良心不安而不去触碰的螃蟹——FSD Inline Hook。
在及其重要敏感的FSD环境下放钩子本身就是一件要求很高的事情,而用自己的函数去替代这个雷区的系统函数,更是被很多人认为是严禁操作的事情,而现在,真的有人带头违反了,以后的局势又将如何呢?
所以,将CNNIC列为当前流氓软件作者的所有研究目标都不过分,因为CNNIC身上,就具备了多种高级技术,只可惜,全都没有用于正道。
Inline Hook的概念我们在前面已经说过了,现在主要说说这个Rootkit的行为以及后果。
也许是CNNIC的开发者对于自家产品频频被删除而恼怒了吧,这次最新发布的程序中,FSD Inline Hook终于出现了,它直接将操作系统厂商编写的相关功能使用自己的函数去取代了,而搞过FSD开发的人都知道,这一层的功能函数对硬件平台、系统版本是具有高度依赖性的,每个操作系统采用的函数都会有些许差异,但是操作系统厂商并不是制作通用的FSD方案,更何况,这个标准就是他们自己提出来的,所以这些变动对他们而言都是无伤大雅的,但是对于第三方厂商来说,他们缺少必要的开发文档(微软并未公布任何涉及FSD Inline Hook技术文档,也不鼓励开发者这样做)和齐全的硬件测试平台,所以,在不齐全的操作系统环境和硬件配置下实现的技术,必然很容易就导致受害用户直接欣赏到赏心悦目的蓝屏。
CNNIC必然清楚这点,但是,他们什么也不顾了。而且,CNNIC的技术水平果然也没达到稳定的水平,在被CNNIC安家的系统里,用户只要运行IceSword检测,就会直接导致蓝屏,这是因为它们都同时钩住了一个底层函数,但是下钩的位置存在些许偏差,例如,一个钩住了头部,一个钩住了屁股,于是内核受不了这很黄很暴力的行为,而直接崩溃了。
但是,毕竟已经有人起了头。以后的Rootkit世界将会变成什么样子,谁也不知道。

要消灭CNNIC以及采用FSD Inline Hook技术的Rootkit,首选应该是360安全卫士,但是如果出现了360安全卫士也未加入识别的Rootkit,用户就得使用“狙剑”了,解决方法与前面提及的大同小异,只需要对其“脱钩”就可以了,关键在于,用户还得留意Rootkit的用户层程序是否也使用Hook,如线程注入等。
RK多了,ARK也多了,这是好事还是坏事呢?答案自然是后者,无论是RK还是ARK,它们都必须进行同一个行为,就是进入系统内核层次并达到目的,于是不兼容现象往往会发生在几个ARK之间,例如,在运行了狙剑后,Wsyscheck经常会直接报错退出,而如果用户在开启了Wsyscheck的情况下运行IceSword,他将会有很大几率看到那蓝底白字的屏幕。

三. 结语
虽然到处都在提倡和谐网络的普及,但是,“健康上网”仅仅是指代那些黄赌毒而已吗?在利益面前,开发者的正义感越发渺小起来,我们的网络世界,是被瘟神紧紧跟随着的。技术的斗争越发激烈,但是用户的电脑知识是不会跟