随着互联网及应用的快速发展,以攻击系统为主转变为以攻击网络为主。
分析和掌握网络攻击活动的方式、方法和途径,对加强网络安全、预防网络犯罪有重要意义。
攻击表现:获取用户的账号和密码、系统漏洞攻击、破解口令、攻击认证协议、实施木马攻击和拒绝服务攻击。
网络攻击的种类、途径和方式各种各样,但都是以破坏网络系统的可用性、窃取机密信息为目的。
对网络的攻击者:黑客(Hacker)、间谍、恐怖主义者、公司职员、职业犯罪分子和其他破坏者,其中威胁最大的是黑客。
攻击者的动机:挑战网络安全技术、获取访问权限、窃取政治经济情报信息、制造恐怖、恶性商业竞争、经济利益驱动和报复等。
攻击分为主动攻击和被动攻击。
主动攻击是攻击者对传输中的信息或存储的信息进行各种非法处理,有选择地篡改、插入、延迟、删除或复制这些信息。
主动攻击的破坏力很大,能直接威胁网络系统的可靠性、信息的机密性、完整性和可用性。主动攻击虽较容易被检测到,但难于防范。
被动攻击是攻击者通过监听网络线路上的信息流获得信息内容,或获得信息的长度、传输频率等特征,并进行信息流量分析后实施攻击。
被动攻击的特点是:不干扰信息的正常传输,不易被检测到,容易防范,但它破坏信息的机密性。
对信息通信的4种攻击方式:
中断:是指攻击者使系统的资源受损或不可用,从而使系统的通信服务不能进行,属于主动攻击行为。
截获:是指攻击者非法获得对一个资源的访问,并从中窃取有用的信息或服务,属于被动攻击行为。
篡改:是指攻击者未经授权访问并改动了资源,从而使合法用户得到虚假的信息或错误的服务等,属于主动攻击行为。
伪造:是指攻击者未经许可而在系统中制造出假的信息源、信息或服务,欺骗接收者,属于主动攻击行为。
1.窃取口令
窃取口令是黑客实施网络攻击,窃取用户机密信息的最常用的方法。
窃取方法:
1)通过网络监听非法得到用户口令,这类方法有一定的局限性,但危害性极大。
2)暴力破解。
3)获得一个服务器上的用户口令文件后,用暴力破解程序破解用户口令,前提是黑客获得口令的Shadow文件。
2.植入木马
当用户连接互联网网时,木马就通知黑客,并将用户的IP地址以及预先设定的端口等信息传送出去。黑客收到这些信息后,利用潜伏在用户端的木马程序,控制用户端机任意修改用户的参数、复制文件、窥视用户硬盘中的内容等。
3.WWW欺骗
黑客将用户要浏览的网页URL,改写为指向黑客服务器的URL,当用户浏览目标网页时,实际上是向黑客服务器发出请求,窃取用户的账号和口令。
4.电子邮件攻击
“邮件炸弹”指用伪造的IP地址和电子邮件地址向同一信箱发送数以万计内容相同的垃圾邮件,致使受害人邮箱溢出或者瘫痪。
5.通过一个节点攻击其他节点
这种攻击技术含量相对较高,黑客在攻破一台主机后,以此机作为“肉机”,攻击网络中其他的主机。
6.网络监听
网络监听是主机的一种工作模式,在这种模式下,主机可以接收到本网段在同一条物理通道上传输的所有信息。若两台主机的通信没有加密,则通过网络监听工具如:NetXray 、sniffit等,可截取口令和帐号等机密信息。
7.利用系统漏洞
网络中所有系统都存在一些安全漏洞(也称:Bugs)。这些漏洞在补丁未打之前,往往成为黑客实施攻击的途径,除非断开网线。
1.自动化程度和攻击速度提高
一方面,攻击工具的自动化水平不断提高。另一方面,扫描工具采用更先进的扫描模式,提高扫描速度。如:安全漏洞以前只在扫描后才被利用,而现在攻击工具可把利用安全漏洞和扫描同时进行,加快了攻击速度。
2.攻击工具越来越复杂
新的攻击工具难发现、难被检测,具有反侦破、动态行为、更加成熟、跨平台等特点。
3.探测安全漏洞越来越快
据统计,现在新发现的安全漏洞每年增加一倍,且每年都会出现新的安全漏洞,人们不断地打补丁,但入侵者有时会在厂商发布补丁之前就发现这些漏洞。
4.防火墙渗透率越来越高
防火墙是目前人们防范入侵的主要保护措施,也是网络系统的第一道防线。但是现在仍有越来越多的攻击可绕过防火墙。如:IPP(Internet Printing Protocol)因特网打印协议.
5.对基础设施攻击
基础设施指Internet系统的基本组成部分,包括:群集服务器子系统、存储器子系统、网络通信系统、用户端子系统等,对基础设施的攻击往往破坏性和影响更大。如:DDOS攻击、蠕虫攻击、DNS攻击和路由器攻击等。
一次完整的网络攻击包括:准备、实施和善后三个阶段。
攻击来源于两种:一是来自内部人员的内部攻击,二是来自外部人员的远程攻击。
1.确定攻击目标和目的
2.信息收集
确定攻击目标之后,开始收集尽可能多的有关攻击目标的信息。这些信息包括:目标的操作系统类型及版本、目标提供哪些服务、各服务的类型、版本以及相关的社会信息。
1)攻击者收集目标信息的步骤
1)找到初始信息,如:一个IP地址或一个域名;
2)找到网络地址范围,或者子网掩码;
3)找到活动主机;
4)找到开放端口;
5)弄清操作系统;
6)弄清每个端口运行的服务;
7)画出网络结构图。
2)收集操作系统信息
(1)通过服务器上的显示信息
(2)通过TCP/IP堆栈
远程向目标发送特殊包,然后通过返回包,确定操作系统类型。如:通过向目标主机的一个开放端口发送一个Fin包,然后等待回应,如:windows操作系统就会返回一个RESET。
3)收集服务信息
一种服务通常对应一个端口,如:Telnet在23端口,FTP在21端口,WWW在80端口等。攻击是针对某一服务(即一个开放的端口)的。管理员可根据具体情况修改服务所监听的端口号。
另外,收集社会信息。如:网站所属公司的名称、规模、网络管理员的生活习惯、电话号码等,这些信息似乎与攻击无关,但实际上,黑客往往是用这类信息攻破网站的。
5.2.2 攻击实施阶段
1.获得权限
1)破坏性攻击,只需利用一些软件工具发动攻击。
2)入侵性攻击,要利用收集到的信息,找到系统漏洞,然后利用漏洞获取权限。作为一次完整的攻击,黑客总是试图获得系统用户的最高权限。漏洞包括:软件漏洞和配置造成的漏洞。(举例)
2.扩大权限
实际中,黑客先利用远程漏洞获得普通用户的权限,然后,再在系统上执行利用本地漏洞的程序或木马欺骗程序窃取管理员密码,获得最高管理权限。
5.2.3 攻击善后阶段
因为所有的网络操作系统都有日志记录功能,会把系统上发生的动作记录下来。所以,攻击者完成攻击后不会立刻离开系统,而是会做一些善后的工作,防止其行踪被发现。
1.修改或删除日志
日志文件存放的位置:/Var/adm,/etc。日志文件:
pacct-一记录每个用户使用的命令。
lastlog――记录最近的Login记录和用户的最初目的地。
utmp――记录当前登录到系统中的所有用户。
wtmp――记录用户登录和退出事件。
Syslog――重要日志文件,使用syslogd守护程序获得。
2.隐藏入侵踪迹
攻击者在获得系统最高管理权限之后,可任意修改系统文件,包括日志文件。所以,黑客会通过对日志进行修改,甚至删除日志文件,以隐藏自己的踪迹。
较好的方法是:只修改日志文件中有关黑客行为的那一部分。即清除utmp、wtmp、Lastlog和Pacct等日志文件中黑客的信息。
3.留后门
黑客在攻入系统后,会多次进入系统,并留下后门。
(1)密码破解后门
(2) Rhosts++后门 (Windows XP系统不存在此后门)
(3)“校验和”及“时间戳”后门
(4)Login后门
缓冲区溢出(Buffer Overflow)是一种常见的安全漏洞,在各种操作系统及应用软件中都存在。
攻击过程:向程序的缓冲区写入超出其长度的字串,造成缓冲区的溢出,将恶意代码插入其中,并让这段恶意代码执行。
据统计,通过缓冲区溢出漏洞进行的攻击,占所有系统攻击总数的80%以上。
1、缓冲区溢出的原因
某些程序没有检查用户输入参数的功能,当把超过缓冲区长度的字符串输入缓冲区时,就造成缓冲区的溢出。
缓冲区溢出的结果:
1)过长的字符串覆盖相邻的存储单元引起程序运行失败,导致系统崩溃;
2)堆栈的破坏,造成程序执行任意指令。例:
void function(char *str) {
char buffer[16];
strcpy(buffer,str);
}
2、堆溢出和栈溢出
在C语言中,堆空间是指程序使用动态分配函数malloc、calloc、realloc分配的空间。而栈空间是程序为在代码中声明的变量而分配的空间。(栈溢出举例,画图)
栈中程序保存着函数调用的返回地址,黑客覆盖掉函数返回地址,将自己的代码开始处作为函数返回点,则程序将跳到黑客安排的代码开始处执行,即执行了恶意代码。
攻击者一是在程序的地址空间里植入代码;二是通过初始化寄存器和存储器,让程序跳转到安排好的地址空间去执行。
1、在程序地址空间输入代码
1)植入法
攻击者向程序输入一个字符串,程序把这个字符串存到缓冲区里。攻击者利用缓冲区存放攻击代码,有两种方式:
a)攻击者找到足够的空间放置攻击代码;
b)在栈(自动变量)、堆(动态分配)和静态数据区等空间找缓冲区。
2)用已存在的代码
2、控制程序转去执行攻击代码
在缓冲区溢出攻击中,攻击者改变程序的执行流程,使之跳转到攻击代码。通过溢出一个缓冲区,改写相邻的程序空间而直接跳过系统对攻击者的验证。
控制程序转到攻击代码的方法:
1)激活纪录(Activation Records)
当一个函数调用发生时,调用者会在堆栈中留下一个激活纪录,它包含了函数结束时返回的地址。攻击者通过溢出,使这个返回地址指向攻击代码,当函数调用结束时,程序就跳转到攻击者设定的地址,而不是原先的地址。这是一种常见的缓冲区溢出攻击。
2)函数指针(Function Pointers)
函数指针用于定位地址空间,如:“void(* foo)”就是声明一个返回值为void函数指针的变量foo,攻击者在函数指针附近找一个缓冲区,然后溢出这个缓冲区,改变函数的指针,当程序通过函数指针调用函数时,程序的流程就按攻击者的意图发生了改变。
3)长跳转缓冲区(Long jump buffers)
C语言中有一个“longjmp(buffer)”指令,当攻击者进入缓冲区空间时,“longjmp(buffer)”实际上是跳转到攻击代码。像函数指针一样,longjmp缓冲区能够指向任何地方,攻击者只要找一个可供溢出的缓冲区即可。如:Perl 5.003攻击。在这种攻击中,攻击者首先进入longjmp缓冲区,然后按照恢复模式,使得Perl的解释器跳转到攻击代码。
4)新的缓冲区溢出攻击方法
即在引发缓冲区溢出改变激活纪录的同时植入代码。攻击者可先在一个缓冲区内放置代码,这时并没有溢出缓冲区,然后,攻击者通过溢出另外一个缓冲区来转移程序的指针,去执行攻击代码。
1.编写正确的程序代码
1)要进行数组边界检查
2)要检查源代码中的库调用
3)要使用安全的函数库
2.采用非执行的缓冲区技术
把程序的数据段地址空间设定为不可执行,使得攻击者无法执行植入缓冲区的代码。
3.执行程序指针完整性检查
在程序指针被引用之前,检查函数活动纪录中的返回地址,防止程序指针被改变。
4.打安全补丁
拒绝服务(Denial Of Service,简称DOS)攻击指系统不能为授权用户提供正常服务。这种攻击造成网络系统服务质量(Qos)下降,甚至不能提供服务,可用性降低。
服务资源包括:网络带宽、文件系统容量、开放的进程或网络连接数等,DOS攻击将导致这些资源逐渐匮乏。
在DOS攻击中,黑客利用大量捕获的傀儡机发起规模化的攻击,即成千上万傀儡组成“僵尸网络”实施攻击,造成系统拒绝服务。
DOS产生的原因主要有:
1)资源毁坏。 2)资源耗尽和资源过载。
3)配置错误。 4)软件漏洞。
1.TCP SYN Flooding攻击
它是一种基于TCP协议漏洞的攻击。TCP协议建立连接时需要“三次握手”,在每个TCP建立连接时,都要发送一个带SYN标记的数据包,如果在服务器端发送应答包后,客户端不发出确认,服务器便会保留大量这种“半连接”,占据有限资源,使服务器端的TCP资源枯竭,导致正常的连接不能进入,系统拒绝服务。
防御的方法:拒绝那些来自防火墙外面的未知主机或网络的连接请求,让防火墙过滤来自同一主机的后续连接。
服务器可采取的防范措施:
1)只启动应用和服务所必须的特定端口,关闭低于端口号900的UDP端口,也不启动支持UDP协议的echo(7)端口和chafgen(19)端口,这几个端口通常是SYN-Flooding攻击的目标。
2)用Netstat命令检查连接线路的状况,看是否处于SYN-Flood攻击中。在命令行下输入:Netstat -n -p tcp,可显示出机器的所有连接状况。
如有大量的连接处于SYN-RECIEVED状态,说明系统正遭受攻击。
2.Smurf攻击
Smurf攻击是一种利用ICMP(Internet Control Message Protocol Internet控制报文协议)实施的攻击,它是TCP/IP协议组的子协议,用于在IP主机、路由器之间传递控制消息。
攻击者先找出网络上有哪些路由器会回应ICMP请求,然后用一个假IP源地址向路由器的广播地址发出信息,路由器把这个信息广播到网络上所连接的每一台设备,这些设备回应后产生大量的信息流量,占用设备的资源及网络带宽,而回应的地址就是受攻击的目标(路由器或服务器)。
故应关闭外部路由器或防火墙的广播地址特性,并在防火墙上设置过滤规则,丢弃ICMP包。
为防范这种攻击,一是通过网络监视和隔离子网,及早发现攻击;二是登录到防火墙或路由器,检测攻击是来自外网还是内网;三是划分子网,将大型网络划分成若干个相对分开的子网,当某一个子网受到DOS攻击时,不会影响到所有的主机。
3.Ping of Death攻击
根据TCP/IP协议,一个IP包的长度最大为65536B字节,对较大的IP包发送时将进行分片,这些IP分片到达目的主机时又重新组合。实施Ping of Death攻击时,各分片组合后总长度超过65536B,造成某些操作系统的宕机。
4.Ping Flood攻击
该攻击在短时间内向目的主机发送大量ping包,造成网络堵塞或主机资源耗尽。
新的DOS攻击
(1)强度攻击:发送大量的无用数据包堵塞网络带宽,使目标机器无法对正常的请求进行响应。
(2)协议漏洞攻击:针对系统的协议漏洞进行的攻击。
(3)应用漏洞攻击:针对系统的应用漏洞进行的攻击,如:针对IIS的Unicode漏洞的远程控制攻击,针对FTP漏洞的攻击等。
分布式拒绝服务(Distributed DOS,简称DDOS)攻击是很多DOS攻击源一起攻击某台服务器,即攻击者先控制一定数量的 PC 机或路由器作为“傀儡机”,然后利用这些“肉机”向目标主机发起 DoS 攻击。
这种“群狼”式的分布式攻击很快将网络服务器的资源被占用耗尽,达到物理上限,从而不能对正常的服务请求做出响应。
1.DDOS攻击的过程
在DDOS攻击中,攻击者隐藏自己I的P地址,查到的往往是被攻击者控制的那些“肉机”,这些用户也是受害者。
攻击者采用远程控制软件,在客户端操纵主控端,主控端控制着多个分布端,分布端响应攻击命令,向目标主机发送拒绝服务攻击包。
攻击过程:先探测扫描大量主机寻找入侵目标,再通过远程溢出漏洞攻击,获取系统控制权,最后在入侵的主机中安装攻击程序,并通过已入侵的主机扫描和入侵其它主机,整个过程是自动的。攻击者可在很短的时间内(如:5s内),就入侵一台主机并安装上攻击工具。
2.DDOS攻击的方式
Trin00是一个分布式拒绝服务攻击工具,也是攻击网站的工具,它允许攻击者控制多台主机,并发送UDP洪水到另一台主机。
Trin00由三部分组成:
l)客户端(Telnet)
2)主控端(Master) 3)分布端(Broadcast)
攻击的流向是:“攻击者—主控端—分布端—目标主机”。分布端向受害目标主机发送UDP报文,实施DDos攻击,每一个包含4个空字节,这些报文从一个端口发出,但随机攻击目标主机的不同端口。
目标主机对每一个报文回复一个ICMP 信息,大量主机发来这些洪水般的报文,使目标主机很快资源耗尽(主要是消耗主机的带宽)。
DOS攻击不窃取目标系统的信息,但会造成系统服务中断,破坏可用性,并产生经济损失。
防范方法:
1.合理计算资源的使用
1)统计CPU使用状况;
2)观察系统的性能,确立系统正常的界线,评估不正常的磁盘活动;
3)检查网络流量使用状况。
2.及时修补漏洞
3.关掉不必要的服务,如:TCP/IP服务。
4.过滤网络异常包
1.注入攻击原理
SQL注入攻击是指攻击者利用SQL Server数据库管理程序,将恶意的SQL数据库命令注入到后台数据库引擎执行的一种攻击。如:用union语句进行联合查询、用insert或update语句插入或修改数据等。通过非正常的输入手段,实施SQL注入攻击。
通过构造SQL语句,同网页提交的内容结合进行攻击(举例)。
为防范SQL注入攻击,编程时应对用户端提交的变量参数进行检测,目前在多数数据库开发包中都含有参数检查功能。
SQL注入攻击网站的步骤:
1)探测网站是否存在SQL注入漏洞。
2)探测后台数据库的类型。
3)根据数据库类型,探测系统表的信息。
4)探测其他表信息。
5)探测表中的列信息。
6)探测表中的数据信息。
SQL注入攻击使用的是正常的HTTP服务端口,与正常的Web访问没有区别,因此,隐蔽性极强,不易被发现。
跨站脚本(Cross Site Scripting,简称CSS)攻击是一种利用网站漏洞,恶意盗取相关机密信息的攻击。
用户在浏览网站、使用即时通讯,如:QQ、以及在阅读电子邮件时,如果点击其中的链接,攻击者通过在链接中插入的恶意代码,就可能盗取用户机密信息。
如:用户A发了一个包含恶意脚本的帖子,则用户B在浏览该帖时,恶意脚本就会执行,盗取用户B的有关信息,这就是CSS 攻击。
在跨站脚本攻击中,攻击者不受限制地操纵html 标记:“< >”,导致攻击者实施CSS 攻击。
防范跨站脚本攻击,须过滤掉“< >”。
5.5.3 挂马网站及其防范
“挂马网站”是指的是被黑客植入恶意代码(如:木马)的正规网站。这些被植入的恶意代码,直接指向“木马网站”的网址。
当用户访问挂马网站时,木马程序将下载到用户的主机中并运行,这就称“挂马”。“网页挂马”已成为黑客传播病毒的主要手段,90%以上的木马都通过“挂马”方式传播。
防范措施:
1)构建立体化、多层次的防毒系统。
2)杀毒软件要及时更新,如:卡巴斯基、360等,以获得对新病毒木马的查杀能力。
3)及时安装补丁。
网络钓鱼(Phishing)也称为网页仿冒,是指利用社会工程和技术手段,窃取用户个人的身份信息、银行帐号、密码和信用卡等机密信息。
攻击者将用户骗到假冒网站(如:开户银行的网站)进行登录,从而泄露个人的银行帐号、密码等重要信息。
实施网络钓鱼攻击的三种方法:
1)欺骗法 发电子邮件欺骗用户登陆钓鱼网站,访问仿冒网页,窃取用户的机密信息。
2)恶意程序法 利用键盘记录程序(key logger)或截屏程序(screen logger)等恶意程序,窃取用户的个人私密信息。
3)修改域名法 修改主机名,误导用户登录钓鱼网站,窃取用户的个人私密信息。
防范措施:
采用反网络钓鱼(anti-phishing)对抗技术。
1、基于邮件端策略
利用反垃圾(anti-spam)邮件技术,防止假冒邮件到达潜在受害者的收件箱,保护用户不被欺骗。
2、基于客户端策略
在客户端浏览器中安装插件,检测用户当前浏览的网页是否是钓鱼网页,从而提示用户。常用的是基于客户端的反网络钓鱼技术。又分为:
基于黑名单的。 基于网页特征的。(需要训练)
基于网页内容的。 基 于网页相似度的。
基于黑名单的方法检测精确度较高。如:IE7.0浏览器采用的就是黑名单法,以检测用户浏览的网页是否为钓鱼网页。
防火墙、入侵检测、数据加密和认证等安全技术大多是在黑客攻击网络时,对系统实施的被动防护技术。而近年出现的蜜罐技术则是主动吸引黑客入侵的诱骗系统,属主动安全防护技术。
蜜罐技术对黑客在蜜罐系统中的攻击行为进行追踪和分析,以寻找应对措施。
1.蜜罐的定义
蜜罐是一种可监视、观察攻击者行为的系统。蜜罐是为吸引并诱骗那些试图非法入侵计算机的人(如:黑客)而设计的,是一个包含漏洞的诱骗系统。
1.蜜罐的功能与特点
1)收集数据的真实性高
2)能检测到未知的攻击
3)漏报率和误报率低
4)技术实现简单
5)为计算机取证提供支持
2.蜜罐的分类
根据目的的不同,蜜罐分为:产品型和研究型。
1)产品型蜜罐
2)研究型蜜罐
根据与攻击者的交互,蜜罐分为三种类型:
1)低交互蜜罐
指对各种系统及其提供的服务都是模拟行为的蜜罐。如:Nepenthes(猪笼草蜜罐)。
2)中交互蜜罐
指对操作系统的各种行为进行模拟的蜜罐。
3)高交互蜜罐
运行真正的操作系统,为攻击者提供真实的系统场景。蜜罐能记录下攻击者的活动和行为。
主要的蜜罐产品有:DTK、BOF、SPECTER等。
在实际应用中,蜜罐分为:客户端和服务器蜜罐,常用的是客户端蜜罐。
客户端蜜罐:
客户端蜜罐不是被动等待攻击,而是主动搜索恶意服务器,如:围绕着客户端浏览器漏洞的Web服务器等。
客户端蜜罐与恶意服务器交互并监视系统,查找未授权的状态改变。如:若在windows的system32 文件夹内发现额外的文件,并在注册表中发现新的键值,则说明机器已经被恶意代码所感染。
未授权的状态还包括:网络连接、内存、进程等的改变,根据状态的改变将服务器归为恶意服务器。
应用型蜜罐:
指应用特定协议的蜜罐。如:Google的Hack Honeypot。属于HTTP应用蜜罐或Web应用蜜罐,应用型蜜罐能捕获特定类型的攻击。
蜜罐作为引诱黑客前来攻击的诱骗系统,可检测到最新的攻击。
设置蜜罐的方法:
1)通过一台存在漏洞的Windows主机或Red Hat Linux主机。
该主机运行在外部Internet上,主机与Internet之间安装有网络监控系统,记录进出计算机的流量,等待黑客入侵。
2)通过蜜罐工具软件Honeytrap进行设置。
Honeytrap是观察针对TCP服务攻击的网络安全工具,Honeytrap蜜罐收集基于网络已知和未知的攻击信息。
3)使用“网络望远镜”工具软件Darknet设置。这也是一种低交互蜜罐工具软件。
一、保密问题
知道蜜罐是一个陷阱,黑客不会去尝试攻击它。
低交互性的蜜罐,很容易被攻击者识别出蜜罐的身份。
二、被利用问题
对高交互性的蜜罐若被破坏,攻击者会尝试将它作为一个破坏或控制其它系统的“肉机”。
原文链接:https://blog.csdn.net/zhouzhuo_CSUFT/article/details/82912727