破解软件

破解软件,破解密码,破解工具,破解论坛,破解技术

构建算法防黑客(简述黑客防范技术的方法)

本文目录一览:

防黑客有什么好的方法?

据北斗教育介绍:加密“,是一种限制对网络上传输数据的访问权的技术。原始数据(也称为明文,plaintext)被加密设备(硬件或软件)和密钥加密而产生的经过编码的数据称为密文(ciphertext)。将密文还原为原始明文的过程称为解密,它是加密的反向处理,但解密者必须利用相同类型的加密设备和密钥对密文进行解密。

数据加密是确保计算机网络安全的一种重要机制,虽然由于成本、技术和管理上的复杂性等原因,目前尚未在网络中普及,但数据加密的确是实现分布式系统和网络环境下数据安全的重要手段之一。

加密的基本功能包括:

1. 防止不速之客查看机密的数据文件;

2. 防止机密数据被泄露或篡改;

3. 防止特权用户(如系统管理员)查看私人数据文件;

4. 使入侵者不能轻易地查找一个系统的文件。

当新的软件威胁被发现时,逆向工程师会深入到代码以找出检测攻击的方法,识别该代码及其作者,并发现恶意软件背后的目的。

逆向检测恶意程序的数字侦探与创建恶意软件的开发人员斗智斗勇,在这场猫捉老鼠的游戏中,逆向工程师可以很容易地找到恶意软件的副本来破解和分析,而攻击者则制造各种障碍来减慢分析师的工作。攻击者制造的主要障碍是加密和混淆。

网络安全公司Arbor Networks的研究分析师Jeff Edwards表示,在不太遥远的过去,恶意软件中的加密反映了程序作者的勃勃野心。而现在,几乎所有恶意软件都使用了某种加密,大约有三分之二的僵尸网络使用加密通信来混淆他们的活动。

“他们在提高其加密技术方面有一个渐进发展的趋势,”Edward表示,“这一切都取决于僵尸网络操作者和编写者是否感到需要往前发展的压力。”

在Rustock和Kelihos僵尸网络被撤除后,控制这些僵尸网络的地下操作者可能感觉到前所未有的压力,他们需要在更大程度上隐藏其活动。此外,随着恶意软件开发人员变得越来越有经验,他们经常采用更复杂和更好的加密技术。

例如,Black Energy僵尸软件最初使用一种基本的加密技术来使其可执行文件不被杀毒软件察觉,并使用Base64编码来扰乱其通信。这两个都很容易被逆向工程。然而,最新版本的Black Energy使用了更强大的RC4流加密的一个变种(事实证明存在一些缺陷)来编码其通信。

Arbor Networks对用于拒绝服务攻击的四个主要僵尸程序的加密进行了分析,分析发现了多种加密方法,从自定义替换算法到RC4流加密(安全套接字层使用的加密方法)等。在一个分析中,Arbor研究了Dark Comet远程访问木马,该木马使用RC4来加密其通信,并使用其他有趣的技术来混淆加密密钥。

“恶意软件从最开始的没有加密发展到现在强大的加密技术,”Edward表示,“RC4是目前最流行的一种加密方法,或者RC4的变种,它是一个标准,很好理解,而且很安全。”

卡巴斯基实验室高级安全研究员Kurt Baumgartner表示,僵尸网络的加密发展很缓慢,五年前,Sinowal或者Torpig木马使用XTEA区块密码的修改版本来加密其配置数据。自2008年年底以来,Waledac和Kelihos或者Hlux僵尸网络使用AES混合其他编码和压缩来混淆他们的代码和通信。

“在过去几年中,我们看到恶意软件陆陆续续开始使用加密技术,”Baumgartner表示,“这些家伙不会放弃的。”

奇怪的是,研究人员发现有时候恶意软件只是使用简单的混淆。虽然来自俄罗斯和欧洲的恶意软件逐渐开始采用更好的加密方法,而来自某些国家的网络犯罪分子仍然使用简单的方法,有时候甚至不采用混淆。很多被认为是高级持续性威胁的攻击避免使用加密方法,而是用其他类型的混淆。

“我们看到在他们的恶意软件工具包中有各种奇怪的经过修改的编码方法和压缩方法,并不是复杂的加密方法,”Baumgartner表示,“似乎他们是在努力保持在雷达下飞行。”

加密数据通常容易被检测,但不能被解密。自定义加密或者混淆隐藏数据可能不太安全,但是能够更有效地避开安全工具,例如防病毒检测。希望能够帮助到你。望采纳。

软件加密与解密的前言

隐蔽软件(surreptitious software)是近十年来计算机安全研究领域新兴的一个分支。在隐蔽软件的研究过程中不仅需要借鉴计算机安全方面的技术,还会用到计算科学其他领域的大量技术,如密码学、隐写术、数字水印、软件量度(software metric)、逆向工程以及编译器优化等。我们使用这些技术来满足在计算机程序中安全存储秘密信息的需求,尽管这些需求的表现形式千差万别、各不相同。本书中“秘密”一词的意思比较广,书中所介绍技术(代码混淆、软件水印和指纹、防篡改技术以及软件“胎记”等)的使用目的是防止他人剽窃软件中的智力成果。比如,软件中使用指纹技术可以用来跟踪软件是否被盗版,代码混淆技术能够加大攻击者逆向分析软件的难度,而防篡改技术则可以使别人很难制作软件的破解版,等等。

好了,现在我们来讲讲为什么需要阅读本书,谁使用隐蔽软件以及本书将会涵盖哪些内容。

为什么阅读本书

与传统的安全研究不同,隐蔽软件不关心如何使计算机免于计算机病毒入侵,它关心的是计算机病毒的作者是如何防止他人分析病毒的!同样,我们也不关心软件到底有没有安全漏洞,我们关心的是如何隐蔽地在程序中加入一些只有在程序被篡改时才会执行的代码。密码学研究领域中,被加密数据的安全性依赖于加密密钥的隐秘性,而我们现在研究的恰恰是如何隐藏密钥。软件工程中有大量的软件量度技术,以确保程序结构良好,本书中将使用同样的技术使程序复杂难读。本书中描述的很多技术都是基于编译器优化技术研究开发的算法的,但是编译优化的目的是使编译器生成个头尽量小、运行速度尽量快的程序,而使用本书中介绍的一些技术却会使生成的程序个头又大,执行起来又慢。最后,传统的数字水印和隐写术是想办法把要隐藏的信息藏到图像、音频、视频甚至纯文本文件中,而隐蔽软件则是把需要隐藏的信息藏到计算机代码中。

那么,为什么要阅读本书呢?为什么要了解一种不能防止计算机被病毒或者蠕虫攻击的安全技术?为什么要学习一种只会让代码体积变大而执行速度变慢的编译优化技术?为什么要把精力花在一种违反了密码学基本前提(即密钥是不可能被攻击者获得的)的密码学分支上呢?

回答是,传统的计算机安全和密码学研究成果有时并不能解决实际工作中遇到的且亟待解决的安全问题。比如,在本书中将展示如何使用软件水印技术防止软件盗版。软件水印是在程序中嵌入的唯一标识(类似信用卡的卡号或者版权声明),通过这个标识,程序的某个副本就和你(程序的作者)或者客户联系在了一起。要是你发现市场上在卖自己软件的盗版光盘,就可以通过在盗版软件中提取的水印追查制作这个盗版软件的母版 当初是哪个家伙从你这里买走的。当给合作商提供新开发的游戏的测试版时,你也可以在测试版中加上数字水印。要是你感觉有人泄露了你的代码,就能(从众多的合作商中)找出肇事者,并把他送上法庭。

又比如,在程序的新版本中加上了某个新的算法,你当然不希望竞争对手也得到这个算法,并把它加到他们的软件中。这时,你就可以去混淆程序,使之尽可能变得复杂难懂,使竞争对手逆向分析软件时效率很低。而如果确实怀疑某人剽窃了你的代码,本书也会教你如何使用软件“胎记”证实你的怀疑。

再比如,你的程序中包含有某段不能为人所知的代码,并且你想确保没有这段代码程序就不能正常运行。例如,你肯定不希望黑客修改程序中的软件使用许可验证代码,或者可用于解密数字版权管理系统中mp3文件的密钥。第7章将讨论多种防篡改技术,确保受到篡改的程序停止正常运行。

听说你把密钥放在可执行文件里了?这主意实在太糟糕了!以往的经验告诉我们,任何类似“不公开,即安全” 的做法最终都将以失败告终,而且不管在程序中怎样隐藏密钥,最终它都逃不出一个足够顽强的逆向分析人员的手心。当然,必须承认你的做法也还是对的。本书中介绍的所有技巧都不能保证软件能永远免于黑客的毒手。不必保证某个东西永远处于保密的状态,也不必保证程序永远处于不可能被篡改的状态,更不需要保证代码永远不会被剽窃。除非这个研究领域有什么重大的突破,否则能指望的只是延缓对方的攻击。我们的目标就是把攻击者的攻击速度减缓到足够低,使他感到攻击你的软件十分痛苦或要付出过高的代价,从而放弃攻击。也可能攻击者很有耐心地花了很长时间攻破了你的防御,但这时你已经从这个软件中赚够了钱,或者已经用上了更新版本的代码(这时他得到的东西也就一钱不值了)。

