有关如何捕获networking连接/stream量以确定浏览器/ SSL版本的build议?

请注意,我将此Q发布到StackExchange信息安全网站,但不是像S​​erverFault那样填充,这更多的是在networking服务的networking收集技术方面。

我开始考虑如何分析我的networkingstream量,以获取有关Web服务器场的SSL和浏览器使用情况的信息。 我也怀疑在我们的networking上运行着一些影子(遗留的,未知的)networking服务器,我也想尝试捕捉它们的连接。

基本上我正在寻找一个便宜的解决scheme,可以:

  • logging所有连接及其协议,类似于Wireshark如何loggingsrc / dst和协议,但不收集数据本身。 只是头和协议types信息。 (例如源/目标IP地址,协议和任何协议版本/细节,如SSL / TLS版本等)
  • 对于HTTP连接,logging浏览器的“用户代理”属性。 (所以我可以被动地构build一些浏览器版本/兼容性图片)
  • 能够为非标准端口这样做是一个加号。 限制收集只有具体的协议将是想法。 例如只收集HTTP,SSL和TLS。

我将最终将专门收集此信息的服务器插入到我控制的每个交换机上的镜像端口中。

这将有助于跟进以下活动:

  • 找出哪些Web服务允许弱SSL / TLS版本。 例如,如果我看到任何SSLv2 / 3,我会考虑查找和重新configuration这些Web服务器到最低TLS v1.1。
  • 获取最终用户Web浏览器的版本和版本情况的图片,以便我可以决定安全地进​​行最小的安全更改。 例如,如果15%的浏览器是不支持TLSv1.1 +的Vista(!)上的IE8,我就会提前知道。 另外,我可以查看这些IP,并确定它们中的任何一个是应该被调查的传统networking资源,而不仅仅是具有过时软件的一些最终用户。
  • 确定哪些Web服务IP地址不是已知的,所以我可以跟踪这些服务。

我所要求的,而不是仅仅尝试使用tcpdump和OpenDPI的原因是性能上的担忧。 我不确定在镜像千兆端口时是否会发生什么情况。 捕获这些信息可能很困难(记住我不想要一个数据包转储,只需要头信息,它可以被折叠logging,我不需要知道每一个连接,只需要src / dst /协议独特的),但要确定是否捕获不成功。 例如,我怎么知道50%的连接被忽略?

我可能会运行一个星期,让用户configuration文件build立起来。

如果有人有任何的build议或意见,我是全部耳朵。 谢谢。

我认为一个工具,可以给你你所需要的是pf ,特别是它的分叉版本,它也是SSL指纹 。 源代码可以在这里find。 p0f捕获到达机器的每个连接,分析它的TCP,HTTP和SSL / TLS头(SSL / TLS仅在SSL指纹版本中可用)并输出连接数据,如:

  • IP地址
  • MTU
  • 客户端使用的操作系统和操作系统版本(从TCP连接分析)
  • 浏览器和浏览器版本(从HTTP用户代理或SSL / TLS指纹分析)

我不确定它是否可以configuration为非标准的端口,但我认为这也是可能的。 这是一个很好的工具,可以满足您的大部分需求