攻击和防范

来源:互联网 发布:jdbc 删除数据 编辑:程序博客网 时间:2024/04/28 08:35
网络攻击和防范
1.攻击的定义
  未授权的个人访问和修改信息
2.破坏的定义
   使得攻击目标不能够正常工作,但是不能够控制目标上系统的运行.
3.入侵的定义
   通过获取一定权限来达到控制目标的目的.


常用的攻击有
拒绝服务攻击(Dos), 缓冲区溢出攻击,木马攻击,其他攻击


攻击与病毒的区别:
1.攻击一般有明确的对象,例如服务器,特定的主机.但是病毒传染不区分对象.
2.针对不同的对象,攻击的手段有不同,例如Dos,漏洞和植入木马,但是同种病毒的手段一样的.
3.针对不同的对象,攻击的目的有不同,例如窃取信息,欺骗和使得攻击对象不能够正常工作.但是病毒的破坏是不能够区分的.




攻击的一般过程:
①隐藏自己
②预攻击探测:收集信息,例如OS类型,提供的服务端口.
③采取攻击行为: 破解口令文件, 利用缓存溢出漏洞
④获得攻击目标的控制权:寻找网络中其他的主机信息和漏洞
⑤继续渗透网络,直至获取机密数据
⑥消灭踪迹




1.拒绝服务攻击(Dos)
  该攻击的特点是耗尽攻击目标资源,网络堵塞,使得攻击目标无法对正常用户提供正常的服务.
  拒绝服务攻击是一种简单暴力有效的方法,而且从目前的技术来说,该攻击不会被灭绝.
   Dos原理简单来说就是向服务器发送大量的虚假请求,使得服务器由于应付这些虚假信息以致于筋疲力尽,导致无法对正常用户提供服务.
1.2Dos攻击举例
   ①SYN洪水:这是建立在TCP三次握手的基础上的,正常来说,假如一个用户要跟某一台服务器建立连接,首先向服务器发送SYN信息,然后服务器同意后,回答SYN/ACK信息.最终等待用户回答ACK信息.但是SYN洪水的机制就是向服务器发送大量的虚假的SYN请求信息,然后服务器回应SYN/ACK信息,并且等待客户端回应ACK信息,但是由于之前SYN洪水发送的是虚假的ip地址,也就是说服务器在等待一个不存在的客户端回应ACK信息,当然啊,服务器会在一定时间间隔内清除这些没有响应的信息,但是只要SYN洪水的发送请求速度大于服务器清除的速度,攻击就有效了.
  ②LAND攻击:向被攻击者发送一个SYN包,但是该包的源地址和目的地址都是被攻击者的本身,那么就会导致被攻击者和自身建立一个空连接,直至超时.
  ③Smurf攻击:攻击者向大量的计算机以广播的方式发送ICMP请求包,但是该包的回复地址是被攻击者,那么就会收到该包的计算机都向被攻击者发送回应,最终导致被攻击者崩溃.
  ④利用放大系统进行攻击:某些类型的操作系统,例如macintosh,对于请求所回复的信息量要比请求的信息大几十倍.那么攻击者就可伪装为某台计算机发送请求,然后该计算机就会收到大量的回复信息,加重了攻击效果.
  ⑤Ddos攻击:首先黑客控制着多台主控端,每一台主控端又分别对应着多台计算机.在发动攻击时候,利用telnet等远程连接工具向主控端发送攻击命令,主控端在控制分布的计算机发送攻击.实质上发送攻击的是分布的计算机.


2.缓冲区溢出攻击
  该攻击的原理是:向缓冲区写入内容,但是该内容的长度超过了缓冲区的容量,从而使得缓冲区溢出,破坏了堆栈,让计算机执行其他预先设定好了的程序,来达到攻击的目的.
   缓冲区溢出是一种普遍存在的缺陷.
2.1缓冲区是什么?
  在程序运行时候,会在内存划分一块连续的区域来给程序使用,这块连续的区域就是缓冲区.
2.2  缓冲区的结构
   缓冲区从高地址到低地址分别是:命令行参数,栈,堆,未初始化的全局或静态变量,初始化的全局或静态变量,程序指令和只读数据.
2.2.1代码段
    代码段就是指缓冲区中程序指令和只读数据,运行的程序代码就是从这里取出的,该段只能读,所有写的命令都会报错.
2.2.2数据段
     数据段就是指未初始化的全局或静态变量,以及初始化的全局或静态变量.数据段在编译时候决定.
2.2.3堆栈段
      堆栈段分为堆和栈.堆是负责在程序运行时分配的变量,例如利用malloc 和new创建的变量,栈则是负责存储函数调用时候产生的临时信息,例如函数调用的参数,返回地址,函数局部变量.
2.2.4堆栈的区别
     ①堆是由程序员负责分配的,栈则是由编译器负责分配的.
    ②堆容易产生碎片,栈是后进先出的结构,压根没有碎片.
    ③堆的增长方向是从低地址到高地址的.但是栈的增长方向是从高地址到低地址的.
2.3 缓冲区溢出中我们只需关注数据区和堆栈区.


2.4 发生函数调用时候栈的情况
    从高地址向低地址分别是:函数调用的实参,退出函数后的返回地址,调用函数前的EBP,函数中的局部变量.最后压栈的是函数中的局部变量.如果局部变量发生溢出,那么就会覆盖EBP甚至返回地址,这就是缓冲区溢出的奥妙所在.
2.5堆溢出
   堆是负责分配程序运行中的变量的,主要的工作就是分配回收内存,假如malloc了两个变量,分别为变量1和变量2 ,往变量1中写入超过它长度的数据,那么超过长度的数据会被写入变量2中,只要变量2的长度还在堆中,那么程序就可以执行完.实质上,即是变量1和变量2是紧挨着的两个变量,但是由于malloc的缘故,两个变量内存之间还会有八个字节,存储相关的信息.假如变量1溢出,那么不仅溢出的数据不仅会写入变量2,还会占用这八个字节.


2.6未初始化的全局或静态变量
   该段的变量是连续存放的,不存在隔离空间.假如一个变量发生溢出,就会占用隔壁的变量.


缓冲区溢出攻击主要做两件事情:
1.注入精心设计的代码
2.让程序跳转到该代码进行执行.


木马主要实现的技术
  ①自动启动技术 ②隐藏技术 ③远程监控技术
木马举例:
 1.远程访问型木马  2.密码发送型木马 3.键盘记录型木马  4.毁坏型木马  5.FTP型木马 


木马的侵袭过程:
①植入木马  ,安装,隐藏,打开端口监听.
②发送连接请求并响应.
③远程控制


漏洞扫描器
1.原理:利用模拟攻击的方式,对目标可能存在的已知的安全漏洞进行检查.会提供一份安全分析评价书.

0 0