比方说,你是一个付费频道的运营商,用户通过机顶盒来观看你提供的电视节目。每个机顶盒都是带有标签的——在代码的某个位置上存放了分配给每个用户的唯一标识(ID),这样你就可以根据用户的缴费情况决定是允许还是拒绝某个特定用户观看频道里的节目。可是现在有一个黑客团伙找到并且反汇编了这段代码,发现了计算用户ID的算法,并且在网上以低廉的价格把修改用户ID的方法卖给了网民。这时你该怎么办呢?你也许想到了使用防篡改的智能卡,不过这玩意儿并不像看上去那么难破解,这将在第11章中讲解。或者你可能想到要混淆代码,使之更难以被分析。或者你也可以使用防篡改技术使程序一被修改就自动停止运行。更有可能,你会混合使用上述各种技巧来保护代码。但是尽管使用了所有技术,你还必须要知道并且必须接受,你的代码仍然可能被破解,秘密仍会泄露(在这个案例里就是机顶盒里的用户ID仍然会被篡改)这一事实。怎么会这样呢?这只是因为“不公开,既安全”这个想法在根本上就存在漏洞。不过既然本书中介绍的所有技术都不能给你一个“完美并且长期的安全保证”,那么为什么还要使用这些技术,为什么还要买这样一本书呢?答案很简单,代码能顶住黑客攻击的时间越长,订阅频道的客户就越多,同时升级机顶盒的周期也就越长,这样你赚到的钱和省下的钱也就越多。

就这么简单。

谁使用隐蔽软件

很多知名的公司都对隐蔽软件有浓厚的兴趣。事实上很难真正掌握有关技术在实践中具体被使用的程度(因为大多数公司在如何保护自己的代码一事上绝对是守口如瓶的),但是我们还是可以根据他们专利的申请和拥有情况把他们对隐蔽软件的感兴趣程度猜个八九不离十。微软公司拥有多个关于软件水印[104,354]、代码混淆[62,62,69,69,70,70,180,378]和软件“胎记”[364]技术的专利。Intertrust公司拥有大量与数字版权管理技术相关的组合式专利,包括代码混淆和代码防篡改专利。2004年,在微软与Intertrust之间的马拉松式官司落下了帷幕之后,微软向Intertrust支付了高达4.4亿美元的专利使用费,才获得了后者所有的专利使用许可。同年,微软也开始与PreEmptive Solution公司开展商业合作[250],从而把PreEmptive Solution开发的identifier obfuscator(PreEmptive solution公司在该工具中拥有专利[351])加到了Visual Studio的工具集里。而普渡大学科研成果的副产品Arxan,因其独创的防篡改算法专利[24,305]而成功地开办了一家公司。苹果公司拥有一个代码混淆方面的专利,估计是用于保护其iTune软件的。Convera,一家从英特尔公司独立出来的企业,则着力研究应用于数字版权管理的代码防篡改技术[27,268-270]。从加拿大北方电信公司中分离出来的Cloakware公司也是这个领域里最成功的企业之一。该公司拥有他们称为“白盒加密”的专利[67,68,182],即把加密算法和密钥藏到程序代码中。2007年12月,Cloakware公司被一家主营付费电视业务的荷兰公司Irdeto以7250万美元的价格收购。即使是相对的后来者Sun Microsystem也已经提交了一些代码混淆领域的专利申请。

Skype的VoIP客户端也使用了类似Arxan[24]、英特尔[27]及本书中将要提到的[89]代码混淆和防篡改技术进行了防逆向工程加固。对于Skype公司来说,保护其客户端的完整性无疑是极其重要的,因为一旦有人成功逆向分析了其客户端软件,解析出Skype所使用的网络协议,黑客们就能写出廉价的能与Skype软件进行正常通信的程序(这样的话,人们就没有必要一定用Skype)。所以保持网络协议不公开则有助于Skype拥有一个庞大的用户群,这大概也是2005年易贝公司以26亿美元收购Skype的原因吧。实际上,使用隐蔽软件技术还使Skype公司赢得了足够多的时间,进而成为了VoIP技术的领军企业。即使这时Skype的协议被分析出来了(这一点黑客们确实也做到了,详见7.2.4节),黑客们也拿不出一个能够撼动Skype市场地位的类似软件了。

学术研究者从多种角度对隐蔽软件技术进行了研究。一些拥有编译器和程序语言研究背景的研究者,比如我们,会很自然地加入这一领域的研究,因为涉及代码转换的绝大多数算法都会涉及静态分析的问题,而这一问题则是编译优化技术的研究者再熟悉不过的了。尽管以前,密码学研究者大多不屑于研究“不公开,即安全”的问题,但最近一些密码学研究人员已经开始把密码学的相关技术应用于软件水印以及发现代码混淆技术的局限性上了。来自多媒体水印、计算机安全和软件工程方面的研究人员也已经发表了很多关于隐蔽软件的文章。遗憾的是,由于没有专门的刊物、学术会议(供研究人员相互之间进行交流),这一领域的研究进展被大大延缓了。事实上,为了使这些研究成果能被传统的学术会议和期刊接受,研究人员在不停地努力着,现在仍在努力。目前已经发表过隐蔽软件研究成果的学术会议有POPL(Principles of Programming Languages,程序设计原理)上的ACM专题研讨会、信息隐藏研讨会、IEEE的软件工程研讨会、高级密码学会议(CRYPTO)、ISC(Information Security Conference,信息安全大会)以及其他一些关于数字版权管理的学术会议。随着隐蔽软件这一领域的研究越来越成为学术研究的主流,我们有望拥有专门针对于隐蔽软件的期刊、专题讨论会甚至是研讨会,只是可惜目前为止这一切都还没有实现。

军方也在隐蔽软件上花了很多精力(和纳税人的钱)。比如,Cousot公司拥有的软件水印算法[95]专利就归属于世界上第九大国防工程承包商法国Thales集团。下面是一段引自最新的(2006)美军招标文件[303]中有关AT(anti-tamper)技术 研究的文字。

现在,所有的美军项目执行部门(PEO)和项目管理方(PM)在设计和实现有关系统时,必须在系统中使用军队和国防部制定的AT策略。嵌入式软件现代武器系统的核心,是被保护的最重要技术之一。AT技术能够有效地保证这些技术不被他国(人)逆向工程分析利用。仅仅由标准编译器编译生成而不加AT技术防护的代码是很容易被逆向分析的。在分析软件时,逆向工程分析人员会综合使用诸如调试器、反编译器、反汇编器等很多工具,也会使用各种静态和动态分析技巧。而使用AT技术的目的就是使逆向工程变得更为困难,进而防止美国在技术领域的优势被他国窃取。今后还有必要向部队的PEO和PM提供更有用、更有效并且多样化的AT工具集……研发AT技术的目的在于提供一个能够抗逆向工程分析的高强度壳 ,从而最大限度地迟滞敌方对被保护软件的攻击。这样美国就有机会维持其在高科技领域的优势或者减缓其武器技术泄密的速度。最终,美军就能继续保持其技术优势,进而保证其军备的绝对优势。

这份招标文件来自于美军导弹和空间程序(设计部门),专注于实时嵌入式系统的保护。我们有理由相信产生这份招标文件的原因是,美军担心射向敌方的导弹由于种种原因落地后未能爆炸,使敌方有机会接触到嵌入在导弹中负责引导导弹飞临目标上空的控制软件。

下面是另一段引自美国国防部[115]的文字。

进行主动式软件保护 (SPI)是国防部的职责之一,它必须开发和部署相关的保护技术,以保证含有国防武器系统关键信息的计算机程序的安全。SPI提供的是一种全新的安全防护方法,它并不(像传统的安全技术那样)保护计算机或者网络的安全,而只是加强计算机程序自身的安全。这种新方法能显著提升国防部的信息安全情况。SPI的适用范围很广,从台式机到超级计算机上面所有的程序都能使用SPI技术予以保护。它是(软件保护技术中)完整的一层,是“纵深防御”的一个范例。SPI技术是对网络防火墙、物理安全等传统安全技术的一个补充,但是其实现并不依赖于这些传统的安全设备。现在SPI技术被部署在选定的HPC中心和150多家国防部机关以及其他由商业公司参与建设和维护的军事基地。广泛地部署SPI技术将会有效地增强美国和美国国防部对关键应用技术的保护。

. 上面这段话说明了什么?它说明美国国防部不仅关心导弹会不会掉到敌方领土上去,还关心在自己的安全系数和性能都很高的计算机中心运行的软件的安全。事实上,窃密和反窃密是防间谍机关和情报部门之间永恒的主题。比方说,一架战斗机上的某个程序需要更新一下,这时我们很可能就是用一台笔记本电脑连接到这架战斗机上进行更新操作。但是万一这台笔记本电脑不慎遗失了,或者干脆就被其他国家政府使用某种方法控制了,就像电影里常演的那样,这时会有什么情况发生呢?对方会马上把相关的代码拿去做逆向工程分析,并把分析的结果用于改进其战斗机中所使用的软件。更有甚者,对方会悄悄地在你的软件中加上一个特洛伊木马,并让飞机在特定的时间里从天上掉下来。如果我们不能绝对保证上述这一幕100%不可能发生的话,隐蔽软件至少可以作为安全防御的最后一道防线(至少还能做到事后的责任追究)。例如,飞机中的软件可以用有权访问相关软件的人的ID做一个指纹签名。要是哪天,在其他国家的战斗机上发现了这些代码,就可以立即对这些代码进行逆向分析,并进一步推算出谁是泄密事件的元凶。

