【发布时间】:2012-05-27 23:30:55
【问题描述】:
我正在用 Python 开发一个项目来分析 SSH。
目前我被困在两件事上:
- 确定连接的空闲时间(没有数据通过连接传输的时间百分比)
- 确定连接类型(shell、隧道、scp 等)-> 连接内部的通道类型
如何解决这个问题?
【问题讨论】:
标签: ssh pcap openssh network-traffic traffic-measurement
我正在用 Python 开发一个项目来分析 SSH。
目前我被困在两件事上:
如何解决这个问题?
【问题讨论】:
标签: ssh pcap openssh network-traffic traffic-measurement
在利用特定域的详细信息时,有时可以reveal a surprising amount of information 处理加密流量。值得回顾过去的研究以了解这些方法。特别是对于 SSH,我建议阅读 Dawn Song 在inferring login passwords from SSH sessions 上的论文。
另一个例子:Bro 使用基于连接开始时传输的字节数的启发式识别成功登录和不成功登录。
一般来说,我建议您记录您以后要分析/分类的活动的痕迹。这样,您就有了基本事实,并且可以找出 SSH 的行为与您的预期不同的地方。
要确定交互式会话的空闲时间,您需要了解 SSH 在无活动期间注入的噪音(如果有)。然后,您可以创建传输字节数的时间序列,并尝试使用时间分辨率来查看哪种粒度模型最适合您的跟踪。此外,您可以将时间序列分解为两部分,一是 SSH 协议噪声,一是用户活动。
这听起来像是一个经典的无监督学习问题:clustering,例如k-均值或混合。提出正确的功能集可能需要一些研究。例如,如果隧道连接也是交互式的,那么从隧道中确定交互式会话可能会很困难。在您的模型中,您可以考虑大小增量,甚至包括更多上下文,例如 stepping stone detection。
【讨论】: