4.1 黑客的概念及攻击途径
【案例4-1】美国互联网大规模瘫痪事件。2016年10月21日,一场始于美国东部的大规模互联网瘫痪事件席卷了全美,包括Twitter、Spotify、Netflix、Airbnb、Github、Reddit及纽约时报等主要网站都受到黑客攻击。造成本次大规模网络瘫痪的原因是Dyn Inc.的服务器遭到了DDoS攻击。DDoS攻击又称拒绝服务攻击。最基本的DDoS就是黑客利用合理的服务请求去占用尽可能多的服务资源,从而使用户无法得到服务响应。位于美国新罕布什尔州曼彻斯特市的Dyn是美国主要域名服务器(DNS)供应商。DNS是互联网运作的核心,其主要职责就是将用户输入的内容翻译成计算机可以理解的IP地址,从而将用户引入正确的网站。一旦遭到攻击,用户就无法登录网站。对于该事件,美国国土安全部和FBI联合展开调查,但是截至目前仍然没有查明幕后黑手。
微视频
第4章 授课视频
4.1.1 黑客的概念及形成
1.黑客的概念
黑客(Hacker)一词最早源自英文Hacker,早期在美国的计算机界对此称谓带有一定的褒义。黑客一词原指喜欢用智力通过创造性方法来挑战脑力极限的人,特别是对计算机网络系统、编程、电信或电器工程等感兴趣的领域,如热心于计算机技术,水平高超的能人,特别是能够进行特殊程序设计的人。后来其含义逐渐有所变化,主要指那些专业技能超群、聪明能干、精力旺盛、对计算机信息系统进行非授权访问的人。在媒体报道中,黑客一词泛指那些“软件骇客”,现在,黑客一词已被用于泛指那些专门利用计算机网络搞破坏或恶作剧的人,实际上,对这些人的准确英文称谓是Cracker,常翻译成“骇客”。
知识拓展
黑客与骇客
在现代的计算机网络环境下,人们对黑客的理解和印象已经鱼目混珠,其概念也随着信息技术的快速发展和网络安全问题的不断出现而有所变化。通常黑客是指在计算机技术上有一定特长,并凭借掌握的技术知识,采用各种不正当的手段躲过计算机网络系统的安全措施和访问控制,而进入计算机网络进行未授权或非法活动的人。甚至在很多网站、书籍和资料中将“黑客”认为是网络“攻击者”和“破坏者”。
2.黑客的类型
实际上,较早的网络黑客主要分为三大类:破坏者、红客和间谍。其中,破坏者又称为骇客(Cracker),而红客则是遵循“国家利益至高无上”的正义“网络大侠”,计算机情报间谍则是“利益至上”的情报“盗猎者”。
早期的大部分黑客主要入侵程控电话系统,找出其中的漏洞,借以享受免费的电话业务。随着计算机网络的发展,他们对网络产生了越来越浓厚的兴趣。最初他们闯入他人计算机系统的本意并不是攻击对方和造成破坏,而是凭借自己的专业技能发现其中的漏洞,进入系统后留下一定的标记,以此来炫耀个人的能力。
3.黑客的形成与发展
【案例4-2】 20世纪60年代,在美国麻省理工学院的人工智能实验室里,有一群自称为黑客的学生们以编制复杂的程序为乐趣,当初并没有功利性目的。此后不久,连接多所大学计算机实验室的美国国防部实验性网络APARNET建成,黑客活动便通过网络传播到更多的大学乃至社会。后来,有些人利用手中掌握的“绝技”,借鉴盗打免费电话的手法,擅自闯入他人的计算机系统,干起了隐蔽活动。随着APARNET逐步发展成为因特网,黑客们的活动天地越来越广阔,人数也越来越多,形成鱼目混珠的局面。
知识拓展
黑客的常见行为
近年来,随着计算机网络及信息化建设的飞速发展,各种恶性的非法入侵事件不断出现,对世界各国计算机系统的安全构成了极大的威胁,于是在人们的心目中,黑客的形象也就被抹黑了。黑客侵入计算机系统是否造成破坏,因其主观动机不同而有很大的差别。一些黑客纯粹出于好奇心和自我表现欲,通过网络侵入非授权的计算机系统,有时只是窥探一下别人的秘密或隐私,并不打算窃取任何数据和破坏系统。另有一些黑客出于某种原因(如泄私愤、报复或抗议)而侵入和篡改目标网站的内容,警告并羞辱对方。例如1999年5月,以美国为首的北约声称失误炸毁我国驻南斯拉夫使馆后,曾有一批自称“正义的红客”纷纷闯入美国的白宫网站、美国驻华使馆网站、美国国防部网站和美国空军等官方网站,篡改其主页表示抗议。
4.1.2 黑客攻击的主要途径
大多数用户对黑客和黑客技术而言还是不太清楚,为了揭开黑客的神秘面纱,下面介绍有关黑客的基础知识。
1.黑客攻击的漏洞
黑客攻击主要借助于计算机网络系统的漏洞。漏洞又称系统缺陷,是在硬件、软件或协议的具体实现或系统安全策略上存在的缺陷,从而可使攻击者能够在未授权的情况下访问或破坏系统。黑客的产生与生存是由于计算机及网络系统本身存在漏洞和隐患,才使黑客攻击有机可乘。产生漏洞并为黑客所利用的原因包括以下几点。
1)计算机网络协议本身的缺陷。网络采用的Internet基础协议TCP/IP在设计之初就没有考虑安全方面的问题,注重开放和互联而过分信任协议,使得协议的缺陷更加突出。
2)软件设计本身的缺陷。软件研发没有很好地解决保证大规模软件可靠性的问题,致使大型系统都可能存在缺陷(Bug)。主要是指操作系统或系统程序在设计、编写、测试或设置时,难以做到非常细致周全,在遇到看似合理但实际上难以处理的问题时,引发了不可预见的错误。漏洞的产生主要有4个方面:操作系统基础设计错误;源代码错误(缓冲区、堆栈溢出及脚本漏洞等);安全策略施行错误;安全策略对象歧义错误。
3)系统配置不当。有许多软件是针对特定环境配置研发的,当环境变换或资源配置不当时,就可能使本来很小的缺陷变成漏洞。
4)系统安全管理中的问题。快速增长的软件的复杂性、训练有素的安全技术人员的不足,以及系统安全策略的配置不当,都增加了系统被攻击的可能。
2.黑客入侵通道
(1)网络端口的概念
计算机是通过网络端口(Protocol port)实现与外部通信的Socket连接,黑客攻击是将系统和网络设置中的各种端口作为入侵通道。其中的端口是逻辑意义上的端口,是指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(输入/输出)缓冲区、通信传输与服务的接口。
实际上,如果将计算机网络的IP地址比作一栋楼中的一间房子,那么TCP/IP中的端口就如同出入这间房子的门。网络端口通过只有整数的端口号标记,范围为0~65535(即216-1)。在Internet上,各主机间通过TCP/IP发送和接收数据包,各数据包根据其目的主机的IP地址进行互联网络中的路由选择。
(2)端口机制的由来
由于大多数操作系统都支持多程序(进程)同时运行,目的主机需要知道将接收到的数据包再回传送给众多同时运行的进程中的哪一个,同时本地操作系统给哪些有需求的进程分配协议端口。当目的主机通过网络系统接收到数据包以后,根据报文首部的目的端口号,将数据发送到相应端口,与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。事实上,不仅接收数据包的进程需要开启它自己的端口,发送数据包的进程也需要开启端口,因此,数据包中将会标识有源端口号,以便接收方能顺利地回传数据包到这个端口。目的端口号用来通知传输层协议将数据传送给哪个软件来处理。一般源端口号是由操作系统自己动态生成的一个为1024~65535的号码。
网络端口分类标准有多种方法,按端口号分布可分为3段。
1)公认端口(0~1023),又称常用端口,为已经公认定义或将要公认定义的软件保留的。这些端口紧密绑定一些服务且明确表示了某种服务协议。如80端口表示HTTP协议。一般来说,默认端口不允许用户进行太多的修改。
2)注册端口(1024~49151),又称保留端口,这些端口松散绑定一些服务。
3)动态/私有端口(49152~65535)。理论上不应为服务器分配这些特殊专用的端口。
按协议类型,可以将端口划分为TCP和UDP端口。
1)TCP端口是指传输控制协议端口,需要在客户端和服务器之间建立连接,提供可靠的数据传输。如Telnet服务的23端口。
2)UDP端口是指用户数据包协议端口,不需要在客户端和服务器之间建立连接。常见的端口有DNS服务的53端口。
3.社会工程学
社会工程学是计算机信息安全工作链路的一个最容易被忽略和最脆弱的环节。对于网络安全事件的分析,人们经常提到“三分技术,七分管理”,这里的“管理”就是人们经常忽略的社会工程学。比如,最安全的计算机就是已经拔去了插头(注释:网络接口)的那一台(注释:“物理隔离”)。事实上,可以去说服某人(注释:使用者)把这台非正常工作状态下的、容易受到攻击的(注释:有漏洞的)机器接上插头(注释:连上网络)并启动(注释:提供日常的服务)。可以看出,“人”这个环节在整个安全体系中是非常重要的。这不像地球上的计算机系统,不依赖他人手动干预(注释:人有自己的主观思维)。由此意味着信息安全的脆弱性是普遍存在的,它不会因为系统平台、软件、网络又或者是设备的年限等因素不同而有所差异。
无论是在物理上还是在虚拟的电子信息上,任何一个可以访问系统某个部分(注释:某种服务)的人都有可能构成潜在的安全风险与威胁。任何细微的信息都可能会被社会工程学使用者用“补给资料”来运用,使其得到其他信息。这意味着没有把“人”(注释:这里是指使用者/管理人员等参与者)这个因素放进企业安全管理策略中去的话,将会形成一个很大的安全“裂缝”。
讨论思考
1)什么是安全漏洞和隐患?为什么网络会存在安全漏洞和隐患?
2)举例说明计算机网络安全面临的黑客攻击问题。
3)黑客可以利用的端口主要指哪些?特别包括什么?
4)社会工程学在信息安全领域的应用有哪些?