什么?我听见你说,为什么我要对政府之间和商业巨头之间如何保护它们各自的秘密感兴趣呢?如果黑客破解了这些软件,他们也不过是通过自己的劳动换取一些微薄的利益而已啊。话虽如此,但是这些保护技术给你 带来的好处最终还是大于它给商业巨头带来的好处。理由是,对你来说,法律形式的保护措施(如专利、商标和版权)只有当你拥有足够的财力,能在法庭上把对方告倒的时候才会管用。换而言之,即使你认为某家大公司通过破解你的代码,剽窃了一个极有“钱途”的主意,你也无力通过那种马拉松式的官司在法庭上告倒微软,除非你有足够的经济实力能在这种财力的比拼中熬出头 。而在本书中讨论的保护技术(比如代码混淆和防篡改技术)则既廉价又好用,中小型企业和商业巨头均可使用。而且如果这时你去告这家大公司的话,也可以用水印或者软件“胎记”等技术,在法庭上当场拿出代码被剽窃的真凭实据来。

最后不得不简单地提一下另一类极其擅长使用隐蔽软件的人——坏蛋们。病毒的作者已经能非常成功地利用代码混淆的技术伪装病毒的代码,使之逃避杀毒软件的检测了。值得一提的是,人们使用这些技术(如保护DVD、游戏和有线电视)时经常被黑客破解,而黑客使用这些技术(如构建恶意软件)时,人们却很难抗击。

本书内容

隐蔽软件研究的目的是发明能够尽可能迟滞对手(逆向工程分析)进度,同时又尽可能地减少因为使用该技术,而在程序执行时增加的计算开销的算法。同时也需要发明一种评估技术,使我们可以说“在程序中使用了算法A之后,相对于原先的程序,黑客攻破新程序需要多花T个单位的时间,而新程序增加的性能开销是0”,或者最低限度我们也应该可以说“相对于算法B,使用算法A保护的代码更难被攻破”。特别要强调一下,隐蔽软件研究尚处于婴儿期,虽然我们在书中会把相关的保护算法和评估算法全都介绍给大家,但是这门艺术的现状却还并不理想(到时候你可不能太失望啊)。

在本书中,我们试图把当前所有有关隐蔽软件的研究成果组织起来系统化地介绍给读者。我们力争每章内容涵盖一种技术,并描述这一技术的应用领域以及目前可用的算法。第1章将给出隐蔽软件这个领域的一些基本概念;第2章用对抗性演示的模式介绍黑客逆向分析软件时常用的工具和技巧,然后针对这些工具和技巧介绍如何防范黑客的攻击;第3章详细讲述黑客和软件保护方用于分析计算机程序的技术;第4章、第5章和第6章分别介绍与代码混淆有关的算法;第7章介绍与防篡改技术相关的算法;第8章和第9章分别介绍与水印相关的算法;第10章介绍与软件“胎记”相关的算法;第11章讲述基于硬件设备的软件保护技术。

如果你是位企业管理人员,只是对隐蔽软件的研究现状和这些技术怎么应用到你的项目中感兴趣,那么只要阅读第1章和第2章就够了。如果你是位拥有编译器设计背景的研究人员,那么建议直接跳到第3章开始阅读。但是之后的章节还是最好顺序阅读。这是因为……呃,还是举个例子吧,介绍水印技术的章节中会用到在代码混淆章节中介绍的知识。当然在本书撰写过程中,我们还是尽量使各章内容都能独立成章的,所以(如果你拥有一些背景知识)偶尔跳过那么一两章也未尝不可。如果你是一位工程师,想要使用有关技术加固你的软件,那么强烈建议你仔仔细细地阅读第3章的所有内容,如果有条件的话,还应该再搞几本编译原理方面的教材恶补一下“程序静态分析”的知识。然后你就可以随意跳到感兴趣的章节去阅读了。如果你是名大学生,把本书作为一门课程的教材来阅读,那么就应该一页一页地完整阅读本书,期末别忘了做好复习。

希望本书能够做到两件事情。首先,希望能向你,亲爱的读者,证明代码混淆、软件水印、软件“胎记”和防篡改等技术里有大量妙不可言的想法,值得你花点时间去学习,而且这些技术也可以用来保护软件。其次,希望本书能把本领域内当前所有有用的信息汇集在一起,从而为隐蔽软件的深入研究提供一个良好的起点。

Christian Collberg和Jasvir Nagra

2009年2月2日(土拨鼠日)

P.S.实际上写作这本书还有第三个目的。要是在阅读本书时,你突然灵光闪现,冒出一个绝妙的主意,进而激发了你投身于隐蔽软件研究的雄心壮志,那么,亲爱的读者,我这第三个目的就算是达到了。请把你的新算法告诉我们,我们将把它加到本书的下一版里!

怎么预防黑客的攻击

针对黑客网络攻击的预防措施

