一、WAF
1.WAF是什么
个人理解WAF是一个应用级别的防护软件,主要是针对HTTP/HTTPS的防护,网站应用级别的防护,通过一系列的黑白名单等操作对于诸如SQL注入,XSS,CSRF等攻击进行防护
2.WAF的功能
2.1审计
1.审计的作用是对网站人员的操作登录等进行记录
2.对于安全策略的增加和修改
3.对于用户的属性和权限进行修改和操作
2.2访问控制设备
分为主动控制和被动控制
2.3Web应用加固
针对有弱点的Web的应用进行安全策略的加固等操作,比如从网络入侵检测的角度来看可以把WAF看成运行在HTTP层上的IDS设备;从防火墙角度来看,WAF是一种防火墙的功能模块;还有人把WAF看作"深度检测防火墙"的增强。
3.WAF的检测特点
3.1异常协议检测
针对HTTP协议的异常进行检测,并且,它也可以只允许HTTP协议的部分选项通过,从而减少攻击的影响范围。甚至,一些Web应用防火墙还可以严格限定HTTP协议中那些过于松散或未被完全制定的选项。
3.2增强的输入验证
对于诸如XSS、CSRF、SQL注入这种会因为人为的输入信息导致漏洞爆发
3.3及时补丁
3.4规则保护
基于规则的保护可以提供各种Web应用的安全规则,WAF生产商会维护这个规则库,并时时为其更新。用户可以按照这些规则对应用进行全方面检测。还有的产品可以基于合法应用数据建立模型,并以此为依据判断应用数据的异常。但这需要对用户企业的应用具有十分透彻的了解才可能做到,可现实中这是十分困难的一件事情。
3.5状态监测
WAF能够判断用户是否是第一次访问并且将请求重定向到默认登录页面并且记录事件。通过检测用户的整个操作行为我们可以更容易识别攻击。状态管理模式还能检测出异常事件(比如登陆失败),并且在达到极限值时进行处理。这对暴力攻击的识别和响应是十分有利的。
二、防火墙
1.什么是防火墙
所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。该计算机流入流出的所有网络通信和数据包均要经过此防火墙。
2.防火墙的发展
防火墙分为:
第一代:包过滤防火墙,仅能实现简单的访问控制。
第二代:代理防火墙,在应用层代理内部网络和外部网络之间的通信。代理防火墙的安全较高,但是处理速度较慢,而且对每一个应用都要开发一个代理服务很难做到,因此只能对少量的应用提供代理支持。
第三代:状态监测防火墙(发展史上的里程碑),就是看通过防火墙的数据包是否符合HTTP协议的端口号和报文信息,如果不符合就拦截。在状态检测防火墙出现之前,包过滤防火墙只会根据设定好的静态规则为判断是否允许报文通过,它认为报文都是无状态的孤立个体,不关注报文产生的前因后果,这就要求包过滤防火墙都必须针对每一个方向的报文都配置一条规则,转发效率低而且容易带来安全风险。
第四代:统一威胁管理(简称UTM)统一威胁管理防火墙的确实现了对网络全方位的保护,但是由于其多个防护功能一起运行,导致效率不高,而且统一威胁管理防火墙并没有集成深度报文检测功能,所以对数据包深度检测不足,于是又发展出了第五代防火墙:下一代防火墙。下一代防火墙就是目前最常见的防火墙,下一代防火墙解决了统一威胁管理防火墙效率不足和报文深度检测能力不足的弱点。
第五代:下一代防火墙(简称NG)
三、IDS
1.什么是IDS
IDS是英文"Intrusion Detection Systems"的缩写,中文意思是"入侵检测系统"。专业上讲就是依照一定的安全策略,通过软、硬件,对网络、系统的运行状况进行监视,尽可能发现各种攻击企图、攻击行为或者攻击结果,以保证网络系统资源的机密性、完整性和可用性。做一个形象的比喻:假如防火墙是一幢大楼的门锁,那么IDS就是这幢大楼里的监视系统。一旦小偷爬窗进入大楼,或内部人员有越界行为,只有实时监视系统才能发现情况并发出警告。
2.IDS类别
IDS扫描当前网络的活动,监视和记录网络的流量,根据定义好的规则来过滤从主机网卡到网线上的流量,提供实时报警。网络扫描器检测主机上先前设置的漏洞,而 IDS 监视和记录网络流量。如果在同一台主机上运行IDS和扫描器的话,配置合理的IDS会发出许多报警。
1.基于主机的IDS监测(HIDS)
主机型入侵检测系统往往以系统日志、应用程序日志等作为数据源,当然也可以通过其他手段(如监督系统调用)从所在的主机收集信息进行分析。主机型入侵检测系统保护的一般是所在的系统。
2.基于网络的IDS监测(NIDS)
网络型入侵检测系统的数据源则是网络上的数据分组。往往将一台机子的网卡设于混杂模式(Promisc Mode),监听所有本网段内的数据分组并进行判断。一般网络型入侵检测系统担负着保护整个网段的任务。
具体说来,入侵检测系统的主要有以下功能。
(1)监测并分析用户和系统的活动。
(2)核查系统配置和漏洞。
(3)评估系统关键资源和数据文件的完整性。
(4)识别已知的攻击行为。
(5)统计分析异常行为。
(6)操作系统日志管理,并识别违反安全策略的用户活动。
3.IDS工作原理
通俗的理解分为两种,一种是基于异常的监测机制一种是基于行为的监测机制,
异常是通过捕获网络中的流量对比已知的病毒库,漏洞库等已知的病毒特征MD5码等作出相应的措施,一种是基于行为的,简单说就是构建一个行为模型来预测你的行为特征,例如你每天到达单位是八点,九点整你会习惯性的浏览一个小时的网页,十点你会去喝一杯咖啡,但是突然有一天你晚到了一个小时,然后你没有浏览网页喝咖啡,但是不能说你这个人今天没有来公司。
基于行为的构建模型的话就是看你每天的行为是否符合模型的规范,如果不符合就会报错。很明显两种预测模式都存在明显的不足,一是如果发生了未知的攻击,没有记录在数据库中就无法做出防范报警,第二种则是不好做出准确的模型预判,真实环境中会存在漏报和误报的问题。
4.IDS的局限性
1.布置和绕过
(1)网络拓扑局限
对于一个较复杂的网络而言,通过精心地发包,可以导致NIDS与受保护的主机收到的包的内容或者顺序不一样,从而绕过NIDS的监测。
(2)其他路由
由于一些非技术的因素,可能存在其他路由可以绕过NIDS到达受保护主机(例如某个被忽略的Modem,但Modem旁没有安装NIDS)。如果IP源路由选项允许的话,可以通过精心设计IP路由绕过NIDS。
(3)TTL
如果数据分组到达 NIDS 与受保护的主机的 HOP 数不一样,则可以通过精心设置 TTL值来使某个数据分组只能被NIDS或者只能被受保护的主机收到,从而使NIDS的Sensor与受保护主机收到的数据分组不一样,从而绕过NIDS的监测。
(4)MTU
如果NIDS的MTU与受保护主机的MTU不一致的话(由于受保护的主机各种各样,其MTU设置也不一样),则可以精心设置MTU处于两者之间,并设置此包不可分片,使NIDS的Sensor与受保护主机收到的数据分组不一样,从而绕过NIDS的检测。
(5)TOS
有些网络设备会处理TOS选项,如果NIDS与受保护主机各自连接的网络设备处理不一样的话,通过精心设置TOS选项,将会导致NDIS的Sensor与受保护主机收到的数据分组的顺序不一样,于是有可能导致NIDS重组后的数据分组与被保护主机的数据分组不一致,从而绕过NIDS的监测(尤其在UDP包中)。
2、针对IDS的检测方法局限
NIDS 常用的检测方法有特征检测、异常检测、状态检测、协议分析等。实际中的商用入侵检测系统大都同时采用几种检测方法。
NIDS不能处理加密后的数据,如果数据在传输中被加密,即使只是简单的替换,NIDS也难以处理,如采用SSH、HTTPS、带密码的压缩文件等手段,都可以有效地防止NIDS的检测。
NIDS难以检测重放攻击、中间人攻击、对网络监听也无能为力。
目前的NIDS还难以有效地检测DDoS攻击。
(1)系统实现局限
由于受NIDS保护的主机及其运行的程序各种各样,甚至对同一个协议的实现也不尽相同,入侵者可能利用不同系统的不同实现的差异来进行系统信息收集(如Nmap通过TCP/IP指纹来进行对操作系统的识别)或者进行选择攻击,由于NIDS不大可能通晓这些系统的不同实现,故而可能被入侵者绕过。
(2)异常检测的局限
异常检测通常采用统计方法来进行检测。
统计方法中的阈值难以有效确定,太小的值会产生大量的误报,太大的值会产生大量的漏报,例如系统中配置为200个/秒半开TCP连接为SYN_Flooding,则入侵者每秒建立199个半开连接将不会被视为攻击。
异常检测常用于对端口扫描和 DDoS 攻击的检测。NIDS 存在一个流量日志的上限,如果扫描间隔超过这个上限,NIDS将忽略掉这个扫描。尽管NIDS可以将这个上限配置得很长,但此配置越长,对系统资源要求越多,受到针对NIDS的DDoS攻击的可能性就越大。
(3)特征检测的局限
特征检测主要针对网络上公布的黑客工具或者方法,但对于很多以源代码发布的黑客工具而言,很多入侵者可以对源代码进行简单的修改(如黑客经常修改特洛伊木马的代码),产生攻击方法的变体,就可以绕过NIDS的检测。
3、针对应用协议局限
对于应用层的协议,一般的NIDS只简单地处理了常用的如HTTP、FTP、SMTP等,尚有大量的协议没有处理,也不大可能全部处理,直接针对一些特殊协议或者用户自定义协议的攻击,都能很好地绕过NIDS的检查。
4.针对IDS资源及处理能力局限
(1)大流量冲击
攻击者向被保护网络发送大量的数据,超过NIDS的处理能力有限,将会发生分组的情况,从而可能导致入侵行为漏报。
(2)IP碎片攻击
攻击者向被保护网络发送大量的IP碎片(如TARGA3攻击),超过NIDS能同时进行的IP碎片重组能力,从而导致通过IP分片技术进行的攻击漏报。
(3)TCP Connect Flooding
攻击者创建或者模拟出大量的TCP连接(可以通过上面介绍的IP重叠分片方法),超过NIDS同时监控的TCP连接数的上限,从而导致多余的TCP连接不能被监控。
(4)Alert Flooding
攻击者可以参照网络上公布的检测规则,在攻击的同时故意发送大量的将会引起 NIDS报警的数据(例如stick攻击),将可能超过NIDS发送报警的速度,从而产生漏报,并且使网管收到大量的报警,难以分辨出真正的攻击。
(5)Log Flooding
攻击者发送大量的将会引起NIDS报警的数据,最终导致NIDS进行Log的空间被耗尽,从而删除先前的Log记录。
四、IPS
随着电脑的广泛应用和网络的不断普及,来自网络内部和外部的危险和犯罪也日益增多。20年前,电脑病毒主要通过软盘传播。后来,用户打开带有病毒的电子信函附件,就可以触发附件所带的病毒。以前,病毒的扩散比较慢,防毒软体的开发商有足够的时间从容研究病毒,开发防病毒、杀病毒软件。而今天,不仅病毒数量剧增,质量提高,而且通过网络快速传播,在短短的几小时内就能传遍全世界。有的病毒还会在传播过程中改变形态,使防毒软件失效。
目前流行的攻击程序和有害代码如 DoS (Denial of Service 拒绝服务),DDoS (Distributed DoS 分布式拒绝服务),暴力猜解(Brut-Force-Attack),端口扫描(Portscan),嗅探,病毒,蠕虫,垃圾邮件,木马等等。此外还有利用软件的漏洞和缺陷钻空子、干坏事,让人防不胜防。
网络入侵方式越来越多,有的充分利用防火墙放行许可,有的则使防毒软件失效。比如,在病毒刚进入网路的时候,还没有一个厂家迅速开发出相应的辨认和扑灭程序,于是这种全新的病毒就很快大肆扩散、肆虐于网路、危害单机或网络资源,这就是所谓Zero Day Attack。
防火墙可以根据IP地址(IP-Addresses)或服务端口(Ports)过滤数据包。但是,它对于利用合法IP地址和端口而从事的破坏活动则无能为力。因为,防火墙极少深入数据包检查内容。即使使用了DPI技术 (Deep Packet Inspection 深度包检测技术),其本身也面临着许多挑战。
每种攻击代码都具有只属于它自己的特征 (signature), 病毒之间通过各自不同的特征互相区别,同时也与正常的应用程序代码相区别。杀毒软件就是通过储存所有已知的病毒特征来辨认病毒的。
在ISO/OSI网络层次模型(见OSI模型) 中,防火墙主要在第二到第四层起作用,它的作用在第四到第七层一般很微弱。而除病毒软件主要在第五到第七层起作用。为了弥补防火墙和除病毒软件二者在第四到第五层之间留下的空档,几年前,工业界已经有入侵侦查系统(IDS: Intrusion Detection System)投入使用。入侵侦查系统在发现异常情况后及时向网路安全管理人员或防火墙系统发出警报。可惜这时灾害往往已经形成。虽然,亡羊补牢,尤未为晚,但是,防卫机制最好应该是在危害形成之前先期起作用。随后应运而生的入侵响应系统(IRS: Intrusion Response Systems) 作为对入侵侦查系统的补充能够在发现入侵时,迅速作出反应,并自动采取阻止措施。而入侵预防系统则作为二者的进一步发展,汲取了二者的长处。
入侵预防系统也像入侵侦查系统一样,专门深入网络数据内部,查找它所认识的攻击代码特征,过滤有害数据流,丢弃有害数据包,并进行记载,以便事后分析。除此之外,更重要的是,大多数入侵预防系统同时结合考虑应用程序或网路传输中的异常情况,来辅助识别入侵和攻击。比如,用户或用户程序违反安全条例、数据包在不应该出现的时段出现、作业系统或应用程序弱点的空子正在被利用等等现象。入侵预防系统虽然也考虑已知病毒特征,但是它并不仅仅依赖于已知病毒特征。
应用入侵预防系统的目的在于及时识别攻击程序或有害代码及其克隆和变种,采取预防措施,先期阻止入侵,防患于未然。或者至少使其危害性充分降低。入侵预防系统一般作为防火墙 和防病毒软件的补充来投入使用。在必要时,它还可以为追究攻击者的刑事责任而提供法律上有效的证据 (forensic)。