本篇文章来自于《网络安全 ——技术与实践》的学习整理笔记。
相比于利用系统缺陷破坏网络系统,最容易的方法还是通过窃取用户的口令进入系统。因为人们倾向于选择很糟糕的口令作为登录密码,所以口令猜测很容易成功。通常,口令猜测攻击有以下三种基本方式:
- 利用已知或假定的口令尝试登录;
- 根据窃取的口令文件进行猜测(如UNIX系统中的/etc/passwd文件;
- 窃听某次合法终端之间的会话,并记录所使用的口令; 要保护口令文件,需要做到如下的操作:
1.对某些服务的安全属性进行认真配置,如SUN操作系统中的NIS服务;
2.对可以使用tftpd协议获得的文件加以限制;
3.避免将真正的/etc/passwd文件放在匿名FTP区。
这类攻击倾向于通过诈骗电话或诈骗邮件,诱使受害人主动说出口令或登录密码等。
网络蠕虫传播的方式之一是通过向finger守护程序(Deamon)发送新的代码实现的。显然,该守护程序并不希望收到这些代码,但在协议中没有限制接收这些代码的机制。守护程序的确可以发出一个gets呼叫,但并没有指定最大的缓冲区长度。蠕虫向“读”缓冲区内注入大量的数据,直到将gets堆栈中的返回地址覆盖。当守护程序中的子程序返回时,就会转而执行入侵者写入的代码。
缓冲器溢出攻击也被称为“堆栈粉碎(Stack Smashing)”攻击。
即使一个安全机制再好,也存在遭受攻击的可能性。例如,一个源地址有效性的验证机制,在某些应用场合(如有防火墙地址过滤时)能够发挥作用,但是黑客可以使用rpcbind重发这些请求。在这种情况下,最终的服务器就会被欺骗。对于这些服务器来说,这些服务器看起来好像源于本地,但实际上来自其他地方。
有些认证协议本身就有安全缺陷,这些缺陷的存在会直接导致攻击的发生。
例如,攻击者可对TCP发起序列号攻击。由于在建立连接时所发生的初始序列号的随机性不够,攻击者很可能发起源地址欺骗攻击。为了做到公平,TCP序列号在设计时并没有考虑抵御恶意的攻击。其他基于序列号认证的协议也可能遭受同样的攻击,这样的协议有很多,如DNS和许多基于RPC的协议。
安全协议取决于安全的基础。例如,安全壳协议(Secure Shell, SSH)是一个安全的远程存取协议。SSH协议具有这样一个特点: 用户可以指定一个可信的公钥,并将其存储于authorized keys文件中。如果客户机知道相应的私钥,该用户不用输入口令就能登录。在UNIX系统中,该文件通常位于用户主目录下的.ssh目录中。现在来考虑这样一种情况: 有人使用SSH登录到某个加载了NFS主目录的主机上。在这种情况下,攻击者就可以欺骗NFS将一个伪造的authorized keys文件注入其主目录中。
信息泄露的情况有很多种,下面罗列几种:
1.协议丢失信息;
2. 电话号码和办公室房间号提供推理出该组织结构的基础要素;
3. 公司网站提供的电话
4. DNS上获取数据
指数攻击能够使用程序快速复制并传播攻击。当程序自行传播时,这些程序称为蠕虫(Worms);当它们依附于其他程序传播时,这些程序就叫做病毒。
拒绝服务(Denial-of Service, DOS)攻击是过度使用服务,使软件、硬件过度运行,使得网络连接超出其容量。目的是造成自动关机或系统瘫痪,或者降低服务质量。
分布式拒绝服务(Distributed Denial-of-Service, DDoS)攻击使用很多Internet主机,同时向某个目标发起攻击。它的工作原理如下:
- 黑客通过Internet将木马程序植入尽可能多的计算机上。这些计算机分布在全世界不同的区域。被植入的木马程序绑定在计算机的某个端口上,等待接受攻击命令。
- 攻击者在Internet的某个地方安装一个主控程序,该主控程序含有一个木马程序所处位置的列表。伺候,主控程序等待黑客发出命令。
- 攻击者等待时机,做好攻击命令前的准备。
- 等攻击的时机一到,攻击者就会向主控程序发出一个消息,其中包括要攻击的目标地址。主控程序就会向每个植入木马程序的计算机发送攻击命令,这个命令包含攻击木马的地址。
- 这些木马程序立即向攻击目标发送大量的数据包。这些数据包的数量巨大,足以使其瘫痪。
感谢阅读!