1、黑客和黑客攻击
黑客(Hacker)在当前的网络世界中有褒贬两重含义。从褒的方面讲,黑客特指一些特别优秀的程序员或
技术专家。从贬义方面讲,黑客是一些蓄意破坏计算机和电话
系统的人。真正的黑客把这些人叫做“骇客(cracker)”,并不屑与之为伍。
(1)信息的收集
网络监测、社会工程、公共资源和垃圾、后门
工具
(2)黑客攻击方式
拒绝服务攻击、缓冲区溢出攻击、漏洞攻击、欺骗攻击
2、拒绝服务攻击与防御
DoS是由人为或非人为发起的行动,使主机硬件、软件或两者同时失去工作能力,使系统不可访问并因此拒绝合法的用户服务要求。
对
服务器实话DoS有两种思路:A服务器的缓冲区满,不接收新的请求。B使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。这也是DoS攻击实话的基本思想。
(1)传统拒绝服务攻击的分类
网络的内外部用户都可以发动这种攻击。
外部用户针对网络连接发动DoS攻击主要有以下几种模式:
消耗资源、破坏或更改
配置信息、物理破坏或改变网络部件、利用服务程序中的处理错误使服务失效。
(2)分布式拒绝服务攻击
详情请参阅: 分布式拒绝服务攻击
(3)拒绝服务攻击的防御方法
A、加强对
数据包的特征识别
B、设置防火墙监视本地主机端口的使用情况
C、对通信数据量进行统计也可获得有关攻击系统的位置和数量信息。
D、尽可能地修正已经发现的问题和系统漏洞。
3、缓冲区溢出攻击与防御
详情请参阅: 缓冲区溢出攻击
针对缓冲区溢出,可以采取多种防范策略:
( 1 )系统
管理上的防范策略
A 、关闭不需要的特权程序
B 、及时给程序漏洞打补丁
( 2 )软件
开发过程中的防范策略
A 、编写正确的
代码
B 、缓冲区不可执行
C 、改进 C 语言函数库
D 、使堆栈向高地址方向增长
E 、程序指针完整性检查
F 、利用编译器将静态数据段中的函数地址指针存放地址和其他数据的存放地址分离。
4、程序漏洞攻击与防御
(1)WEB程序漏洞攻击与防御
A、CGI漏洞攻击
CGI的漏洞:配置错误、边界条件错误、访问验证错误、来源验证错误、输入验证错误、异常情况处理失败、策略错误
防范的方法:注意P570的8条。
B、
SQL注入攻击
SQL注入攻击的过程主要包含以下几步:发现SQL注入位置、判断后台
数据库类型、确定XP_CMDSHELL可执行情况、发现WEB虚拟目录、上传ASP木马、得到管理员权限。
防御方法:注意P571的4条
(2)
TCP/IP漏洞
A、Ping of Death攻击
攻击类型: Ping Of Death 攻击是一种拒绝服务攻击。
攻击特征:该攻击数据包大于 65535 个字节。由于部分操作系统接收到长度大于 65535 字节的数据包时,就会造成内存溢出、系统崩溃、重启、内核失败等后果,从而达到攻击的目的。
检测方法:判断数据包的大小是否大于 65535 个字节。
反攻击方法:使用新的补丁程序,当收到大于 65535 个字节的数据包时,丢弃该数据包,并进行系统审计。
B、Teardrop攻击
攻击类型:Teardrop 攻击是一种拒绝服务攻击。
攻击特征: Teardrop 是基于 UDP 的病态分片数据包的攻击方法,其工作
原理是向被攻击者发送多个分片的 IP 包( IP 分片数据包中包括该分片数据包属于哪个数据包以及在数据包中的位置等信息),某些操作系统收到含有重叠偏移的伪造分片数据包时将会出现系统崩溃、重启等现象。(利用 UDP 包重组时重叠偏移(假设数据包中第二片 IP 包的偏移量小于第一片结束的位移,而且算上第二片 IP 包的 Data ,也未超过第一片的尾部,这就是重叠现象。)的漏洞对系统主机发动拒绝服务攻击,最终导致主机菪掉;对于
Windows 系统会导致蓝屏死机,并显示 STOP 0x0000000A 错误。)
检测方法:对接收到的分片数据包进行分析,计算数据包的片偏移量( Offset )是否有误。
反攻击方法:添加系统补丁程序,丢弃收到的病态分片数据包并对这种攻击进行审计。
C、Winnuke攻击
攻击类型:WinNuke 攻击是一种拒绝服务攻击。
攻击特征: WinNuke 攻击又称带外传输攻击,它的特征是攻击目标端口,被攻击的目标端口通常是 139 、 138 、 137 、 113 、 53 ,而且 URG 位设为 “1” ,即紧急模式。
检测方法:判断数据包目标端口是否为 139 、 138 、 137 等,并判断 URG 位是否为 “1” 。
反攻击方法:适当配置防火墙
设备或过滤
路由器就可以防止这种攻击手段(丢弃该数据包),并对这种攻击进行审计(记录事件发生的时间,源主机和目标主机的 MAC 地址和 IP 地址 MAC )。
D、Land攻击
land
攻击 是一种使用相同的源和目的主机和端口发送数据包到某台机器的攻击。结果通常使存在漏洞的机器崩溃。
在 Land 攻击中,一个特别打造的 SYN 包中的原地址和目标地址都被设置成某一个服务器地址,这时将导致接受服务器向它自己的地址发送 SYN 一 ACK 消息,结果这个地址又发回 ACK 消息并创建一个空连接,每一个这样的连接都将保留直到超时掉。对 Land 攻击反应不同,许多 UNIX 实现将崩溃,而 Windows NT 会变的极其缓慢(大约持续五分钟)。
5、欺骗攻击与防御
(1)
ARP欺骗
详情请参阅: ARP欺骗
(2)DNS欺骗
详情请参阅: DNS欺骗
(3)IP欺骗
详情请参阅:
ip
地址欺骗
6、端口扫描
详情请参阅: 端口扫描
7、强化TCP/IP堆栈以抵御拒绝服务攻击
(1)同步包风暴(SYN Flooding)
Synflood: 该攻击以多个随机的源主机地址向目的
路由器发送 SYN 包,而在收到目的路由器的 SYN ACK 后并不回应,这样,目的路由器就为这些源主机建立了大量的连接队列,而且由于没有收到 ACK 一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务 , 甚至导致路由器崩溃 . 服务器要等待超时 (Time Out) 才能断开已分配的资源。
防范措施:
A 、设置 HALF-TCP 连接的最大个数。超过这个 MAX 后随机关闭已建立的 HALF-TCP 连接或者丢弃新来的 SYN 信息 .
B 、关闭 TCP 服务。攻击者使用无效的 ip 地址,利用 tcp 连接的三次握手过程,使得受害主机处于开放会话的请求之中,直至连接超时。在此期间,受害主机还会连续接受这种会话请求,最终因耗尽资源而停止响应。
(2)ICMP攻击
防御基于 ICMP 的网络攻击的方法
A 、
选择合适的防火墙
有效防止 ICMP 攻击,防火墙应该具有状态检测、细致的数据包完整性检查和很好的过滤规则控制
功能。
状态检测防火墙通过跟踪它的连接状态,动态允许外出数据包的响应信息进入防火墙所保护的网络。例如,状态检测防火墙可以记录一个出去的 PING ( ICMP Echo Request ),在接下来的一个确定的时间段内,允许目标主机响应的 ICMP Echo Reply 直接发送给前面发出了 PING 命令的 IP ,除此之外的其他 ICMP Echo Reply 消息都会被防火墙阻止。与此形成对比的是,包过滤类型的防火墙允许所有的 ICMP Echo Reply 消息进入防火墙所保护的网络了。许多路由器和基于
Linux 内核 2.2 或以前版本的防火墙系统,都属于包过滤型,用户应该避免选择这些系统。
新的攻击不断出现,防火墙仅仅能够防止已知攻击是远远不够的。通过对所有数据包进行细致分析,删除非法的数据包,防火墙可以防止已知和未知的 DoS 攻击。这就要求防火墙能够进行数据包一致性检查。安全策略需要针对 ICMP 进行细致的控制。因此防火墙应该允许对 ICMP 类型、代码和包大小进行过滤,并且能够控制连接时间和 ICMP 包的生成速率。
B 、
配置防火墙以预防攻击
一旦选择了合适的防火墙,用户应该配置一个合理的安全策略。以下是被普遍认可的防火墙安全配置惯例,可供管理员在系统安全性和易用性之间作出权衡。
防火墙应该强制执行一个缺省的拒绝策略。除了出站的 ICMP Echo Request 、出站的 ICMP Source Quench 、进站的 TTL Exceeded 和进站的 ICMP Destination Unreachable 之外,所有的 ICMP 消息类型都应该被阻止。下面是针对每个 ICMP 消息类型的过滤规则的详细分析。
Echo Request 和 Reply (类型 8 和 0 ):允许 Echo Request 消息出站以便于内部用户能够 PING 一个远程主机。阻止入站 Echo Request 和出站 Echo Reply 可以防止外部网络的主机对内部网络进行扫描。如果您使用了位于外部网络的监视器来监视内部网络,就应该只允许来自于特定外部 IP 的 Echo Request 进入您的网络。限制 ICMP Echo 包的大小可以防止 “Ping Floods” 攻击,并且可以阻止那些利用 Echo Request 和 Reply 来 “ 偷运 ” 数据通过防火墙的木马程序。
Destination unreachable (类型 3 ):允许其入站以便于内部网用户可以使用 traceroute 。需要注意的是,有些攻击者可以使用它来进行针对会话的 DoS 攻击,如果您曾经历过类似的攻击,也可以阻止它。阻止出站的 ICMP Destination unreachable 消息,因为它可能会泄漏内部网络的
结构。不过有一个例外,对于那些允许外部网络通过 TCP 访问的内部主机(如位于 DMZ 区的 Web 服务器)发出的 Destination unreachable ,则应该允许它通过。为了能够支持 “Path MTU Discovery” ,您应该允许出站的 “Packet Too Big” 消息(类型 3 ,代码 4 )到达那些主机。
Source quench (类型 4 ):阻止其入站,因为它可以作为一种 DoS 攻击,能够降低发送者的发送速度。允许其出站以便于内部主机能够控制发送端发送数据的速度。有些防火墙会忽略所有直接发送到防火墙端口的 Source Quench 消息,以防止针对于防火墙的 DoS 攻击。
Redirect 、 Router announcement 、 Router selection (类型 5 , 9 , 10 ):这些消息都存在潜在危险,因为它们可以用来把数据重定向到攻击者的机器。这些消息都应该被阻止。
TTL exceeded (类型 11 ):允许其进站以便于内部用户可以使用 traceroute 。 “firewalking” 使用很低的 TTL 值来对网络进行扫描,甚至可以通过防火墙对
内网进行扫描,所以应该禁止其出站。一些防火墙可以阻止 TTL 值小于设定值的数据包进入防火墙。
Parameter problem (类型 12 ):禁止其入站和出站。通过使用一个能够进行数据包一致性检查的防火墙,错误和恶意的数据包都会被阻塞。
(3)SNMP攻击
8、系统漏洞扫描
(1)基于网络的漏洞扫描
(2)基于主机的漏洞扫描