防火墙|WAF|漏洞|网络安全
防火墙
根据内容分析数据包:
1、源IP和目的IP地址
2、有效负载中的内容。
3、数据包协议(例如,连接是否使用 TCP/IP 协议)。
4、应用协议(HTTP、Telnet、FTP、DNS、SSH 等)。
5、表明特定网络攻击的数据模式。
功能
地址转换、网络环境支持、带宽管理功能、入侵检测和攻击防御、用户认证、高可用性、
分类
防火墙工作于OSI模型层次越高,检查数据包中的信息就越多,消耗的工作周期越长,提供的安全保护等级就越高
基于部署方式分,有三种:
1、软件防火墙
直接部署在主机设备上,只保护一台主机
2、硬件防火墙
单独的硬件,用于过滤进出网络的流量,适合大型企业
3、基于云的防火墙
通过Internet按需要提供,Faas防火墙即服务,
基于操作方法的防火墙分,有n种:
1、包过滤防火墙
充当网络层的检查站点,OSI第三层网络层,
2、电路级网关
OSI第五层会话层,监视本地和远程主机之间的TCP握手,仅处理请求的事务,并拒绝所有其他流量。不检查数据包
3、状态检测防火墙
OSI第三层和第四层:网络层和传输层,监控传入传出的数据包,检查源IP、目的IP和端口号
4、代理防火墙/应用级网关
具有深度包检测的功能(DPI)
5、下一代防火墙(NGFW)
将其他防火墙的多种功能集成在一起的安全设备或程序。
对于数据流防火墙处理方式:
1、允许数据通过
2、拒绝数据流通过,并且向发送者发送数据流已经被拒绝
3、将数据流丢弃,此时防火墙不会对数据进行任何处理,也不会发送任何信息给发送者
性能指标
吞吐量(每一秒内处理数据包的最大能力),越大性能越高
时延(系统处理数据包所需要的时间),越小性能越高
丢包率(数据应转发但是未转发的百分比),越小性能越高
并发连接数量(最大能够同时处理的连接会话个数,一个链接就是一个TCP/UDP的访问),越大性能越高
新建链接速率(每一秒以内防火墙所能够处理的 HTTP 新建连连接请求的数量),越大性能越高
WAF ( Web Application Firewall ) 网络应用防火墙
一种HTTP入侵检测和防御系统,可以视为用户和应用程序本身之间的中介,通信到达应用程序或者用户之间对其分析,WAF处于第OSI模型第七层,应用层
用处
- 过滤HTTP/HTTPS协议流量,防护Web攻击。
- WAF可以对Web应用进行安全审计
- WAF可以防止CC攻击(针对Web服务的攻击,模仿正常用户请求耗尽服务器资源)
- 应用交付
不能
- WAF不能过滤其他协议流量,如FTP、PoP3协议
- WAF不能实现传统防护墙功能,如地址映射
- WAF不能防止网络层的DDoS攻击
- 防病毒
特点
- 具备威胁感知能力
- 具备HTTP/HTTPS深度检测能力. 检出率高,误报率低/漏报率低
- 高性能
- 复杂环境下高稳定性
IPS入侵防御系统
一种网络安全设备,监视网络流量,并且根据预定义的规则和策略检测阻止可能的网络攻击,可以部署在网络边界(不同安全级别的网络之间的连接形成了网络边界)、数据中心、云环境、边界防火墙等位置部署,以防止来自外部和内部网络的攻击。
漏洞
漏洞是指一个系统存在的弱点或缺陷,系统对特定威胁攻击或危险事件的敏感性,或进行攻击的威胁作用的可能性。
1-弱口令
使用容易被盗取/套取的密码
2-SQL注入
Web应用向后端传递SQL语句进行数据库操作时,若对用户输入参数没有经过严格的过滤处理,那么攻击者就可以通过构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。
防御
通过预设定SQL语句,加上PrepareStatement函数获取用户输入作为参数,拼接到SQL语句中,而不是直接将用户输入作为参数。
3-文件上传
攻击者可能上传恶意文件到服务器,若服务器未对上传文件进行严格的验证和过滤,就可能导致攻击方获取执行服务端命令的能力
防御
- 文件上传目录设置不可执行
- 判断文件类型是否合法
- 使用安全设备防御
4-XSS攻击(跨站脚本攻击)
攻击者在网页中嵌入客户端脚本(通常是JavaScript的恶意脚本)当用户使用浏览器加载被嵌入恶意代码的网页时,恶意脚本代码就会在用户的浏览器执行,造成跨站脚本的攻击,可能会被窃取敏感信息,篡改网页内容,截止用户会话,重定向用户等等
反射型XSS攻击
在网页URL里修改HTML代码,然后将URL链接转成短小链接,用户点击,然后遭受攻击(诈骗链接)
存储型XSS攻击
攻击方通过发表带有恶意攻击代码到网页上,服务器没有进行过滤就将其保存,正常用户访问的时候就会访问到有恶意攻击的网页,从而被攻击
DOM型
防御
- 对特殊字符(如 <、>、 ’ 、 ”等)以及
5-CSRF(跨站请求伪造)
攻击者利用目标用户的身份,执行某些非法的操作,可能会篡改目标站点上的用户数据,盗取用户隐私数据、传播 CSRF 蠕虫
防御
- 检查HTTP Referer是否是同域
- 限制Session Cookie的生命周期,减少被攻击的概率
- 使用验证码
- 使用一次性token
6-SSRF(Server-Side Request Forgery服务器端请求伪造)
攻击者伪造成用户,然后访问服务器的资源,主要是由于服务器B未对传回的请求作特殊处理造成。
遭受拒绝服务攻击、读取任意文件、扫描内网(主机、端口)
防御
- 禁用不需要的协议,仅允许http和https
- 根据请求需求,可以将特定域名加入白名单,拒绝白名单之外的请求
- 统一错误信息,避免用户根据错误信息来判断远程服务器的端口状态
- 限制请求的端口为http的常用端口,比如:80、443、8080等
7-XXE(XML外部实体注入)
XML External Entity Injection,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载, 导致用户可以控制外部的加载文件,造成XXE漏洞。可能会造成任意文件的读取、内网端口探测、拒绝服务攻击。
防御
- 使用开发语言提供的禁用外部实体的方法
- 过滤用户提交的XML数据
8-远程代码执行漏洞
应用程序调用系统命令函数,比如php中的system、exec、shell_exec的函数,执行系统命令,攻击者通过修改这些函数中的参数,将恶意命令拼接到正常命令中,从而造成命令攻击
防御
- 尽量不要使用命令执行函数
- 客户端提交的变量在进入执行命令函数方法之前,一定要做好过滤,对敏感字符进行转义
- 在使用动态函数之前,确保使用的函数是指定的函数之一
- 对PHP语言来说,不能完全控制的危险函数最好不要使用
9-反序列化漏洞
将字节流转换成具体内容时,被注入了恶意程序,导致恶意代码被执行
防御
- 应该尽量避免用户输入反序列化的参数
- 严格控制反序列化相关函数的参数,坚持用户所输入的信息都是不可靠的原则
- 做好代码审计相关工作,提高开发人员的安全意识
- 对于反序列化后的变量内容进行检查,以确定内容没有被污染