目前造成网络不安全的主要因素是系统、协议及数据库等的设计上存在缺陷。由于当今的计算机网络操作系统在本身结构设计和代码设计时偏重考虑系统使用时的方便性,导致了系统在远程访问、权限控制和口令管理等许多方面存在安全漏洞。网络互连一般采用TCP/IP协议,它是一个工业标准的协议簇,但该协议簇在制订之初,对安全问题考虑不多,协议中有很多的安全漏洞。同样,数据库管理系统(DBMS)也存在数据的安全性、权限管理及远程访问等方面问题,在DBMS或应用程序中可以预先安置从事情报收集、受控激发、定时发作等破坏程序。

由此可见,针对系统、网络协议及数据库等,无论是其自身的设计缺陷,还是由于人为的因素产生的各种安全漏洞,都可能被一些另有图谋的黑客所利用并发起攻击。因此若要保证网络安全、可靠,则必须熟知黑客网络攻击的一般过程。只有这样方可在?客攻击前做好必要的防备,从而确保网络运行的安全和可靠。

一、黑客攻击网络的一般过程

1、信息的收集

信息的收集并不对目标产生危害,只是为进一步的入侵提供有用信息。黑客可能会利用下列的公开协议或工具,收集驻留在网络系统中的各个主机系统的相关信息:

(1)TraceRoute程序 能够用该程序获得到达目标主机所要经过的网络数和路由器数。

(2)SNMP协议 用来查阅网络系统路由器的路由表,从而了解目标主机所在网络的拓扑结构及其内部细节。

(3)DNS服务器 该服务器提供了系统中可以访问的主机IP地址表和它们所对应的主机名。

(4)Whois协议 该协议的服务信息能提供所有有关的DNS域和相关的管理参数。

(5)Ping实用程序 可以用来确定一个指定的主机的位置或网线是否连通。

2、系统安全弱点的探测

在收集到一些准备要攻击目标的信息后,黑客们会探测目标网络上的每台主机,来寻求系统内部的安全漏洞,主要探测的方式如下:

(1)自编程序 对某些系统,互联网上已发布了其安全漏洞所在,但用户由于不懂或一时疏忽未打上网上发布的该系统的“补丁”程序,那么?客就可以自己编写一段程序进入到该系统进行破坏。

(2)慢速扫描 由于一般扫描侦测器的实现是通过监视某个时间段里一台特定主机发起的连接的数目来决定是否在被扫描,这样黑客可以通过使用扫描速度慢一些的扫描软件进行扫描。

(3)体系结构探测 黑客利用一些特殊的数据包传送给目标主机,使其作出相对应的响应。由于每种操作系统的响应时间和方式都是不一样的,?客利用这种特征把得到的结果与准备好的数据库中的资料相对照,从中便可轻而易举地判断出目标主机操作系统所用的版本及其他相关信息。

(4)利用公开的工具软件 像审计网络用的安全分析工具SATAN、Internet的电子安全扫描程序IIS等一些工具对整个网络或子网进行扫描,寻找安全方面的漏洞。

3、建立模拟环境,进行模拟攻击

根据前面两小点所得的信息,建立一个类似攻击对象的模拟环境,然后对此模拟目标进行一系列的攻击。在此期间,通过检查被攻击方的日志,观察检测工具对攻击的反应,可以进一步了解在攻击过程中留下的“痕迹”及被攻击方的状态,以此来制定一个较为周密的攻击策略。

4、具体实施网络攻击

入侵者根据前几步所获得的信息,同时结合自身的水平及经验总结出相应的攻击方法,在进行模拟攻击的实践后,将等待时机,以备实施真正的网络攻击。

二、协议欺骗攻击及其防范措施

1、源IP地址欺骗攻击

许多应用程序认为若数据包可以使其自身沿着路由到达目的地,并且应答包也可回到源地,那么源IP地址一定是有效的,而这正是使源IP地址欺骗攻击成为可能的一个重要前提。

假设同一网段内有两台主机A和B,另一网段内有主机X。B 授予A某些特权。X 为获得与A相同的特权,所做欺骗攻击如下:首先,X冒充A,向主机 B发送一个带有随机序列号的SYN包。主机B响应,回送一个应答包给A,该应答号等于原序列号加1。然而,此时主机A已被主机X利用拒绝服务攻击 “淹没”了,导致主机A服务失效。结果,主机A将B发来的包丢弃。为了完成三次握手,X还需要向B回送一个应答包,其应答号等于B向A发送数据包的序列号加1。此时主机X 并不能检测到主机B的数据包(因为不在同一网段),只有利用TCP顺序号估算法来预测应答包的顺序号并将其发送给目标机B。如果猜测正确,B则认为收到的ACK是来自内部主机A。此时,X即获得了主机A在主机B上所享有的特权,并开始对这些服务实施攻击。

