黑客所应有的基本技能
这些基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如,过去内容包括使用机器语言编程,而直到最近才包括了HTML。总的来说现在主要包括以下技术:1. 学习如何编程
这当然是最基本的黑客技能。如果你还不会任何编程语言,我建议你从Python开始。它设计清晰,文档齐全,合适初学者入门。它是一门很好的入门语言,并且不仅仅只是个玩具;它非常强大、灵活,也适合做大型项目。我有一篇 Python评价详细说明这点。好的教程可以在Python网站得到。(译者:比较好的中文Python站点可能是[url]http://pythonrecord.51.net[/url]。)
java也是好的入门语言。它比Python难得多,但是生成的代码速度也快得多。它同时也是一种优秀的计算机语言,不止是用来入门。
但是注意,如果你只会一两门语言,你将不会达到黑客所要求的技术水平,甚至也不能达到一个程序员的水平——你需要学会如何以抽象的方式思考编程问题,独立于任何语言。要做一名真正的黑客,你需要学会在几天内通过一些手册,结合你现在所知,迅速掌握一门新语言。这意味着你应该学会几种截然不同的语言。
如果要做一些重要的编程工作,你将不得不学习C语言,Unix的核心语言。C++与C非常其他类似;如果你了解其中一种,学习另一种应该不难。但这两种都不适合编程入门者学习。而且事实上,你越避免用C编程,你的工作效率会越高。
C非常有效率,节约你的机器资源。不幸的是,C的高效是通过你手动做很多底层的管理(如内存)来达到的。底层代码都是复杂极易出现bug的,会使你花极多的时间调试。如今的机器速度如此之快,这通常是得不偿失——比较明智的做法是使用一种运行较慢、较低效率,但大幅节省你的时间的语言。因此,选择Python。
其他对黑客而言比较重要的语言包括 Perl和 LISP。 Perl实用,值得一学;它被广泛用于动态网页和系统管理,因此即便你从不用Perl写程序,至少也应该学会看。许多人使用Perl的理由和我建议你使用Python的理由一样,都是为了避免用C完成那些不需要C高效率的工作。你会需要理解那些工作的代码的。
LISP值得学习的理由不同——最终掌握了它时你会得到丰富的启迪和经验。这些经验会使你在以后的日子里成为一个更好的程序员,即使你实际上很少使用LISP本身。
当然,实际上你最好五种都会(Python,java,C/C++,Perl和LISP)。除了是最重要的黑客语言外,它们还代表了截然不同的编程思路和方法,每种都会让你受益非浅。
这里我无法给你完完全全的指导教会你如何编程——这是个复杂的技能。但我可以告诉你,书本和上课也不能作到(最好的黑客中,有许多,也许几乎都是自学成材的)。你可以从书本上学到语言的特点只是一些皮毛,但要使书面知识成为自身技能只能通过实践和虚心向他人学习。因此要作到读代码及和写代码。
学习如何编程就象学习用优美的自然语言写作一样。最好的做法是读一些大师的名著,试着自己写点东西,再读些,再写点,再读些,再写点…… 如此往复,直到你的文章达到你体会到的范文的简洁和力量。
过去找到适合阅读的好的代码是困难的,因为几乎没有大型程序的源代码能让新手练手。这种状况已经戏剧性地发生变化;开放源代码软件,编程工具和操作系统(全都由黑客写成)现在已经随处可见。让我们在下一个话题中继续讨论……
2. 得到一个开放源代码的Unix并学会使用、运行它
我假设你已经拥有或者能使用一台个人电脑(今天的孩子们真幸福 :-))。新手们能够朝学习黑客技能迈出的最基本的一步就是得到一份Linux或BSD-Unix的一种,安装在个人电脑上,并运行它。
没错,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发布的——你无法读到它的源代码,也不可能修改它。尝试在运行DOS或Windows或MacOS的机器上学习黑客技术,就象是带着脚镣学跳舞。
除此之外,Unix还是Internet的操作系统。你可以学会上网却不知道Unix,但你不了解Unix就无法成为一名Internet黑客。因此,今天的黑客文化在很大程度上是以Unix为中心的。(这点并不总是真的,一些很早的黑客对此一直很不高兴,但Unix和Internet之间的联系已是如此之强,甚至连Microsoft也无可奈何。)
所以, 安装一套UNIX——我个人喜爱LINUX但还有其他种类的(是的,你可以同时安装Linux及DOS/Windows在同一电脑上)。学习它,使用它,配置它。用它在Internet上冲浪。阅读它的源代码。修改它的源代码。你会得到比在Microsoft操作系统上更好的编程工具(包括C,LISP,Python及Perl)。你会觉得乐趣无穷,学到在你成为大师之前意识不到的更多的知识。
你可以在 [url]www.bsd.org[/url]找到BSD Unix的求助及其他资源。
(注:如果你是一个新手,我不推荐自己独立安装Linux或者BSD。安装Linux的话,寻求本地Linux用户组的帮助;或联系 Open Projects Network。 LISC维护着一些 IRC频道,在那里你可以获得帮助。)
3. 学会如何使用WWW和写HTML
黑客文化建造的大多东西都在你看不见的地方发挥着作用,帮助工厂、办公室和大学正常运转,表面上很难看到它对非黑客的普通人的生活的影响。Web是一个大大的例外。即便政客也同意,这个巨大耀眼的黑客玩具正在改变整个世界。单是这个原因(还有许多其它的),你就需要学习掌握Web。
这并不是仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML, Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先完成一个主页。
但仅仅拥有一个主页不能使你成为一名黑客。 Web里充满了各种网页。大多数是毫无意义的,零信息量垃圾——界面时髦的垃圾,注意,垃圾的水准都类似(更多信息访问 The HTML Hell Page)。
要想有价值,你的网页必须有内容—— 它必须有趣或对其它黑客有帮助。这是下一个话题所涉及的……
4. 如果你不懂实用性的英语,学习吧
作为一个美国人和一个以英语为母语的人,我以前很不情愿提到这点,免得成为一种文化上的帝国主义。但相当多以其他语言为母语的人一直劝我指出这一点,那就是英语是黑客文化和Internet的工作语言,你需要懂得以便在黑客社区顺利工作。
这一点千真万确。大概1991年的时候我就了解到许多黑客在技术讨论中使用英语,甚至当他们的母语都相同,英语对他们而言只是第二语言的时候;据我知道的报导,当前英语有着比其他语言丰富得多的技术词汇,因此是一个对于工作来说相当好的工具。基于类似的原因,英文技术书籍的翻译通常不令人满意(如果有翻译的话)。
Linus Torvalds,一个芬兰人,用英语注释他的代码(很明显这对他来说不是凑巧)。他流利的英语成为他能够管理全球范围的Linux开发人员社区的重要因素。这是一个值得学习的例子。
黑客入侵攻击方式的四种最新趋势
黑客入侵攻击方式的四种最新趋势
从1988年开始,位于美国卡内基梅隆大学的CERT CC(计算机紧急响应小组协调中心)就开始调查入侵者的活动。CERT CC给出一些关于最新入侵者攻击方式的趋势。
趋势一:攻击过程的自动化与攻击工具的快速更新
攻击工具的自动化程度继续不断增强。自动化攻击涉及到的四个阶段都发生了变化。
1. 扫描潜在的受害者。从1997年起开始出现大量的扫描活动。目前,新的扫描工具利用更先进的扫描技术,变得更加有威力,并且提高了速度。
2. 入侵具有漏洞的系统。以前,对具有漏洞的系统的攻击是发生在大范围的扫描之后的。现在,攻击工具已经将对漏洞的入侵设计成为扫描活动的一部分,这样大大加快了入侵的速度。
3. 攻击扩散。2000年之前,攻击工具需要一个人来发起其余的攻击过程。现在,攻击工具能够自动发起新的攻击过程。例如红色代码和Nimda病毒这些工具就在18个小时之内传遍了全球。
4. 攻击工具的协同管理。自从1999年起,随着分布式攻击工具的产生,攻击者能够对大量分布在Internet之上的攻击工具发起攻击。现在,攻击者能够更加有效地发起一个分布式拒绝服务攻击。协同功能利用了大量大众化的协议如IRC(Internet Relay Chat)、IR(Instant Message)等的功能。
趋势二:攻击工具的不断复杂化
攻击工具的编写者采用了比以前更加先进的技术。攻击工具的特征码越来越难以通过分析来发现,并且越来越难以通过基于特征码的检测系统发现,例如防病毒软件和入侵检测系统。当今攻击工具的三个重要特点是反检测功能,动态行为特点以及攻击工具的模块化。
1. 反检测。攻击者采用了能够隐藏攻击工具的技术。这使得安全专家想要通过各种分析方法来判断新的攻击的过程变得更加困难和耗时。
2. 动态行为。以前的攻击工具按照预定的单一步骤发起进攻。现在的自动攻击工具能够按照不同的方法更改它们的特征,如随机选择、预定的决策路径或者通过入侵者直接的控制。
3. 攻击工具的模块化。和以前攻击工具仅仅实现一种攻击相比,新的攻击工具能够通过升级或者对部分模块的替换完成快速更改。而且,攻击工具能够在越来越多的平台上运行。例如,许多攻击工具采用了标准的协议如IRC和HTTP进行数据和命令的传输,这样,想要从正常的网络流量中分析出攻击特征就更加困难了。
趋势三:漏洞发现得更快
每一年报告给CERT/CC的漏洞数量都成倍增长。CERT/CC公布的漏洞数据2000年为1090个,2001年为2437个,2002年已经增加至4129个,就是说每天都有十几个新的漏洞被发现。可以想象,对于管理员来说想要跟上补丁的步伐是很困难的。而且,入侵者往往能够在软件厂商修补这些漏洞之前首先发现这些漏洞。随着发现漏洞的工具的自动化趋势,留给用户打补丁的时间越来越短。尤其是缓冲区溢出类型的漏洞,其危害性非常大而又无处不在,是计算机安全的最大的威胁。在CERT和其它国际性网络安全机构的调查中,这种类型的漏洞是对服务器造成后果最严重的。
趋势四:渗透防火墙
我们常常依赖防火墙提供一个安全的主要边界保护。但是情况是:
* 已经存在一些绕过典型防火墙配置的技术,如IPP(the Internet Printing Protocol)和WebDAV(Web-based Distributed Authoring and Versioning)
* 一些标榜是“防火墙适用”的协议实际上设计为能够绕过典型防火墙的配置。
特定特征的“移动代码”(如ActiveX控件,java和)使得保护存在漏洞的系统以及发现恶意的软件更加困难。
另外,随着Internet网络上计算机的不断增长,所有计算机之间存在很强的依存性。一旦某些计算机遭到了入侵,它就有可能成为入侵者的栖息地和跳板,作为进一步攻击的工具。对于网络基础架构如DNS系统、路由器的攻击也越来越成为严重的安全威胁。
采用主动防御措施应对新一代网络攻击
“红色代码”蠕虫病毒在因特网上传播的最初九小时内就感染了超过250,000个计算机系统。该感染导致的代价以每天2亿美元飞速增长,最终损失高达26亿美元。“红色代码”,“红色代码II”,及“尼姆达”、“求职信”快速传播的威胁显示出现有的网络防御的严重的局限性。市场上大多数的入侵检测系统是简单的,对网络中新出现的、未知的、通常称做“瞬时攻击:Zero-day Attack”的威胁没有足够防御手段。
黑客的“机会之窗”
目前大多数的入侵检测系统是有局限性的,因为它们使用特征码去进行辨别是否存在攻击行为。这些系统采用这种方式对特定的攻击模式进行监视。它们基于贮存在其数据库里的识别信息:类似于防病毒软件检查已知病毒的方式。这意味着这些系统只能检测他们已经编入识别程序的特定的攻击。因为“瞬时攻击”是新出现的,尚未被广泛认识,所以在新的特征码被开发出来,并且进行安装和配置等这些过程之前,它们就能绕过这些安全系统。实际上,仅仅需要对已知的攻击方式进行稍微的修改,这些系统就不会认识这些攻击方式了,从而给入侵者提供了避开基于特征码的防御系统的手段。
从新的攻击的发动到开发新的特征码的这段时间,是一个危险的“机会之窗”,许多的网络会被攻破。这时候许多快速的入侵工具会被设计开发出来,网络很容易受到攻击。下图举例说明了为什么大多数的安全产品在该时期内实际上是无效的。CERT组织研制的这个图表说明了一个网络攻击的典型的生命周期。该曲线的波峰就在攻击的首次袭击之后,这是大多数安全产品最终开始提供保护的时候。然而“瞬时攻击”是那些最老练的黑客在最早期阶段重点展开的。
同时,现在那些快速进行的攻击利用了广泛使用的计算机软件中的安全漏洞来造成分布更广的破坏。仅仅使用几行代码,他们就能编写一个蠕虫渗透到计算机网络中,通过共享账号克隆自己,然后开始攻击你的同伴和用户的网络。使用这种方式,在厂商开发出特征码并将其分发到用户的这段时间内,“尼姆达蠕虫”仅仅在美国就传播到了超过100,000的网络站点。这些分发机制使“瞬间攻击”像SirCam和Love Bug两种病毒分别席卷了230万和4000万的计算机,而不需要多少人为干预。其中有些攻击甚至还通过安装一个后门来为以后的破坏建立基础,该后门允许对手、黑客和其他未获授权的用户访问一个组织重要的数据和网络资源
页:
[1]