网络攻击与防范技术
2018-06-24
1.攻击:只指一切针对计算机的非授权行为
2.TCP/IP的几个漏洞:
因为是明文传输 ,很容易被在线窃听,篡改,和伪造
可通过直接修改Ip的地址,来冒充某个可信节点的IP地址进行攻击
无法鉴别用户身份的有效性
3.网络攻击可以怎么分类:
攻击的位置
远程攻击
本地攻击
攻击的层次
窃听
欺骗
获取口令
恶意代码
网络欺骗
拒绝服务
数据驱动攻击
缓冲区溢出
格式化字符串攻击
信任漏洞攻击
4.网络攻击的一般流程?
目标探测:明确攻击对象是单个主机还是整个网段,目标探测是通过自动或人工查询的方法获得与目标网络相关的物理和逻辑参数
方法:
利用各种扫描工具对该机目标进行大规模扫描
确定目标范围:确定该目标的网络地址分布和网络分布范围及位置
分析目标网络路由:Traceroute
利用第三方资源,谷歌
利用各种查询手段
端口扫描:
主机扫描
简单主机扫描
复杂主机扫描
异常的Ip包头
IP头中设置无效的字段值
错误的数据分片
反向映射探测
端口扫描
防止端口扫描:关闭闲置或有潜在危险的端口,利用网络防火墙软件
漏洞扫描:基于特征匹配原理,漏洞扫描器通过检测目标主机不同端口开放的服务,记录其应答,然后与漏洞库进行比较,漏洞扫描器和专用漏洞扫描器
网络监听:网卡被设置为Promiscumous,那么任何在这个 局域网内传输的信息都是可以被监听的
检测方法:
反应时间
观测DNS、
利用ping模式进行检测:ICMP
利用ARP数据包进行检测:向局域网内的主机发送非广播方式的ARP包,如果局域网内的某个主机相应了这个ARP请求,那么。。。
防范方法:
采用加密手段进行 信息传输
使用交换机:当有数据包发送到交换机上时,交换机会与自己维护的ARP数据表进行对照,然后再发送到相应的 端口
实施攻击
缓冲区溢出攻击:溢出是所填充的数据超出了原有缓冲区的边界,并非法占据了另一块内存区域,原有:程序中未仔细检查用户输入的参数
代码区—>数据区->堆区->栈区
所应采用的方法:在程序的 地址空间里安排适当的代码;通过适当的初始化寄存器,让程序跳转到入侵者安排的地址空间执行
最基本的就是溢出一个没有边界检查或其他弱点的缓冲区
控制程序转移到攻击代码的方法:
激活记录:因为每当函数调用发生时 ,总是会将返回地址防止在堆栈中,使 返回地址指向攻击代码
函数指针:可以用来定位任何地址空间
长跳转缓冲区
防范缓冲区溢出:
编写正确的代码
及时安装漏洞补丁
借助于防火墙阻止缓冲区溢出
注入式攻击:从一个数据库获得未授权的访问与直接检索
手段:在Web请求中插入一条SQL 语句,利用的是做输入数据的合法性检查
拒绝服务攻击:通过某些手段使得目标系统或网络不能提供正常的服务
dos攻击:带宽消耗;系统资源消耗;程序实现上的缺陷;系统策略的修改
IP碎片攻击:如果有意发送总长度超过65535字节的IP碎片,一些旧的系统内核在处理的时候就会出现问题,导致崩溃
以太网的MTU是1500个字节
Teardrop:碎片攻击
how to prevent?在网络边界禁止碎片包通过,或者用Iptables限制美妙通过碎片包的数目
UDP泛洪:如Chargen和Echo来传送毫无用处的沾满带宽的数据
SYN泛洪
Smurf攻击:用受害者的Ip地址作为源地址,向广播地址网络上的每台机器响应它的echo请求,同时向受害者主机发送ICMPz作为源地址。
分布式拒绝服务攻击:攻击者->主控端->代理端->受害者 哇靠。这不就是大家一起打它
Ip欺骗之间,先要进行三次握手,而且要设法先让被攻击主机瘫痪
解决方法:在路由器的设置里面禁止运行由外部来,但是宣称来自内部的信息包
ARP欺骗防范
地址解析:主机在发送帧之前将目标IP地址转换成目标MAC地址的过程
当一台机器出现很多无效的假冒ARP应答信息包,严重的阻塞就会开始
方法:绑定IP 和MAC地址
撤退
5.课后习题: