计算机网络基础之安全问题

97 篇文章 33 订阅
2 篇文章 0 订阅

温故:

        温故而知新啊,多么有道理的一句话,当年要是明白这个道理还能混到如今这个地步吗?呵呵开个玩笑啊。从2021年的2月23日到今天3月26日,整整一个月的时间我和大家分享了很多知识。之前一直没和大家说过为什么突然会和大家分享这么多网络方面的知识。今天简单说几句,实在是因为工作的需要,目前我从事的工作中用到的网络虚拟化的知识越来越多,所以呢抱着一方面工作一方面回顾一下网络知识的想法才有了这段时间的“笔耕不辍”。可能也是由于疫情期间工作任务不是很重,所以觉得上班要找些事情做,不然一天光坐着更累,所以呢才决定写写东西消磨时间。今天之所以和大家说这些,主要也是因为疫情慢慢好转,工作量上来了,后面的闲暇时间不太多了,所以呢打算和大家聊完“网络安全”方面的内容后,就不会进行这种高频率的写作了。不过呢我是不会停下来的,希望我这段时间的分享能真的让大家有所收获。

知新:

        网络安全一直是大家特别关注的一个问题,毕竟无论是个人还是组织都不想自己的资料被外人轻易得知,也不想自己的系统被不法分子入侵造成损失,因此近些年来在网络上的投资也越来越大,为了应对网络安全,真的是道高一尺魔高一丈啊。咱们日常生活中个人电脑接触最多的应该就是360和电脑管家了吧,我记得经常听见好多人在讨论到底该用哪个好,各有各的见解,争论一直没有停止过;再从更大的公司、政府等角度来看,对网络安全的看重更是尤为高,就拿我工作的机场来说,就专门有网络安全部门时时刻刻监控、防御、追踪每天来自各个地方的N次攻击。从此就可以看出网络安全绝对是重中之重,绝对不容忽视。

        常见的网络安全威胁大概分为以下四类:1、人为的无意失误。这种比较好理解,比如配置失误,或者随意把账号借给他人;2、人为的恶意攻击。这是目前计算机网络面临的最大的威胁,可以分为两大类:一类是主动攻击,主要以破坏网络正常运行为目的,这是一种犯罪。另一类是被动攻击,指的是在不破坏网络运行的情况下进行截获、窃取机密信息。3、网络软件的漏洞和“后门”:这个问题的存在是正常的,软件不可能没有漏洞,至于“后门”嘛,如果没有在软件发布之前将其删除,那么就成为了风险;4、病毒。

常见的网络攻击可以分为以下四类:1、拒绝服务攻击2、利用型攻击3、欺骗型攻击4、信息收集型攻击,详细介绍如下:

                                                          拒绝服务攻击

拒绝服务攻击即是攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为网络协议本身的安全缺陷,从而拒绝服务攻击也成为了攻击者的终极手法。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把非法用户的连接复位,影响合法用户的连接.

UDP洪水攻击

攻击者利用简单的TCP/IP服务,如Chargen和Echo来传送毫无用处的占满带宽的数据。通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,这样就生成在两台主机之间存在很多的无用数据流,这些无用数据流就会导致带宽的服务攻击;




Ping洪流攻击

由于在早期的阶段,路由器对包的最大尺寸都有限制。许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区。当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方死机 ;




teardrop攻击

泪滴攻击是利用在TCP/IP堆栈中实现信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。IP分段含有指明该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service pack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃 ;




Land攻击

Land攻击原理是:用一个特别打造的SYN包,它的原地址和目标地址都被设置成某一个服务器地址。此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接。被攻击的服务器每接收一个这样的连接都将保留,直到超时,对Land攻击反应不同,许多UNIX实现将崩溃,NT变的极其缓慢(大约持续5分钟).

                                                         利用型攻击

利用型攻击是一类试图直接对你的机器进行控制的攻击,通过一些已知的后门和漏洞来非法获取计算机的用户名和密码,最常见的有三种: 

 口令猜测 

  口令猜测 :一旦黑客识别了一台主机而且发现了基于NetBIOS、Telnet或NFS这样的服务的可利用的用户帐号,成功的口令猜测能提供对机器控制。 

  防御:要选用难以猜测的口令,比如词和标点符号的组合。确保像NFS、NetBIOS和Telnet这样可利用的服务不暴露在公共范围。如果该服务支持锁定策略,就进行锁定。 

 特洛伊木马 

  特洛伊木马 :特洛伊木马是一种或是直接由一个黑客,或是通过一个不令人起疑的用户秘密安装到目标系统的程序。一旦安装成功并取得管理员权限,安装此程序的人就可以直接远程控制目标系统。 

  最有效的一种叫做后门程序,恶意程序包括:NetBus、BackOrifice和BO2k,用于控制系统的良性程序如:netcat、VNC、pcAnywhere。理想的后门程序透明运行。 

  防御:避免下载可疑程序并拒绝执行,运用网络扫描软件定期监视内部主机上的监听TCP服务。 

 缓冲区溢出 

  缓冲区溢出:由于在很多的服务程序中大意的程序员使用象strcpy(),strcat()类似的不进行有效位检查的函数,最终可能导致恶意用户编写一小段利用程序来进一步打开安全豁口然后将该代码缀在缓冲区有效载荷末尾,这样当发生缓冲区溢出时,返回指针指向恶意代码,这样系统的控制权就会被夺取。 

  防御:利用SafeLib、tripwire这样的程序保护系统,或者浏览最新的安全公告不断更新操作系统。 

                                                              欺骗型攻击

用于攻击目标配置不正确的消息,主要包括:DNS高速缓存污染、伪造电子邮件,IP地址欺骗。 

 DNS高速缓存污染 

  DNS高速缓存污染 :由于DNS服务器与其他名称服务器交换信息的时候并不进行身份验证,这就使得黑客可以将不正确的信息掺进来并把用户引向黑客自己的主机。 

  防御:在防火墙上过滤入站的DNS更新,外部DNS服务器不应能更改你的内部服务器对内部机器的认识。 

 伪造电子邮件 

  伪造电子邮件 :由于SMTP并不对邮件的发送者的身份进行鉴定,因此黑客可以对你的内部客户伪造电子邮件,声称是来自某个客户认识并相信的人,并附带上可安装的特洛伊木马程序,或者是一个引向恶意网站的连接。 

  防御:使用PGP等安全工具并安装电子邮件证书

     IP地址欺骗

通过IP地址的伪装使某台主机能够伪装成另外一台被信任的主机,而这台主机往往具有某些特权。

                                                            信息收集型攻击

信息收集型攻击并不对目标本身造成危害,如名所示这类攻击被用来为进一步入侵提供有用的信息。主要包括:扫描技术、体系结构刺探、利用信息服务 

  地址扫描和端口扫描

  地址扫描:运用ping这样的程序探测目标地址,对此作出响应的表示其存在。 

  防御:在防火墙上过滤掉ICMP应答消息。 

    端口扫描:通常使用一些软件,向大范围的主机连接一系列的TCP端口,扫描软件报告它成功的建立了连接的主机所开的端口。 

  防御:许多防火墙能检测到是否被扫描,并自动阻断扫描企图。 

  反向映射 

  反向映射 :黑客向主机发送虚假消息,然后根据返回“hostunreachable”这一消息特征判断出哪些主机是存在的。目前由于正常的扫描活动容易被防火墙侦测到,黑客转而使用不会触发防火墙规则的常见消息类型,这些类型包括:RESET消息、SYN-ACK消息、DNS响应包。 

  防御:NAT和非路由代理服务器能够自动抵御此类攻击,也可以在防火墙上过滤“hostunreachable”ICMP应答。 

  体系结构探测 

    体系结构探测 :黑客使用具有已知响应类型的数据库的自动工具,对来自目标主机的、对坏数据包传送所作出的响应进行检查。由于每种操作系统都有其独特的响应方法(例NT和Solaris的TCP/IP堆栈具体实现有所不同),通过将此独特的响应与数据库中的已知响应进行对比,黑客经常能够确定出目标主机所运行的操作系统。 

  防御:去掉或修改各种Banner,包括操作系统和各种应用服务的,阻断用于识别的端口扰乱对方的攻击计划。 

  

                                                                              拓展

常用网络测试命令:

1、ping命令

使用ping命令检查网络故障的方法

正常情况下,当你使用Ping命令来查找问题所在或检验网络运行情况时,你需要使用许多Ping命令,如果所有都运行正确,你就可以相信基本的连通性和配置参数没有问题;如果某些Ping命令出现运行故障,它也可以指明到何处去查找问题  
。下面就给出一个典型的检测次序及对应的可能故障:

ping127.0.0.1——这个Ping命令被送到本地计算机的IP软件,该命令永不退出该计算机。如果没有做到这一点,就表示TCP/IP的安装或运行存在某些最基本的问题 。

ping本机IP——这个命令被送到你计算机所配置的IP地址,你的计算机始终都应该对该Ping命令做出应答,如果没有,则表示本地配置或安装存在问题。出现此问题时,局域网用户请断开网络电缆,然后重新发送该命令。如果网线断开后,本命令正确,则表示另一台计算机可能配置了相同的IP地址
 。

ping局域网内其他IP——这个命令应该离开你的计算机,经过网卡及网络电缆到达其他计算机,再返回。收到回送应答表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码(进行子网分割时,将IP地址的网络部分与主机部分分开的代码)不正确或网卡配置错误或电缆系统有问题
 。

