Web应用安全依然是互联网安全的最大威胁来源之一,除了传统的网页和APP,API和各种小程序也作为新的流量入口快速崛起,更多的流量入口和更易用的调用方式在提高web应用开发效率的同时也带来了更多和更复杂的安全问题。一方面,传统的SQL注入、XSS、CC攻击等传统攻击手段和各种新爆出的web漏洞无时无刻不在考验着web应用安全方案的健壮性、灵活性和安全团队的快速反应能力,另一方面随着大数据技术和流量产业的成熟,互联网中来自自动化程序的流量占比也在迅速增长,爬虫也随之成为一个不容忽视的存在,伴随而来的数据泄露、流量作弊等问题也为各类业务带来了非常头痛的费用浪费、业务不可用以及各类业务安全类问题。

作为防御Web应用安全的基础设施,Web应用防火墙(WAF)依旧扮演着极其重要的角色,而其中云WAF又具备漏洞响应快、功能迭代迅速、支持弹性扩容、快速容灾等优势。本报告根据阿里云WAF和防爬团队对2019年上半年云上流量的分析情况,为您带来最新的攻击趋势、漏洞应急情况以及一线安全专家的核心观点和防护建议。

报告发现:

1. 90%以上攻击流量来源于扫描器

扫描器往往是攻击者的开路利器,在大规模批量扫描中被嗅探到大量漏洞的web站点更容易成为攻击者下手的对象。通过特征、行为等维度识别并拦截扫描器请求,可以有效降低网站被攻击者盯上的概率,同时有效缓解批量扫描行为带来的负载压力。

从目前的数据来看,拦截的攻击中,扫描器产生的请求数量在90%以上,除去扫描器自动化产生的攻击,剩下的10%手工测试行为,0day,广度低频等攻击则是需要花上90%精力来解决,如图3-1所示。

2. 利用编码绕过防护的行为愈发普遍

随着WAF对网站的防护越来越普及,针对基础web攻防来说,利用诸如MySQL、JavaScript语言特性进行各种编码、变形,从而绕过WAF防护的攻击payload也越来越多,攻防是一个持续对抗升级的过程。根据云上数据显示,当前已有近1/3的攻击数据采用了不同程度或类型的编码、变形手段,以期绕过云盾WAF的防护,其中甚至不乏使用多维度的复合变形、编码手段实施攻击。

云盾WAF新一代引擎架构,支持多种常见HTTP协议数据提交格式全解析:HTTP任意头、Form表单、Multipart、JSON、XML;支持常见编码类型的解码:URL编码、JavaScript Unicode编码、HEX编码、Html实体编码、Java序列化编码、base64编码、UTF-7编码;支持预处理机制:空格压缩、注释删减,向上层多种检测引擎提供更为精细、准确的数据源。

该架构主要特征包括:在准确性上,优化引擎解析HTTP协议能力,支持复杂格式数据环境下的检测能力;抽象复杂格式数据中用户可控部分,降低上层检测逻辑的复杂度,避免过多检测数据导致的误报,降低多倍的误报率;在全面性上,支持多种形式数据编码的自适应解码,避免利用各种编码形式的绕过。

3. IP身份不再可信

IP地址是传统防护中一个非常重要的手段,很多经典的防护手段,如限速、名单、异常行为识别、威胁情报等都是基于IP地址实现的。但随着现在黑灰产对大规模代理IP池,特别是秒拨IP的广泛使用,IP地址已经变得不再可信。同一个IP地址,在10分钟前还被合法用户小白用于浏览A网站,在10分钟后已经被黑产人员小黑用作撞库攻击的代理IP,一个IP背后的身份开始变得极其复杂,黑与白交接的灰色地带比例在迅速扩大,这对于很多传统安全方案(不论是黑名单机制还是白名单机制)都带来了颠覆性的威胁,带来的相应误报和漏报也在迅速增长。

相应的,防护一方也应该做出改变。我们建议在做安全防护方案时,一方面将IP的身份或信誉辅助以其他维度的情报信息或者二次校验手段综合判断;另一方面降低对于IP的依赖,从更多维度去标识一个“客户端”或者“用户”,如设备指纹、业务中打点的token、cookie等等。

获取完整版报告请点击链接:https://files.alicdn.com/tpsservice/3ae3996f0011b95f27a4d07f9804cf87.pdf?.pdf

本文作者:云安全专家

原文链接

本文为云栖社区原创内容,未经允许不得转载。

