什么是黑客
提起黑客,总是那么神秘莫测。在人们眼中,黑客是一群聪明绝顶,精力旺盛的年轻人,一门心思地破译各种密码,以便偷偷地、未经允许地打入政府、企业或他人的计算机系统,窥视他人的隐私。那么,什么是黑客呢?
黑客(hacker),源于英语动词hack,意为“劈,砍”,引申为“干了一件非常漂亮的工作”。在早期麻省理工学院的校园俚语中,“黑客”则有“恶作剧”之意,尤指手法巧妙、技术高明的恶作剧。在日本《新黑客词典》中,对黑客的定义是“喜欢探索软件程序奥秘,并从中增长了其个人才干的人。他们不象绝大多数电脑使用者那样,只规规矩矩地了解别人指定了解的狭小部分知识。”由这些定义中,我们还看不出太贬义的意味。他们通常具有硬件和软件的高级知识,并有能力通过创新的方法剖析系统。“黑客”能使更多的网络趋于完善和安全,他们以保护网络为目的,而以不正当侵入为手段找出网络漏洞。
另一种入侵者是那些利用网络漏洞破坏网络的人。他们往往做一些重复的工作(如用暴力法破解口令),他们也具备广泛的电脑知识,但与黑客不同的是他们以破坏为目的。这些群体成为“骇客”。当然还有一种人兼于黑客与入侵者之间。
一般认为,黑客起源于50年代麻省理工学院的实验室中,他们精力充沛,热衷于解决难题。60、70年代,“黑客”一词极富褒义,用于指代那些独立思考、奉公守法的计算机迷,他们智力超群,对电脑全身心投入,从事黑客活动意味着对计算机的最大潜力进行智力上的自由探索,为电脑技术的发展做出了巨大贡献。正是这些黑客,倡导了一场个人计算机革命,倡导了现行的计算机开放式体系结构,打破了以往计算机技术只掌握在少数人手里的局面,开了个人计算机的先河,提出了“计算机为人民所用”的观点,他们是电脑发展史上的英雄。现在黑客使用的侵入计算机系统的基本技巧,例如破解口令(password cracking),开天窗(trapdoor),走后门(backdoor),安放特洛伊木马(Trojan horse)等,都是在这一时期发明的。从事黑客活动的经历,成为后来许多计算机业巨子简历上不可或缺的一部分。例如,苹果公司创始人之一乔布斯就是一个典型的例子。
在60年代,计算机的使用还远未普及,还没有多少存储重要信息的数据库,也谈不上黑客对数据的非法拷贝等问题。到了80、90年代,计算机越来越重要,大型数据库也越来越多,同时,信息越来越集中在少数人的手里。这样一场新时期的“圈地运动”引起了黑客们的极大反感。黑客认为,信息应共享而不应被少数人所垄断,于是将注意力转移到涉及各种机密的信息数据库上。而这时,电脑化空间已私有化,成为个人拥有的财产,社会不能再对黑客行为放任不管,而必须采取行动,利用法律等手段来进行控制。黑客活动受到了空前的打击。
但是,政府和公司的管理者现在越来越多地要求黑客传授给他们有关电脑安全的知识。许多公司和政府机构已经邀请黑客为他们检验系统的安全性,甚至还请他们设计新的保安规程。在两名黑客连续发现网景公司设计的信用卡购物程序的缺陷并向商界发出公告之后,网景修正了缺陷并宣布举办名为“网景缺陷大奖赛” 的竞赛,那些发现和找到该公司产品中安全漏洞的黑客可获1000美元奖金。无疑黑客正在对电脑防护技术的发展作出贡献。
2,黑客攻击
一些黑客往往回采取一些几种方法,但是我很想说的是,一个优秀的黑客绝不会随便攻击别人的。
1)、获取口令
这又有三种方法:一是通过网络监听非法得到用户口令,这类方法有一定的局限性,但危害性极大,监听者往往能够获得其所在网段的所有用户账号和口令,对局域网安全威胁巨大;二是在知道用户的账号后(如电子邮件@前面的部分)利用一些专门软件强行破解用户口令,这种方法不受网段限制,但黑客要有足够的耐心和时间;三是在获得一个服务器上的用户口令文件(此文件成为Shadow文件)后,用暴力破解程序破解用户口令,该方法的使用前提是黑客获得口令的 Shadow文件。此方法在所有方法中危害最大,因为它不需要像第二种方法那样一遍又一遍地尝试登录服务器,而是在本地将加密后的口令与Shadow文件中的口令相比较就能非常容易地破获用户密码,尤其对那些弱智用户(指口令安全系数极低的用户,如某用户账号为zys,其口令就是zys666、 666666、或干脆就是zys等)更是在短短的一两分钟内,甚至几十秒内就可以将其干掉。
2)、放置特洛伊木马程序
特洛伊木马程序可以直接侵入用户的电脑并进行破坏,它常被伪装成工具程序或者游戏等诱使用户打开带有特洛伊木马程序的邮件附件或从网上直接下载,一旦用户打开了这些邮件的附件或者执行了这些程序之后,它们就会象古特洛伊人在敌人城外留下的藏满士兵的木马一样留在自己的电脑中,并在自己的计算机系统中隐藏一个可以在windows启动时悄悄执行的程序。当您连接到因特网上时,这个程序就会通知黑客,来报告您的IP地址以及预先设定的端口。黑客在收到这些信息后,再利用这个潜伏在其中的程序,就可以任意地修改您的计算机的参数设定、复制文件、窥视你整个硬盘中的内容等,从而达到控制你的计算机的目的。
3)、WWW的欺骗技术
在网上用户可以利用IE等浏览器进行各种各样的WEB站点的访问,如阅读新闻组、咨询产品价格、订阅报纸、电子商务等。然而一般的用户恐怕不会想到有这些问题存在:正在访问的网页已经被黑客篡改过,网页上的信息是虚假的!例如黑客将用户要浏览的网页的URL改写为指向黑客自己的服务器,当用户浏览目标网页的时候,实际上是向黑客服务器发出请求,那么黑客就可以达到欺骗的目的了。
4)、电子邮件攻击
电子邮件攻击主要表现为两种方式:一是电子邮件轰炸和电子邮件“滚雪球”,也就是通常所说的邮件炸弹,指的是用伪造的IP地址和电子邮件地址向同一信箱发送数以千计、万计甚至无穷多次的内容相同的垃圾邮件,致使受害人邮箱被“炸”,严重者可能会给电子邮件服务器操作系统带来危险,甚至瘫痪;二是电子邮件欺骗,攻击者佯称自己为系统管理员(邮件地址和系统管理员完全相同),给用户发送邮件要求用户修改口令(口令可能为指定字符串)或在貌似正常的附件中加载病毒或其他木马程序(据笔者所知,某些单位的网络管理员有定期给用户免费发送防火墙升级程序的义务,这为黑客成功地利用该方法提供了可乘之机),这类欺骗只要用户提高警惕,一般危害性不是太大。
5)、通过一个节点来攻击其他节点
黑客在突破一台主机后,往往以此主机作为根据地,攻击其他主机(以隐蔽其入侵路径,避免留下蛛丝马迹)。他们可以使用网络监听方法,尝试攻破同一网络内的其他主机;也可以通过IP欺骗和主机信任关系,攻击其他主机。这类攻击很狡猾,但由于某些技术很难掌握,如IP欺骗,因此较少被黑客使用。
6)、网络监听
网络监听是主机的一种工作模式,在这种模式下,主机可以接受到本网段在同一条物理通道上传输的所有信息,而不管这些信息的发送方和接受方是谁。此时,如果两台主机进行通信的信息没有加密,只要使用某些网络监听工具,例如NetXray for windows 95/98/nt,sniffit for linux 、solaries等就可以轻而易举地截取包括口令和帐号在内的信息资料。虽然网络监听获得的用户帐号和口令具有一定的局限性,但监听者往往能够获得其所在网段的所有用户帐号及口令。
7)、寻找系统漏洞
许多系统都有这样那样的安全漏洞(Bugs),其中某些是操作系统或应用软件本身具有的,如Sendmail漏洞,win98中的共享目录密码验证漏洞和IE5漏洞等,这些漏洞在补丁未被开发出来之前一般很难防御黑客的破坏,除非你将网线拔掉;还有一些漏洞是由于系统管理员配置错误引起的,如在网络文件系统中,将目录和文件以可写的方式调出,将未加Shadow的用户密码文件以明码方式存放在某一目录下,这都会给黑客带来可乘之机,应及时加以修正。
8)、利用帐号进行攻击
有的黑客会利用操作系统提供的缺省账户和密码进行攻击,例如许多UNIX主机都有FTP和Guest等缺省账户(其密码和账户名同名),有的甚至没有口令。黑客用Unix操作系统提供的命令如Finger和Ruser等收集信息,不断提高自己的攻击能力。这类攻击只要系统管理员提高警惕,将系统提供的缺省账户关掉或提醒无口令用户增加口令一般都能克服。
9)、偷取特权
利用各种特洛伊木马程序、后门程序和黑客自己编写的导致缓冲区溢出的程序进行攻击,前者可使黑客非法获得对用户机器的完全控制权,后者可使黑客获得超级用户的权限,从而拥有对整个网络的绝对控制权。这种攻击手段,一旦奏效,危害性极大。
这些多百度一下,就可以得到答案。以下仅供参考。
要想更好的保护网络不受黑客的攻击,就必须对黑客的攻击方法、攻击原理、攻击过程有深入的、详细的了解,只有这样才能更有效、更具有针对性的进行主动防护。下面通过对黑客攻击方法的特征分析,来研究如何对黑客攻击行为进行检测与防御。
一、反攻击技术的核心问题
反攻击技术(入侵检测技术)的核心问题是如何截获所有的网络信息。目前主要是通过两种途径来获取信息,一种是通过网络侦听的途径(如Sniffer,Vpacket等程序)来获取所有的网络信息(数据包信息,网络流量信息、网络状态信息、网络管理信息等),这既是黑客进行攻击的必然途径,也是进行反攻击的必要途径;另一种是通过对操作系统和应用程序的系统日志进行分析,来发现入侵行为和系统潜在的安全漏洞。
二、黑客攻击的主要方式
黑客对网络的攻击方式是多种多样的,一般来讲,攻击总是利用“系统配置的缺陷”,“操作系统的安全漏洞”或“通信协议的安全漏洞”来进行的。到目前为止,已经发现的攻击方式超过2000种,其中对绝大部分黑客攻击手段已经有相应的解决方法,这些攻击大概可以划分为以下六类:
1.拒绝服务攻击:一般情况下,拒绝服务攻击是通过使被攻击对象(通常是工作站或重要服务器)的系统关键资源过载,从而使被攻击对象停止部分或全部服务。目前已知的拒绝服务攻击就有几百种,它是最基本的入侵攻击手段,也是最难对付的入侵攻击之一,典型示例有SYN Flood攻击、Ping Flood攻击、Land攻击、WinNuke攻击等。
2.非授权访问尝试:是攻击者对被保护文件进行读、写或执行的尝试,也包括为获得被保护访问权限所做的尝试。
3.预探测攻击:在连续的非授权访问尝试过程中,攻击者为了获得网络内部的信息及网络周围的信息,通常使用这种攻击尝试,典型示例包括SATAN扫描、端口扫描和IP半途扫描等。
4.可疑活动:是通常定义的“标准”网络通信范畴之外的活动,也可以指网络上不希望有的活动,如IP Unknown Protocol和Duplicate IP Address事件等。
5.协议解码:协议解码可用于以上任何一种非期望的方法中,网络或安全管理员需要进行解码工作,并获得相应的结果,解码后的协议信息可能表明期望的活动,如FTU User和Portmapper Proxy等解码方式。
6.系统代理攻击:这种攻击通常是针对单个主机发起的,而并非整个网络,通过RealSecure系统代理可以对它们进行监视。
三、黑客攻击行为的特征分析与反攻击技术
入侵检测的最基本手段是采用模式匹配的方法来发现入侵攻击行为,要有效的进反攻击首先必须了解入侵的原理和工作机理,只有这样才能做到知己知彼,从而有效的防止入侵攻击行为的发生。下面我们针对几种典型的入侵攻击进行分析,并提出相应的对策。
1.Land攻击
攻击类型:Land攻击是一种拒绝服务攻击。
攻击特征:用于Land攻击的数据包中的源地址和目标地址是相同的,因为当操作系统接收到这类数据包时,不知道该如何处理堆栈中通信源地址和目的地址相同的这种情况,或者循环发送和接收该数据包,消耗大量的系统资源,从而有可能造成系统崩溃或死机等现象。
检测方法:判断网络数据包的源地址和目标地址是否相同。
反攻击方法:适当配置防火墙设备或过滤路由器的过滤规则就可以防止这种攻击行为(一般是丢弃该数据包),并对这种攻击进行审计(记录事件发生的时间,源主机和目标主机的MAC地址和IP地址)。
2.TCP SYN攻击
攻击类型:TCP SYN攻击是一种拒绝服务攻击。
攻击特征:它是利用TCP客户机与服务器之间三次握手过程的缺陷来进行的。攻击者通过伪造源IP地址向被攻击者发送大量的SYN数据包,当被攻击主机接收到大量的SYN数据包时,需要使用大量的缓存来处理这些连接,并将SYN ACK数据包发送回错误的IP地址,并一直等待ACK数据包的回应,最终导致缓存用完,不能再处理其它合法的SYN连接,即不能对外提供正常服务。
检测方法:检查单位时间内收到的SYN连接否收超过系统设定的值。
反攻击方法:当接收到大量的SYN数据包时,通知防火墙阻断连接请求或丢弃这些数据包,并进行系统审计。
3.Ping Of Death攻击
攻击类型:Ping Of Death攻击是一种拒绝服务攻击。
攻击特征:该攻击数据包大于65535个字节。由于部分操作系统接收到长度大于65535字节的数据包时,就会造成内存溢出、系统崩溃、重启、内核失败等后果,从而达到攻击的目的。
检测方法:判断数据包的大小是否大于65535个字节。
反攻击方法:使用新的补丁程序,当收到大于65535个字节的数据包时,丢弃该数据包,并进行系统审计。
4.WinNuke攻击
攻击类型:WinNuke攻击是一种拒绝服务攻击。
攻击特征:WinNuke攻击又称带外传输攻击,它的特征是攻击目标端口,被攻击的目标端口通常是139、138、137、113、53,而且URG位设为“1”,即紧急模式。
检测方法:判断数据包目标端口是否为139、138、137等,并判断URG位是否为“1”。
反攻击方法:适当配置防火墙设备或过滤路由器就可以防止这种攻击手段(丢弃该数据包),并对这种攻击进行审计(记录事件发生的时间,源主机和目标主机的MAC地址和IP地址MAC)。
5.Teardrop攻击
攻击类型:Teardrop攻击是一种拒绝服务攻击。
攻击特征:Teardrop是基于UDP的病态分片数据包的攻击方法,其工作原理是向被攻击者发送多个分片的IP包(IP分片数据包中包括该分片数据包属于哪个数据包以及在数据包中的位置等信息),某些操作系统收到含有重叠偏移的伪造分片数据包时将会出现系统崩溃、重启等现象。
检测方法:对接收到的分片数据包进行分析,计算数据包的片偏移量(Offset)是否有误。
反攻击方法:添加系统补丁程序,丢弃收到的病态分片数据包并对这种攻击进行审计。
6.TCP/UDP端口扫描
攻击类型:TCP/UDP端口扫描是一种预探测攻击。
攻击特征:对被攻击主机的不同端口发送TCP或UDP连接请求,探测被攻击对象运行的服务类型。
检测方法:统计外界对系统端口的连接请求,特别是对21、23、25、53、80、8000、8080等以外的非常用端口的连接请求。
反攻击方法:当收到多个TCP/UDP数据包对异常端口的连接请求时,通知防火墙阻断连接请求,并对攻击者的IP地址和MAC地址进行审计。
对于某些较复杂的入侵攻击行为(如分布式攻击、组合攻击)不但需要采用模式匹配的方法,还需要利用状态转移、网络拓扑结构等方法来进行入侵检测。
四、入侵检测系统的几点思考
从性能上讲,入侵检测系统面临的一个矛盾就是系统性能与功能的折衷,即对数据进行全面复杂的检验构成了对系统实时性要求很大的挑战。
从技术上讲,入侵检测系统存在一些亟待解决的问题,主要表现在以下几个方面:
1.如何识别“大规模的组合式、分布式的入侵攻击”目前还没有较好的方法和成熟的解决方案。从Yahoo等著名ICP的攻击事件中,我们了解到安全问题日渐突出,攻击者的水平在不断地提高,加上日趋成熟多样的攻击工具,以及越来越复杂的攻击手法,使入侵检测系统必须不断跟踪最新的安全技术。
2.网络入侵检测系统通过匹配网络数据包发现攻击行为,入侵检测系统往往假设攻击信息是明文传输的,因此对信息的改变或重新编码就可能骗过入侵检测系统的检测,因此字符串匹配的方法对于加密过的数据包就显得无能为力。
3.网络设备越来越复杂、越来越多样化就要求入侵检测系统能有所定制,以适应更多的环境的要求。
4.对入侵检测系统的评价还没有客观的标准,标准的不统一使得入侵检测系统之间不易互联。入侵检测系统是一项新兴技术,随着技术的发展和对新攻击识别的增加,入侵检测系统需要不断的升级才能保证网络的安全性。
5.采用不恰当的自动反应同样会给入侵检测系统造成风险。入侵检测系统通常可以与防火墙结合在一起工作,当入侵检测系统发现攻击行为时,过滤掉所有来自攻击者的IP数据包,当一个攻击者假冒大量不同的IP进行模拟攻击时,入侵检测系统自动配置防火墙将这些实际上并没有进行任何攻击的地址都过滤掉,于是造成新的拒绝服务访问。
6.对IDS自身的攻击。与其他系统一样,IDS本身也存在安全漏洞,若对IDS攻击成功,则导致报警失灵,入侵者在其后的行为将无法被记录,因此要求系统应该采取多种安全防护手段。
7.随着网络的带宽的不断增加,如何开发基于高速网络的检测器(事件分析器)仍然存在很多技术上的困难。
入侵检测系统作为网络安全关键性测防系统,具有很多值得进一步深入研究的方面,有待于我们进一步完善,为今后的网络发展提供有效的安全手段。
1-1:什么是“黑客”(hacker)
事实上,黑客也就是英文hacker的音译,hacker这个单词源于动词hack,这个词在英语中有“乱砍、劈,砍”之意,还有一个意思是指“受雇于从事艰苦乏味的工作的文人”。hack的一个引申的意思是指“干了一件非常漂亮的事”.在早期的麻省理工学院里,“hacker”有“恶作剧”的意思,尤指那些手法巧妙、技术高明的恶作剧,可见,至少是在早期,黑客这个称谓并无贬义。
“破解不是学习使用一个什么软件,不是按照说明书来操作,它是一种人和人智力的较量,是一种智慧的战争艺术,是一种知识与知识的较量。从本质上讲,学习破解跟学习其他知识一样,都是要下苦功,要靠灵感,要靠自己思考的。”这就是黑客对自己的行为的一种诠释。
1-2:什么是“骇客”(cracker)
骇客是“cracker”的音译,就是“破坏者”的意思。这些人做的事情更多的是破解商业软件、恶意入侵别人的网站并造成损失。
骇客具有与黑客同样的本领,只不过在行事上有些差别而已,这也是人们常常很难分清黑客与骇客的原因之一。
其实,黑客也好、骇客也好,名称只是一种代号而已,应该说他们之间并无绝对的界限,黑客和骇客都是非法入侵者,既然是非法入侵,再去区分什么善意和恶意也没有什么意义,这里要提醒大家的是:无论是善意还是恶意的入侵,都有可能给被入侵者造成一定的损失。
1-3:怎样才算是一名黑客
首先,黑客绝非是自称的,自称为黑客,甚至取了一个与黑客相关的名字,都会遭到真正的黑客的嘲笑。再黑客的圈子里,只有其他的黑客接纳了你,得到其他黑客的认可,你才能算个黑客。
其次,你应该具有一定的创造力,一个仅仅拿着黑客前辈们所编写的黑客软件到处乱试,一旦出现问题却又束手无策的人,绝对称不上是黑客。
此外,一名黑客还应当具又黑客的精神以及黑客的行为,要能够融入黑客们自然形成的黑客文化当中去。当然,最重要的就是:你必须具备黑客所应当有的技能,必须是技术上的行家。并且热衷于解决问题,能无偿地帮助别人。
1-4:黑客行为:
1:(不随便攻击个人用户及站点),作为一个黑客,在找到系统漏洞并侵入的时候,往往都会很小心地避免造成琐事,并且善意地提醒系统管理员,但是在这过程中会有许多因素都是未知的,没有人能肯定最终会是什么结果,因此一个好的黑客是不会随便攻击个人用户及站点的。
2:(多编写一些有用的软件),这些软件都是免费的,但又和一般的共享软件有所不同,因为这些软件的源代码同时也是公开的。
3:(帮助别的黑客测试与调试软件),没有人能写出完全没有一点错误或是不需要改进的完美软件,因而对软件的测试与调试是非常重要的,测试与调试软件甚至会比编写软件更耗费精力,但在黑客的世界中,这或许并算不了什么的,因为在你编写出一个软件后,会有许多其他的黑客热心地帮助你测试与调试。
4:(义务做一些力所能及的事情),黑客们都以探索漏洞与编写程序为乐,但在黑客的圈子里,除了探索漏洞与编写程序外,还有许多其他的杂事,如维护和管理相关的黑客论坛、新闻组以及邮件列表,维持大的软件供应站点,推动RFC和其他技术标准等等,这些事情都需要人来做,但也许并不都是那么令人感到有趣。所以,那些花费大量精力,义务地为网友们整理FAQ、写教程的黑客,以及各黑客站点的站长,在网络上都是令人尊敬的。
5:(洁身自好,不与“骇客”混在一起),真正的黑客总是耻于与“骇客”为伍,黑客不会随意破解商业软件并将其广泛流传,也不会恶意侵入别人的网站并造成损失,黑客的所作所为应当更象是对于网络安全的监督。
1-5:黑客精神
1:(“free”,自由、免费的精神),这是黑客文化的精髓之一,“free”是作为一个黑客所应该具有的态度。作为一个好的黑客,应该主动去发现问题并解决问题,同时还要创造新的东西,相信自由并自愿的互相帮助。黑客们编写的各种黑客软件都是完全免费共享的,甚至连源代码都是公开的,黑客们在帮助你之后,唯一的要求就是在你成长起来以后同样地帮助别人。所以,“free”可以算是黑客的传统精神,也是一个真正的黑客所尽力保持的。
2:(探索与创新的精神),所有的黑客都是喜欢探索软件程序奥秘的人,他们探索着程序与系统的漏洞,并能够从中学到很多知识,在发现问题的同时,他们都会提出解决问题的创新方法。
3:(反传统的精神),反传统的精神在黑客们的身上表现的最明显不过了,不具备这种精神的人,很难想象他会成为一名黑客。而这里的“反传统”主要是指科学技术上的反传统,并不包含任何贬义。黑客们做的最多的事情就是探索与创新,这都需要他们具有反传统的精神,他们的快乐就源于攻破传统的东西。
4:(合作的精神),个人的力量是有限的,黑客们很明白这一点,因此才有了那么多供黑客交流的论坛与新闻组,在技术上保留的人是不可能成为黑客的。
1-5:黑客所必须具备的基本技能:
1:(程序设计基础),毫无疑问,编程是每一个黑客所应该具备的最基本的技能。但是,黑客与程序员又是有所不同的,黑客往往掌握着许多种程序语言的精髓,或者说是弱点与漏洞。并且黑客们是以独立于任何程序语言之上的概括性观念来思考一件程序设计上的问题,汇编语言、C语言都是黑客们应该掌握的。培养这种能力的方法要与常人不同,要多读别人的源代码,好的源代码都是前辈黑客们的作品,同时也要自己试着写程序。
2:(了解并熟悉各种操作系统),Unix之所以如此受到黑客们的重视,并不仅仅因为它最初就是由黑客们编写的,我们知道除了Unix操作系统外还有很多操作系统,但能得到源代码并能任意修改的操作系统只有Unix!更重要的是,Unix是用于网络的操作系统,互连网上有许多主机使用的操作系统都是Unix,至少在目前,互连网还不能没有Unix。因此,许多黑客同时也是一个Unix专家,他们清楚这个操作系统的这个运做过程与基理。除了Unix操作系统外,黑客还必须熟知诸如Liux、Windows、Novell等操作系统,才能使自己做黑客如虎添翼!
3:(全面了解互连网以及网络编程),黑客们所创造出来的东西,在很多领域里都在起着作用,但只有互连网,才是黑客们真正的舞台,作为一名黑客,不懂得使用World Wide Web 与Html是不可思议的,同时,若没有网络编程基础,要做黑客也是苍白无力的。
什么是黑客?
Jargon File中对“黑客”一词给出了很多个定义,大部分定义都涉及高超的编程技术,强烈的解决问题和克服限制的欲望。如果你想知道如何成为一名黑客,那么好,只有两方面是重要的。(态度和技术)
长久以来,存在一个专家级程序员和网络高手的共享文化社群,其历史可以追溯到几十年前第一台分时共享的小型机和最早的ARPAnet实验时期。 这个文化的参与者们创造了“黑客”这个词。 黑客们建起了Internet。黑客们使Unix操作系统成为今天这个样子。黑客们搭起了Usenet。黑客们让WWW正常运转。如果你是这个文化的一部分,如果你已经为它作了些贡献,而且圈内的其他人也知道你是谁并称你为一个黑客,那么你就是一名黑客。
黑客精神并不仅仅局限于软件黑客文化圈中。有些人同样以黑客态度对待其它事情如电子和音乐---事实上,你可以在任何较高级别的科学和艺术中发现它。软件黑客们识别出这些在其他领域同类并把他们也称作黑客---有人宣称黑客实际上是独立于他们工作领域的。 但在本文中,我们将注意力集中在软件黑客的技术和态度,以及发明了“黑客”一词的哪个共享文化传统之上。
另外还有一群人,他们大声嚷嚷着自己是黑客,实际上他们却不是。他们是一些蓄意破坏计算机和电话系统的人(多数是青春期的少年)。真正的黑客把这些人叫做“骇客”(cracker),并不屑与之为伍。多数真正的黑客认为骇客们是些不负责任的懒家伙,还没什么大本事。专门以破坏别人安全为目的的行为并不能使你成为一名黑客, 正如拿根铁丝能打开汽车并不能使你成为一个汽车工程师。不幸的是,很多记者和作家往往错把“骇客”当成黑客;这种做法激怒真正的黑客。
根本的区别是:黑客们建设,而骇客们破坏。
如果你想成为一名黑客,继续读下去。如果你想做一个骇客,去读 alt.2600 新闻组,并在发现你并不像自己想象的那么聪明的时候去坐5到10次监狱。 关于骇客,我只想说这么多。
---黑客的态度
黑客们解决问题,建设事物,信仰自由和双向的帮助,人人为我, 我为人人。
要想被认为是一名黑客,你的行为必须显示出你已经具备了这种态度。要想做的好象你具备这种态度,你就不得不真的具备这种态度。但是如果你想靠培养黑客态度在黑客文化中得到承认,那就大错特错了。因为成为具备这些特质的这种人对你自己非常重要,有助于你学习,并给你提供源源不断的活力。同所有有创造性的艺术一样,成为大师的最有效方法就是模仿大师的精神---不是仅从理智上,更要从感情上进行模仿。
So,如果你想做一名黑客,请重复以下事情直到你相信它们:
1 这世界充满待解决的迷人问题
做一名黑客有很多乐趣,但却是些要费很多气力方能得到的乐趣。 这些努力需要动力。成功的运动员从健壮体魄,挑战自我极限中汲取动力。同样,做黑客,你必须
要有从解决问题,磨练技术,锻炼智力中得到基本的热望。如果你还不是这类人又想做黑客,你就要设法成为这样的人。否则你会发现,你的黑客热情会被其他诱惑无情地吞噬掉---如金钱、性和社会上的虚名。
(同样你必须对你自己的学习能力建立信心---相信尽管你对某问题所知不多,但如果你一点一点地学习、试探,你最终会掌握并解决它。)
2. 一个问题不应该被解决两次
聪明的脑瓜是宝贵的,有限的资源。当这个世界还充满其他有待解决的有趣问题之时,他们不应该被浪费在重新发明轮子这些事情上。 作为一名黑客,你必须相信其他黑客的思考时间是宝贵的---因此共享信息,解决问题并发布结果给其他黑客几乎是一种道义,这样其他人就可以去解决新问题而不是重复地对付旧问题。
(你不必认为你一定要把你的发明创造公布出去,但这样做的黑客是赢得大家尊敬最多的人。卖些钱来给自己养家糊口,买房买车买计算机甚至发大财和黑客价值也是相容的,只要你别忘记你还是个黑客。)
3. 无聊和乏味的工作是罪恶
黑客们应该从来不会被愚蠢的重复性劳动所困扰,因为当这种事情发生时就意味着他们没有在做只有他们才能做的事情---解决新问题。这样的浪费伤害每一个人。因此,无聊和乏味的工作不仅仅是令人不舒服而已,它们是极大的犯罪。 要想做的象个黑客,你必须完全相信这点并尽可能多地将乏味的工作自动化,不仅为你自己,也为了其他人(尤其是其他黑客们)。
(对此有一个明显的例外。黑客们有时也做一些重复性的枯燥工作以进行“脑力休息”,或是为练熟了某个技巧,或是获得一些除此无法获得的经验。但这是他自己的选择---有脑子的人不应该被迫做无聊的活儿。)
4 自由就是好
黑客们是天生的反权威主义者。任何能向你发命令的人会迫使你停止解决令你着迷的问题,同时,按照权威的一般思路,他通常会给出一些极其愚昧的理由。因此,不论何时何地,任何权威,只要他压迫你或其他黑客,就要和他斗到底。
(这并非说任何权力都不必要。儿童需要监护,罪犯也要被看管起来。 如果服从命令得到某种东西比起用其他方式得到它更节约时间,黑客会同意接受某种形式的权威。但这是一个有限的、特意的交易;权力想要的那种个人服从不是你的给予,而是无条件的服从。)
权力喜爱审查和保密。他们不信任自愿的合作和信息共享---他们只喜欢由他们控制的合作。因此,要想做的象个黑客,你得对审查、保密,以及使用武力或欺骗去压迫人们的做法有一种本能的反感和敌意。
5. 态度不能替代能力
要做一名黑客,你必须培养起这些态度。但只具备这些态度并不能使你成为一名黑客,就象这并不能使你成为一个运动健将和摇滚明星一样。成为一名黑客需要花费智力,实践,奉献和辛苦。
因此,你必须学会不相信态度,并尊重各种各样的能力。黑客们不会为那些故意装模做样的人浪费时间,但他们却非常尊重能力---尤其是做黑客的能力,不过任何能力总归是好的。具备很少人才能掌握的技术方面的能力尤其为好,而具备那些涉及脑力、技巧和聚精会神的能力为最好。
如果你尊敬能力,你会享受提高自己能力的乐趣---辛苦的工作和奉献会变成一种高度娱乐而非贱役。 要想成为一名黑客,这一点非常重要。
基本黑客技术
黑客态度是重要的,但技术更加重要。态度无法替代技术,在你被别的黑客称为黑客之前,有一套基本的技术你必须掌握。 这套基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如,过去包括使用机器码编程,而知道最近才包括了HTML语言。但现在明显包括以下技术:
1 学习如何编程
这当然是最基本的黑客技术。如果你还不会任何计算机语言,我建议你从Python开始。它设计清晰,文档齐全,对初学者很合适。尽管是一门很好的初级语言,它不仅仅只是个玩具。它非常强大,灵活,也适合做大型项目。
但是记住,如果你只会一门语言,你将不会达到黑客所要求的技术水平,甚至也不能达到一个普通程序员的水平---你需要学会如何以一个通用的方法思考编程问题,独立于任何语言。要做一名真正的黑客,你需要学会如何在几天内通过一些手册,结合你现在所知,迅速掌握一门新语言。这意味着你应该学会几种不同的语言。
如果要做一些重要的编程,你将不得不学习C语言,Unix的核心语言。其他对黑客而言比较重要的语言包括Perl和LISP。 Perl很实用,值得一学;它被广泛用于活动网页和系统管理,因此即便你从不用Perl写程序,至少也应该能读懂它。 LISP 值得学习是因为当你最终掌握了它你会得到丰富的经验;这些经验使你在以后的日子里成为一个更好的程序员,即使你实际上可能很少使用LISP本身。
当然,实际上你最好四种都会。 (Python, C, Perl, and LISP). 除了是最重要的四种基本语言,它们还代表了四种非常不同的编程方法,每种都会让你受益非浅。
这里我无法完整地教会你如何编程---这是个复杂的活儿。但我可以告诉你,书本和课程也不能作到。几乎所有最好的黑客都是自学成材的。真正能起作用的就是去亲自读代码和写代码。
学习如何编程就象学习用自然语言写作一样。最好的做法是读一些大师的名著,试着自己写点东西,再读些,再写点,又读些,又写点....如此往复,直到你达到自己在范文中看到的简洁和力量。
过去找到好的代码去读是困难的,因为很少有大型程序的可用源代码能让新手练手。这种状况已经得到了很大的改善;现在有很多可用的开放源码软件,编程工具和操作系统(全都有黑客写成)。这使我们自然地来到第二个话题...
2 得到一个开放源码的Unix并学会使用、运行它
我假设你已经拥有了一台个人计算机或者有一个可用的( 今天的孩子们真幸福 :-) )。新手们最基本的一步就是得到一份Linux或BSD-Unix,安装在个人计算机上,并运行它。
当然,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发送的---你无法读到它的源码,更不可能修改它。尝试在DOS或Windows的机器上学习黑客技术,就象是在腿上绑了铁块去学跳舞。
除此之外,Unix还是Internet的操作系统。你可以不知道Unix而学会用Internet,但不懂它你就无法成为一名Internet黑客。因为这个原因,今天的黑客文化在很大程度上是以Unix为中心的。(这点并不总是真的,一些很早的黑客对此很不高兴,但Unix和Internet之间的共生关系已是如此之强,甚至连微软也无可奈何)
So,装一个Unix---我个人喜欢Linux,不过也有其他选择。(你也可以在同一台机器上同时运行DOS,Windows和Linux)学会它。运行它。用它跟Internet对话。读它的代码。试着去修改他。你会得到比微软操作系统上好的多的编程工具(包括C,Lisp, Python, and Perl),你会得到乐趣,并将学到比你想象的更多知识。
关于学习Unix的更多信息,请看 The Loginataka.
要得到Linux,请看: 哪里能得到 Linux.
3 学会如何使用WWW和写HTML
大多黑客文化建造的东西都在你看不见的地方发挥着作用,帮助工厂、办公室和大学正常运转,表面上很难看到它对他人的生活的影响。Web是一个大大的例外。即便政客也同意,这个巨大而耀眼的黑客玩具正在改变整个世界。单是这个原因(还有许多其它的), 你就需要学习如何掌握Web。
这并不是仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML,Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先建起自己的主页。
但仅仅建一个主页也不能使你成为一名黑客。 Web里充满了各种网页。多数是无意义的,零信息量垃圾。
要想有价值,你的网页必须有内容---必须有趣或对其它黑客有用。这样,我们来到下一个话题....
黑客文化中的地位大教堂与集市”,解释了许多Linux和开放源码文化的运做原理。我还在它的续集“大教堂与集市”,解释了许多Linux和开放源码文化的运做原理。我还在它的续集“开拓智域”一文中有更直接的论述。
剧情吧工夫 : 二0 一 六-0 一- 二0 0 九: 五 五:00 长帅第 一散剧情先容 小教良肇事 多多 弛做霖狠口学训 长帅弛教良兵马 平生 ,活了一百明年 ,早年正在美国夏威夷渡过 。当他远望 着这一马平川的年夜 海时,恍如看到了本身 从一个小毛孩成少为长帅的行程。 弛教...
// 检测MySQL办事 function getMysqlVersion(){if (extension_loaded( 三 九;PDO_MYSQL 三 九;)) {try {$dbh = new PDO( 三 九;mysql:host= 一 九 二. 一 六 八. 二. 一0 三;port= 三...
远期要为 二0 一 六年应届熟制造 经营圆里的训练资料 ,正在进修 服装论坛t.vhao.net列位 年夜 神的文章后,深有感想 ,经营的世界让人入神 战神往,但也有让人捉摸没有透之处,是以 尔正在起笔制造 训练资料 的时刻 ,准则是让每个应届卒业 熟能普通 难懂地舆 解经营的观点 战常识 系统...
一、带去流质网站的流质。二、否以提下原站的无名度。三、提下各年夜 搜刮 引擎 对于原站的权重。以上 三点是胜利 的友情链交否以到达 的后果 。作甚 胜利 ,作甚 掉 败呢?1、链交的网站取原站内容出有所有接洽 ,起到感化 也便没有年夜 。2、链交的网站未被搜刮 引擎增除了,则 对于原站会有很年夜 的...
昨天笔者便战年夜 野去解读不法 网上赔钱的一点儿机密 。 哪些长短 法的网赔? 以暴富,下归报为宣扬 标语 的“不法 ”网赔情势 ,如:下价收买流质,花几十元钱便能挣几百,几千元等标语 。借有一种便是日赔的情势 ,例如天天 沉紧赔五百元。念念那便是哄人 的,假如 实的如斯 沉紧,他便没必要教授...
原文经由过程 搜刮 成果 演绎剖析 +切词通用算法剖析 的体式格局 对于baidu预处置 阶段的查询处置 战外文分词二项技术入止了论述 、总结,假如 您 对于数据构造 、算法有必然 相识 的话,懂得 起去会相对于轻易 些;小我 感到 ,患上没邪背最年夜 婚配算法不敷 精确 ,不管是公用辞书 照样 通...