博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
流量分析攻击及防范
阅读量:6293 次
发布时间:2019-06-22

本文共 1120 字,大约阅读时间需要 3 分钟。

  这几天读了2篇关于流量分析攻击的文章,写下一些核心思想和主要问题。

  情景设定:被攻击者通过SSH、SSL隧道连接到某个代理,通过该代理访问互联网;攻击者可以获得二者之间往来的加密数据包。由于数据包都是通过加密方式发送到某服务器,所以攻击者唯一能知道的就是数据包发送的大小和时间。如何推测出用户正在访问什么网站呢?

  核心思想:不同的网站在访问时,链路上往来的数据包的大小是不一样的,例如,访问www.baidu.com 、www.sina.com.cn 和  时得到的IO吞吐数据分别如下面3张图所示:

www.baidu.com

www.sina.com

www.njupt.edu.cn

  将这些数据包的大小,按时间排序,得到一个序列(这个序列描述了这个网站的特征)。不同的网站访问时,得到的序列也是完全不同的。攻击者先花费一定的时间,通过SSH或SSL的加密隧道,对大量的网站进行访问,记录下这些网站的数据包序列,构成一个大的字典。攻击时,只需将被攻击者某次会话的所有数据包的包头截下来,将数据包的大小构成一个序列,然后用这个序列与字典中的候选序列进行比较,选择相似度最大的前几个网站,作为猜测的结果。

  主要难点:如何判断两个序列的相似性? 讲到了一个和这个问题相似的例子:

  有五本书,a,b,c三个童鞋看过,它们对这五本书的评价如下(分数为1~5):

  A = [1, 2, 4, 3, 5]

  B = [2, 4, 3, 3, 4]
  C = [3, 3, 2, 2, 3]

  问题,谁和用户A的口味比较相似?

  作者给出了几种方法,其中就包括论文中提到的 Jaccard系数。

  论文中提到的另一种方法是朴素贝叶斯方法

(详情参看:

 

和)。前中一般在数据挖掘和机器学习中使用,后一种方法属于随机过程的知识。

  作者分别使用上面的方法,制作出分类器进行实验,结果显示一次性猜对的可能性不是太高,在20%-40%之间,但是10次猜中的可能性高达80%。

  当然,由于互联网上的网站实在太多,实验中作者并没有将所有的网站加入到字典中,而是从中选取了一定数量个访问频率最高的网站做成了一个字典,供查询匹配使用。

 

  攻击的防范:在另一篇论文中,作者针对上面的方法提出提出了防范措施,主要就是通过改变数据包的大小,降低攻击者判断的准确性。具体如何改变,方法就有很多,比如:在数据包中添加一些额外的字节;将TCP包拆分成多个小的数据包发送;时不时地要求服务器重新发送某个TCP包;降低链路的MSS的大小;调整滑动窗口的大小等等。通过这些方法可以明显的降低攻击者判断的准确性。

 

论文链接(前两篇讲攻击原理,第三篇讲防范):

 

 

转载于:https://www.cnblogs.com/yulele/archive/2012/09/19/2694431.html

你可能感兴趣的文章
!!a标签和button按钮只允许点击一次,防止重复提交
查看>>
(轉貼) Eclipse + CDT + MinGW 安裝方法 (C/C++) (gcc) (g++) (OS) (Windows)
查看>>
还原数据库
查看>>
作业调度框架 Quartz.NET 2.0 beta 发布
查看>>
mysql性能的检查和调优方法
查看>>
项目管理中的导向性
查看>>
Android WebView 学习
查看>>
(转)从给定的文本中,查找其中最长的重复子字符串的问题
查看>>
HDU 2159
查看>>
spring batch中用到的表
查看>>
资源文件夹res/raw和assets的使用
查看>>
UINode扩展
查看>>
LINUX常用命令
查看>>
百度云盘demo
查看>>
概率论与数理统计习题
查看>>
初学structs2,简单配置
查看>>
Laravel5.0学习--01 入门
查看>>
时间戳解读
查看>>
sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
查看>>
@RequestMapping 用法详解之地址映射
查看>>