《2019年上半年Web应用安全报告》发布:90%以上攻击流量来源于扫描器,IP身份不再可信的更多相关文章

  1. 《2019上半年DDoS攻击态势报告》发布:应用层攻击形势依然严峻,海量移动设备成新一代肉鸡

    2019年上半年,阿里云安全团队平均每天帮助用户防御2500余次DDoS攻击,与2018年持平.目前阿里云承载着中国40%网站流量,为全球上百万客户提供基础安全防御.可以说,阿里云上的DDoS攻防态势 ...

  2. TFS Build做Web应用持续集成发布的一个技巧

    由于面向接口编程的关系,许多实现往往是动态注入运行,在一个项目中直接引用实现dll编译是不合理的.通常我们会在Post Build Event中添加一些xcopy命令将运行时才需要的dll复制到输出目 ...

  3. 2019年上半年收集到的AI计算机视觉方向干货文章

    2019年上半年收集到的AI计算机视觉方向干货文章 时光飞逝,一晃上半年快要结束了.对人工智能高度感兴趣的笔者,每天都要看不少人工智能方面的文章,很多是干货文章,受益匪浅,所以整理成这个系列的文章. ...

  4. 2019年上半年收集到的人工智能LSTM干货文章

    2019年上半年收集到的人工智能LSTM干货文章 门控神经网络:LSTM 和 GRU 简要说明 LSTM-CNN-Attention算法系列之一:LSTM提取时间特征 对时间序列分类的LSTM全卷积网 ...

  5. 2019年上半年收集到的人工智能GAN干货文章

    2019年上半年收集到的人工智能GAN干货文章 GAN简介及其常见应用 训练GAN,你应该知道的二三事 了解生成对抗网络(GAN) CosmoGAN:训练GAN,让AI寻找宇宙中的暗物质 关于GAN的 ...

  6. 2019年上半年收集到的人工智能Python编程干货文章

    2019年上半年收集到的人工智能Python编程干货文章 一文了解Python深拷贝与浅拷贝问题 Python广度优先查找和深度优先查找(内附python教程分享) Python基础之函数2 (参数的 ...

  7. 2019年上半年收集到的人工智能AutoML干货文章

    2019年上半年收集到的人工智能AutoML干货文章 自动机器学习简述(AutoML) 谷歌将AutoML应用于Transformer架构,翻译结果飙升,已开源 IBM推出AutoAI,让企业人工智能 ...

  8. Python web在IIS上发布方法和原理

    Python web应用想要发布使用iis发布有两种方式,这篇文章就为大家介绍一下这两种方式的具体实现: 1.配置HttpPlatform程序 HttpPlatform 模块将套接字连接直接传递到独立 ...

  9. 使用Web Deploy自动打包发布

    在内部测试阶段,经常改一点小东西需要更新给测试继续测试.然后就需要频繁的找到对应更改的视图/JS文件,或者是编译的dll文件,再打开测试服务器找到对应站点替换进去,整套流程下来就非常的繁琐费时. 使用 ...

随机推荐

  1. Link-Cut Tree(LCT)

    转载自LCT(Link-Cut Tree)详解(蒟蒻自留地) 如果你还没有接触过LCT,你可以先看一看这里: (看不懂没关系,先留个大概的印像)http://www.cnblogs.com/BLADE ...

  2. Windows API 第19篇 FindFirstVolumeMountPoint FindNextVolumeMountPoint

    相关函数:HANDLE FindFirstVolumeMountPoint(                                                               ...

  3. ROS多线程编程

    int main(int argc, char **argv) { ros::init(argc, argv, "multi_sub"); multiThreadListener ...

  4. Tuxera ntfs软件如何删除干净

    sudo /Library/Filesystems/fusefs_txantfs.fs/Contents/Resources/Support/uninstall-package.sh

  5. 同名的cookie会不会存在多个

    cookie new了多个.同一个名字.会不会存在多个呢. //若果不设置Cookie的path,则名字相同的Cookie视为相同的Cookie,后面的覆盖前面的,注意:大小写敏感 Cookie c1 ...

  6. PHP declare 之 strict_types=1

    PHP中申明 declare(strict_types=1)的作用:  strict_types=1 及开启严格模式.默认是弱类型校验.具体严格模式和普通模式的区别见下面代码. code1: < ...

  7. Spring注解驱动开发(六)-----spring容器创建【源码】

    Spring容器的refresh()[创建刷新] 1.prepareRefresh()刷新前的预处理 1).initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法 ...

  8. Spring BatchSqlUpdate.updateByNamedParam例子

    关键在于定义参数和sql语句,代码如下: int dstColCount=dstColNamesList.size(); String insSql="insert into "+ ...

  9. Python玩转人工智能最火框架 TensorFlow应用实践

    Python玩转人工智能最火框架 TensorFlow应用实践 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课 ...

  10. spring-注解配置-junit整合测试-aop

    1 使用注解配置spring 1.1 步骤 导包4+2+spring-aop 1.为主配置文件引入新的命名空间(约束) 2.开启使用注解代理配置文件 3.在类中使用注解完成配置 1.2 将对象注册到容 ...