0%

DDOS攻击与防御

什么是DDos

DDoS(Distributed Denial of Service),即分布式拒绝服务攻击,是目前最为强大、最难以防御的攻击方式之一。要理解DDos,得先从DoS说起。最基本的DoS攻击就是利用合理的客户端请求来占用过多的服务器资源,从而使合法用户无法得到服务器的响应。DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式,传统的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度、内存或者网络带宽等等各项性能指标不高的情况下,它的效果是明显的,但随着计算机与网络技术的发展,计算机的处理能力显著增加,内存不断增大,同时也出现了千兆级别的网络,这使得DoS攻击逐渐失去效果。这时候分布式拒绝服务攻击手段(DDoS)便应运而生了。你理解了DoS攻击以后,
DDoS的原理就非常简单了,它指的是攻击者借助公共网络,将数量庞大的计算机设备联合起来作为
攻击平台,对一个或多个目标发动攻击,从而达到瘫痪目标主机的目的。通常,在攻击开始前,攻
击者会提前控制大量的用户计算机,称之为“肉鸡”,并通过指令使大量的肉鸡在同一时刻对某个主机进行访问,从而达到瘫痪目标主机的目的

DDoS的攻击有很多种类型,如依赖蛮力的ICMP Flood、UDP Flood等等,随着硬件性能的提升,需要的机器规模越来越大,组织大规模的攻击越来越困难,现在已经不常见,还有就是依赖协议特征以及具体的软件漏洞进行的攻击,如Slowloris攻击,Hash碰撞攻击等等,这类攻击主要利用协议以及软件漏洞发起攻击,需要在特定环境下才会出现,更多的攻击者采用的是前面两种的混合方式,即利用了协议、系统的缺陷,又具备了海量的流量,如SYN Flood、DNS Query Flood等等

DNS Query Flood攻击

DNS Query Flood实际上是UDP Flood攻击的一种变形,由于DNS服务在互联网中不可替代的作用,一旦DNS服务器瘫痪,影响甚大。DNS Query Flood攻击采用的方法是向被攻击的服务器发送海量的域名解析请求,通常,请求解析的域名是随机生成,大部分根本就不存在,并且通过伪造端口和客户端IP,防止查询请求被ACL过滤。被攻击的DNS 服务器在接收到域名解析请求后,首先会在服务器上查找是否有对应的缓存,由于域名是随机生成的,几乎不可能有相应的缓存信息,当没有缓存,并且该域名无法直接由该DNS服务器进行解析的时候,DNS服务器会向其上层DNS服务器递归查询域名信息,直到全球互联网的13台根DNS服务器。大量不存在的域名解析请求,给服务器带来了很大的负载,当解析请求超过一定量的时候,就会造成DNS服务器解析域名超时,这样攻击者便达成了攻击目的。

CC攻击

CC(Challenge Collapsar)攻击属于DDos的一种,是基于应用层HTTP协议发起的DDos攻击,也被称为HTTP Flood。CC攻击的原理是这样的,攻击者通过控制的大量“肉鸡”或者利用从互联网上搜寻的大量匿名的HTTP代理,模拟正常用户给网站发起请求直到该网站拒绝服务为止。大部分网站会通过CDN以及分布式缓存来加快服务端响应,提升网站的吞吐量,而这些精心构造的HTTP请求往往有意避开这些缓存,需要进行多次DB查询操作或者是一次请求返回大量的数据,加速系统资源消耗,从而拖垮后端的业务处理系统,甚至连相关存储以及日志收集系统也无法幸免

CSRF攻击与防御

什么是CSRF

CSRF攻击的全称是跨站请求伪造(cross site request forgery),是一种对网站的恶意利用,CSRF则是通过伪装来自受信任用户的请求来利用受信任的网站攻击者盗用了你的身份,以你的名义向第三方网站发送恶意请求。CRSF能做的事情包括利用你的身份发邮件、发短信、进行交易转账等等,甚至盗取你的账号

阅读全文 »

注入攻击防御

注入攻击有两种形式,SQL注入和OS注入

SQL注入

什么是SQL注入

所谓SQL注入,就是通过把SQL命令伪装成正常的HTTP请求参数,传递到服务端,欺骗服务器最终执行恶意的SQL命令,达到入侵目的。攻击者可以利用SQL注入漏洞,查询非授权信息,修改数据库服务器的数据,改变表结构,甚至是获取服务器root权限。总而言之,SQL注入漏洞的危害极大,攻击者采用的SQL指令,决定攻击的威力。当前涉及到大批量数据泄露的攻击事件,大部分都是通过利用SQL注入来实施的。

阅读全文 »

XSS攻击与防御

什么是XSS攻击

XSS攻击的全称是跨站脚本攻击(Cross Site Scripting),为了不与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,是WEB应用程序中最常见到的攻击手段之一。跨站脚本攻击指的是攻击者在网页中嵌入恶意脚本程序,当用户打开该网页时,脚本程序便开始在客户端的浏览器上执行,以盗取客户端cookie、盗取用户名密码、下载执行病毒木马程序甚至是获取客户端admin权限等。

常见的XSS攻击类型有两种,一种是反射型,攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的;另一种是持久型XSS攻击,黑客提交含有恶意脚本的请求,保存在被攻击的Web站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的

value为输入框输入的值,本来输入张三,应该显示为

1
<input type="text" name="nick" value="张三"/>

然而恶意输入"/><script>alert("haha")</script><!-,就显示为了

1
<input type="text" name="nick" value=""/><script>alert("haha")</script><!-" />
阅读全文 »

spark Streaming简介

spark Streaming是spark想要在流式处理中占据一席之地开发出来的产物,其底层还是使用的spark core,所以spark streaming做不到实时数据处理(毫秒级别),只能做到准实时(秒/分钟级别),且spark的架构如果是一个个的进行处理会导致资源的闲置和浪费,所以采用的是微批次的数据处理(微批次是为了可以准实时的进行处理,如果批量过大,会导致运算时间过长,变成离线处理)。

为了可以实现准实时、微批量,spark streaming使用离散化流(discretized stream)作为抽象表示,叫作 DStream。DStream 是随时间推移而收到的数据的序列。在内部,每个时间区间收到的数据都作为 RDD 存在, DStream 是由这些 RDD 所组成的序列(因此得名“离散化”),DStream 就是对 RDD 在实时数据处理场景的一种封装

Spark Streaming 支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ 和简单的 TCP 套接字等等。数据输入后可以用 Spark 的高度抽象原语如:map、reduce、join、window 等进行运算。DStream支持两种操作,一种是转换操作,会生成一个新的SDtream;一种是输出操作,可以把数据写入到外部系统,如 HDFS,数据库等。

阅读全文 »