ping网关IP——这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够作出应答 。

ping远程IP——如果收到4个应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet(但不排除ISP的DNS会有问题) 
 。

ping localhost——localhost是个操作系统的网络保留名,它是127.0.0.1的别名,每台计算机都应该能够将该名字转换成该地址。如果没有做到这一条,则表示主机文件(/Windows/host)中存在问题 [3]
 。

ping www.baidu.com——对这个域名执行Ping命令,你的计算机必须先将域名转换成IP地址,通常是通过DNS服务器。如果这里出现故障,则表示DNS服务器的IP地址配置不正确或DNS服务器有故障

如果上面所列出的所有Ping命令都能正常运行,那么计算机可以进行本地和远程通信。但是,这些命令的成功并不表示所有的网络配置都没有问题,例如,某些子网掩码错误就可能无法用这些方法检测到 [



影响因素

在物理链路连通和路由设置正确的情况下,使用Ping命令仍然屏不通,可能有以下几个问题:

(1)网线刚插到交换机上就Ping通网关,忽略了生成树的收敛时间。当然,较新的交换机都支持快速生成树,或者有的管理员干脆把用户端口(accessport)的生成树协议关掉,问题就解决了 [5]
 

(2)不管中间经过了多少个节点,只要有节点(包括端节点)对ICMP信息包进行了过滤,Ping不通是正常的。最常见的就是防火墙的行为 [5]
 。

(3)某些路由器端口是不允许用户Ping的 [5]
 。

(4)网络因设备间的超时,造成ICMP报文无法在缺省时间(2秒)内收到。超时的原因有:主机没有足够的时间和资源来响应;路径太长,没到达目的地时TTL的值为0,最后一个路由器将发回ICMP超时信息;使用扩展Ping,增加应答等待时间间隔等 [5]
 。 

(5)引入NAT的场合会造成单向Ping通。NAT可以起到隐蔽内部地址的作用,当由内Ping外时,可以Ping通是因为NAT表的映射关系存在,当由外发起Ping内网主机时,就无从查找边界路由器的NAT访问列表了 [5]
 

2、tracert命令

Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP数据包访问目标所采取的路径。Tracert 命令使用用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由.其命令格式如下。tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name

参数介绍

-d 指定不将地址解析为计算机名.

-h maximum_hops 指定搜索目标的最大跃点数.

-j host-list 与主机列表一起的松散源路由(仅适用于IPv4),指定沿host-list的稀疏源路由列表序进行转发。host-list是以空格隔开的多个路由器IP地址,最多9个。

-w timeout 等待每个回复的超时时间(以毫秒为单位).

-R 跟踪往返行程路径(仅适用于 IPv6).

-S srcaddr 要使用的源地址(仅适用于 IPv6).

-4 强制使用 IPv4.

-6 强制使用 IPv6.

target_name 目标计算机的名称.

最简单的用法就是"tracert hostname",其中"hostname"是计算机名或想跟踪其路径的计算机的IP地址,tracert将返回他到达目的地的各种IP地址.

工作原理

通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。

Tracert 先发送 TTL 为 1 的回应数据包,并随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。

Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询 DNS。

在下例中,数据包必须通过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机172.16.0.99。主机的默认网关是 10.0.0.1,192.168.0.0 网络上的路由器的 IP 地址是 192.168.0.1。

C:\>tracert -d 172.16.0.99

Tracing route to 172.16.0.99 over a maximum of 30 hops

1 2s 3s 2s 10.0.0.1

2 75 ms 83 ms 88 ms 192.168.0.1

3 73 ms 79 ms 93 ms 172.16.0.99

Trace complete.




解决问题

可以使用 tracert 命令确定数据包在网络上的停止位置。下例中,默认网关确定 192.168.10.99主机没有有效路径。这可能是路由器配置的问题,或者是 192.168.10.0 网络不存在(错误的 IP 地址)。

C:\>tracert 192.168.10.99

Tracing route to 192.168.10.99 over a maximum of 30 hops

1 10.0.0.1 reports:Destination net unreachable. 

Trace complete. 

关于netstat和ipconfig命令我这里就不细讲了,这两个用的比较多,大家应该有熟悉 ,前者Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用netstat -an 来显示所有连接的端口并用数字表示。后者ipconfig可以让你了解你的计算机是否成功的租用到一个IP地址,如果租用到则可以了解它分配到的是什么地址。此命令也可以清空DNS缓存(DNS cache)。了解计算机当前的IP地址、子网掩码缺省网关实际上是进行测试和故障分析的必要项目。

今天咱们就暂且说到这里,明天聊聊如何防御网络攻击

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金陵大掌柜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值