要防止源IP地址欺骗行为,可以采取以下措施来尽可能地保护系统免受这类攻击:

(1)抛弃基于地址的信任策略 阻止这类攻击的一种十分容易的办法就是放弃以地址为基础的验证。不允许r类远程调用命令的使用;删除.rhosts 文件;清空/etc/hosts.equiv 文件。这将迫使所有用户使用其它远程通信手段,如telnet、ssh、skey等等。

(2)使用加密方法 在包发送到 网络上之前,我们可以对它进行加密。虽然加密过程要求适当改变目前的网络环境,但它将保证数据的完整性、真实性和保密性。

(3)进行包过滤 可以配置路由器使其能够拒绝网络外部与本网内具有相同IP地址的连接请求。而且,当包的IP地址不在本网内时,路由器不应该把本网主机的包发送出去。有一点要注意,路由器虽然可以封锁试图到达内部网络的特定类型的包。但它们也是通过分析测试源地址来实现操作的。因此,它们仅能对声称是来自于内部网络的外来包进行过滤,若你的网络存在外部可信任主机,那么路由器将无法防止别人冒充这些主机进行IP欺骗。

2、源路由欺骗攻击

在通常情况下,信息包从起点到终点所走的路是由位于此两点间的路由器决定的,数据包本身只知道去往何处,而不知道该如何去。源路由可使信息包的发送者将此数据包要经过的路径写在数据包里,使数据包循着一个对方不可预料的路径到达目的主机。下面仍以上述源IP欺骗中的例子给出这种攻击的形式:

主机A享有主机B的某些特权,主机X想冒充主机A从主机B(假设IP为aaa.bbb.ccc.ddd)获得某些服务。首先,攻击者修改距离X最近的路由器,使得到达此路由器且包含目的地址aaa.bbb.ccc.ddd的数据包以主机X所在的网络为目的地;然后,攻击者X利用IP欺骗向主机B发送源路由(指定最近的路由器)数据包。当B回送数据包时,就传送到被更改过的路由器。这就使一个入侵者可以假冒一个主机的名义通过一个特殊的路径来获得某些被保护数据。

为了防范源路由欺骗攻击,一般采用下面两种措施:

? 对付这种攻击最好的办法是配置好路由器,使它抛弃那些由外部网进来的却声称是内部主机的报文。

? 在路由器上关闭源路由。用命令no ip source-route。

三、拒绝服务攻击及预防措施

在拒绝服务攻击中,攻击者加载过多的服务将对方资源全部使用,使得没有多余资源供其他用户无法使用。SYN Flood攻击是典型的拒绝服务攻击。

SYN Flood常常是源IP地址欺骗攻击的前奏,又称半开式连接攻击,每当我们进行一次标准的TCP连接就会有一个三次握手的过程,而SYN Flood在它的实现过程中只有三次握手的前两个步骤,当服务方收到请求方的SYN并回送SYN-ACK确认报文后,请求方由于采用源地址欺骗等手段,致使服务方得不到ACK回应,这样,服务方会在一定时间内处于等待接收请求方ACK报文的状态,一台服务器可用的TCP连接是有限的,如果恶意攻击方快速连续的发送此类连接请求,则服务器的系统可用资源、网络可用带宽急剧下降,将无法向其它用户提供正常的网络服务。

为了防止拒绝服务攻击,我们可以采取以下的预防措施:

(1) 建议在该网段的路由器上做些配置的调整,这些调整包括限制Syn半开数据包的流量和个数。

(2)要防止SYN数据段攻击,我们应对系统设定相应的内核参数,使得系统强制对超时的Syn请求连接数据包复位,同时通过缩短超时常数和加长等候队列使得系统能迅速处理无效的Syn请求数据包。

(3)建议在路由器的前端做必要的TCP拦截,使得只有完成TCP三次握手过程的数据包才可进入该网段,这样可以有效地保护本网段内的服务器不受此类攻击。

(4)对于信息淹没攻击,我们应关掉可能产生无限序列的服务来防止这种攻击。比如我们可以在服务器端拒绝所有的ICMP包,或者在该网段路由器上对ICMP包进行带宽方面的限制,控制其在一定的范围内。

总之,要彻底杜绝拒绝服务攻击,最好的办法是惟有追根溯源去找到正在进行攻击的机器和攻击者。 要追踪攻击者可不是一件容易的事情,一旦其停止了攻击行为,很难将其发现。惟一可行的方法是在其进行攻击的时候,根据路由器的信息和攻击数据包的特征,采用逐级回溯的方法来查找其攻击源头。这时需要各级部门的协同配合方可有效果。

四、其他网络攻击行为的防范措施

协议攻击和拒绝服务攻击是黑客惯于使用的攻击方法,但随着网络技术的飞速发展,攻击行为千变万化,新技术层出不穷。下面将阐述一下网络嗅探及缓冲区溢出的攻击原理及防范措施。

