开篇声明,小萌新创作这篇文章的初衷只是想介绍一些关于黑客方面的基础知识,从读者的角度去满足一些计算机爱好者的好奇心,那我们就开始吧!
- 正如一个硬币有两面一样,黑客也有好坏之分。在黑客的世界中,往往用帽子的颜色来比喻黑客的好坏。
- 白帽子,则是指那些精通安全技术,但是工作在反黑客领域的专家们
- 黑帽子,则是指利用黑客技术造成破坏,甚至进行 络犯罪的群体
- 同样是研究安全,白帽子和黑帽子在工作时的心态是完全不同的。对于黑帽子来说,只要能够找到系统的一个弱点,就可以达到入侵系统的目的;而对于白帽子来说,必须找到系统的所有弱点,不能有遗漏,才能保证系统不会出现问题。这种差异是由于工作环境与工作目标的不同所导致的。白帽子一般为企业或安全公司服务,工作的出发点就是要解决所有的安全问题,因此所看所想必然要求更加的全面、宏观;黑帽子的主要目的是要入侵系统,找到对他们有价值的数据,因此黑帽子只需要以点突破,找到对他们最有用的一点,以此渗透,因此思考问题的出发点必然是有选择性的、微观的。
- 从对待问题的角度来看,黑帽子为了完成一次入侵,需要利用各种不同漏洞的组合来达到目的,是在不断地组合问题;而白帽子在设计解决方案时,如果只看到各种问题组合后产生的效果,就会把事情变复杂,难以细致入微地解决根本问题,所以白帽子必然是在不断地分解问题,再对分解后的问题逐个予以解决。这种定位的不对称,也导致了白帽子的安全工作比较难做。破坏永远比建设容易,但凡事都不是绝对的。要如何扭转这种局面,一般来说,白帽子选择的方法,是克服某种攻击方法,而并非抵御单次的攻击。
- 在安全领域也普遍认为:“最大的漏洞就是人”。写得再好的程序,在有人参与的情况下,就可能会出现各种各样不可预知的情况,比如管理员的密码有可能泄露,程序员有可能关掉了安全的配置参数等等。安全问题往往发生在一些意想不到的地方。另一方面,防御技术在不断完善的同时,攻击技术也在不断地发展。这就像一场军备竞赛,看谁跑在前面。白帽子们刚把某一种漏洞全部堵上,黑帽子们转眼又会玩出新花样。谁能在技术上领先,谁就能占据主动。互联 技术日新月异,在新技术领域的发展中,也存在着同样的博弈过程。可现状是,如果新技术不在一开始就考虑安全设计的话,防御技术就必然会落后于攻击技术,导致历史不断地重复。
计算机漏洞
- 计算机漏洞是系统的一组特性,恶意的主体(攻击者或者攻击程序)能够利用这组特性,通过手段和方式获取对资源的未授权访问,或者对系统造成损害。
- 漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。
- 漏洞会影响到很大范围的软硬件设备,包括作系统本身及其支撑软件, 络客户和服务器软件, 络路由器和安全防火墙等。换言之,在这些不同的软硬件设备中都可能存在不同的安全漏洞问题。在不同种类的软、硬件设备,同种设备的不同版本之间,由不同设备构成的不同系统之间,以及同种系统在不同的设置条件下,都会存在各自不同的安全漏洞问题。
漏洞问题是与时间紧密相关的
- 一个系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被系统供应商发布的补丁软件修补,或在以后发布的新版系统中得以纠正。而在新版系统纠正了旧版本中具有漏洞的同时,也会引入一些新的漏洞和错误。因而随着时间的推移,旧的漏洞会不断消失,新的漏洞会不断出现。漏洞问题也会长期存在。因而脱离具体的时间和具体的系统环境来讨论漏洞问题是毫无意义的。只能针对目标系统的作系统版本、其上运行的软件版本以及服务运行设置等实际环境来具体谈论其中可能存在的漏洞及其可行的解决办法。同时应该看到,对漏洞问题的研究必须要跟踪当前最新的计算机系统及其安全问题的最新发展动态。这一点如同对计算机病毒发展问题的研究相似。如果在工作中不能保持对新技术的跟踪,就没有谈论系统安全漏洞问题的发言权,既使是以前所作的工作也会逐渐失去价值。
漏洞问题与不同安全级别计算机系统之间的关系
-
橘皮书正式名称是“受信任计算机系统评量基准”。橘皮书中对可信任系统的定义是这样的:一个由完整的硬件及软件所组成的系统,在不违反访问权限的情况下,它能同时服务于不限定个数的用户,并处理从一般机密到最高机密等不同范围的信息。
-
橘皮书将一个计算机系统可接受的信任程度加以分级,凡符合某些安全条件、基准规则的系统即可归类为某种安全等级。橘皮书将计算机系统的安全性能由高而低划分为A、B、C、D四大等级。其中:
D级——最低保护(Minimal Protection),凡没有通过其他安全等级测试项目的系统即属于该级,如Dos,Windows个人计算机系统
C级——自主访问控制(Discretionary Protection),该等级的安全特点在于系统的客体(如文件、目录)可由该系统主体(如系统管理员、用户、应用程序)自主定义访问权。例如:管理员可以决定系统中任意文件的权限
B级——强制访问控制(Mandatory Protection),该等级的安全特点在于由系统强制对客体进行安全保护,在该级安全系统中,每个系统客体(如文件、目录等资源)及主体(如系统管理员、用户、应用程序)都有自己的安全标签Security Label,系统依据用户的安全等级赋予其对各个对象的访问权限
A级——可验证访问控制(Verified Protection),而其特点在于该等级的系统拥有正式的分析及数学式方法可完全证明该系统的安全策略及安全规格的完整性与一致性
-
可见,根据定义,系统的安全级别越高,理论上该系统也越安全。可以说,系统安全级别是一种理论上的安全保证机制。是指在正常情况下,在某个系统根据理论得以正确实现时,系统应该可以达到的安全程度。系统安全漏洞是指可以用来对系统安全造成危害,系统本身具有的,或设置上存在的缺陷。总之,漏洞是系统在具体实现中的错误。比如在建立安全机制中规划考虑上的缺陷,作系统和其他软件编程中的错误,以及在使用该系统提供的安全机制时人为的配置错误等。
-
安全漏洞的出现,是因为人们在对安全机制理论的具体实现中发生了错误,是意外出现的非正常情况。而在一切由人类实现的系统中都会不同程度的存在实现和设置上的各种潜在错误。因而在所有系统中必定存在某些安全漏洞,无论这些漏洞是否已被发现,也无论该系统的理论安全级别如何。所以可以认为,在一定程度上,安全漏洞问题是独立于作系统本身的理论安全级别而存在的。并不是说,系统所属的安全级别越高,该系统中存在的安全漏洞就越少。可以这么理解,当系统中存在的某些漏洞被入侵者利用,使入侵者得以绕过系统中的一部分安全机制并获得对系统一定程度的访问权限后,在安全性较高的系统当中,入侵者如果希望进一步获得特权或对系统造成较大的破坏,必须要克服更大的障碍。
安全漏洞与系统攻击之间的关系
- 系统安全漏洞是在系统具体实现和具体使用中产生的错误,但并不是系统中存在的错误都是安全漏洞。只有能威胁到系统安全的错误才是漏洞。许多错误在通常情况下并不会对系统安全造成危害,只有被人在某些条件下故意使用时才会影响系统安全。
- 漏洞虽然可能最初就存在于系统当中,但一个漏洞并不是自己出现的,必须要有人发现。在实际使用中,用户会发现系统中存在错误,而入侵者会有意利用其中的某些错误并使其成为威胁系统安全的工具,这时人们会认识到这个错误是一个系统安全漏洞。系统供应商会尽快发布针对这个漏洞的补丁程序,纠正这个错误。这就是系统安全漏洞从被发现到被纠正的一般过程。
- 系统攻击者往往是安全漏洞的发现者和使用者,要对于一个系统进行攻击,如果不能发现和使用系统中存在的安全漏洞是不可能成功的。对于安全级别较高的系统尤其如此。
系统安全漏洞与系统攻击活动之间有紧密的关系。因而不该脱离系统攻击活动来谈论安全漏洞问题。了解常见的系统攻击方法,对于有针对性的理解系统漏洞问题,以及找到相应的补救方法是十分必要的。
IP地址
IP是Internet Protocol( 际互连协议)的缩写,是TCP/IP体系中的 络层协议。
- 设计IP的目的是提高 络的可扩展性:
- 一是解决互联 问题,实现大规模、异构 络的互联互通。
- 二是分割顶层 络应用和底层 络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据 传输服务。
IP地址,它是为标识Internet上主机位置而设置的。Internet上的每一台计算机都被赋予一个世界上唯一的32位Internet地址,这一地址可用于与该计算机有关的全部通信。为了方便起见,在应用上我们以8比特为一单位,组成四组十进制数字来表示每一台主机的位置。
- 主机 全为0的地址表示 络地址
- 主机 全为1的地址表示广播地址
内 (私有地址)
端口(Port)
一种数据的传输通道
用于接受某些数据,然后传输给相应的服务,而电脑将这些数据处理后,再将相应的恢复通过开启的端口传给对方。一般每一个端口的开放对应了相应的服务,要关闭这些端口只需要将对应的服务关闭就可以了。
- 在 络技术中,端口大致有两种意思:
- 一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他 络设备的接口,如RJ-45端口、SC端口等等。
- 二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口 的范围从0到65535,比如用于浏览 页服务的80端口,用于FTP服务的21端口等等。
我们这里将要介绍的就是逻辑意义上的端口。我们这里所说的端口,不是计算机硬件的I/O端口,而是软件形式上的概念.工具提供服务类型的不同,端口分为两种,一种是TCP端口,一种是UDP端口。计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议;一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用UDP协议。对应这两种协议的服务提供的端口,也就分为TCP端口和UDP端口。
- 按端口 可分为4大类:
- 公认端口(Well-Known Ports):范围从0到1023
它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。
我们在IE的地址栏里输入一个 址的时候( 比如www.cce.com.cn)是不必指定端口 的,因为在默认情况下WWW服务的端口 是“80”。
络服务是可以使用其他端口 的,如果不是默认的端口 则应该在 地址栏上指定端口 ,方法是在地址后面加上冒 “:”(半角),再加上端口 。比如使用“8080”作为WWW服务的端口,则需要在地址栏里输入“www.cce.com.cn:8080”。
但是有些系统协议使用固定的端口 ,它是不能被改变的,比如139 端口专门用于NetBIOS与TCP/IP之间的通信,不能手动改变。 - 动态端口(Dynamic Ports):范围从1024到65535
之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。动态分配是指当一个系统进程或应用 程序进程需要 络通信时,它向主机申请一个端口,主机从可用的端口 中分配 一个供它使用。当这个进程关闭时,同时也就释放了所占用的端口 。 - 注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用 于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
- 私有端口(Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024 起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
域名地址
- 尽管IP地址能够唯一地标识 络上的计算机,但IP地址是数字型的,用户记忆这类数字十分不方便,于是人们又发明了另一套字符型的地址方案,即所谓的域名地址。
IP地址和域名是一一对应的,域名由两种基本类型组成:以机构性质命名的域和以国家地区代码命名的域
- 递归查询法
- 如果DNS服务器无法解析出DNS客户机所要求查询的域名所对应的IP地址时,DNS服务器代表DNS客户机来查询或联系其他DNS服务器,以完全解析该名称,并将应答返回给客户机。
- 本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机。
- 迭代查询法
- 客户机送出查询请求后,若该DNS服务器中不包含所需数据,它会告诉客户机另外一台DNS服务器的IP地址,使客户机自动转向另一台DNS服务器查询,以此类推,直到查询数据,否则由最后一台DNS服务器通知客户机查询失败。
- 本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
- 反向查询
客户机利用IP地址查询其主机完整域名。
URL
统一资源定位器,又叫URL(Uniform Resource Locator),是专为标识Internet 上资源位置而设的一种编址方式。
- 我们平时所说的 页地址指的即是URL,URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。
如URL为:
- http指超文本传输协议
- china-window.com是其Web服务器域名地址
- shanghai/news是 页所在路径,wnw.html是相应的 页文件
HTTP 请求/响应的步骤
- 客户端连接到Web服务器
一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.oakcms.cn。 - 发送HTTP请求
通过TCP套接字,客户端向Web服务器发送一个文本的请求 文,一个请求 文由请求行、请求头部、空行和请求数据4部分组成。 - 服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。 - 释放连接TCP连接
若connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求。 - 客户端浏览器解析HTML内容
客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。
- 如果我们在客户端(客户端)浏览器输入 ,而为要访问的服务器(服务器),下面详细分析客户端为了访问服务器而执行的一系列关于协议的操作:
- 客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到 络层。
- 在客户端的传输层,把HTTP会话请求分成 文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口,如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
- 客户端的 络层不用关系应用层或者传输层,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
- 客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包。现在就可以传输了,然后发送IP数据包到达服务器的地址。
肉鸡
肉鸡,即拥有管理权限的远程电脑,也是指受黑客远程控制的电脑。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!