1、针对网络嗅探的防范措施

网络嗅探就是使网络接口接收不属于本主机的数据。计算机网络通常建立在共享信道上,以太网就是这样一个共享信道的网络,其数据报头包含目的主机的硬件地址,只有硬件地址匹配的机器才会接收该数据包。一个能接收所有数据包的机器被称为杂错节点。通常账户和口令等信息都以明文的形式在以太网上传输,一旦被黑客在杂错节点上嗅探到,用户就可能会遭到损害。

对于网络嗅探攻击,我们可以采取以下措施进行防范:

(1)网络分段 一个网络段包括一组共享低层设备和线路的机器,如交换机,动态集线器和网桥等设备,可以对数据流进行限制,从而达到防止嗅探的目的。

(2)加密 一方面可以对数据流中的部分重要信息进行加密,另一方面也可只对应用层加密,然而后者将使大部分与网络和操作系统有关的敏感信息失去保护。选择何种加密方式这就取决于信息的安全级别及网络的安全程度。

(3)一次性口令技术 口令并不在网络上传输而是在两端进行字符串匹配,客户端利用从服务器上得到的Challenge和自身的口令计算出一个新字符串并将之返回给服务器。在服务器上利用比较算法进行匹配,如果匹配,连接就允许建立,所有的Challenge和字符串都只使用一次。

(4)禁用杂错节点 安装不支持杂错的网卡,通常可以防止IBM兼容机进行嗅探。

2、缓冲区溢出攻击及其防范措施

缓冲区溢出攻击是属于系统攻击的手段,通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。当然,随便往缓冲区中填东西并不能达到攻击的目的。最常见的手段是通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其它命令。如果该程序具有root权限的话,攻击者就可以对系统进行任意操作了。

缓冲区溢出对网络系统带来了巨大的危害,要有效地防止这种攻击,应该做到以下几点:

(1)程序指针完整性检查 在程序指针被引用之前检测它是否改变。即便一个攻击者成功地改变了程序的指针,由于系统事先检测到了指针的改变,因此这个指针将不会被使用。

(2)堆栈的保护 这是一种提供程序指针完整性检查的编译器技术,通过检查函数活动记录中的返回地址来实现。在堆栈中函数返回地址后面加了一些附加的字节,而在函数返回时,首先检查这个附加的字节是否被改动过。如果发生过缓冲区溢出的攻击,那么这种攻击很容易在函数返回前被检测到。但是,如果攻击者预见到这些附加字节的存在,并且能在溢出过程中同样地制造他们,那么他就能成功地跳过堆栈保护的检测。

(3)数组边界检查 所有的对数组的读写操作都应当被检查以确保对数组的操作在正确的范围内进行。最直接的方法是检查所有的数组操作,通常可以采用一些优化技术来减少检查次数。目前主要有这几种检查方法:Compaq C编译器、Jones Kelly C数组边界检查、Purify存储器存取检查等。

未来的竞争是信息竞争,而网络信息是竞争的重要组成部分。其实质是人与人的对抗,它具体体现在安全策略与攻击策略的交锋上。为了不断增强信息系统的安全防御能力,必须充分理解系统内核及网络协议的实现,真正做到洞察对方网络系统的“细枝末节”,同时应该熟知针对各种攻击手段的预防措施,只有这样才能尽最大可能保证网络的安全。

参考:

  • 评论列表:
  •  澄萌离祭
     发布于 2022-07-15 12:15:45  回复该评论
  • 在拒绝服务攻击中,攻击者加载过多的服务将对方资源全部使用,使得没有多余资源供其他用户无法使用。SYN Flood攻击是典型的拒绝服务攻击。 SYN Flood常常是源IP地址欺骗攻击的前奏,又称半开式连
  •  断渊栀意
     发布于 2022-07-15 11:37:41  回复该评论
  • 互联网上已发布了其安全漏洞所在,但用户由于不懂或一时疏忽未打上网上发布的该系统的“补丁”程序,那么?客就可以自己编写一段程序进入到该系统进行破坏。 (2)慢速
  •  温人昭浅
     发布于 2022-07-15 06:47:44  回复该评论
  • 的劳动换取一些微薄的利益而已啊。话虽如此,但是这些保护技术给你 带来的好处最终还是大于它给商业巨头带来的好处。理由是,对你来说,法律形式的保护措施(如专利、商标
  •  寻妄矫纵
     发布于 2022-07-15 14:53:18  回复该评论
  • 由于采用源地址欺骗等手段,致使服务方得不到ACK回应,这样,服务方会在一定时间内处于等待接收请求方ACK报文的状态,一台服务器可用的TCP连接是有限的,如果恶意攻击方快速连续的发送此类连接请求,则服务器的系统可用资源、网络可用带宽急

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.